Classes | |
struct | calo_particles |
struct | OutputCollections |
Public Member Functions | |
MtdTruthAccumulator (const edm::ParameterSet &config, edm::ProducesCollector, edm::ConsumesCollector &iC) | |
Public Member Functions inherited from DigiAccumulatorMixMod | |
virtual void | beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) |
virtual void | beginRun (edm::Run const &run, edm::EventSetup const &setup) |
DigiAccumulatorMixMod () | |
DigiAccumulatorMixMod (DigiAccumulatorMixMod const &)=delete | |
virtual void | endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) |
virtual void | endRun (edm::Run const &run, edm::EventSetup const &setup) |
virtual void | finalizeBunchCrossing (edm::Event &event, edm::EventSetup const &setup, int bunchCrossing) |
virtual PileupMixingContent * | getEventPileupInfo () |
virtual void | initializeBunchCrossing (edm::Event const &event, edm::EventSetup const &setup, int bunchCrossing) |
DigiAccumulatorMixMod const & | operator= (DigiAccumulatorMixMod const &)=delete |
virtual void | StorePileupInformation (std::vector< int > &numInteractionList, std::vector< int > &bunchCrossingList, std::vector< float > &TrueInteractionList, std::vector< edm::EventID > &eventList, int bunchSpace) |
virtual | ~DigiAccumulatorMixMod () |
Private Member Functions | |
void | accumulate (const edm::Event &event, const edm::EventSetup &setup) override |
void | accumulate (const PileUpEventPrincipal &event, const edm::EventSetup &setup, edm::StreamID const &) override |
template<class T > | |
void | accumulateEvent (const T &event, const edm::EventSetup &setup, const edm::Handle< edm::HepMCProduct > &hepMCproduct) |
Both forms of accumulate() delegate to this templated method. More... | |
template<class T > | |
void | fillSimHits (std::vector< std::pair< uint64_t, const PSimHit *>> &returnValue, std::unordered_map< int, std::map< uint64_t, std::tuple< float, float, LocalPoint >>> &simTrackDetIdMap, const T &event, const edm::EventSetup &setup) |
Fills the supplied vector with pointers to the SimHits, checking for bad modules if required. More... | |
void | finalizeEvent (edm::Event &event, const edm::EventSetup &setup) override |
void | initializeEvent (const edm::Event &event, const edm::EventSetup &setup) override |
Definition at line 67 of file MtdTruthAccumulator.cc.
|
explicit |
Definition at line 254 of file MtdTruthAccumulator.cc.
References collectionTags_, edm::ConsumesCollector::consumes(), genParticleLabel_, hepMCproductLabel_, isEtl_, premixStage1_, edm::ProducesCollector::produces(), simTrackLabel_, simVertexLabel_, and getPayloadData::tags.
|
overrideprivatevirtual |
Create handle to edm::HepMCProduct here because event.getByLabel with edm::HepMCProduct only works for edm::Event but not for PileUpEventPrincipal; PileUpEventPrincipal::getByLabel tries to call T::value_type and T::iterator (where T is the type of the object one wants to get a handle to) which is only implemented for container-like objects like std::vector but not for edm::HepMCProduct!
Implements DigiAccumulatorMixMod.
Definition at line 326 of file MtdTruthAccumulator.cc.
References accumulateEvent(), hepMCproductLabel_, messageCategory_, and singleTopDQM_cfi::setup.
|
overrideprivatevirtual |
Implements DigiAccumulatorMixMod.
Definition at line 334 of file MtdTruthAccumulator.cc.
References accumulateEvent(), maximumPreviousBunchCrossing_, maximumSubsequentBunchCrossing_, messageCategory_, and singleTopDQM_cfi::setup.
|
private |
Both forms of accumulate() delegate to this templated method.
Build the main decay graph and assign the SimTrack to each edge. The graph built here will only contain the particles that have a decay vertex associated to them. In order to recover also the particles that will not decay, we need to keep track of the SimTrack used here and add, a-posteriori, the ones not used, associating a ghost vertex (starting from the highest simulated vertex number), in order to build the edge and identify them immediately as stable (i.e. not decayed).
To take into account the multi-bremsstrahlung effects in which a single particle is emitting photons in different vertices keeping the same track index, we also collapsed those vertices into 1 unique vertex. The other approach of fully representing the decay chain keeping the same track index would have the problem of over-counting the contributions of that track, especially in terms of hits.
The 2 auxiliary vectors are structured as follow:
Definition at line 593 of file MtdTruthAccumulator.cc.
References funct::abs(), bunchSpacing_, gather_cfg::cout, EdgeProperty::cumulative_simHits, DEBUG, WZElectronSkims53X_cff::decay, fillSimHits(), genParticleLabel_, hSimTracks, hSimVertices, mps_fire::i, heavyIonCSV_trainingSettings::idx, IfLogDebug, m_caloParticles, m_simHitBarcodeToIndex, maxPseudoRapidity_, messageCategory_, minEnergy_, CoreSimTrack::momentum(), SimTrack::noGenpart(), HLT_IsoTrack_cff::offset, output_, put(), edm::second(), singleTopDQM_cfi::setup, EdgeProperty::simTrack, simTrackLabel_, simVertexLabel_, findQualityFiles::size, submitPVValidationJobs::t, DiMuonV_cfg::tracks, findQualityFiles::v, AlignmentTracksFromVertexSelector_cfi::vertices, and runTauDisplay::vis.
Referenced by accumulate().
|
private |
Fills the supplied vector with pointers to the SimHits, checking for bad modules if required.
Definition at line 738 of file MtdTruthAccumulator.cc.
References collectionTags_, angle_units::operators::convertMmToCm(), geant_units::operators::convertUnitsTo(), DEBUG, geomTools_, mtd::MTDGeomUtil::globalPosition(), EcalPhiSymFlatTableProducers_cfi::id, IfLogDebug, createfilelist::int, mtd::MTDGeomUtil::layer(), m_detIdToTotalSimEnergy, messageCategory_, mtd::MTDGeomUtil::module(), muonClassificationByHits_cfi::pixel, mtd::MTDGeomUtil::pixelInModule(), position, rpcPointValidation_cfi::simHit, x, PV3DBase< T, PVType, FrameType >::x(), y, PV3DBase< T, PVType, FrameType >::y(), z, and PV3DBase< T, PVType, FrameType >::z().
Referenced by accumulateEvent().
|
overrideprivatevirtual |
Implements DigiAccumulatorMixMod.
Definition at line 349 of file MtdTruthAccumulator.cc.
References a, b, geant_units::operators::convertUnitsTo(), filterCSVwithJSON::copy, MTDTopologyMode::crysLayoutFromTopoMode(), DEBUG, hcalRecHitTable_cff::detId, HBHEDarkening_cff::energy, dqmdumpme::first, alignBH_cfg::fixed, HLT_2024v14_cff::fraction, geom, geomTools_, MTDTopology::getMTDTopologyMode(), mps_fire::i, EcalPhiSymFlatTableProducers_cfi::id, MTDGeometry::idToDet(), IfLogDebug, dqmdumpme::indices, createfilelist::int, mtd::MTDGeomUtil::isBTL(), mtd::MTDGeomUtil::isETL(), dqmiolumiharvest::j, mtd::MTDGeomUtil::layer(), m_caloParticles, m_detIdToTotalSimEnergy, m_simHitBarcodeToIndex, messageCategory_, mtd::MTDGeomUtil::module(), eostools::move(), or, output_, MtdTruthAccumulator::OutputCollections::pCaloParticles, RectangularMTDTopology::pixelToModuleLocalPoint(), MtdTruthAccumulator::OutputCollections::pMtdSimLayerClusters, MtdTruthAccumulator::OutputCollections::pMtdSimTracksters, mtd::MTDGeomUtil::position(), position, premixStage1_, MtdTruthAccumulator::OutputCollections::pSimClusters, MtdTruthAccumulator::calo_particles::sc_start_, MtdTruthAccumulator::calo_particles::sc_stop_, edm::second(), jetUpdater_cfi::sort, ProxyMTDTopology::specificTopology(), edm::swap(), MtdTruthAccumulator::calo_particles::swap(), GeomDet::topology(), and topology.
|
overrideprivatevirtual |
Implements DigiAccumulatorMixMod.
Definition at line 300 of file MtdTruthAccumulator.cc.
References geom, geomToken_, geomTools_, m_detIdToTotalSimEnergy, mtdtopoToken_, output_, MtdTruthAccumulator::OutputCollections::pCaloParticles, MtdTruthAccumulator::OutputCollections::pMtdSimLayerClusters, MtdTruthAccumulator::OutputCollections::pMtdSimTracksters, MtdTruthAccumulator::OutputCollections::pSimClusters, mtd::MTDGeomUtil::setGeometry(), mtd::MTDGeomUtil::setTopology(), singleTopDQM_cfi::setup, and topology.
|
private |
Definition at line 109 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent().
|
private |
Definition at line 116 of file MtdTruthAccumulator.cc.
Referenced by fillSimHits(), and MtdTruthAccumulator().
|
private |
Definition at line 117 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent(), and MtdTruthAccumulator().
|
private |
Definition at line 155 of file MtdTruthAccumulator.cc.
Referenced by finalizeEvent(), and initializeEvent().
|
private |
Definition at line 120 of file MtdTruthAccumulator.cc.
Referenced by initializeEvent().
|
private |
Definition at line 124 of file MtdTruthAccumulator.cc.
Referenced by fillSimHits(), finalizeEvent(), and initializeEvent().
|
private |
Needed to add HepMC::GenVertex to SimVertex.
Definition at line 119 of file MtdTruthAccumulator.cc.
Referenced by accumulate(), and MtdTruthAccumulator().
|
private |
Definition at line 113 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent().
|
private |
Definition at line 114 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent().
|
private |
Definition at line 129 of file MtdTruthAccumulator.cc.
Referenced by MtdTruthAccumulator().
|
private |
Definition at line 158 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent(), and finalizeEvent().
|
private |
Definition at line 93 of file MtdTruthAccumulator.cc.
Referenced by fillSimHits(), finalizeEvent(), and initializeEvent().
|
private |
Definition at line 94 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent(), and finalizeEvent().
|
private |
The maximum bunch crossing BEFORE the signal crossing to create TrackinParticles for. Use positive values. If set to zero no previous bunches are added and only in-time, signal and after bunches (defined by maximumSubsequentBunchCrossing_) are used.
Definition at line 101 of file MtdTruthAccumulator.cc.
Referenced by accumulate().
|
private |
The maximum bunch crossing AFTER the signal crossing to create TrackinParticles for. E.g. if set to zero only uses the signal and in time pileup (and previous bunches defined by the maximumPreviousBunchCrossing_ parameter).
Definition at line 107 of file MtdTruthAccumulator.cc.
Referenced by accumulate().
|
private |
Definition at line 126 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent().
|
private |
Definition at line 91 of file MtdTruthAccumulator.cc.
Referenced by accumulate(), accumulateEvent(), fillSimHits(), and finalizeEvent().
|
private |
Definition at line 126 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent().
|
private |
Definition at line 121 of file MtdTruthAccumulator.cc.
Referenced by initializeEvent().
|
private |
Definition at line 157 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent(), finalizeEvent(), and initializeEvent().
|
private |
Definition at line 127 of file MtdTruthAccumulator.cc.
Referenced by finalizeEvent(), and MtdTruthAccumulator().
|
private |
Definition at line 111 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent(), and MtdTruthAccumulator().
|
private |
Definition at line 112 of file MtdTruthAccumulator.cc.
Referenced by accumulateEvent(), and MtdTruthAccumulator().
|
private |
Definition at line 156 of file MtdTruthAccumulator.cc.
Referenced by finalizeEvent(), and initializeEvent().