CMS 3D CMS Logo

OverlapChecker Class Reference

Functor that checks the overlap of two Candidate objects. More...

#include <DataFormats/Candidate/interface/OverlapChecker.h>

List of all members.

Public Member Functions

bool operator() (const reco::Candidate &, const reco::Candidate &) const
 return true if two candidates overlap


Detailed Description

Functor that checks the overlap of two Candidate objects.

Author:
Luca Lista, INFN
Version:
Revision
1.2

Id
OverlapChecker.h,v 1.2 2006/03/08 12:57:07 llista Exp

Definition at line 19 of file OverlapChecker.h.


Member Function Documentation

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 }


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:29:26 2009 for CMSSW by  doxygen 1.5.4