File indexing completed on 2024-04-06 12:15:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010 #ifndef Geometry_VeryForwardRPTopology_RPTopology
0011 #define Geometry_VeryForwardRPTopology_RPTopology
0012
0013 #include "Math/Vector3D.h"
0014
0015
0016
0017
0018
0019 class RPTopology {
0020 public:
0021 using Vector = ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double>>;
0022
0023 RPTopology();
0024 inline const Vector& GetStripReadoutAxisDir() const { return strip_readout_direction_; }
0025 inline const Vector& GetStripDirection() const { return strip_direction_; }
0026 inline const Vector& GetNormalDirection() const { return normal_direction_; }
0027
0028
0029
0030
0031 inline double GetHitPositionInReadoutDirection(double strip_no) const
0032
0033 {
0034 return last_strip_to_border_dist_ + (no_of_strips_ - 1) * pitch_ - y_width_ / 2. - strip_no * pitch_;
0035 }
0036
0037 inline double DetXWidth() const { return x_width_; }
0038 inline double DetYWidth() const { return y_width_; }
0039 inline double DetEdgeLength() const { return phys_edge_lenght_; }
0040 inline double DetThickness() const { return thickness_; }
0041 inline double DetPitch() const { return pitch_; }
0042 inline unsigned short DetStripNo() const { return no_of_strips_; }
0043
0044
0045
0046 static bool IsHit(double u, double v, double insensitiveMargin = 0);
0047
0048 public:
0049 static const double sqrt_2;
0050
0051 static const double pitch_;
0052 static const double thickness_;
0053 static const unsigned short no_of_strips_;
0054 static const double x_width_;
0055 static const double y_width_;
0056 static const double phys_edge_lenght_;
0057 static const double last_strip_to_border_dist_;
0058 static const double last_strip_to_center_dist_;
0059
0060 Vector strip_readout_direction_;
0061 Vector strip_direction_;
0062 Vector normal_direction_;
0063 };
0064
0065 #endif