Implementation of most probable energy loss by ionization in the tracker layers. More...
Public Member Functions | |
EnergyLoss (const std::string &name, const edm::ParameterSet &cfg) | |
Constructor. More... | |
void | interact (fastsim::Particle &particle, const SimplifiedGeometry &layer, std::vector< std::unique_ptr< fastsim::Particle > > &secondaries, const RandomEngineAndDistribution &random) override |
Perform the interaction. More... | |
~EnergyLoss () override | |
Default destructor. More... | |
Public Member Functions inherited from fastsim::InteractionModel | |
const std::string | getName () |
Return (unique) name of this interaction. More... | |
InteractionModel (std::string name) | |
Constructor. More... | |
virtual void | registerProducts (edm::ProducerBase &producer) const |
In case interaction produces and stores content in the event (e.g. TrackerSimHits). More... | |
virtual void | storeProducts (edm::Event &iEvent) |
In case interaction produces and stores content in the event (e.g. TrackerSimHits). More... | |
virtual | ~InteractionModel () |
Default destructor. More... | |
Private Attributes | |
double | A_ |
Atomic weight of material (usually silicon A=28.0855) More... | |
double | density_ |
Density of material (usually silicon rho=2.329) More... | |
double | minMomentum_ |
Minimum momentum of incoming (charged) particle. More... | |
double | radLenInCm_ |
Radiation length of material (usually silicon X0=9.360) More... | |
LandauFluctuationGenerator | theGenerator |
Generator to do Landau fluctuation. More... | |
double | Z_ |
Atomic number of material (usually silicon Z=14) More... | |
Implementation of most probable energy loss by ionization in the tracker layers.
Computes the most probable energy loss by ionization from a charged particle in the tracker layer, smears it with Landau fluctuations and returns the particle with modified energy. The deposited energy is assigned with a produced SimHit (if active material hit).
Definition at line 35 of file EnergyLoss.cc.
fastsim::EnergyLoss::EnergyLoss | ( | const std::string & | name, |
const edm::ParameterSet & | cfg | ||
) |
Constructor.
Definition at line 63 of file EnergyLoss.cc.
References A_, density_, edm::ParameterSet::getParameter(), minMomentum_, radLenInCm_, and Z_.
|
inlineoverride |
|
overridevirtual |
Perform the interaction.
particle | The particle that interacts with the matter. |
layer | The detector layer that interacts with the particle. |
secondaries | Particles that are produced in the interaction (if any). |
random | The Random Engine. |
Implements fastsim::InteractionModel.
Definition at line 75 of file EnergyLoss.cc.
References A_, fastsim::Particle::charge(), DEFINE_EDM_PLUGIN, density_, reco::e2, fastsim::Constants::eMass, fastsim::SimplifiedGeometry::getThickness(), LandauFluctuationGenerator::landau(), cmsBatch::log, minMomentum_, fastsim::Particle::momentum(), p2, fastsim::Particle::position(), radLenInCm_, fastsim::Particle::setEnergyDeposit(), mathSSE::sqrt(), theGenerator, and Z_.
Referenced by ~EnergyLoss().
|
private |
Atomic weight of material (usually silicon A=28.0855)
Definition at line 58 of file EnergyLoss.cc.
Referenced by EnergyLoss(), and interact().
|
private |
Density of material (usually silicon rho=2.329)
Definition at line 56 of file EnergyLoss.cc.
Referenced by EnergyLoss(), and interact().
|
private |
Minimum momentum of incoming (charged) particle.
Definition at line 55 of file EnergyLoss.cc.
Referenced by EnergyLoss(), and interact().
|
private |
Radiation length of material (usually silicon X0=9.360)
Definition at line 57 of file EnergyLoss.cc.
Referenced by EnergyLoss(), and interact().
|
private |
Generator to do Landau fluctuation.
Definition at line 54 of file EnergyLoss.cc.
Referenced by interact().
|
private |
Atomic number of material (usually silicon Z=14)
Definition at line 59 of file EnergyLoss.cc.
Referenced by EnergyLoss(), and interact().