![]() |
![]() |
#include <DataFormats/Candidate/interface/OverlapChecker.h>
Public Member Functions | |
bool | operator() (const reco::Candidate &, const reco::Candidate &) const |
return true if two candidates overlap |
Definition at line 19 of file OverlapChecker.h.
bool OverlapChecker::operator() | ( | const reco::Candidate & | c1, | |
const reco::Candidate & | c2 | |||
) | const |
return true if two candidates overlap
Definition at line 6 of file OverlapChecker.cc.
References b1, b2, reco::Candidate::begin(), e1, e2, reco::Candidate::end(), reco::Candidate::hasMasterClone(), i1, i2, reco::Candidate::masterClone(), reco::Candidate::numberOfDaughters(), and reco::Candidate::overlap().
00006 { 00007 typedef Candidate::const_iterator iterator; 00008 if( c1.numberOfDaughters() == 0 ) { 00009 if ( c2.numberOfDaughters() == 0 ) { 00010 if( c2.hasMasterClone() ) 00011 return c1.overlap( *(c2.masterClone()) ); 00012 else 00013 return c1.overlap( c2 ); 00014 } 00015 iterator b2 = c2.begin(), e2 = c2.end(); 00016 for( iterator i2 = b2; i2 != e2; ++ i2 ) { 00017 if( operator()( c1, * i2 ) ) { 00018 return true; 00019 } 00020 } 00021 return false; 00022 } 00023 iterator b1 = c1.begin(), e1 = c1.end(); 00024 for( iterator i1 = b1; i1 != e1; ++ i1 ) { 00025 if( operator()( * i1, c2 ) ) { 00026 return true; 00027 } 00028 } 00029 return false; 00030 }