CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 
47  void compute(ParticlePropagator& Particle, RandomEngineAndDistribution const*) override;
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.
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.
~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.
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:25