Implementation of Bremsstrahlung from e+/e- in the tracker layers. More...
Public Member Functions | |
Bremsstrahlung (const std::string &name, const edm::ParameterSet &cfg) | |
Constructor. More... | |
void | interact (Particle &particle, const SimplifiedGeometry &layer, std::vector< std::unique_ptr< Particle > > &secondaries, const RandomEngineAndDistribution &random) override |
Perform the interaction. More... | |
~Bremsstrahlung () 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 Member Functions | |
math::XYZTLorentzVector | brem (Particle &particle, double xmin, const RandomEngineAndDistribution &random) const |
Compute Brem photon energy and angles, if any. More... | |
double | gbteth (const double ener, const double partm, const double efrac, const RandomEngineAndDistribution &random) const |
A universal angular distribution. More... | |
Private Attributes | |
double | minPhotonEnergy_ |
Cut on minimum energy of bremsstrahlung photons. More... | |
double | minPhotonEnergyFraction_ |
Cut on minimum fraction of particle's energy which has to be carried by photon. More... | |
double | Z_ |
Atomic number of material (usually silicon Z=14) More... | |
Implementation of Bremsstrahlung from e+/e- in the tracker layers.
Computes the number, energy and angles of Bremsstrahlung photons emitted by electrons and positrons and modifies e+/e- particle accordingly.
Definition at line 36 of file Bremsstrahlung.cc.
fastsim::Bremsstrahlung::Bremsstrahlung | ( | const std::string & | name, |
const edm::ParameterSet & | cfg | ||
) |
Constructor.
Definition at line 83 of file Bremsstrahlung.cc.
References edm::ParameterSet::getParameter(), minPhotonEnergy_, minPhotonEnergyFraction_, and Z_.
|
inlineoverride |
Default destructor.
Definition at line 43 of file Bremsstrahlung.cc.
References brem(), gbteth(), interact(), random, and TrackerOfflineValidation_Dqm_cff::xmin.
|
private |
Compute Brem photon energy and angles, if any.
particle | The particle that interacts with the matter. |
xmin | Minimum fraction of the particle's energy that has to be converted to a photon. |
random | The Random Engine. |
Definition at line 172 of file Bremsstrahlung.cc.
References funct::cos(), fastsim::Constants::eMass, JetChargeProducer_cfi::exp, RandomEngineAndDistribution::flatShoot(), gbteth(), cmsBatch::log, M_PI, fastsim::Particle::momentum(), random, funct::sin(), and theta().
Referenced by interact(), and ~Bremsstrahlung().
|
private |
A universal angular distribution.
ener | |
partm | |
efrac | |
random | The Random Engine. |
Definition at line 202 of file Bremsstrahlung.cc.
References beta, edmIntegrityCheck::d, DEFINE_EDM_PLUGIN, RandomEngineAndDistribution::flatShoot(), cmsBatch::log, M_PI, and Z_.
Referenced by brem(), and ~Bremsstrahlung().
|
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 94 of file Bremsstrahlung.cc.
References funct::abs(), brem(), fastsim::SimplifiedGeometry::getThickness(), mps_fire::i, cmsBatch::log, SiStripPI::max, minPhotonEnergy_, minPhotonEnergyFraction_, fastsim::Particle::momentum(), fastsim::Particle::pdgId(), RandomEngineAndDistribution::poissonShoot(), fastsim::Particle::position(), theta(), and TrackerOfflineValidation_Dqm_cff::xmin.
Referenced by ~Bremsstrahlung().
|
private |
Cut on minimum energy of bremsstrahlung photons.
Definition at line 77 of file Bremsstrahlung.cc.
Referenced by Bremsstrahlung(), and interact().
|
private |
Cut on minimum fraction of particle's energy which has to be carried by photon.
Definition at line 78 of file Bremsstrahlung.cc.
Referenced by Bremsstrahlung(), and interact().
|
private |
Atomic number of material (usually silicon Z=14)
Definition at line 79 of file Bremsstrahlung.cc.
Referenced by Bremsstrahlung(), and gbteth().