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 | |
bool | hasAbilityToProduceInLumis () const final |
bool | hasAbilityToProduceInRuns () const final |
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 |
Private Attributes | |
std::unique_ptr< RandomEngineAndDistribution > | _randomEngine |
The random engine. More... | |
double | beamPipeRadius_ |
The radius of the beampipe. More... | |
fastsim::Geometry | caloGeometry_ |
Hack to interface "old" calo to "new" tracking. More... | |
fastsim::Decayer | decayer_ |
Handles decays of non-stable particles using pythia. More... | |
double | deltaRchargedMother_ |
Cut on deltaR for ClosestChargedDaughter algorithm (FastSim tracking) More... | |
edm::EDGetTokenT< edm::HepMCProduct > | genParticlesToken_ |
Token to get the genParticles. More... | |
fastsim::Geometry | geometry_ |
The definition of the tracker according to python config. More... | |
std::map< std::string, fastsim::InteractionModel * > | interactionModelMap_ |
Each interaction model has a unique name. More... | |
std::vector< std::unique_ptr< fastsim::InteractionModel > > | interactionModels_ |
All defined interaction models. More... | |
std::unique_ptr< CalorimetryManager > | myCalorimetry |
fastsim::ParticleFilter | particleFilter_ |
Decides which particles have to be propagated. More... | |
bool | simulateCalorimetry |
bool | simulateMuons |
edm::ESWatcher< CaloGeometryRecord > | watchCaloGeometry_ |
edm::ESWatcher< CaloTopologyRecord > | watchCaloTopology_ |
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<> | |
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 |
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 67 of file FastSimProducer.cc.
|
explicit |
Definition at line 100 of file FastSimProducer.cc.
References beamerCreator::create(), Exception, reco::get(), edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterNames(), interactionModelMap_, interactionModels_, ecalBarrelClusterFastTimer_cfi::modelName, eostools::move(), myCalorimetry, simulateCalorimetry, and AlCaHLTBitMon_QueryRunRegistry::string.
|
inlineoverride |
Definition at line 70 of file FastSimProducer.cc.
References beginStream(), createFSimTrack(), endStream(), and produce().
|
overrideprivate |
Definition at line 164 of file FastSimProducer.cc.
References _randomEngine, and triggerObjects_cff::id.
Referenced by ~FastSimProducer().
|
privatevirtual |
Definition at line 402 of file FastSimProducer.cc.
References _randomEngine, fastsim::ParticleManager::addSecondaries(), caloGeometry_, fastsim::Particle::charge(), fastsim::Decayer::decay(), decayer_, DEFINE_FWK_MODULE, 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(), and ~FastSimProducer().
|
overrideprivate |
Definition at line 396 of file FastSimProducer.cc.
References _randomEngine.
Referenced by ~FastSimProducer().
|
overrideprivate |
Definition at line 170 of file FastSimProducer.cc.
References _randomEngine, funct::abs(), beamPipeRadius_, caloGeometry_, edm::ESWatcher< T >::check(), createFSimTrack(), fastsim::Decayer::decay(), decayer_, deltaRchargedMother_, GenHFHadronMatcher_cfi::genParticles, genParticlesToken_, geometry_, edm::EventSetup::get(), edm::Event::getByToken(), fastsim::SimplifiedGeometry::getCaloType(), edm::EventSetup::getData(), edm::HepMCProduct::GetEvent(), fastsim::SimplifiedGeometry::getInteractionModels(), fastsim::Geometry::getMagneticFieldZ(), fastsim::SimplifiedGeometry::getThickness(), interactionModelMap_, interactionModels_, LogDebug, MESSAGECATEGORY, eostools::move(), fastsim::LayerNavigator::moveParticleToNextLayer(), myCalorimetry, p4, particleFilter_, edm::Event::put(), simulateCalorimetry, simulateMuons, fastsim::SimplifiedGeometry::TRACKERBOUNDARY, fastsim::Geometry::update(), watchCaloGeometry_, and watchCaloTopology_.
Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), HTMLExport.HTMLExportStatic::export(), and ~FastSimProducer().
|
private |
The random engine.
Definition at line 84 of file FastSimProducer.cc.
Referenced by beginStream(), createFSimTrack(), endStream(), and produce().
|
private |
The radius of the beampipe.
Definition at line 81 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Hack to interface "old" calo to "new" tracking.
Definition at line 80 of file FastSimProducer.cc.
Referenced by createFSimTrack(), and produce().
|
private |
Handles decays of non-stable particles using pythia.
Definition at line 92 of file FastSimProducer.cc.
Referenced by createFSimTrack(), and produce().
|
private |
Cut on deltaR for ClosestChargedDaughter algorithm (FastSim tracking)
Definition at line 82 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Token to get the genParticles.
Definition at line 78 of file FastSimProducer.cc.
Referenced by produce().
|
private |
The definition of the tracker according to python config.
Definition at line 79 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Each interaction model has a unique name.
Definition at line 94 of file FastSimProducer.cc.
Referenced by FastSimProducer(), and produce().
|
private |
All defined interaction models.
Definition at line 93 of file FastSimProducer.cc.
Referenced by FastSimProducer(), and produce().
|
staticprivate |
Category of debugging messages ("FastSimulation")
Definition at line 95 of file FastSimProducer.cc.
Referenced by createFSimTrack(), and produce().
|
private |
Definition at line 89 of file FastSimProducer.cc.
Referenced by FastSimProducer(), and produce().
|
private |
Decides which particles have to be propagated.
Definition at line 83 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Definition at line 86 of file FastSimProducer.cc.
Referenced by FastSimProducer(), and produce().
|
private |
Definition at line 90 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Definition at line 87 of file FastSimProducer.cc.
Referenced by produce().
|
private |
Definition at line 88 of file FastSimProducer.cc.
Referenced by produce().