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
Device.h
Go to the documentation of this file.
1 
10 #ifndef INCLUDE_EICSMEAR_SMEAR_DEVICE_H_
11 #define INCLUDE_EICSMEAR_SMEAR_DEVICE_H_
12 
13 #include <cmath>
14 #include <vector>
15 
16 #include <Math/ParamFunctor.h> // For ROOT::TMath::ParamFunctor
17 #include <TF1.h>
18 #include <TF2.h>
19 #include <TRandom3.h>
20 #include <TString.h>
21 
24 #include "eicsmear/smear/Smear.h"
25 #include "eicsmear/smear/Smearer.h"
26 
27 class TRandom3;
28 
29 namespace erhic {
30 
31 class VirtualParticle;
32 
33 } // namespace erhic
34 
35 namespace Smear {
36 
37 class FormulaString;
38 class ParticleMCS;
39 
44 class Device : public Smearer {
45  public:
62  Device(KinType = kE, const TString& formula = "0", EGenre = kAll);
63 
71  Device(const TString&, const TString& resolution = "0", EGenre = kAll);
72 
76  Device(const Device&);
77 
81  virtual ~Device();
82 
88  virtual Device* Clone(const char* = "") const;
89 
102  virtual void Smear(const erhic::VirtualParticle&, ParticleMCS&);
103 
108  virtual void SetDistribution(const Distributor&);
109 
113  virtual void Print(Option_t* = "") const;
114 
115  protected:
116  bool Init(const TString&, const TString&, int);
117 
118  KinType mSmeared;
119  TF1* mKinematicFunction;
121  std::vector<Smear::KinType> mDimensions;
124 
125  private:
126  // Assignment is not supported
127  Device& operator=(const Device&) { return *this; }
128 
129  ClassDef(Smear::Device, 1)
130 };
131 
132 inline void Device::SetDistribution(const Distributor& d) {
133  mDistribution = d;
134 }
135 
136 } // namespace Smear
137 
138 #endif // INCLUDE_EICSMEAR_SMEAR_DEVICE_H_
virtual void SetDistribution(const Distributor &)
Definition: Device.h:132
virtual void Print(Option_t *="") const
Definition: Device.cxx:116
virtual ~Device()
Definition: Device.cxx:74
FormulaString * mFormula
Expression for resolution standard deviation.
Definition: Device.h:120
std::vector< Smear::KinType > mDimensions
Definition: Device.h:121
Device(KinType=kE, const TString &formula="0", EGenre=kAll)
Definition: Device.cxx:43
Distributor mDistribution
Random distribution.
Definition: Device.h:123
Abstract base class for a general particle.
virtual void Smear(const erhic::VirtualParticle &, ParticleMCS &)
Definition: Device.cxx:85
virtual Device * Clone(const char *="") const
Definition: Device.cxx:112
KinType mSmeared
Smeared variable.
Definition: Device.h:118