Selects hadrons and partons from a collection of GenParticles. More...
#include <PhysicsTools/JetMCAlgos/plugins/HadronAndPartonSelector.cc>
Public Member Functions | |
HadronAndPartonSelector (const edm::ParameterSet &) | |
~HadronAndPartonSelector () override | |
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 |
Static Public Member Functions | |
static void | fillDescriptions (edm::ConfigurationDescriptions &descriptions) |
Private Member Functions | |
void | produce (edm::Event &, const edm::EventSetup &) override |
Private Attributes | |
bool | fullChainPhysPartons_ |
const edm::EDGetTokenT< reco::GenParticleCollection > | particlesToken_ |
std::string | partonMode_ |
PartonSelectorPtr | partonSelector_ |
bool | partonSelectorSet_ |
const edm::EDGetTokenT< GenEventInfoProduct > | srcToken_ |
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 |
Selects hadrons and partons from a collection of GenParticles.
This producer selects hadrons, partons, and leptons from a collection of GenParticles and stores vectors of EDM references to these particles in the event. The following hadrons are selected:
Older Fortran Monte Carlo generators (Pythia6 and Herwig6) follow the HEPEVT [1] particle status code convention while newer C++ Monte Carlo generators (Pythia8, Herwig++, and Sherpa) follow the HepMC [2] particle status code convention. However, both conventions give considerable freedom in defining the status codes of intermediate particle states. Hence, the parton selection is generator-dependent and is described in each of the parton selectors separately.
Using the provenance information of the GenEventInfoProduct, the producer attempts to automatically determine what generator was used to hadronize events and based on that information decides what parton selection mode to use. It is also possible to enforce any of the supported parton selection modes.
The selected hadrons and partons are finally used by the JetFlavourClustering producer to determine the jet flavour.
The following leptons are selected:
[1] http://cepa.fnal.gov/psm/stdhep/ [2] http://lcgapp.cern.ch/project/simu/HepMC/
Definition at line 77 of file HadronAndPartonSelector.cc.
|
explicit |
Definition at line 104 of file HadronAndPartonSelector.cc.
References partonSelector_, and partonSelectorSet_.
|
override |
Definition at line 124 of file HadronAndPartonSelector.cc.
|
static |
Definition at line 266 of file HadronAndPartonSelector.cc.
References edm::ConfigurationDescriptions::addDefault(), and submitPVResolutionJobs::desc.
|
overrideprivate |
Definition at line 134 of file HadronAndPartonSelector.cc.
References AK4GenJetFlavourInfos_cfi::bHadrons, AK4GenJetFlavourInfos_cfi::cHadrons, Exception, fullChainPhysPartons_, CandMCTagUtils::hasBottom(), CandMCTagUtils::hasCharm(), mps_fire::i, edm::HandleBase::id(), iEvent, reco::isElectron(), reco::isMuon(), CandMCTagUtils::isParton(), reco::isTau(), edm::HandleBase::isValid(), HLT_2022v12_cff::leptons, edm::moduleName(), EcalCalibMonitorClient_cfi::moduleName, eostools::move(), edm::parameterSet(), ecalTrigSettings_cff::particles, particlesToken_, partonMode_, dqmAnalyzer_cff::partons, partonSelector_, partonSelectorSet_, srcToken_, and AlCaHLTBitMon_QueryRunRegistry::string.
|
private |
Definition at line 92 of file HadronAndPartonSelector.cc.
Referenced by produce().
|
private |
Definition at line 89 of file HadronAndPartonSelector.cc.
Referenced by produce().
|
private |
Definition at line 91 of file HadronAndPartonSelector.cc.
Referenced by produce().
|
private |
Definition at line 94 of file HadronAndPartonSelector.cc.
Referenced by HadronAndPartonSelector(), and produce().
|
private |
Definition at line 93 of file HadronAndPartonSelector.cc.
Referenced by HadronAndPartonSelector(), and produce().
|
private |
Definition at line 88 of file HadronAndPartonSelector.cc.
Referenced by produce().