1 #ifndef CommonTools_CandUtils_CandCombinerBase_h 2 #define CommonTools_CandUtils_CandCombinerBase_h 29 std::auto_ptr<reco::NamedCompositeCandidateCollection>
30 combine(
const std::vector<reco::CandidatePtrVector> &, string_coll
const &)
const;
32 std::auto_ptr<reco::NamedCompositeCandidateCollection>
34 string_coll
const &)
const;
36 std::auto_ptr<reco::NamedCompositeCandidateCollection>
39 string_coll
const &)
const;
41 std::auto_ptr<reco::NamedCompositeCandidateCollection>
45 string_coll
const &)
const;
47 std::auto_ptr<reco::NamedCompositeCandidateCollection>
52 string_coll
const &)
const;
64 typedef std::vector<std::pair<std::pair<reco::CandidatePtr, size_t>,
65 std::vector<reco::CandidatePtrVector>::const_iterator> >
CandStack;
68 void combine(
size_t collectionIndex, CandStack &, ChargeStack &,
69 string_coll
const &
names,
70 std::vector<reco::CandidatePtrVector>::const_iterator
begin,
71 std::vector<reco::CandidatePtrVector>::const_iterator
end,
72 std::auto_ptr<reco::NamedCompositeCandidateCollection> & comps
NamedCandCombinerBase(std::string name)
default construct
static const HistoName names[]
virtual void setup(reco::NamedCompositeCandidate &) const =0
set kinematics to reconstructed composite
std::vector< int > ChargeStack
virtual bool select(const reco::Candidate &) const =0
select a candidate
std::vector< std::pair< std::pair< reco::CandidatePtr, size_t >, std::vector< reco::CandidatePtrVector >::const_iterator > > CandStack
temporary candidate stack
OverlapChecker overlap_
utility to check candidate daughters overlap
std::auto_ptr< reco::NamedCompositeCandidateCollection > combine(const std::vector< reco::CandidatePtrVector > &, string_coll const &) const
return all selected candidate pairs
virtual bool selectPair(const reco::Candidate &c1, const reco::Candidate &c2) const =0
select a candidate pair
bool preselect(const reco::Candidate &, const reco::Candidate &) const
verify that the two candidate don't overlap and check charge
bool checkCharge_
flag to specify the checking of electric charge
bool checkOverlap_
flag to specify the checking of overlaps
std::vector< int > dauCharge_
electric charges of the daughters
def checkOverlap(process)
std::vector< std::string > string_coll
virtual void addDaughter(reco::NamedCompositeCandidate &cmp, const reco::CandidatePtr &c, std::string name) const =0
add candidate daughter
virtual ~NamedCandCombinerBase()
destructor