#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::ProducerBase | |
template<class ProductType > | |
BranchAliasSetterT< ProductType > | produces () |
declare what type of product will make and with which optional label More... | |
template<typename ProductType , BranchType B> | |
BranchAliasSetterT< ProductType > | produces () |
template<typename ProductType , Transition B> | |
BranchAliasSetterT< ProductType > | produces () |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
template<BranchType B> | |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
template<Transition B> | |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
template<typename ProductType , Transition B> | |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
template<class ProductType > | |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
template<typename ProductType , BranchType B> | |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
ProducesCollector | producesCollector () |
Protected Member Functions inherited from edm::EDConsumerBase | |
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
template<typename ProductType , BranchType B = InEvent> | |
EDGetTokenT< ProductType > | consumes (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 ESProduct , typename ESRecord , Transition Tr = Transition::Event> | |
auto | esConsumes () |
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event> | |
auto | esConsumes (ESInputTag const &tag) |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
template<BranchType B> | |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
template<typename ProductType , BranchType B = InEvent> | |
EDGetTokenT< ProductType > | mayConsume (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 looper::cfg, getMatch_, jetCorrectionLevel_, matchToken_, neutrinoSolutionType_, and AlCaHLTBitMon_QueryRunRegistry::string.
|
override |
default destructor
Definition at line 41 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(), singleTopDQM_cfi::jets, TtSemiLepEvtPartons::LepB, TtSemiLepHitFitProducer_Electrons_cfi::leps, lepton_, leptonicB_, TtSemiLepEvtPartons::LightQ, lightQ_, TtSemiLepEvtPartons::LightQBar, lightQBar_, match(), singleTopDQM_cfi::mets, neutrino_, neutrinoSolutionType_, setCandidate(), and setNeutrino().
Referenced by TtSemiLepHypGeom::buildHypo(), TtSemiLepHypMaxSumPtWMass::buildHypo(), TtSemiLepHypWMassMaxSumPt::buildHypo(), TtSemiLepHypWMassDeltaTopMass::buildHypo(), TtSemiLepHypMVADisc::buildHypo(), and produce().
|
protectedpure virtual |
build event hypothesis from the reco objects of a semi-leptonic event
Implemented in TtSemiLepHypGeom, TtSemiLepHypMaxSumPtWMass, TtSemiLepHypMVADisc, TtSemiLepHypWMassDeltaTopMass, TtSemiLepHypWMassMaxSumPt, TtSemiLepHypHitFit, TtSemiLepHypKinFit, and TtSemiLepHypGenMatch.
|
protectedpure virtual |
build the event hypothesis key
Implemented in TtSemiLepHypHitFit, TtSemiLepHypKinFit, TtSemiLepHypGenMatch, TtSemiLepHypGeom, TtSemiLepHypMaxSumPtWMass, TtSemiLepHypMVADisc, TtSemiLepHypWMassDeltaTopMass, and TtSemiLepHypWMassMaxSumPt.
Referenced by produce().
|
protected |
return event hypothesis
Definition at line 128 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 produce().
|
inlineprotected |
check if index is in valid range of selected jets
Definition at line 69 of file TtSemiLepHypothesis.h.
References training_settings::idx, and singleTopDQM_cfi::jets.
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 174 of file TtSemiLepHypothesis.cc.
References jetCorrectionLevel_, personalPlayback::level, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by TtSemiLepHypGenMatch::buildHypo(), and buildHypo().
|
inlineprotected |
|
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 162 of file TtSemiLepHypothesis.cc.
References WDecay::kElec, WDecay::kMuon, and WDecay::kNone.
Referenced by TtSemiLepHypGenMatch::findMatchingLepton(), and setNeutrino().
|
overrideprotectedvirtual |
produce the event hypothesis as CompositeCandidate and Key
Implements edm::EDProducer.
Definition at line 57 of file TtSemiLepHypothesis.cc.
References buildHypo(), buildKey(), edm::Event::getByToken(), getMatch_, hypo(), mps_fire::i, singleTopDQM_cfi::jets, jetsToken_, key(), TtSemiLepHitFitProducer_Electrons_cfi::leps, lepsToken_, match(), matchToken_, singleTopDQM_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 117 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 123 of file TtSemiLepHypothesis.h.
References clone(), patZpeak::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 209 of file TtSemiLepHypothesis.cc.
References reco::LeafCandidate::charge(), clone(), patZpeak::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 227 of file TtSemiLepHypothesis.cc.
References MEzCalculator::Calculate(), reco::LeafCandidate::charge(), Exception, training_settings::idx, MEzCalculator::IsComplex(), WDecay::kElec, WDecay::kMuon, TtSemiLepHitFitProducer_Electrons_cfi::leps, leptonType(), BTaggingMonitor_cfi::met, neutrino_, numberOfRealNeutrinoSolutions_, p4, reco::LeafCandidate::px(), reco::LeafCandidate::py(), MEzCalculator::SetLepton(), MEzCalculator::SetMET(), 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 93 of file TtSemiLepHypothesis.h.
Referenced by produce(), and TtSemiLepHypothesis().
|
protected |
Definition at line 114 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 102 of file TtSemiLepHypothesis.h.
Referenced by jetCorrectionLevel(), and TtSemiLepHypothesis().
|
protected |
input label for all necessary collections
Definition at line 95 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
hypothesis key (to be set by the buildKey function)
Definition at line 104 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 96 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
Definition at line 117 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), buildHypo(), hypo(), resetCandidates(), and ~TtSemiLepHypothesis().
|
protected |
Definition at line 115 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 112 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), buildHypo(), hypo(), resetCandidates(), and ~TtSemiLepHypothesis().
|
protected |
Definition at line 113 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), buildHypo(), hypo(), resetCandidates(), and ~TtSemiLepHypothesis().
|
protected |
Definition at line 98 of file TtSemiLepHypothesis.h.
Referenced by produce(), and TtSemiLepHypothesis().
|
protected |
Definition at line 97 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
Definition at line 116 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 106 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), buildHypo(), and TtSemiLepHypothesis().
|
protected |
Definition at line 99 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 109 of file TtSemiLepHypothesis.h.
Referenced by produce(), resetCandidates(), and setNeutrino().