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 
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_
Smear
Definition: Acceptance.cxx:16
Smear::Bremsstrahlung::mParticle
std::auto_ptr< erhic::ParticleMC > mParticle
Definition: Bremsstrahlung.h:90
erhic
Definition: EventDis.cxx:14
Smear::Bremsstrahlung::mKMax
double mKMax
Definition: Bremsstrahlung.h:93
Smear::Bremsstrahlung::dSigmadK
double dSigmadK(double *x, double *)
Returns dSigmga/dK at k = x[0].
Definition: Bremsstrahlung.cxx:44
Smear::Bremsstrahlung::Smear
virtual void Smear(const erhic::VirtualParticle &, ParticleMCS &)
Smear the properties of a Particle and assign them to a ParticleS.
Definition: Bremsstrahlung.cxx:100
ParticleMCS.h
Smear::Bremsstrahlung::Clone
virtual Bremsstrahlung * Clone(Option_t *option="not used") const
Returns a pointer to a duplicate of this object.
Definition: Bremsstrahlung.cxx:96
Smear::Bremsstrahlung::mKMin
double mKMin
< Copy of the current particle
Definition: Bremsstrahlung.h:92
Smear::Bremsstrahlung::SetParticle
void SetParticle(const erhic::VirtualParticle &)
Set the radiating particle type and configure the dSigma/dK function.
Definition: Bremsstrahlung.cxx:78
Smear::Bremsstrahlung::mRadLength
double mRadLength
Definition: Bremsstrahlung.h:96
Smear::Bremsstrahlung::mPdf
TF1 * mPdf
Definition: Bremsstrahlung.h:98
erhic::VirtualParticle
Abstract base class for a general particle.
Definition: VirtualParticle.h:23
Device.h
Smear::ParticleMCS
A smeared Monte Carlo particle.
Definition: ParticleMCS.h:27
Smear::Bremsstrahlung::Bremsstrahlung
Bremsstrahlung(double epsilon=0.01, double traversed=10., double radLength=47.1)
Constructor.
Definition: Bremsstrahlung.cxx:19
Smear::Bremsstrahlung::NGamma
int NGamma()
Compute the number of photons emitted.
Definition: Bremsstrahlung.cxx:65
Smear::Device
Performs smearing of a single kinematic variable according to a simple expression defined via a strin...
Definition: Device.h:44
Smear::Bremsstrahlung::FixParticleKinematics
void FixParticleKinematics(ParticleMCS &)
Definition: Bremsstrahlung.cxx:89
Smear::Bremsstrahlung::mTraversed
double mTraversed
Definition: Bremsstrahlung.h:95
Smear::Bremsstrahlung::SetupPDF
bool SetupPDF()
Configure the dSigma/dK function, setting the energy range over which to generate photons.
Definition: Bremsstrahlung.cxx:53
ParticleMC.h
Smear::Bremsstrahlung::mEpsilon
double mEpsilon
Definition: Bremsstrahlung.h:94
Smear::Bremsstrahlung
A specialized Device class for modelling radiative losses.
Definition: Bremsstrahlung.h:32