File indexing completed on 2024-04-06 12:03:49
0001 #include "DataFormats/Candidate/interface/OverlapChecker.h"
0002 #include "DataFormats/Candidate/interface/Candidate.h"
0003 using namespace reco;
0004
0005 bool OverlapChecker::operator()(const Candidate& c1, const Candidate& c2) const {
0006 typedef Candidate::const_iterator iterator;
0007 if (c1.numberOfDaughters() == 0) {
0008 if (c2.numberOfDaughters() == 0) {
0009 if (c2.hasMasterClone())
0010 return c1.overlap(*(c2.masterClone()));
0011 else
0012 return c1.overlap(c2);
0013 }
0014 iterator b2 = c2.begin(), e2 = c2.end();
0015 for (iterator i2 = b2; i2 != e2; ++i2) {
0016 if (operator()(c1, *i2)) {
0017 return true;
0018 }
0019 }
0020 return false;
0021 }
0022 iterator b1 = c1.begin(), e1 = c1.end();
0023 for (iterator i1 = b1; i1 != e1; ++i1) {
0024 if (operator()(*i1, c2)) {
0025 return true;
0026 }
0027 }
0028 return false;
0029 }