EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Bremsstrahlung.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file Bremsstrahlung.h
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::unique_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_