CMS 3D CMS Logo

BremsstrahlungSimulator.h
Go to the documentation of this file.
1 #ifndef BREMSSTRAHLUNGSIMULATOR_H
2 #define BREMSSTRAHLUNGSIMULATOR_H
3 
5 
22 class ParticlePropagator;
24 
26 public:
28  BremsstrahlungSimulator(double photonEnergyCut, double photonFractECut);
29 
32 
33 private:
35  double photonEnergy;
36 
38  double photonFractE;
39 
41  double xmin;
42 
44  unsigned int poisson(double ymu, RandomEngineAndDistribution const*);
45 
48 
51 
53  double gbteth(const double ener, const double partm, const double efrac, RandomEngineAndDistribution const*) const;
54 };
55 #endif
void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *) override
Generate Bremsstrahlung photons.
unsigned int poisson(double ymu, RandomEngineAndDistribution const *)
Generate numbers according to a Poisson distribution of mean ymu.
double gbteth(const double ener, const double partm, const double efrac, RandomEngineAndDistribution const *) const
A universal angular distribution - still from GEANT.
BremsstrahlungSimulator(double photonEnergyCut, double photonFractECut)
Constructor.
XYZTLorentzVector brem(ParticlePropagator &p, RandomEngineAndDistribution const *) const
Compute Brem photon energy and angles, if any.
~BremsstrahlungSimulator() override
Default destructor.
double xmin
The fractional photon energy cut (determined from the above two)
double photonEnergy
The minimum photon energy to be radiated, in GeV.
double photonFractE
The minimum photon fractional energy (wrt that of the electron)
math::XYZTLorentzVector XYZTLorentzVector
Definition: RawParticle.h:25