#include <MuonBremsstrahlungSimulator.h>
Public Member Functions | |
const XYZTLorentzVector & | deltaP_BremMuon () const |
const XYZTLorentzVector & | deltaP_BremPhoton () const |
MuonBremsstrahlungSimulator (double A, double Z, double density, double radLen, double photonEnergyCut, double photonFractECut) | |
Constructor. More... | |
~MuonBremsstrahlungSimulator () override | |
Default destructor. More... | |
Public Member Functions inherited from MaterialEffectsSimulator | |
RHEP_const_iter | beginDaughters () const |
Returns const iterator to the beginning of the daughters list. More... | |
int | closestDaughterId () |
The id of the closest charged daughter (filled for nuclear interactions only) More... | |
double | eMass () const |
Electron mass in GeV/c2. More... | |
RHEP_const_iter | endDaughters () const |
Returns const iterator to the end of the daughters list. More... | |
double | excitE () const |
Mean excitation energy (in GeV) More... | |
MaterialEffectsSimulator (double A=28.0855, double Z=14.0000, double density=2.329, double radLen=9.360) | |
unsigned | nDaughters () const |
Returns the number of daughters. More... | |
XYZVector | orthogonal (const XYZVector &) const |
A vector orthogonal to another one (because it's not in XYZTLorentzVector) More... | |
double | radLenIncm () const |
One radiation length in cm. More... | |
double | rho () const |
Density in g/cm3. More... | |
virtual void | save () |
Used by NuclearInteractionSimulator to save last sampled event. More... | |
void | setNormalVector (const GlobalVector &normal) |
Sets the vector normal to the surface traversed. More... | |
double | theA () const |
A. More... | |
double | theZ () const |
Z. More... | |
void | updateState (ParticlePropagator &myTrack, double radlen, RandomEngineAndDistribution const *) |
Compute the material effect (calls the sub class) More... | |
virtual | ~MaterialEffectsSimulator () |
Private Member Functions | |
XYZTLorentzVector | brem (ParticlePropagator &p, RandomEngineAndDistribution const *) const |
Compute Brem photon energy and angles, if any. More... | |
void | compute (ParticlePropagator &Particle, RandomEngineAndDistribution const *) override |
Generate Bremsstrahlung photons. More... | |
double | gbteth (const double ener, const double partm, const double efrac, RandomEngineAndDistribution const *) const |
A universal angular distribution - still from GEANT. More... | |
unsigned int | poisson (double ymu) |
Generate numbers according to a Poisson distribution of mean ymu. More... | |
Private Attributes | |
XYZTLorentzVector | brem_photon |
double | bremProba |
double | d |
XYZTLorentzVector | deltaPMuon |
TF1 * | f1 |
int | npar |
double | photonEnergy |
The minimum photon energy to be radiated, in GeV. More... | |
double | photonFractE |
The minimum photon fractional energy (wrt that of the electron) More... | |
double | rand |
double | xmax |
double | xmin |
The fractional photon energy cut (determined from the above two) More... | |
Additional Inherited Members | |
Public Types inherited from MaterialEffectsSimulator | |
typedef std::vector< RawParticle >::const_iterator | RHEP_const_iter |
Protected Attributes inherited from MaterialEffectsSimulator | |
std::vector< RawParticle > | _theUpdatedState |
double | A |
double | density |
double | radLen |
double | radLengths |
int | theClosestChargedDaughterId |
GlobalVector | theNormalVector |
double | Z |
Definition at line 29 of file MuonBremsstrahlungSimulator.h.
MuonBremsstrahlungSimulator::MuonBremsstrahlungSimulator | ( | double | A, |
double | Z, | ||
double | density, | ||
double | radLen, | ||
double | photonEnergyCut, | ||
double | photonFractECut | ||
) |
Constructor.
Definition at line 20 of file MuonBremsstrahlungSimulator.cc.
References d, LogDebug, photonEnergy, fastSimProducer_cff::photonEnergyCut, and photonFractE.
|
inlineoverride |
|
private |
Compute Brem photon energy and angles, if any.
Definition at line 116 of file MuonBremsstrahlungSimulator.cc.
References funct::cos(), gather_cfg::cout, f1, RandomEngineAndDistribution::flatShoot(), gbteth(), LogDebug, M_PI, phi, createTree::pp, funct::sin(), and theta().
Referenced by compute().
|
overrideprivatevirtual |
Generate Bremsstrahlung photons.
Implements MaterialEffectsSimulator.
Definition at line 31 of file MuonBremsstrahlungSimulator.cc.
References MaterialEffectsSimulator::_theUpdatedState, MaterialEffectsSimulator::A, brem(), brem_photon, bremProba, d, deltaPMuon, MaterialEffectsSimulator::density, RawParticle::E(), f1, mps_fire::i, LogDebug, makeParticle(), SiStripPI::max, RawParticle::momentum(), fastsim::Constants::NA, npar, PetrukhinFunc(), photonEnergy, photonFractE, RandomEngineAndDistribution::poissonShoot(), RawParticle::Px(), RawParticle::Py(), RawParticle::Pz(), MaterialEffectsSimulator::radLen, MaterialEffectsSimulator::radLengths, RawParticle::rotate(), xmax, xmin, and MaterialEffectsSimulator::Z.
|
inline |
Definition at line 39 of file MuonBremsstrahlungSimulator.h.
References deltaPMuon.
|
inline |
Definition at line 42 of file MuonBremsstrahlungSimulator.h.
References brem_photon.
|
private |
A universal angular distribution - still from GEANT.
Definition at line 153 of file MuonBremsstrahlungSimulator.cc.
References HLT_2022v15_cff::beta, d, RandomEngineAndDistribution::flatShoot(), dqm-mbProfile::log, M_PI, MaterialEffectsSimulator::theZ(), and w1.
Referenced by brem().
|
private |
Generate numbers according to a Poisson distribution of mean ymu.
|
private |
Definition at line 74 of file MuonBremsstrahlungSimulator.h.
Referenced by compute(), and deltaP_BremPhoton().
|
private |
Definition at line 51 of file MuonBremsstrahlungSimulator.h.
Referenced by compute().
|
private |
Definition at line 57 of file MuonBremsstrahlungSimulator.h.
Referenced by compute(), gbteth(), and MuonBremsstrahlungSimulator().
|
private |
Definition at line 72 of file MuonBremsstrahlungSimulator.h.
Referenced by compute(), and deltaP_BremMuon().
|
private |
Definition at line 45 of file MuonBremsstrahlungSimulator.h.
|
private |
Definition at line 47 of file MuonBremsstrahlungSimulator.h.
Referenced by compute().
|
private |
The minimum photon energy to be radiated, in GeV.
Definition at line 50 of file MuonBremsstrahlungSimulator.h.
Referenced by compute(), MuonBremsstrahlungSimulator(), and Jet.Jet::photonEnergyFraction().
|
private |
The minimum photon fractional energy (wrt that of the electron)
Definition at line 53 of file MuonBremsstrahlungSimulator.h.
Referenced by compute(), and MuonBremsstrahlungSimulator().
|
private |
Definition at line 56 of file MuonBremsstrahlungSimulator.h.
|
private |
Definition at line 56 of file MuonBremsstrahlungSimulator.h.
Referenced by svgfig.XAxis::__repr__(), and compute().
|
private |
The fractional photon energy cut (determined from the above two)
Definition at line 56 of file MuonBremsstrahlungSimulator.h.
Referenced by svgfig.XAxis::__repr__(), svgfig.Axes::__repr__(), svgfig.HGrid::__repr__(), svgfig.Grid::__repr__(), compute(), and svgfig.Axes::SVG().