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 
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_
Smear::Device::Print
virtual void Print(Option_t *="") const
Print information about this device to standard output.
Definition: Device.cxx:116
Smear::Device::SetDistribution
virtual void SetDistribution(const Distributor &)
Set the random distribution from which to sample smeared kinematics.
Definition: Device.h:132
Smear::Device::mSmeared
KinType mSmeared
Smeared variable.
Definition: Device.h:118
Smear
Definition: Acceptance.cxx:16
erhic
Definition: EventDis.cxx:14
Distributor.h
Smear::kAll
@ kAll
Definition: Smear.h:49
Smear::kE
@ kE
Definition: Smear.h:44
Smear::Device::~Device
virtual ~Device()
Destructor.
Definition: Device.cxx:74
Smear::Device::mFormula
FormulaString * mFormula
Expression for resolution standard deviation.
Definition: Device.h:120
Smear.h
Smear::Device::Device
Device(KinType=kE, const TString &formula="0", EGenre=kAll)
Constructor.
Definition: Device.cxx:43
erhic::VirtualParticle
Abstract base class for a general particle.
Definition: VirtualParticle.h:23
Smear::FormulaString
A formula described by a string with up to four variables.
Definition: FormulaString.h:27
Smear::Device::mDistribution
Distributor mDistribution
Random distribution.
Definition: Device.h:123
Smearer.h
Smear::Smearer
Abstract base class for objects performing smearing.
Definition: Smearer.h:33
Smear::Device::Clone
virtual Device * Clone(const char *="") const
Returns a dynamically allocated copy of this object.
Definition: Device.cxx:112
Acceptance.h
Smear::ParticleMCS
A smeared Monte Carlo particle.
Definition: ParticleMCS.h:27
Smear::Distributor
Distribution function for random sampling.
Definition: Distributor.h:32
Smear::Device
Performs smearing of a single kinematic variable according to a simple expression defined via a strin...
Definition: Device.h:44
Smear::Device::mDimensions
std::vector< Smear::KinType > mDimensions
Variables on which smearing is dependent (up to 4)
Definition: Device.h:121
Smear::Device::Init
bool Init(const TString &, const TString &, int)
Definition: Device.cxx:26
Smear::Device::Smear
virtual void Smear(const erhic::VirtualParticle &, ParticleMCS &)
Smear the kinematic value of the input particle and store the result in the ParticleMCS.
Definition: Device.cxx:85
Smear::KinType
KinType
Enumerator listing particle wise kinematic variables.
Definition: Smear.h:43
Smear::EGenre
EGenre
Classes of particles.
Definition: Smear.h:48
Smear::Device::mKinematicFunction
TF1 * mKinematicFunction
Definition: Device.h:119