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
RadialTracker.h
Go to the documentation of this file.
1 
10 #ifndef INCLUDE_EICSMEAR_SMEAR_RADIALTRACKER_H_
11 #define INCLUDE_EICSMEAR_SMEAR_RADIALTRACKER_H_
12 
13 #include <Rtypes.h> // For ClassDef
14 
15 #include "eicsmear/smear/Smear.h" // KinType
16 #include "eicsmear/smear/Tracker.h"
17 
18 namespace erhic {
19 
20 class VirtualParticle;
21 
22 } // namespace erhic
23 
24 namespace Smear {
25 
26 class ParticleMCS;
27 
32 class RadialTracker : public Tracker {
33  public:
39  RadialTracker();
40 
44  RadialTracker(double innerRadius, double outerRadius,
45  double zMin, double zMax,
46  double magneticField, double numberOfRadiationLengths,
47  double sigmaRPhi, double numberOfPoints);
48 
52  virtual ~RadialTracker();
53 
58  virtual RadialTracker* Clone(const char* = "") const;
59 
63  virtual void Print(Option_t* = "") const;
64 
68  double L(const erhic::VirtualParticle&) const;
69 
74  double LPrime(const erhic::VirtualParticle&) const;
75 
79  virtual int NPoints(const erhic::VirtualParticle&) const;
80 
89  virtual bool Accepts(const erhic::VirtualParticle&) const;
90 
94  virtual double GetThetaMin() const;
95 
99  virtual double GetThetaMax() const;
100 
101  protected:
109  double radius) const;
110 
118  double z) const;
119 
127  TVector3 ComputePath(const erhic::VirtualParticle&) const;
128 
129  double mNFitPoints;
130  double mInnerRadius;
131  double mOuterRadius;
132  double mZMin;
133  double mZMax;
134 
135  ClassDef(Smear::RadialTracker, 1)
136 };
137 
138 inline RadialTracker* RadialTracker::Clone(const char*) const {
139  return new RadialTracker(*this);
140 }
141 
142 } // namespace Smear
143 
144 #endif // INCLUDE_EICSMEAR_SMEAR_RADIALTRACKER_H_
double mZMax
Upper (most positive) z face.
virtual int NPoints(const erhic::VirtualParticle &) const
virtual double GetThetaMin() const
double L(const erhic::VirtualParticle &) const
virtual double GetThetaMax() const
double mOuterRadius
Outer radius (m)
TVector3 ComputePath(const erhic::VirtualParticle &) const
TVector3 ComputeIntersectionWithRadius(const erhic::VirtualParticle &, double radius) const
double mNFitPoints
Number of fit points.
double mInnerRadius
Inner radius (m)
TVector3 ComputeIntersectionWithPlane(const erhic::VirtualParticle &, double z) const
double mZMin
Lower (most negative) z face.
virtual void Print(Option_t *="") const
double LPrime(const erhic::VirtualParticle &) const
virtual RadialTracker * Clone(const char *="") const
Abstract base class for a general particle.
virtual bool Accepts(const erhic::VirtualParticle &) const