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::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... | |
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 42 of file MuonBremsstrahlung.cc.
fastsim::MuonBremsstrahlung::MuonBremsstrahlung | ( | const std::string & | name, |
const edm::ParameterSet & | cfg | ||
) |
Constructor.
Definition at line 98 of file MuonBremsstrahlung.cc.
References A_, density_, edm::ParameterSet::getParameter(), minPhotonEnergy_, minPhotonEnergyFraction_, radLenInCm_, and Z_.
|
inlineoverride |
Default destructor.
Definition at line 49 of file MuonBremsstrahlung.cc.
References brem(), gbteth(), interact(), AlCaHLTBitMon_ParallelJobs::p, PetrukhinFunc(), 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 209 of file MuonBremsstrahlung.cc.
References funct::cos(), RandomEngineAndDistribution::flatShoot(), gbteth(), M_PI, fastsim::Particle::momentum(), fastsim::Constants::muMass, Petrfunc, random, funct::sin(), and theta().
Referenced by interact(), and ~MuonBremsstrahlung().
|
private |
A universal angular distribution.
ener | |
partm | |
efrac | |
random | The Random Engine. |
Definition at line 236 of file MuonBremsstrahlung.cc.
References pfBoostedDoubleSVAK8TagInfos_cfi::beta, edmIntegrityCheck::d, RandomEngineAndDistribution::flatShoot(), cmsBatch::log, M_PI, and Z_.
Referenced by brem(), and ~MuonBremsstrahlung().
|
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 112 of file MuonBremsstrahlung.cc.
References A_, funct::abs(), brem(), density_, SoftLeptonByDistance_cfi::distance, fastsim::SimplifiedGeometry::getThickness(), mps_fire::i, SiStripPI::max, minPhotonEnergy_, minPhotonEnergyFraction_, fastsim::Particle::momentum(), fastsim::Constants::NA, fastsim::Particle::pdgId(), Petrfunc, PetrukhinFunc(), RandomEngineAndDistribution::poissonShoot(), fastsim::Particle::position(), radLenInCm_, theta(), TrackerOfflineValidation_Dqm_cff::xmax, TrackerOfflineValidation_Dqm_cff::xmin, and Z_.
Referenced by ~MuonBremsstrahlung().
|
staticprivate |
Petrukhin Function: Returns cross section using nuclear-electron screening correction from G4 style.
Definition at line 262 of file MuonBremsstrahlung.cc.
References patCaloMETCorrections_cff::A, alpha, TtFullHadDaughter::B, DEFINE_EDM_PLUGIN, delta, triggerObjects_cff::Dn, f, funct::pow(), and DOFs::Z.
Referenced by interact(), and ~MuonBremsstrahlung().
|
private |
Atomic weight of material (usually silicon A=28.0855)
Definition at line 93 of file MuonBremsstrahlung.cc.
Referenced by interact(), and MuonBremsstrahlung().
|
private |
Density of material (usually silicon rho=2.329)
Definition at line 91 of file MuonBremsstrahlung.cc.
Referenced by interact(), and MuonBremsstrahlung().
|
private |
Cut on minimum energy of bremsstrahlung photons.
Definition at line 89 of file MuonBremsstrahlung.cc.
Referenced by interact(), and MuonBremsstrahlung().
|
private |
Cut on minimum fraction of particle's energy which has to be carried by photon.
Definition at line 90 of file MuonBremsstrahlung.cc.
Referenced by interact(), and MuonBremsstrahlung().
|
private |
The Petrukhin Function.
Definition at line 88 of file MuonBremsstrahlung.cc.
Referenced by brem(), and interact().
|
private |
Radiation length of material (usually silicon X0=9.360)
Definition at line 92 of file MuonBremsstrahlung.cc.
Referenced by interact(), and MuonBremsstrahlung().
|
private |
Atomic number of material (usually silicon Z=14)
Definition at line 94 of file MuonBremsstrahlung.cc.
Referenced by gbteth(), interact(), and MuonBremsstrahlung().