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;
30 
32 {
33  public:
34 
36  MuonBremsstrahlungSimulator(double A, double Z, double density,
37  double radLen,double photonEnergyCut,double photonFractECut);
38 
41 
42 
43 // Returns the actual Muon brem Energy
44  inline const XYZTLorentzVector& deltaP_BremMuon() const { return deltaPMuon ; }
45 
46 // Returns the actual photon brem Energy
47  inline const XYZTLorentzVector& deltaP_BremPhoton() const { return brem_photon ; }
48 
49 
50  private:
51 
52  TF1* f1 ;
53 
54  int npar ;
55 
57  double photonEnergy;
58  double bremProba;
60  double photonFractE;
61 
63  double xmin,xmax,rand;
64  double d; //distance
65 
67  unsigned int poisson(double ymu);
68 
71 
74 
76  double gbteth(const double ener,
77  const double partm,
78  const double efrac,
79  RandomEngineAndDistribution const*) const;
80 
81  // The actual Muon Brem
83  //The photon brem
85 };
86 #endif
void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *)
Generate Bremsstrahlung photons.
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)
~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
MuonBremsstrahlungSimulator(double A, double Z, double density, double radLen, double photonEnergyCut, double photonFractECut)
Constructor.
double photonFractE
The minimum photon fractional energy (wrt that of the electron)
XYZTLorentzVector brem(ParticlePropagator &p, RandomEngineAndDistribution const *) const
Compute Brem photon energy and angles, if any.
double photonEnergy
The minimum photon energy to be radiated, in GeV.
math::XYZTLorentzVector XYZTLorentzVector
Definition: RawParticle.h:15