The core class of the new SimplifiedGeometryPropagator. More...
Public Member Functions | |
FastSimProducer (const edm::ParameterSet &) | |
~FastSimProducer () 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 |
Private Member Functions | |
void | beginStream (edm::StreamID id) override |
virtual FSimTrack | createFSimTrack (fastsim::Particle *particle, fastsim::ParticleManager *particleManager, HepPDT::ParticleDataTable const &particleTable) |
void | endStream () override |
void | produce (edm::Event &, const edm::EventSetup &) override |
Static Private Attributes | |
static const std::string | MESSAGECATEGORY = "FastSimulation" |
Category of debugging messages ("FastSimulation") More... | |
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 |
The core class of the new SimplifiedGeometryPropagator.
Coordinates the propagation of all particles, this means it does the following loop: 1) Get particle from ParticleManager 2) Call LayerNavigator to move particle to next intersection with layer 3) Loop over all the interactions and add secondaries to the event 4) Repeat steps 2), 3) until particle left the tracker, lost all its energy or is about to decay 5) If particle is about to decay: do decay and add secondaries to the event 6) Restart from 1) with the next particle 7) If last particle was propagated add SimTracks, SimVertices, SimHits,... to the event
Definition at line 64 of file FastSimProducer.cc.
|
explicit |
Definition at line 102 of file FastSimProducer.cc.
References caloGeometryESToken_, caloTopologyESToken_, beamerCreator::create(), DeDxTools::esConsumes(), Exception, get, edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterNames(), interactionModelMap_, interactionModels_, eostools::move(), myCalorimetry, simulateCalorimetry, and AlCaHLTBitMon_QueryRunRegistry::string.
|
inlineoverride |
Definition at line 67 of file FastSimProducer.cc.
|
overrideprivate |
Definition at line 170 of file FastSimProducer.cc.
References _randomEngine, and gpuClustering::id.
|
privatevirtual |
Definition at line 379 of file FastSimProducer.cc.
References _randomEngine, fastsim::ParticleManager::addSecondaries(), caloGeometry_, fastsim::Particle::charge(), fastsim::Decayer::decay(), decayer_, fastsim::SimplifiedGeometry::ECAL, fastsim::Particle::genParticleIndex(), fastsim::SimplifiedGeometry::getCaloType(), fastsim::ParticleManager::getSimTrack(), fastsim::ParticleManager::getSimVertex(), fastsim::SimplifiedGeometry::getThickness(), fastsim::SimplifiedGeometry::HCAL, fastsim::SimplifiedGeometry::isForward(), fastsim::Particle::isStable(), LogDebug, makeParticle(), MESSAGECATEGORY, fastsim::Particle::momentum(), fastsim::LayerNavigator::moveParticleToNextLayer(), FSimTrack::onEcal(), FSimTrack::onHcal(), FSimTrack::onLayer1(), FSimTrack::onLayer2(), FSimTrack::onVFcal(), fastsim::Particle::pdgId(), fastsim::Particle::position(), fastsim::SimplifiedGeometry::PRESHOWER1, fastsim::SimplifiedGeometry::PRESHOWER2, fastsim::Particle::remainingProperLifeTimeC(), FSimTrack::setEcal(), FSimTrack::setGlobal(), FSimTrack::setHcal(), FSimTrack::setLayer1(), FSimTrack::setLayer2(), FSimTrack::setVFcal(), fastsim::Particle::simTrackIndex(), fastsim::Particle::simVertexIndex(), summarizeEdmComparisonLogfiles::success, and fastsim::SimplifiedGeometry::VFCAL.
Referenced by produce().
|
overrideprivate |
Definition at line 377 of file FastSimProducer.cc.
References _randomEngine.
|
overrideprivate |
Definition at line 174 of file FastSimProducer.cc.
References _randomEngine, funct::abs(), beamPipeRadius_, caloGeometry_, caloGeometryESToken_, caloTopologyESToken_, edm::ESWatcher< T >::check(), createFSimTrack(), fastsim::Decayer::decay(), decayer_, deltaRchargedMother_, genParticleCandidates2GenParticles_cfi::genParticles, genParticlesToken_, geometry_, edm::Event::getByToken(), fastsim::SimplifiedGeometry::getCaloType(), edm::EventSetup::getData(), fastsim::SimplifiedGeometry::getInteractionModels(), fastsim::Geometry::getMagneticFieldZ(), fastsim::SimplifiedGeometry::getThickness(), interactionModelMap_, interactionModels_, phase1PixelTopology::layer, LogDebug, MESSAGECATEGORY, eostools::move(), fastsim::LayerNavigator::moveParticleToNextLayer(), myCalorimetry, particleDataTableESToken_, particleFilter_, edm::Event::put(), simulateCalorimetry, simulateMuons, fastsim::SimplifiedGeometry::TRACKERBOUNDARY, fastsim::Geometry::update(), watchCaloGeometry_, and watchCaloTopology_.
|
private |
The random engine.
Definition at line 83 of file FastSimProducer.cc.
Referenced by beginStream(), createFSimTrack(), endStream(), and produce().
|
private |
The radius of the beampipe.
Definition at line 80 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Hack to interface "old" calo to "new" tracking.
Definition at line 79 of file FastSimProducer.cc.
Referenced by createFSimTrack(), and produce().
|
private |
Definition at line 96 of file FastSimProducer.cc.
Referenced by FastSimProducer(), and produce().
|
private |
Definition at line 97 of file FastSimProducer.cc.
Referenced by FastSimProducer(), and produce().
|
private |
Handles decays of non-stable particles using pythia.
Definition at line 91 of file FastSimProducer.cc.
Referenced by createFSimTrack(), and produce().
|
private |
Cut on deltaR for ClosestChargedDaughter algorithm (FastSim tracking)
Definition at line 81 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Token to get the genParticles.
Definition at line 77 of file FastSimProducer.cc.
Referenced by produce().
|
private |
The definition of the tracker according to python config.
Definition at line 78 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Each interaction model has a unique name.
Definition at line 93 of file FastSimProducer.cc.
Referenced by FastSimProducer(), and produce().
|
private |
All defined interaction models.
Definition at line 92 of file FastSimProducer.cc.
Referenced by FastSimProducer(), and produce().
|
staticprivate |
Category of debugging messages ("FastSimulation")
Definition at line 94 of file FastSimProducer.cc.
Referenced by createFSimTrack(), and produce().
|
private |
Definition at line 88 of file FastSimProducer.cc.
Referenced by FastSimProducer(), and produce().
|
private |
Definition at line 95 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Decides which particles have to be propagated.
Definition at line 82 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Definition at line 85 of file FastSimProducer.cc.
Referenced by FastSimProducer(), and produce().
|
private |
Definition at line 89 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Definition at line 86 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Definition at line 87 of file FastSimProducer.cc.
Referenced by produce().