1 #ifndef CommonTools_CandUtils_CandCombinerBase_h
2 #define CommonTools_CandUtils_CandCombinerBase_h
29 std::unique_ptr<reco::NamedCompositeCandidateCollection>
combine(
const std::vector<reco::CandidatePtrVector> &,
61 std::pair<std::pair<reco::CandidatePtr, size_t>, std::vector<reco::CandidatePtrVector>::const_iterator> >
65 void combine(
size_t collectionIndex,
69 std::vector<reco::CandidatePtrVector>::const_iterator
begin,
70 std::vector<reco::CandidatePtrVector>::const_iterator
end,
71 std::unique_ptr<reco::NamedCompositeCandidateCollection> &comps)
const;
const edm::EventSetup & c
NamedCandCombinerBase(std::string name)
default construct
virtual void setup(reco::NamedCompositeCandidate &) const =0
set kinematics to reconstructed composite
const std::string names[nVars_]
std::vector< int > ChargeStack
OverlapChecker overlap_
utility to check candidate daughters overlap
virtual void addDaughter(reco::NamedCompositeCandidate &cmp, const reco::CandidatePtr &c, std::string name) const =0
add candidate daughter
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
std::vector< std::pair< std::pair< reco::CandidatePtr, size_t >, std::vector< reco::CandidatePtrVector >::const_iterator > > CandStack
temporary candidate stack
virtual bool select(const reco::Candidate &) const =0
select a candidate
std::unique_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
std::vector< std::string > string_coll
virtual ~NamedCandCombinerBase()
destructor