CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
MuonBremsstrahlungSimulator.h
Go to the documentation of this file.
1 #ifndef MUONBREMSSTRAHLUNGSIMULATOR_H
2 #define MUONBREMSSTRAHLUNGSIMULATOR_H
3 
5 
22 #include <string>
23 
24 class TF1;
25 
26 class ParticlePropagator;
28 
30 public:
33  double A, double Z, double density, double radLen, double photonEnergyCut, double photonFractECut);
34 
37 
38  // Returns the actual Muon brem Energy
39  inline const XYZTLorentzVector& deltaP_BremMuon() const { return deltaPMuon; }
40 
41  // Returns the actual photon brem Energy
42  inline const XYZTLorentzVector& deltaP_BremPhoton() const { return brem_photon; }
43 
44 private:
45  TF1* f1;
46 
47  int npar;
48 
50  double photonEnergy;
51  double bremProba;
53  double photonFractE;
54 
56  double xmin, xmax, rand;
57  double d; //distance
58 
60  unsigned int poisson(double ymu);
61 
63  void compute(ParticlePropagator& Particle, RandomEngineAndDistribution const*) override;
64 
67 
69  double gbteth(const double ener, const double partm, const double efrac, RandomEngineAndDistribution const*) const;
70 
71  // The actual Muon Brem
73  //The photon brem
75 };
76 #endif
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)
void compute(ParticlePropagator &Particle, RandomEngineAndDistribution const *) override
Generate Bremsstrahlung photons.
const XYZTLorentzVector & deltaP_BremMuon() const
~MuonBremsstrahlungSimulator() override
Default destructor.
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:25