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