Implementation of Bremsstrahlung from mu+/mu- in the tracker layers based on a Petrukhin Model (nuclear screening correction). More...
Public Member Functions | |
void | interact (Particle &particle, const SimplifiedGeometry &layer, std::vector< std::unique_ptr< Particle > > &secondaries, const RandomEngineAndDistribution &random) override |
Perform the interaction. More... | |
MuonBremsstrahlung (const std::string &name, const edm::ParameterSet &cfg) | |
Constructor. More... | |
~MuonBremsstrahlung () 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::ProducesCollector) 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... | |
Static Private Member Functions | |
static double | PetrukhinFunc (double *x, double *p) |
Petrukhin Function: Returns cross section using nuclear-electron screening correction from G4 style. 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 | 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... | |
TF1 * | Petrfunc |
The Petrukhin Function. More... | |
double | radLenInCm_ |
Radiation length of material (usually silicon X0=9.360) More... | |
double | Z_ |
Atomic number of material (usually silicon Z=14) More... | |
Implementation of Bremsstrahlung from mu+/mu- in the tracker layers based on a Petrukhin Model (nuclear screening correction).
Computes the number, energy and angles of Bremsstrahlung photons emitted by muons and modifies mu+/mu- particle accordingly.
Definition at line 39 of file MuonBremsstrahlung.cc.
fastsim::MuonBremsstrahlung::MuonBremsstrahlung | ( | const std::string & | name, |
const edm::ParameterSet & | cfg | ||
) |
Constructor.
Definition at line 95 of file MuonBremsstrahlung.cc.
References A_, looper::cfg, density_, minPhotonEnergy_, minPhotonEnergyFraction_, radLenInCm_, and Z_.
|
inlineoverride |
|
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 193 of file MuonBremsstrahlung.cc.
References funct::cos(), RandomEngineAndDistribution::flatShoot(), M_PI, fastsim::Particle::momentum(), fastsim::Constants::muMass, funct::sin(), and theta().
|
private |
A universal angular distribution.
ener | |
partm | |
efrac | |
random | The Random Engine. |
Definition at line 218 of file MuonBremsstrahlung.cc.
References HLT_2023v12_cff::beta, ztail::d, RandomEngineAndDistribution::flatShoot(), dqm-mbProfile::log, M_PI, and w1.
|
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 107 of file MuonBremsstrahlung.cc.
References funct::abs(), HLT_2023v12_cff::distance, mps_fire::i, SiStripPI::max, fastsim::Particle::momentum(), fastsim::Constants::NA, fastsim::Particle::pdgId(), PetrukhinFunc(), RandomEngineAndDistribution::poissonShoot(), fastsim::Particle::position(), theta(), TrackerOfflineValidation_Dqm_cff::xmax, and TrackerOfflineValidation_Dqm_cff::xmin.
|
staticprivate |
Petrukhin Function: Returns cross section using nuclear-electron screening correction from G4 style.
Definition at line 241 of file MuonBremsstrahlung.cc.
References A, alpha, B, dumpMFGeometry_cfg::delta, triggerObjects_cff::Dn, f, AlCaHLTBitMon_ParallelJobs::p, funct::pow(), x, and BeamSpotPI::Z.
|
private |
Atomic weight of material (usually silicon A=28.0855)
Definition at line 90 of file MuonBremsstrahlung.cc.
Referenced by MuonBremsstrahlung().
|
private |
Density of material (usually silicon rho=2.329)
Definition at line 88 of file MuonBremsstrahlung.cc.
Referenced by MuonBremsstrahlung().
|
private |
Cut on minimum energy of bremsstrahlung photons.
Definition at line 86 of file MuonBremsstrahlung.cc.
Referenced by MuonBremsstrahlung().
|
private |
Cut on minimum fraction of particle's energy which has to be carried by photon.
Definition at line 87 of file MuonBremsstrahlung.cc.
Referenced by MuonBremsstrahlung().
|
private |
The Petrukhin Function.
Definition at line 85 of file MuonBremsstrahlung.cc.
|
private |
Radiation length of material (usually silicon X0=9.360)
Definition at line 89 of file MuonBremsstrahlung.cc.
Referenced by MuonBremsstrahlung().
|
private |
Atomic number of material (usually silicon Z=14)
Definition at line 91 of file MuonBremsstrahlung.cc.
Referenced by MuonBremsstrahlung().