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;
24 class RandomEngine;
25 
27 {
28  public:
29 
31  BremsstrahlungSimulator(double photonEnergyCut,
32  double photonFractECut,
33  const RandomEngine* engine);
34 
37 
38  private:
39 
41  double photonEnergy;
42 
44  double photonFractE;
45 
47  double xmin;
48 
50  unsigned int poisson(double ymu);
51 
53  void compute(ParticlePropagator &Particle);
54 
57 
59  double gbteth(const double ener,
60  const double partm,
61  const double efrac) const;
62 
63 };
64 #endif
void compute(ParticlePropagator &Particle)
Generate Bremsstrahlung photons.
unsigned int poisson(double ymu)
Generate numbers according to a Poisson distribution of mean ymu.
~BremsstrahlungSimulator()
Default destructor.
XYZTLorentzVector brem(ParticlePropagator &p) const
Compute Brem photon energy and angles, if any.
double gbteth(const double ener, const double partm, const double efrac) const
A universal angular distribution - still from GEANT.
double xmin
The fractional photon energy cut (determined from the above two)
BremsstrahlungSimulator(double photonEnergyCut, double photonFractECut, const RandomEngine *engine)
Constructor.
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:15