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
PlanarTracker.h
Go to the documentation of this file.
1 
10 #ifndef INCLUDE_EICSMEAR_SMEAR_PLANARTRACKER_H_
11 #define INCLUDE_EICSMEAR_SMEAR_PLANARTRACKER_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 PlanarTracker : public Tracker {
33  public:
39  PlanarTracker();
40 
44  PlanarTracker(double innerRadius, double outerRadius,
45  double zMin, double zMax,
46  double magneticField, double nRadiationLengths,
47  double sigmaRPhi, double nPlanes);
48 
52  virtual ~PlanarTracker();
53 
58  virtual PlanarTracker* 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 
80  virtual int NPoints(const erhic::VirtualParticle&) const;
81 
90  virtual bool Accepts(const erhic::VirtualParticle&) const;
91 
95  virtual double GetThetaMin() const;
96 
100  virtual double GetThetaMax() const;
101 
102  protected:
110  double radius) const;
111  TVector3 ComputeIntersectionWithPlane(const erhic::VirtualParticle&,
112  double z) const;
113  TVector3 ComputePath(const erhic::VirtualParticle&) const;
114 
115  double mNPlanes;
116  double mInnerRadius;
117  double mOuterRadius;
118  double mZMin;
119  double mZMax;
120 
121  ClassDef(Smear::PlanarTracker, 1)
122 };
123 
124 inline PlanarTracker* PlanarTracker::Clone(const char*) const {
125  return new PlanarTracker(*this);
126 }
127 
128 } // namespace Smear
129 
130 #endif // INCLUDE_EICSMEAR_SMEAR_PLANARTRACKER_H_
double mInnerRadius
Inner radius (m)
TVector3 ComputeIntersectionWithRadius(const erhic::VirtualParticle &, double radius) const
virtual PlanarTracker * Clone(const char *="") const
virtual void Print(Option_t *="") const
virtual double GetThetaMin() const
double mOuterRadius
Outer radius (m)
double LPrime(const erhic::VirtualParticle &) const
virtual bool Accepts(const erhic::VirtualParticle &) const
double mZMin
Lower (most negative) z face.
virtual double GetThetaMax() const
double mNPlanes
Number of planes.
virtual int NPoints(const erhic::VirtualParticle &) const
double mZMax
Upper (most positive) z face.
Abstract base class for a general particle.
double L(const erhic::VirtualParticle &) const