#include <TtSemiLepHypothesis.h>
Protected Member Functions | |
void | buildHypo (const edm::Handle< edm::View< reco::RecoCandidate > > &leps, const edm::Handle< std::vector< pat::MET > > &mets, const edm::Handle< std::vector< pat::Jet > > &jets, std::vector< int > &jetPartonAssociation) |
minimalistic build function for simple hypotheses More... | |
virtual void | buildHypo (edm::Event &event, const edm::Handle< edm::View< reco::RecoCandidate > > &lepton, const edm::Handle< std::vector< pat::MET > > &neutrino, const edm::Handle< std::vector< pat::Jet > > &jets, std::vector< int > &jetPartonAssociation, const unsigned int iComb)=0 |
build event hypothesis from the reco objects of a semi-leptonic event More... | |
virtual void | buildKey ()=0 |
build the event hypothesis key More... | |
reco::CompositeCandidate | hypo () |
return event hypothesis More... | |
bool | isValid (const int &idx, const edm::Handle< std::vector< pat::Jet > > &jets) |
check if index is in valid range of selected jets More... | |
std::string | jetCorrectionLevel (const std::string &quarkType) |
helper function to construct the proper correction level string for corresponding quarkType More... | |
int | key () const |
WDecay::LeptonType | leptonType (const reco::RecoCandidate *cand) |
determine lepton type of reco candidate and return a corresponding WDecay::LeptonType; the type is kNone if it is whether a muon nor an electron More... | |
void | produce (edm::Event &, const edm::EventSetup &) override |
produce the event hypothesis as CompositeCandidate and Key More... | |
void | resetCandidates () |
reset candidate pointers before hypo build process More... | |
template<typename C > | |
void | setCandidate (const edm::Handle< C > &handle, const int &idx, reco::ShallowClonePtrCandidate *&clone) |
use one object in a collection to set a ShallowClonePtrCandidate More... | |
void | setCandidate (const edm::Handle< std::vector< pat::Jet > > &handle, const int &idx, reco::ShallowClonePtrCandidate *&clone, const std::string &correctionLevel) |
use one object in a jet collection to set a ShallowClonePtrCandidate with proper jet corrections More... | |
void | setNeutrino (const edm::Handle< std::vector< pat::MET > > &met, const edm::Handle< edm::View< reco::RecoCandidate > > &leps, const int &idx, const int &type) |
set neutrino, using mW = 80.4 to calculate the neutrino pz More... | |
Protected Member Functions inherited from edm::EDConsumerBase | |
template<typename ProductType , BranchType B = InEvent> | |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
template<BranchType B> | |
EDGetToken | consumes (TypeToGet const &id, edm::InputTag const &tag) |
ConsumesCollector | consumesCollector () |
Use a ConsumesCollector to gather consumes information from helper functions. More... | |
template<typename ProductType , BranchType B = InEvent> | |
void | consumesMany () |
void | consumesMany (const TypeToGet &id) |
template<BranchType B> | |
void | consumesMany (const TypeToGet &id) |
template<typename ProductType , BranchType B = InEvent> | |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
template<BranchType B> | |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
Protected Attributes | |
bool | getMatch_ |
reco::ShallowClonePtrCandidate * | hadronicB_ |
std::string | jetCorrectionLevel_ |
edm::EDGetTokenT< std::vector< pat::Jet > > | jetsToken_ |
input label for all necessary collections More... | |
int | key_ |
hypothesis key (to be set by the buildKey function) More... | |
edm::EDGetTokenT< edm::View< reco::RecoCandidate > > | lepsToken_ |
reco::ShallowClonePtrCandidate * | lepton_ |
reco::ShallowClonePtrCandidate * | leptonicB_ |
reco::ShallowClonePtrCandidate * | lightQ_ |
reco::ShallowClonePtrCandidate * | lightQBar_ |
edm::EDGetTokenT< std::vector< std::vector< int > > > | matchToken_ |
edm::EDGetTokenT< std::vector< pat::MET > > | metsToken_ |
reco::ShallowClonePtrCandidate * | neutrino_ |
int | neutrinoSolutionType_ |
algorithm used to calculate neutrino solutions (see cfi for further details) More... | |
edm::EDGetTokenT< int > | nJetsConsideredToken_ |
int | numberOfRealNeutrinoSolutions_ |
Additional Inherited Members | |
Public Types inherited from edm::EDProducer | |
typedef EDProducer | ModuleType |
Public Types inherited from edm::ProducerBase | |
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >> |
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
Public Types inherited from edm::EDConsumerBase | |
typedef ProductLabels | Labels |
Static Public Member Functions inherited from edm::EDProducer | |
static const std::string & | baseType () |
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
static void | prevalidate (ConfigurationDescriptions &descriptions) |
static bool | wantsGlobalLuminosityBlocks () |
static bool | wantsGlobalRuns () |
static bool | wantsStreamLuminosityBlocks () |
static bool | wantsStreamRuns () |
Definition at line 31 of file TtSemiLepHypothesis.h.
|
explicit |
default constructor
Definition at line 10 of file TtSemiLepHypothesis.cc.
References edm::ParameterSet::exists(), getMatch_, edm::ParameterSet::getParameter(), jetCorrectionLevel_, matchToken_, neutrinoSolutionType_, and AlCaHLTBitMon_QueryRunRegistry::string.
|
override |
default destructor
Definition at line 38 of file TtSemiLepHypothesis.cc.
References hadronicB_, lepton_, leptonicB_, lightQ_, lightQBar_, and neutrino_.
|
protected |
minimalistic build function for simple hypotheses
return key minimalistic build function for simple hypotheses
Definition at line 249 of file TtSemiLepHypothesis.cc.
References TtSemiLepEvtPartons::HadB, hadronicB_, training_settings::idx, isValid(), jetCorrectionLevel(), fwrapper::jets, TtSemiLepEvtPartons::LepB, TtSemiLepHitFitProducer_Electrons_cfi::leps, lepton_, leptonicB_, TtSemiLepEvtPartons::LightQ, lightQ_, TtSemiLepEvtPartons::LightQBar, lightQBar_, TtSemiLepSignalSelMVAComputer_cfi::mets, neutrino_, neutrinoSolutionType_, setCandidate(), and setNeutrino().
Referenced by TtSemiLepHypGeom::buildHypo(), TtSemiLepHypMVADisc::buildHypo(), TtSemiLepHypWMassMaxSumPt::buildHypo(), TtSemiLepHypWMassDeltaTopMass::buildHypo(), TtSemiLepHypMaxSumPtWMass::buildHypo(), isValid(), and produce().
|
protectedpure virtual |
build event hypothesis from the reco objects of a semi-leptonic event
Implemented in TtSemiLepHypHitFit, TtSemiLepHypKinFit, TtSemiLepHypGenMatch, TtSemiLepHypGeom, TtSemiLepHypMaxSumPtWMass, TtSemiLepHypMVADisc, TtSemiLepHypWMassDeltaTopMass, and TtSemiLepHypWMassMaxSumPt.
|
protectedpure virtual |
build the event hypothesis key
Implemented in TtSemiLepHypHitFit, TtSemiLepHypKinFit, TtSemiLepHypGenMatch, TtSemiLepHypGeom, TtSemiLepHypMaxSumPtWMass, TtSemiLepHypMVADisc, TtSemiLepHypWMassDeltaTopMass, and TtSemiLepHypWMassMaxSumPt.
|
protected |
return event hypothesis
Definition at line 126 of file TtSemiLepHypothesis.cc.
References reco::CompositeCandidate::addDaughter(), TtSemiLepDaughter::HadB, TtSemiLepDaughter::HadP, TtSemiLepDaughter::HadQ, hadronicB_, TtSemiLepDaughter::HadTop, TtSemiLepDaughter::HadW, TtSemiLepDaughter::Lep, TtSemiLepDaughter::LepB, lepton_, leptonicB_, TtSemiLepDaughter::LepTop, TtSemiLepDaughter::LepW, lightQ_, lightQBar_, neutrino_, TtSemiLepDaughter::Nu, and AddFourMomenta::set().
Referenced by key(), and produce().
|
inlineprotected |
check if index is in valid range of selected jets
Definition at line 64 of file TtSemiLepHypothesis.h.
References buildHypo(), buildKey(), fwrapper::jets, and leptonType().
Referenced by ntupleDataFormat._Object::_checkIsValid(), TtSemiLepHypGenMatch::buildHypo(), buildHypo(), and core.AutoHandle.AutoHandle::ReallyLoad().
|
protected |
helper function to construct the proper correction level string for corresponding quarkType
helper function to construct the proper correction level string for corresponding quarkType, for unknown quarkTypes an empty string is returned
Definition at line 178 of file TtSemiLepHypothesis.cc.
References jetCorrectionLevel_, hcalDigis_cfi::level, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by TtSemiLepHypGenMatch::buildHypo(), and buildHypo().
|
inlineprotected |
Definition at line 60 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
determine lepton type of reco candidate and return a corresponding WDecay::LeptonType; the type is kNone if it is whether a muon nor an electron
Definition at line 163 of file TtSemiLepHypothesis.cc.
References WDecay::kElec, WDecay::kMuon, WDecay::kNone, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by TtSemiLepHypGenMatch::findMatchingLepton(), isValid(), and setNeutrino().
|
overrideprotected |
produce the event hypothesis as CompositeCandidate and Key
Definition at line 50 of file TtSemiLepHypothesis.cc.
References buildHypo(), buildKey(), edm::Event::getByToken(), getMatch_, hypo(), mps_fire::i, fwrapper::jets, jetsToken_, key(), TtSemiLepHitFitProducer_Electrons_cfi::leps, lepsToken_, match(), matchToken_, TtSemiLepSignalSelMVAComputer_cfi::mets, metsToken_, eostools::move(), TtSemiLepHypGenMatch_cfi::nJetsConsidered, nJetsConsideredToken_, numberOfRealNeutrinoSolutions_, edm::Event::put(), and resetCandidates().
|
protected |
reset candidate pointers before hypo build process
Definition at line 113 of file TtSemiLepHypothesis.cc.
References hadronicB_, lepton_, leptonicB_, lightQ_, lightQBar_, neutrino_, and numberOfRealNeutrinoSolutions_.
Referenced by produce().
|
protected |
use one object in a collection to set a ShallowClonePtrCandidate
Definition at line 117 of file TtSemiLepHypothesis.h.
References cmsBatch::handle, and training_settings::idx.
Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), and buildHypo().
|
protected |
use one object in a jet collection to set a ShallowClonePtrCandidate with proper jet corrections
Definition at line 212 of file TtSemiLepHypothesis.cc.
References reco::LeafCandidate::charge(), cmsBatch::handle, training_settings::idx, pat::Jet::jecFactor(), reco::LeafCandidate::p4(), AlCaHLTBitMon_QueryRunRegistry::string, and reco::LeafCandidate::vertex().
|
protected |
set neutrino, using mW = 80.4 to calculate the neutrino pz
Definition at line 229 of file TtSemiLepHypothesis.cc.
References reco::Candidate::begin(), reco::LeafCandidate::charge(), Exception, WDecay::kElec, WDecay::kMuon, TtSemiLepHitFitProducer_Electrons_cfi::leps, leptonType(), RazorAnalyzer::met, neutrino_, numberOfRealNeutrinoSolutions_, p4, reco::LeafCandidate::px(), reco::LeafCandidate::py(), mathSSE::sqrt(), and reco::LeafCandidate::vertex().
Referenced by TtSemiLepHypGenMatch::buildHypo(), and buildHypo().
|
protected |
internal check whether the match information exists or not, if false a blind dummy match vector will be used internally
Definition at line 86 of file TtSemiLepHypothesis.h.
Referenced by produce(), and TtSemiLepHypothesis().
|
protected |
Definition at line 107 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), buildHypo(), hypo(), resetCandidates(), and ~TtSemiLepHypothesis().
|
protected |
specify the desired jet correction level (the default should be L3Absolute-'abs')
Definition at line 95 of file TtSemiLepHypothesis.h.
Referenced by jetCorrectionLevel(), and TtSemiLepHypothesis().
|
protected |
input label for all necessary collections
Definition at line 88 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
hypothesis key (to be set by the buildKey function)
Definition at line 97 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildKey(), TtSemiLepHypWMassDeltaTopMass::buildKey(), TtSemiLepHypWMassMaxSumPt::buildKey(), TtSemiLepHypMVADisc::buildKey(), TtSemiLepHypMaxSumPtWMass::buildKey(), TtSemiLepHypGeom::buildKey(), TtSemiLepHypHitFit::buildKey(), TtSemiLepHypKinFit::buildKey(), and key().
|
protected |
Definition at line 89 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
Definition at line 110 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), buildHypo(), hypo(), resetCandidates(), and ~TtSemiLepHypothesis().
|
protected |
Definition at line 108 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), buildHypo(), hypo(), resetCandidates(), and ~TtSemiLepHypothesis().
|
protected |
candidates for internal use for the creation of the hypothesis candidate
Definition at line 105 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), buildHypo(), hypo(), resetCandidates(), and ~TtSemiLepHypothesis().
|
protected |
Definition at line 106 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), buildHypo(), hypo(), resetCandidates(), and ~TtSemiLepHypothesis().
|
protected |
Definition at line 91 of file TtSemiLepHypothesis.h.
Referenced by produce(), and TtSemiLepHypothesis().
|
protected |
Definition at line 90 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
Definition at line 109 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), buildHypo(), hypo(), resetCandidates(), setNeutrino(), and ~TtSemiLepHypothesis().
|
protected |
algorithm used to calculate neutrino solutions (see cfi for further details)
Definition at line 99 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), buildHypo(), and TtSemiLepHypothesis().
|
protected |
Definition at line 92 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
number of real neutrino solutions: -1 if not determined, 0 if only complex, 2 if two real solutions
Definition at line 102 of file TtSemiLepHypothesis.h.
Referenced by produce(), resetCandidates(), and setNeutrino().