File indexing completed on 2025-04-02 08:47:07
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef INCLUDE_EICSMEAR_SMEAR_PLANARTRACKER_H_
0011 #define INCLUDE_EICSMEAR_SMEAR_PLANARTRACKER_H_
0012
0013 #include <Rtypes.h> // For ClassDef
0014
0015 #include "eicsmear/smear/Smear.h" // KinType
0016 #include "eicsmear/smear/Tracker.h"
0017
0018 namespace erhic {
0019
0020 class VirtualParticle;
0021
0022 }
0023
0024 namespace Smear {
0025
0026 class ParticleMCS;
0027
0028
0029
0030
0031
0032 class PlanarTracker : public Tracker {
0033 public:
0034
0035
0036
0037
0038
0039 PlanarTracker();
0040
0041
0042
0043
0044 PlanarTracker(double innerRadius, double outerRadius,
0045 double zMin, double zMax,
0046 double magneticField, double nRadiationLengths,
0047 double sigmaRPhi, double nPlanes);
0048
0049
0050
0051
0052 virtual ~PlanarTracker();
0053
0054
0055
0056
0057
0058 virtual PlanarTracker* Clone(const char* = "") const;
0059
0060
0061
0062
0063 virtual void Print(Option_t* = "") const;
0064
0065
0066
0067
0068 double L(const erhic::VirtualParticle&) const;
0069
0070
0071
0072
0073
0074 double LPrime(const erhic::VirtualParticle&) const;
0075
0076
0077
0078
0079
0080 virtual int NPoints(const erhic::VirtualParticle&) const;
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090 virtual bool Accepts(const erhic::VirtualParticle&) const;
0091
0092
0093
0094
0095 virtual double GetThetaMin() const;
0096
0097
0098
0099
0100 virtual double GetThetaMax() const;
0101
0102 protected:
0103
0104
0105
0106
0107
0108
0109 TVector3 ComputeIntersectionWithRadius(const erhic::VirtualParticle&,
0110 double radius) const;
0111 TVector3 ComputeIntersectionWithPlane(const erhic::VirtualParticle&,
0112 double z) const;
0113 TVector3 ComputePath(const erhic::VirtualParticle&) const;
0114
0115 double mNPlanes;
0116 double mInnerRadius;
0117 double mOuterRadius;
0118 double mZMin;
0119 double mZMax;
0120
0121 ClassDef(Smear::PlanarTracker, 1)
0122 };
0123
0124 inline PlanarTracker* PlanarTracker::Clone(const char*) const {
0125 return new PlanarTracker(*this);
0126 }
0127
0128 }
0129
0130 #endif