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_
Smear
Definition: Acceptance.cxx:16
erhic
Definition: EventDis.cxx:14
Distributor.h
Smear::Tracker::Resolution
virtual double Resolution(const erhic::VirtualParticle &) const
Returns the resolution at the kinematics of this particle.
Definition: Tracker.cxx:72
Smear::Tracker::Accepts
virtual bool Accepts(const erhic::VirtualParticle &) const =0
Returns true if the particle falls within the angular acceptance of the detector.
Smear::Tracker::mMagField
double mMagField
Magnetic field strength in Tesla.
Definition: Tracker.h:118
Smear::Tracker::NPoints
virtual int NPoints(const erhic::VirtualParticle &) const =0
Returns the number of measurement points for the particle.
Smear::Tracker
A cylindrical tracking detector.
Definition: Tracker.h:35
Smear.h
Smear::Tracker::GetThetaMin
virtual double GetThetaMin() const =0
Returns the minimum theta of particles accepted by the tracker (radians).
Smear::Tracker::SetVertexConstraint
void SetVertexConstraint(bool constrain)
Set whether a vertex constraint should be used when calculating the intrinsic resolution.
Definition: Tracker.cxx:100
Smear::Tracker::mSigmaRPhi
double mSigmaRPhi
Point resolution.
Definition: Tracker.h:120
Smear::Tracker::mNRadLengths
double mNRadLengths
Number of radiation lengths (dimensionless)
Definition: Tracker.h:119
Smear::Tracker::Tracker
Tracker(double magneticField=2., double nRadiationLengths=0.01, double resolution=0.001)
Constructor.
Definition: Tracker.cxx:32
erhic::VirtualParticle
Abstract base class for a general particle.
Definition: VirtualParticle.h:23
Smearer.h
Smear::Smearer
Abstract base class for objects performing smearing.
Definition: Smearer.h:33
Smear::ParticleMCS
A smeared Monte Carlo particle.
Definition: ParticleMCS.h:27
Smear::Distributor
Distribution function for random sampling.
Definition: Distributor.h:32
Smear::Tracker::~Tracker
virtual ~Tracker()
Destructor.
Definition: Tracker.cxx:40
Smear::Tracker::Distribution
Distributor Distribution
Random distribution.
Definition: Tracker.h:121
Smear::Tracker::LPrime
virtual double LPrime(const erhic::VirtualParticle &) const =0
Returns the transverse path length of the particle through the tracker in metres.
Smear::Tracker::IntrinsicContribution
virtual double IntrinsicContribution(const erhic::VirtualParticle &) const
The intrinsic resolution of the detector, depending on momentum, magnetic field, the detector dimensi...
Definition: Tracker.cxx:55
Smear::Tracker::mFactor
Int_t mFactor
Factor in intrinsic resolution calculation dependent on vertex constraint.
Definition: Tracker.h:116
Smear::Tracker::GetThetaMax
virtual double GetThetaMax() const =0
Returns the maximum theta of particles accepted by the tracker (radians).
Smear::Tracker::Smear
void Smear(const erhic::VirtualParticle &, ParticleMCS &)
Smear the properties of the input particle and store the smeared values in the ParticleMCS.
Definition: Tracker.cxx:82
Smear::Tracker::MultipleScatteringContribution
virtual double MultipleScatteringContribution(const erhic::VirtualParticle &) const
Multiple scattering contribution, given by delta(p)/p = 0.0136 * z * sqrt(NRL) / (0....
Definition: Tracker.cxx:43
Smear::Tracker::L
virtual double L(const erhic::VirtualParticle &) const =0
Returns the path length of the particle through the tracker in metres.