test
CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BremsstrahlungSimulator.h
Go to the documentation of this file.
1 #ifndef BREMSSTRAHLUNGSIMULATOR_H
2 #define BREMSSTRAHLUNGSIMULATOR_H
3 
5 
23 class ParticlePropagator;
25 
27 {
28  public:
29 
31  BremsstrahlungSimulator(double photonEnergyCut,
32  double photonFractECut);
33 
36 
37  private:
38 
40  double photonEnergy;
41 
43  double photonFractE;
44 
46  double xmin;
47 
49  unsigned int poisson(double ymu, RandomEngineAndDistribution const*);
50 
53 
56 
58  double gbteth(const double ener,
59  const double partm,
60  const double efrac,
61  RandomEngineAndDistribution const*) const;
62 
63 };
64 #endif
void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *)
Generate Bremsstrahlung photons.
unsigned int poisson(double ymu, RandomEngineAndDistribution const *)
Generate numbers according to a Poisson distribution of mean ymu.
~BremsstrahlungSimulator()
Default destructor.
BremsstrahlungSimulator(double photonEnergyCut, double photonFractECut)
Constructor.
double gbteth(const double ener, const double partm, const double efrac, RandomEngineAndDistribution const *) const
A universal angular distribution - still from GEANT.
double xmin
The fractional photon energy cut (determined from the above two)
double photonEnergy
The minimum photon energy to be radiated, in GeV.
XYZTLorentzVector brem(ParticlePropagator &p, RandomEngineAndDistribution const *) const
Compute Brem photon energy and angles, if any.
double photonFractE
The minimum photon fractional energy (wrt that of the electron)
math::XYZTLorentzVector XYZTLorentzVector
Definition: RawParticle.h:15