CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonBremsstrahlungSimulator.h
Go to the documentation of this file.
1 #ifndef MUONBREMSSTRAHLUNGSIMULATOR_H
2 #define MUONBREMSSTRAHLUNGSIMULATOR_H
3 
5 
23 #include <string>
24 
25 
26 class TF1;
27 
28 class ParticlePropagator;
29 class RandomEngine;
30 
32 {
33  public:
34 
37  double A, double Z, double density,
38  double radLen,double photonEnergyCut,double photonFractECut);
39 
42 
43 
44 // Returns the actual Muon brem Energy
45  inline const XYZTLorentzVector& deltaP_BremMuon() const { return deltaPMuon ; }
46 
47 // Returns the actual photon brem Energy
48  inline const XYZTLorentzVector& deltaP_BremPhoton() const { return brem_photon ; }
49 
50 
51  private:
52 
53  TF1* f1 ;
54 
55  int npar ;
56 
58  double photonEnergy;
59  double bremProba;
61  double photonFractE;
62 
64  double xmin,xmax,rand;
65  double d; //distance
66 
68  unsigned int poisson(double ymu);
69 
71  void compute(ParticlePropagator &Particle);
72 
75 
77  double gbteth(const double ener,
78  const double partm,
79  const double efrac) const;
80 
81  // The actual Muon Brem
83  //The photon brem
85 
86 
87 
88 };
89 #endif
double xmin
The fractional photon energy cut (determined from the above two)
MuonBremsstrahlungSimulator(const RandomEngine *engine, double A, double Z, double density, double radLen, double photonEnergyCut, double photonFractECut)
Constructor.
XYZTLorentzVector brem(ParticlePropagator &p) const
Compute Brem photon energy and angles, if any.
~MuonBremsstrahlungSimulator()
Default destructor.
const XYZTLorentzVector & deltaP_BremMuon() const
unsigned int poisson(double ymu)
Generate numbers according to a Poisson distribution of mean ymu.
const XYZTLorentzVector & deltaP_BremPhoton() const
double gbteth(const double ener, const double partm, const double efrac) const
A universal angular distribution - still from GEANT.
double photonFractE
The minimum photon fractional energy (wrt that of the electron)
void compute(ParticlePropagator &Particle)
Generate Bremsstrahlung photons.
double photonEnergy
The minimum photon energy to be radiated, in GeV.
math::XYZTLorentzVector XYZTLorentzVector
Definition: RawParticle.h:15