EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PlanarTracker.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file PlanarTracker.h
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;
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_