Module to produce the subset of generator particles directly contained in top decay chains. More...
#include "TopQuarkAnalysis/TopEventProducers/interface/TopDecaySubset.h"
Public Types | |
enum | FillMode { kStable, kME } |
enum | RunMode { kRun1, kRun2 } |
supported modes to run the code More... | |
enum | ShowerModel { kStart =-1, kNone, kPythia, kHerwig, kPythia8, kSherpa } |
classification of potential shower types More... | |
Public Types inherited from edm::EDProducer | |
typedef EDProducer | ModuleType |
Public Types inherited from edm::ProducerBase | |
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
Public Types inherited from edm::EDConsumerBase | |
typedef ProductLabels | Labels |
Public Member Functions | |
virtual void | produce (edm::Event &event, const edm::EventSetup &setup) |
write output into the event More... | |
TopDecaySubset (const edm::ParameterSet &cfg) | |
default constructor More... | |
~TopDecaySubset () | |
default destructor More... | |
Public Member Functions inherited from edm::EDProducer | |
EDProducer () | |
ModuleDescription const & | moduleDescription () const |
virtual | ~EDProducer () |
Public Member Functions inherited from edm::ProducerBase | |
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
std::vector< edm::ProductResolverIndex > const & | indiciesForPutProducts (BranchType iBranchType) const |
ProducerBase () | |
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
std::function< void(BranchDescription const &)> | registrationCallback () const |
used by the fwk to register list of products More... | |
void | resolvePutIndicies (BranchType iBranchType, std::unordered_multimap< std::string, edm::ProductResolverIndex > const &iIndicies, std::string const &moduleLabel) |
virtual | ~ProducerBase () noexcept(false) |
Public Member Functions inherited from edm::EDConsumerBase | |
std::vector< ConsumesInfo > | consumesInfo () const |
EDConsumerBase () | |
EDConsumerBase (EDConsumerBase const &)=delete | |
EDConsumerBase (EDConsumerBase &&)=default | |
ProductResolverIndexAndSkipBit | indexFrom (EDGetToken, BranchType, TypeID const &) const |
void | itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
void | itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const |
std::vector< ProductResolverIndexAndSkipBit > const & | itemsToGetFrom (BranchType iType) const |
void | labelsForToken (EDGetToken iToken, Labels &oLabels) const |
void | modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
virtual | ~EDConsumerBase () noexcept(false) |
Private Member Functions | |
void | addDaughters (int &idx, const reco::GenParticle::const_iterator part, reco::GenParticleCollection &target, bool recursive=true) |
recursively fill vector for all further decay particles of a given particle More... | |
void | addRadiation (int &idx, const reco::GenParticle::const_iterator part, reco::GenParticleCollection &target) |
fill vector including all radiations from quarks originating from W/top More... | |
void | addRadiation (int &idx, const reco::GenParticle *part, reco::GenParticleCollection &target) |
ShowerModel | checkShowerModel (const std::vector< const reco::GenParticle * > &tops) const |
check the decay chain for the used shower model More... | |
ShowerModel | checkShowerModel (edm::Event &event) |
check the embedded MC information for the shower model More... | |
void | checkWBosons (std::vector< const reco::GenParticle * > &tops) const |
check whether W bosons are contained in the original gen particle listing More... | |
void | clearReferences () |
clear references More... | |
void | fillListing (const std::vector< const reco::GenParticle * > &tops, reco::GenParticleCollection &target) |
fill output vector for full decay chain More... | |
void | fillListing (const std::vector< const reco::GenParticle * > &primalTops, const std::vector< const reco::GenParticle * > &decayingTops, reco::GenParticleCollection &target) |
fill output vector for full decay chain More... | |
void | fillReferences (const reco::GenParticleRefProd &refProd, reco::GenParticleCollection &target) |
fill references for output vector More... | |
std::vector< const reco::GenParticle * > | findDecayingTops (const reco::GenParticleCollection &parts) |
const reco::GenParticle * | findLastParticleInChain (const reco::GenParticle *p) |
std::vector< const reco::GenParticle * > | findPrimalTops (const reco::GenParticleCollection &parts) |
const reco::GenParticle * | findPrimalW (const reco::GenParticle *top) |
std::vector< const reco::GenParticle * > | findTops (const reco::GenParticleCollection &parts) |
find top quarks in list of input particles More... | |
reco::Particle::LorentzVector | p4 (const std::vector< const reco::GenParticle * >::const_iterator top, int statusFlag) |
calculate lorentz vector from input (dedicated to top reconstruction) More... | |
reco::Particle::LorentzVector | p4 (const reco::GenParticle::const_iterator part, int statusFlag) |
calculate lorentz vector from input More... | |
Private Attributes | |
bool | addRadiation_ |
add radiation or not? More... | |
FillMode | fillMode_ |
edm::EDGetTokenT< GenEventInfoProduct > | genEventInfo_srcToken_ |
input tag for the genEventInfo source More... | |
int | motherPartIdx_ |
std::map< int, std::vector< int > > | refs_ |
management of daughter indices for fillRefs More... | |
RunMode | runMode_ |
run mode (Run1 || Run2) More... | |
ShowerModel | showerModel_ |
parton shower mode (filled in checkShowerModel) More... | |
edm::EDGetTokenT< reco::GenParticleCollection > | srcToken_ |
input tag for the genParticle source More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from edm::EDProducer | |
static const std::string & | baseType () |
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
static void | prevalidate (ConfigurationDescriptions &descriptions) |
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) |
Module to produce the subset of generator particles directly contained in top decay chains.
The module produces the subset of generator particles directly contained in top decay chains. The particles are saved as a collection of reco::GenParticles. Depending on the configuration of the module, the 4-vector kinematics can be taken from the status-3 particles (ME before parton showering) or from the status-2 particles (after parton showering), additionally radiated gluons may be considered during the creation of the subset or not.
Definition at line 29 of file TopDecaySubset.h.
supported modes to fill the new vectors of gen particles
Enumerator | |
---|---|
kStable | |
kME |
Definition at line 34 of file TopDecaySubset.h.
supported modes to run the code
Enumerator | |
---|---|
kRun1 | |
kRun2 |
Definition at line 38 of file TopDecaySubset.h.
classification of potential shower types
Enumerator | |
---|---|
kStart | |
kNone | |
kPythia | |
kHerwig | |
kPythia8 | |
kSherpa |
Definition at line 36 of file TopDecaySubset.h.
|
explicit |
default constructor
Definition at line 10 of file TopDecaySubset.cc.
References Exception, fillMode_, edm::ParameterSet::getParameter(), kME, kRun1, kRun2, kStable, ALCARECOPromptCalibProdSiPixelAli0T_cff::mode, runMode_, and AlCaHLTBitMon_QueryRunRegistry::string.
TopDecaySubset::~TopDecaySubset | ( | ) |
|
private |
recursively fill vector for all further decay particles of a given particle
Definition at line 680 of file TopDecaySubset.cc.
References reco::Candidate::begin(), BPhysicsValidation_cfi::daughters, reco::Candidate::end(), training_settings::idx, and refs_.
Referenced by fillListing().
|
private |
fill vector including all radiations from quarks originating from W/top
Definition at line 635 of file TopDecaySubset.cc.
References reco::Candidate::begin(), BPhysicsValidation_cfi::daughters, reco::Candidate::end(), training_settings::idx, reco::Candidate::pdgId(), refs_, and TopDecayID::stable.
Referenced by fillListing().
|
private |
Definition at line 654 of file TopDecaySubset.cc.
References reco::Candidate::begin(), BPhysicsValidation_cfi::daughters, reco::Candidate::end(), training_settings::idx, reco::LeafCandidate::pdgId(), and refs_.
|
private |
check the decay chain for the used shower model
check the decay chain for the exploited shower model
Definition at line 219 of file TopDecaySubset.cc.
References funct::abs(), reco::Candidate::begin(), reco::Candidate::end(), Exception, kHerwig, kNone, kPythia, edm::errors::LogicError, reco::CompositeRefCandidateT< D >::numberOfDaughters(), reco::Candidate::numberOfDaughters(), reco::Candidate::pdgId(), reco::LeafCandidate::pdgId(), TopDecayID::stable, reco::Candidate::status(), TopDecayID::tID, and TopDecayID::WID.
Referenced by produce().
|
private |
check the embedded MC information for the shower model
Definition at line 258 of file TopDecaySubset.cc.
References genEventInfo_srcToken_, edm::HandleBase::id(), edm::HandleBase::isValid(), kHerwig, kNone, kPythia, kPythia8, kSherpa, kStart, edm::moduleName(), and AlCaHLTBitMon_QueryRunRegistry::string.
|
private |
check whether W bosons are contained in the original gen particle listing
check whether the W boson is contained in the original gen particle listing
Definition at line 288 of file TopDecaySubset.cc.
References funct::abs(), reco::Candidate::begin(), reco::Candidate::end(), kPythia, edm::errors::LogicError, showerModel_, TopDecayID::stable, TopDecayID::unfrag, and TopDecayID::WID.
Referenced by produce().
|
private |
clear references
Definition at line 701 of file TopDecaySubset.cc.
References motherPartIdx_, and refs_.
Referenced by produce().
|
private |
fill output vector for full decay chain
Definition at line 332 of file TopDecaySubset.cc.
References funct::abs(), addDaughters(), addRadiation(), addRadiation_, reco::Candidate::begin(), TopDecayID::bID, reco::Candidate::end(), funct::false, fillMode_, GenParticle::GenParticle, TopDecayID::glueID, kME, kPythia, edm::errors::LogicError, reco::CompositeRefCandidateT< D >::mother(), motherPartIdx_, reco::CompositeRefCandidateT< D >::numberOfMothers(), reco::Candidate::p4(), p4(), reco::Candidate::pdgId(), reco::LeafCandidate::pdgId(), refs_, showerModel_, TopDecayID::stable, reco::Candidate::status(), lumiQTWidget::t, edmPickEvents::target, TopDecayID::tauID, reco::Candidate::threeCharge(), reco::LeafCandidate::threeCharge(), TopDecayID::tID, funct::true, TopDecayID::unfrag, reco::Candidate::vertex(), reco::LeafCandidate::vertex(), and TopDecayID::WID.
Referenced by produce().
|
private |
fill output vector for full decay chain
Definition at line 442 of file TopDecaySubset.cc.
References funct::abs(), addDaughters(), addRadiation(), addRadiation_, reco::Candidate::begin(), TopDecayID::bID, reco::Candidate::end(), funct::false, fillMode_, findLastParticleInChain(), TopDecayID::glueID, kME, motherPartIdx_, reco::LeafCandidate::p4(), reco::LeafCandidate::pdgId(), refs_, reco::LeafCandidate::status(), lumiQTWidget::t, TopDecayID::tauID, reco::LeafCandidate::threeCharge(), reco::LeafCandidate::vertex(), and TopDecayID::WID.
|
private |
fill references for output vector
Definition at line 712 of file TopDecaySubset.cc.
References reco::CompositeRefCandidateT< D >::addDaughter(), BPhysicsValidation_cfi::daughters, Exception, training_settings::idx, edm::errors::InvalidReference, AlCaHLTBitMon_ParallelJobs::p, and refs_.
Referenced by produce().
|
private |
find decaying top quarks (quarks that decay to qW) for Pythia6 this is identical to findPrimalTops
Definition at line 142 of file TopDecaySubset.cc.
References funct::abs(), training_settings::idx, lumiQTWidget::t, and TopDecayID::tID.
Referenced by produce().
|
private |
find W bosons that come from top quark decays and decay themselves (end of the MC chain) for Pythia6 this is identical to findPrimalW find the last particle in a (potentially) long chain of state transitions e.g. top[status==22]-> top[status==44 -> top[status==44] -> top[status==44] -> top[status==62] this function would pick the top with status 62
Definition at line 190 of file TopDecaySubset.cc.
References funct::abs(), reco::CompositeRefCandidateT< D >::daughter(), training_settings::idx, kPythia, reco::CompositeRefCandidateT< D >::numberOfDaughters(), AlCaHLTBitMon_ParallelJobs::p, EgammaObjectsElectrons_cfi::particleID, reco::Candidate::pdgId(), reco::LeafCandidate::pdgId(), showerModel_, and reco::LeafCandidate::status().
Referenced by fillListing().
|
private |
find primal top quarks (top quarks from the hard interaction) for Pythia6 this is identical to findDecayingTops
Definition at line 118 of file TopDecaySubset.cc.
References funct::abs(), training_settings::idx, lumiQTWidget::t, and TopDecayID::tID.
Referenced by produce().
|
private |
find W bosons that come from top quark decays for Pythia6 this is identical to findDecayingW
Definition at line 166 of file TopDecaySubset.cc.
References funct::abs(), reco::CompositeRefCandidateT< D >::daughter(), training_settings::idx, reco::CompositeRefCandidateT< D >::numberOfDaughters(), reco::Candidate::pdgId(), and TopDecayID::WID.
|
private |
find top quarks in list of input particles
Definition at line 106 of file TopDecaySubset.cc.
References funct::abs(), lumiQTWidget::t, TopDecayID::tID, and TopDecayID::unfrag.
Referenced by produce().
|
private |
calculate lorentz vector from input (dedicated to top reconstruction)
calculate lorentz vector from input
Definition at line 561 of file TopDecaySubset.cc.
References funct::abs(), AlCaHLTBitMon_ParallelJobs::p, TopDecayID::unfrag, and TopDecayID::WID.
Referenced by Tau.Tau::dxy_approx(), Tau.Tau::dz(), fillListing(), p4(), and Lepton.Lepton::p4WithFSR().
|
private |
calculate lorentz vector from input
calculate lorentz vector from input (dedicated to top reconstruction)
Definition at line 602 of file TopDecaySubset.cc.
References funct::abs(), reco::Candidate::begin(), reco::Candidate::end(), AlCaHLTBitMon_ParallelJobs::p, reco::Candidate::p4(), p4(), TopDecayID::stable, TopDecayID::unfrag, and TopDecayID::WID.
Referenced by Tau.Tau::dxy_approx(), Tau.Tau::dz(), and Lepton.Lepton::p4WithFSR().
|
virtual |
write output into the event
Definition at line 48 of file TopDecaySubset.cc.
References checkShowerModel(), checkWBosons(), clearReferences(), fillListing(), fillReferences(), findDecayingTops(), findPrimalTops(), findTops(), kNone, kRun1, kRun2, kStart, eostools::move(), runMode_, showerModel_, TrackRefitter_38T_cff::src, srcToken_, and edmPickEvents::target.
|
private |
|
private |
print the whole list of input particles or not? mode of decaySubset creation
Definition at line 102 of file TopDecaySubset.h.
Referenced by fillListing(), and TopDecaySubset().
|
private |
input tag for the genEventInfo source
Definition at line 97 of file TopDecaySubset.h.
Referenced by checkShowerModel().
|
private |
index in new evt listing of parts with daughters; has to be set to -1 in produce to deliver consistent results!
Definition at line 111 of file TopDecaySubset.h.
Referenced by clearReferences(), and fillListing().
|
private |
management of daughter indices for fillRefs
Definition at line 113 of file TopDecaySubset.h.
Referenced by addDaughters(), addRadiation(), clearReferences(), fillListing(), and fillReferences().
|
private |
run mode (Run1 || Run2)
Definition at line 106 of file TopDecaySubset.h.
Referenced by produce(), and TopDecaySubset().
|
private |
parton shower mode (filled in checkShowerModel)
Definition at line 104 of file TopDecaySubset.h.
Referenced by checkWBosons(), fillListing(), findLastParticleInChain(), and produce().
|
private |
input tag for the genParticle source
Definition at line 95 of file TopDecaySubset.h.
Referenced by produce().