Produces reco::GenParticle from SimTracks. More...
Classes | |
struct | GlobalContext |
Global context for all recursive methods. More... | |
struct | LessById |
Public Member Functions | |
PATGenCandsFromSimTracksProducer (const edm::ParameterSet &) | |
~PATGenCandsFromSimTracksProducer () override | |
Public Member Functions inherited from edm::stream::EDProducer<> | |
EDProducer ()=default | |
bool | hasAbilityToProduceInLumis () const final |
bool | hasAbilityToProduceInRuns () const final |
Private Types | |
typedef StringCutObjectSelector< reco::GenParticle > | StrFilter |
Private Member Functions | |
const SimTrack * | findGeantMother (const SimTrack &tk, const GlobalContext &g) const |
Find the mother of a given GEANT track (or NULL if it can't be found). More... | |
edm::Ref< reco::GenParticleCollection > | findRef (const SimTrack &tk, GlobalContext &g) const |
edm::Ref< reco::GenParticleCollection > | generatorRef_ (const SimTrack &tk, const GlobalContext &g) const |
Used by findRef if the track is a PYTHIA particle. More... | |
reco::GenParticle | makeGenParticle_ (const SimTrack &tk, const edm::Ref< reco::GenParticleCollection > &mother, const GlobalContext &g) const |
Make a GenParticle for this SimTrack, with a given mother. More... | |
void | produce (edm::Event &, const edm::EventSetup &) override |
Private Attributes | |
const StrFilter | filter_ |
bool | firstEvent_ |
edm::EDGetTokenT< std::vector< int > > | genBarcodesToken_ |
edm::EDGetTokenT< reco::GenParticleCollection > | genParticlesToken_ |
Collection of GenParticles I need to make refs to. It must also have its associated vector<int> of barcodes, aligned with them. More... | |
bool | makeMotherLink_ |
If true, I'll try to make a link from the GEANT particle to a GenParticle. More... | |
std::set< int > | motherPdgIds_ |
std::vector< PdtEntry > | motherPdts_ |
std::set< int > | pdgIds_ |
std::vector< PdtEntry > | pdts_ |
int | setStatus_ |
edm::EDGetTokenT< edm::SimTrackContainer > | simTracksToken_ |
edm::EDGetTokenT< edm::SimVertexContainer > | simVertexToken_ |
bool | writeAncestors_ |
If true, I'll save GenParticles corresponding to the ancestors of this GEANT particle. Common ancestors are only written once. More... | |
Additional Inherited Members | |
Public Types inherited from edm::stream::EDProducer<> | |
typedef CacheContexts< T... > | CacheTypes |
typedef CacheTypes::GlobalCache | GlobalCache |
typedef AbilityChecker< T... > | HasAbility |
typedef CacheTypes::LuminosityBlockCache | LuminosityBlockCache |
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache > | LuminosityBlockContext |
typedef CacheTypes::LuminosityBlockSummaryCache | LuminosityBlockSummaryCache |
typedef CacheTypes::RunCache | RunCache |
typedef RunContextT< RunCache, GlobalCache > | RunContext |
typedef CacheTypes::RunSummaryCache | RunSummaryCache |
Produces reco::GenParticle from SimTracks.
The PATGenCandsFromSimTracksProducer produces GenParticles from SimTracks, so they can be used for MC matching.
Definition at line 29 of file PATGenCandsFromSimTracksProducer.cc.
|
private |
Definition at line 46 of file PATGenCandsFromSimTracksProducer.cc.
|
explicit |
Definition at line 116 of file PATGenCandsFromSimTracksProducer.cc.
References edm::ParameterSet::exists(), edm::ParameterSet::getParameter(), makeMotherLink_, motherPdts_, pdts_, and writeAncestors_.
|
inlineoverride |
|
private |
Find the mother of a given GEANT track (or NULL if it can't be found).
Definition at line 144 of file PATGenCandsFromSimTracksProducer.cc.
References SimTrack::genpartIndex(), training_settings::idx, SimVertex::noParent(), SimTrack::noVertex(), SimVertex::parentIndex(), pat::PATGenCandsFromSimTracksProducer::GlobalContext::simtks, pat::PATGenCandsFromSimTracksProducer::GlobalContext::simvtxs, SimTrack::vertIndex(), and badGlobalMuonTaggersAOD_cff::vtx.
Referenced by findRef(), and produce().
|
private |
Find the GenParticle reference for a given GEANT or PYTHIA track.
Definition at line 160 of file PATGenCandsFromSimTracksProducer.cc.
References findGeantMother(), generatorRef_(), SimTrack::genpartIndex(), makeGenParticle_(), makeMotherLink_, pat::PATGenCandsFromSimTracksProducer::GlobalContext::output, AlCaHLTBitMon_ParallelJobs::p, pat::PATGenCandsFromSimTracksProducer::GlobalContext::refprod, pat::PATGenCandsFromSimTracksProducer::GlobalContext::simTksProcessed, CoreSimTrack::trackId(), and writeAncestors_.
Referenced by produce().
|
private |
Used by findRef if the track is a PYTHIA particle.
Definition at line 189 of file PATGenCandsFromSimTracksProducer.cc.
References pat::PATGenCandsFromSimTracksProducer::GlobalContext::barcodesAreSorted, spr::find(), pat::PATGenCandsFromSimTracksProducer::GlobalContext::genBarcodes, SimTrack::genpartIndex(), and pat::PATGenCandsFromSimTracksProducer::GlobalContext::gens.
Referenced by findRef().
|
private |
Make a GenParticle for this SimTrack, with a given mother.
Definition at line 209 of file PATGenCandsFromSimTracksProducer.cc.
References CoreSimTrack::charge(), ALCARECOTkAlJpsiMuMu_cff::charge, runTauDisplay::gp, edm::Ref< C, T, F >::isNonnull(), CoreSimTrack::momentum(), SimTrack::noVertex(), p4, setStatus_, pat::PATGenCandsFromSimTracksProducer::GlobalContext::simvtxs, CoreSimTrack::type(), SimTrack::vertIndex(), and badGlobalMuonTaggersAOD_cff::vtx.
Referenced by findRef(), and produce().
|
overrideprivate |
Definition at line 221 of file PATGenCandsFromSimTracksProducer.cc.
References funct::abs(), reco::CompositeRefCandidateT< D >::addMother(), egammaForCoreTracking_cff::cands, gather_cfg::cout, DEFINE_FWK_MODULE, egammaForCoreTracking_cff::depth, Exception, filter_, findGeantMother(), findRef(), firstEvent_, genBarcodesToken_, genParticlesToken_, mps_fire::i, edm::OrphanHandleBase::id(), edm::Ref< C, T, F >::id(), edm::Ref< C, T, F >::isNonnull(), edm::Ref< C, T, F >::key(), makeGenParticle_(), makeMotherLink_, motherPdgIds_, motherPdts_, eostools::move(), pdgIds_, pdts_, simTracksToken_, simVertexToken_, CoreSimTrack::type(), and writeAncestors_.
Referenced by ~PATGenCandsFromSimTracksProducer().
|
private |
Definition at line 47 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by produce().
|
private |
Definition at line 37 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by produce().
|
private |
Definition at line 56 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by produce().
|
private |
Collection of GenParticles I need to make refs to. It must also have its associated vector<int> of barcodes, aligned with them.
Definition at line 55 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by produce().
|
private |
If true, I'll try to make a link from the GEANT particle to a GenParticle.
Definition at line 50 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by findRef(), PATGenCandsFromSimTracksProducer(), and produce().
|
private |
Definition at line 43 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by produce().
|
private |
Definition at line 44 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by PATGenCandsFromSimTracksProducer(), and produce().
|
private |
Definition at line 41 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by produce().
|
private |
Definition at line 42 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by PATGenCandsFromSimTracksProducer(), and produce().
|
private |
Definition at line 40 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by makeGenParticle_().
|
private |
Definition at line 38 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by produce().
|
private |
Definition at line 39 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by produce().
|
private |
If true, I'll save GenParticles corresponding to the ancestors of this GEANT particle. Common ancestors are only written once.
Definition at line 52 of file PATGenCandsFromSimTracksProducer.cc.
Referenced by findRef(), PATGenCandsFromSimTracksProducer(), and produce().