eic-smear  1.0.3
A collection of ROOT classes for Monte Carlo events and a fast-smearing code simulating detector effects for the Electron-Ion Collider task force
Bremsstrahlung.h
Go to the documentation of this file.
1 
10 #ifndef INCLUDE_EICSMEAR_SMEAR_BREMSSTRAHLUNG_H_
11 #define INCLUDE_EICSMEAR_SMEAR_BREMSSTRAHLUNG_H_
12 
13 #include <memory>
14 
15 #include <TF1.h>
16 
17 #include "eicsmear/smear/Device.h"
20 
21 namespace erhic {
22 
23 class VirtualParticle;
24 
25 } // namespace erhic
26 
27 namespace Smear {
28 
32 struct Bremsstrahlung : public Device {
40  Bremsstrahlung(double epsilon = 0.01,
41  double traversed = 10.,
42  double radLength = 47.1);
43 
48 
52  virtual Bremsstrahlung* Clone(Option_t* option = "not used") const;
53 
57  virtual void Smear(const erhic::VirtualParticle&, ParticleMCS&);
58 
59  protected:
60 
66  double dSigmadK(double* x, double*);
67 
71  int NGamma();
72 
73  void FixParticleKinematics(ParticleMCS&);
74 
80 
88  bool SetupPDF();
89 
90  std::auto_ptr<erhic::ParticleMC> mParticle;
91 
92  double mKMin;
93  double mKMax;
94  double mEpsilon;
95  double mTraversed;
96  double mRadLength;
97 
98  TF1* mPdf;
99 
100  ClassDef(Smear::Bremsstrahlung, 1)
101 };
102 
103 } // namespace Smear
104 
105 #endif // INCLUDE_EICSMEAR_SMEAR_BREMSSTRAHLUNG_H_
TF1 * mPdf
dSigma/dK function
Bremsstrahlung(double epsilon=0.01, double traversed=10., double radLength=47.1)
A specialized Device class for modelling radiative losses.
double dSigmadK(double *x, double *)
void SetParticle(const erhic::VirtualParticle &)
virtual Bremsstrahlung * Clone(Option_t *option="not used") const
std::auto_ptr< erhic::ParticleMC > mParticle
Copy of the current particle.
Abstract base class for a general particle.
virtual void Smear(const erhic::VirtualParticle &, ParticleMCS &)