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
Tracker.h
Go to the documentation of this file.
1 
10 #ifndef INCLUDE_EICSMEAR_SMEAR_TRACKER_H_
11 #define INCLUDE_EICSMEAR_SMEAR_TRACKER_H_
12 
13 #include <Rtypes.h> // For ClassDef
14 
16 #include "eicsmear/smear/Smear.h" // KinType
17 #include "eicsmear/smear/Smearer.h"
18 
19 namespace erhic {
20 
21 class VirtualParticle;
22 
23 } // namespace erhic
24 
25 namespace Smear {
26 
27 class ParticleMCS;
28 
35 class Tracker : public Smearer {
36  public:
40  Tracker(double magneticField = 2., double nRadiationLengths = 0.01,
41  double resolution = 0.001);
42 
46  virtual ~Tracker();
47 
51  virtual double Resolution(const erhic::VirtualParticle&) const;
52 
58 
62  virtual double L(const erhic::VirtualParticle&) const = 0;
63 
68  virtual double LPrime(const erhic::VirtualParticle&) const = 0;
69 
73  virtual int NPoints(const erhic::VirtualParticle&) const = 0;
74 
79  virtual bool Accepts(const erhic::VirtualParticle&) const = 0;
80 
84  virtual double GetThetaMin() const = 0;
85 
89  virtual double GetThetaMax() const = 0;
90 
97  void SetVertexConstraint(bool constrain);
98 
99  protected:
106  virtual double MultipleScatteringContribution(
107  const erhic::VirtualParticle&) const;
108 
114  virtual double IntrinsicContribution(const erhic::VirtualParticle&) const;
115 
116  Int_t mFactor;
117  double mMagField;
119  double mNRadLengths;
120  double mSigmaRPhi;
122 
123  ClassDef(Smear::Tracker, 1)
124 };
125 
126 } // namespace Smear
127 
128 #endif // INCLUDE_EICSMEAR_SMEAR_TRACKER_H_
virtual double IntrinsicContribution(const erhic::VirtualParticle &) const
Definition: Tracker.cxx:55
void Smear(const erhic::VirtualParticle &, ParticleMCS &)
Definition: Tracker.cxx:82
virtual double MultipleScatteringContribution(const erhic::VirtualParticle &) const
Definition: Tracker.cxx:43
virtual double L(const erhic::VirtualParticle &) const =0
virtual double GetThetaMin() const =0
double mSigmaRPhi
Point resolution.
Definition: Tracker.h:120
void SetVertexConstraint(bool constrain)
Definition: Tracker.cxx:100
double mNRadLengths
Number of radiation lengths (dimensionless)
Definition: Tracker.h:119
double mMagField
Magnetic field strength in Tesla.
Definition: Tracker.h:118
virtual double Resolution(const erhic::VirtualParticle &) const
Definition: Tracker.cxx:72
virtual bool Accepts(const erhic::VirtualParticle &) const =0
virtual int NPoints(const erhic::VirtualParticle &) const =0
virtual double LPrime(const erhic::VirtualParticle &) const =0
Tracker(double magneticField=2., double nRadiationLengths=0.01, double resolution=0.001)
Definition: Tracker.cxx:32
Int_t mFactor
Definition: Tracker.h:116
virtual double GetThetaMax() const =0
virtual ~Tracker()
Definition: Tracker.cxx:40
Abstract base class for a general particle.
Distributor Distribution
Random distribution.
Definition: Tracker.h:121