#include <TtSemiLepHypothesis.h>
Public Member Functions | |
TtSemiLepHypothesis (const edm::ParameterSet &) | |
default constructor More... | |
Public Member Functions inherited from edm::stream::EDProducer<> | |
EDProducer ()=default | |
EDProducer (const EDProducer &)=delete | |
bool | hasAbilityToProduceInBeginLumis () const final |
bool | hasAbilityToProduceInBeginProcessBlocks () const final |
bool | hasAbilityToProduceInBeginRuns () const final |
bool | hasAbilityToProduceInEndLumis () const final |
bool | hasAbilityToProduceInEndProcessBlocks () const final |
bool | hasAbilityToProduceInEndRuns () const final |
const EDProducer & | operator= (const EDProducer &)=delete |
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... | |
template<typename C > | |
std::unique_ptr< reco::ShallowClonePtrCandidate > | makeCandidate (const edm::Handle< C > &handle, const int &idx) |
use one object in a collection to set a ShallowClonePtrCandidate More... | |
std::unique_ptr< reco::ShallowClonePtrCandidate > | makeCandidate (const edm::Handle< std::vector< pat::Jet > > &handle, const int &idx, const std::string &correctionLevel) |
use one object in a jet collection to set a ShallowClonePtrCandidate with proper jet corrections 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... | |
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 Attributes | |
bool | getMatch_ |
std::unique_ptr< 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_ |
std::unique_ptr< reco::ShallowClonePtrCandidate > | lepton_ |
std::unique_ptr< reco::ShallowClonePtrCandidate > | leptonicB_ |
std::unique_ptr< reco::ShallowClonePtrCandidate > | lightQ_ |
std::unique_ptr< reco::ShallowClonePtrCandidate > | lightQBar_ |
edm::EDGetTokenT< std::vector< std::vector< int > > > | matchToken_ |
edm::EDGetTokenT< std::vector< pat::MET > > | metsToken_ |
std::unique_ptr< 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::stream::EDProducer<> | |
using | CacheTypes = CacheContexts< T... > |
using | GlobalCache = typename CacheTypes::GlobalCache |
using | HasAbility = AbilityChecker< T... > |
using | InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache |
using | LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache |
using | LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache > |
using | LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache |
using | RunCache = typename CacheTypes::RunCache |
using | RunContext = RunContextT< RunCache, GlobalCache > |
using | RunSummaryCache = typename CacheTypes::RunSummaryCache |
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.
|
protected |
minimalistic build function for simple hypotheses
return key minimalistic build function for simple hypotheses
Definition at line 225 of file TtSemiLepHypothesis.cc.
References TtSemiLepEvtPartons::HadB, hadronicB_, heavyIonCSV_trainingSettings::idx, isValid(), jetCorrectionLevel(), PDWG_EXODelayedJetMET_cff::jets, TtSemiLepEvtPartons::LepB, TtSemiLepHitFitProducer_Electrons_cfi::leps, lepton_, leptonicB_, TtSemiLepEvtPartons::LightQ, lightQ_, TtSemiLepEvtPartons::LightQBar, lightQBar_, makeCandidate(), match(), singleTopDQM_cfi::mets, neutrino_, neutrinoSolutionType_, 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 TtSemiLepHypGenMatch, TtSemiLepHypHitFit, TtSemiLepHypKinFit, TtSemiLepHypGeom, TtSemiLepHypMaxSumPtWMass, TtSemiLepHypMVADisc, TtSemiLepHypWMassDeltaTopMass, and TtSemiLepHypWMassMaxSumPt.
|
protectedpure virtual |
build the event hypothesis key
Implemented in TtSemiLepHypGenMatch, TtSemiLepHypHitFit, TtSemiLepHypKinFit, TtSemiLepHypGeom, TtSemiLepHypMaxSumPtWMass, TtSemiLepHypMVADisc, TtSemiLepHypWMassDeltaTopMass, and TtSemiLepHypWMassMaxSumPt.
Referenced by produce().
|
protected |
return event hypothesis
Definition at line 106 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_, eostools::move(), neutrino_, TtSemiLepDaughter::Nu, and AddFourMomenta::set().
Referenced by produce().
|
inlineprotected |
check if index is in valid range of selected jets
Definition at line 66 of file TtSemiLepHypothesis.h.
References heavyIonCSV_trainingSettings::idx, and PDWG_EXODelayedJetMET_cff::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 152 of file TtSemiLepHypothesis.cc.
References jetCorrectionLevel_, personalPlayback::level, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by TtSemiLepHypGenMatch::buildHypo(), and buildHypo().
|
inlineprotected |
Definition at line 62 of file TtSemiLepHypothesis.h.
References key_.
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 140 of file TtSemiLepHypothesis.cc.
References WDecay::kElec, WDecay::kMuon, and WDecay::kNone.
Referenced by TtSemiLepHypGenMatch::findMatchingLepton(), and setNeutrino().
|
protected |
use one object in a collection to set a ShallowClonePtrCandidate
Definition at line 120 of file TtSemiLepHypothesis.h.
References patZpeak::handle, and heavyIonCSV_trainingSettings::idx.
Referenced by TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), TtSemiLepHypGenMatch::buildHypo(), and buildHypo().
|
protected |
use one object in a jet collection to set a ShallowClonePtrCandidate with proper jet corrections
Definition at line 187 of file TtSemiLepHypothesis.cc.
References reco::LeafCandidate::charge(), patZpeak::handle, heavyIonCSV_trainingSettings::idx, pat::Jet::jecFactor(), and AlCaHLTBitMon_QueryRunRegistry::string.
|
overrideprotected |
produce the event hypothesis as CompositeCandidate and Key
Definition at line 35 of file TtSemiLepHypothesis.cc.
References buildHypo(), buildKey(), edm::Event::getByToken(), getMatch_, hypo(), mps_fire::i, PDWG_EXODelayedJetMET_cff::jets, jetsToken_, key(), TtSemiLepHitFitProducer_Electrons_cfi::leps, lepsToken_, match(), matchToken_, singleTopDQM_cfi::mets, metsToken_, eostools::move(), TtSemiLepHypGenMatch_cfi::nJetsConsidered, nJetsConsideredToken_, numberOfRealNeutrinoSolutions_, edm::Event::put(), resetCandidates(), and trackerHitRTTI::vector.
|
protected |
reset candidate pointers before hypo build process
Definition at line 95 of file TtSemiLepHypothesis.cc.
References hadronicB_, lepton_, leptonicB_, lightQ_, lightQBar_, neutrino_, and numberOfRealNeutrinoSolutions_.
Referenced by produce().
|
protected |
set neutrino, using mW = 80.4 to calculate the neutrino pz
Definition at line 203 of file TtSemiLepHypothesis.cc.
References reco::LeafCandidate::charge(), Exception, heavyIonCSV_trainingSettings::idx, WDecay::kElec, WDecay::kMuon, TtSemiLepHitFitProducer_Electrons_cfi::leps, leptonType(), BTaggingMonitor_cfi::met, neutrino_, numberOfRealNeutrinoSolutions_, reco::LeafCandidate::px(), reco::LeafCandidate::py(), and mathSSE::sqrt().
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 90 of file TtSemiLepHypothesis.h.
Referenced by produce(), and TtSemiLepHypothesis().
|
protected |
Definition at line 111 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), TtSemiLepHypGenMatch::buildHypo(), buildHypo(), hypo(), and resetCandidates().
|
protected |
specify the desired jet correction level (the default should be L3Absolute-'abs')
Definition at line 99 of file TtSemiLepHypothesis.h.
Referenced by jetCorrectionLevel(), and TtSemiLepHypothesis().
|
protected |
input label for all necessary collections
Definition at line 92 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
hypothesis key (to be set by the buildKey function)
Definition at line 101 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGeom::buildKey(), TtSemiLepHypWMassDeltaTopMass::buildKey(), TtSemiLepHypWMassMaxSumPt::buildKey(), TtSemiLepHypMVADisc::buildKey(), TtSemiLepHypMaxSumPtWMass::buildKey(), TtSemiLepHypKinFit::buildKey(), TtSemiLepHypHitFit::buildKey(), TtSemiLepHypGenMatch::buildKey(), and key().
|
protected |
Definition at line 93 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
Definition at line 114 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), TtSemiLepHypGenMatch::buildHypo(), buildHypo(), hypo(), and resetCandidates().
|
protected |
Definition at line 112 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), TtSemiLepHypGenMatch::buildHypo(), buildHypo(), hypo(), and resetCandidates().
|
protected |
candidates for internal use for the creation of the hypothesis candidate
Definition at line 109 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), TtSemiLepHypGenMatch::buildHypo(), buildHypo(), hypo(), and resetCandidates().
|
protected |
Definition at line 110 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), TtSemiLepHypGenMatch::buildHypo(), buildHypo(), hypo(), and resetCandidates().
|
protected |
Definition at line 95 of file TtSemiLepHypothesis.h.
Referenced by produce(), and TtSemiLepHypothesis().
|
protected |
Definition at line 94 of file TtSemiLepHypothesis.h.
Referenced by produce().
|
protected |
Definition at line 113 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypHitFit::buildHypo(), TtSemiLepHypKinFit::buildHypo(), TtSemiLepHypGenMatch::buildHypo(), buildHypo(), hypo(), resetCandidates(), and setNeutrino().
|
protected |
algorithm used to calculate neutrino solutions (see cfi for further details)
Definition at line 103 of file TtSemiLepHypothesis.h.
Referenced by TtSemiLepHypGenMatch::buildHypo(), buildHypo(), and TtSemiLepHypothesis().
|
protected |
Definition at line 96 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 106 of file TtSemiLepHypothesis.h.
Referenced by produce(), resetCandidates(), and setNeutrino().