1 #ifndef TtFullLepHypothesis_h
2 #define TtFullLepHypothesis_h
57 return (0 <= idx && idx < (
int)
jets->size());
69 const edm::Handle<std::vector<pat::Electron> >& elecs,
73 std::vector<int>&
match,
74 const unsigned int iComb) = 0;
93 std::unique_ptr<reco::ShallowClonePtrCandidate>
lepton_;
94 std::unique_ptr<reco::ShallowClonePtrCandidate>
leptonBar_;
95 std::unique_ptr<reco::ShallowClonePtrCandidate>
b_;
96 std::unique_ptr<reco::ShallowClonePtrCandidate>
bBar_;
97 std::unique_ptr<reco::ShallowClonePtrCandidate>
neutrino_;
102 std::unique_ptr<reco::LeafCandidate>
recNu;
108 template <
typename C>
113 return std::make_unique<reco::ShallowClonePtrCandidate>(ptr, ptr->charge(), ptr->p4(), ptr->vertex());
std::unique_ptr< reco::LeafCandidate > recNu
candidates needed for the genmatch hypothesis
std::unique_ptr< reco::ShallowClonePtrCandidate > leptonBar_
int key_
hypothesis key (to be set by the buildKey function)
virtual void buildKey()=0
build the event hypothesis key
Container::value_type value_type
edm::EDGetTokenT< std::vector< pat::Jet > > jetsToken_
void resetCandidates()
reset candidate pointers before hypo build process
reco::CompositeCandidate hypo()
return event hypothesis
std::unique_ptr< reco::ShallowClonePtrCandidate > neutrino_
std::unique_ptr< reco::ShallowClonePtrCandidate > neutrinoBar_
edm::EDGetTokenT< std::vector< std::vector< int > > > matchToken_
input label for all necessary collections
virtual void buildHypo(edm::Event &evt, const edm::Handle< std::vector< pat::Electron > > &elecs, const edm::Handle< std::vector< pat::Muon > > &mus, const edm::Handle< std::vector< pat::Jet > > &jets, const edm::Handle< std::vector< pat::MET > > &mets, std::vector< int > &match, const unsigned int iComb)=0
build event hypothesis from the reco objects of a semi-leptonic event
edm::EDGetTokenT< std::vector< pat::Electron > > elecsToken_
void produce(edm::Event &, const edm::EventSetup &) override
produce the event hypothesis as CompositeCandidate and Key
std::unique_ptr< reco::LeafCandidate > recNuBar
std::string jetCorrectionLevel_
edm::EDGetTokenT< std::vector< pat::MET > > metsToken_
std::unique_ptr< reco::ShallowClonePtrCandidate > lepton_
int key() const
return key
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
std::unique_ptr< reco::ShallowClonePtrCandidate > b_
std::unique_ptr< reco::ShallowClonePtrCandidate > makeCandidate(const edm::Handle< C > &handle, const int &idx)
use one object in a collection to set a ShallowClonePtrCandidate
TtFullLepHypothesis(const edm::ParameterSet &)
default constructor
bool isValid(const int &idx, const edm::Handle< std::vector< pat::Jet > > &jets)
check if index is in valid range of selected jets
edm::EDGetTokenT< std::vector< pat::Muon > > musToken_
std::unique_ptr< reco::ShallowClonePtrCandidate > bBar_