CMS 3D CMS Logo

RPTopology.h
Go to the documentation of this file.
1 /****************************************************************************
2 *
3 * This is a part of TotemDQM and TOTEM offline software.
4 * Authors:
5 * Hubert Niewiadomski
6 * Jan Kašpar (jan.kaspar@gmail.com)
7 *
8 ****************************************************************************/
9 
10 #ifndef Geometry_VeryForwardRPTopology_RPTopology
11 #define Geometry_VeryForwardRPTopology_RPTopology
12 
13 #include "Math/Vector3D.h"
14 
19 class RPTopology {
20 public:
21  using Vector = ROOT::Math::DisplacementVector3D<ROOT::Math::Cartesian3D<double>>;
22 
23  RPTopology();
24  inline const Vector& GetStripReadoutAxisDir() const { return strip_readout_direction_; }
25  inline const Vector& GetStripDirection() const { return strip_direction_; }
26  inline const Vector& GetNormalDirection() const { return normal_direction_; }
27 
31  inline double GetHitPositionInReadoutDirection(double strip_no) const
32  // { return y_width_/2. - last_strip_to_border_dist_ - strip_no * pitch_; }
33  {
34  return last_strip_to_border_dist_ + (no_of_strips_ - 1) * pitch_ - y_width_ / 2. - strip_no * pitch_;
35  }
36 
37  inline double DetXWidth() const { return x_width_; }
38  inline double DetYWidth() const { return y_width_; }
39  inline double DetEdgeLength() const { return phys_edge_lenght_; }
40  inline double DetThickness() const { return thickness_; }
41  inline double DetPitch() const { return pitch_; }
42  inline unsigned short DetStripNo() const { return no_of_strips_; }
43 
46  static bool IsHit(double u, double v, double insensitiveMargin = 0);
47 
48 public:
49  static const double sqrt_2;
50 
51  static const double pitch_;
52  static const double thickness_;
53  static const unsigned short no_of_strips_;
54  static const double x_width_;
55  static const double y_width_;
56  static const double phys_edge_lenght_;
57  static const double last_strip_to_border_dist_;
58  static const double last_strip_to_center_dist_;
59 
63 };
64 
65 #endif //Geometry_VeryForwardRPTopology_RPTopology
Vector strip_readout_direction_
Definition: RPTopology.h:60
const Vector & GetStripReadoutAxisDir() const
Definition: RPTopology.h:24
double DetXWidth() const
Definition: RPTopology.h:37
static const double phys_edge_lenght_
Definition: RPTopology.h:56
static const double last_strip_to_center_dist_
Definition: RPTopology.h:58
double DetYWidth() const
Definition: RPTopology.h:38
static const double thickness_
Definition: RPTopology.h:52
double DetEdgeLength() const
Definition: RPTopology.h:39
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< double > > Vector
Definition: RPTopology.h:21
static bool IsHit(double u, double v, double insensitiveMargin=0)
Definition: RPTopology.cc:29
static const unsigned short no_of_strips_
Definition: RPTopology.h:53
const Vector & GetStripDirection() const
Definition: RPTopology.h:25
static const double y_width_
Definition: RPTopology.h:55
double DetPitch() const
Definition: RPTopology.h:41
static const double x_width_
Definition: RPTopology.h:54
const Vector & GetNormalDirection() const
Definition: RPTopology.h:26
static const double last_strip_to_border_dist_
Definition: RPTopology.h:57
static const double pitch_
Definition: RPTopology.h:51
Geometrical and topological information on RP silicon detector. Uses coordinate a frame with origin i...
Definition: RPTopology.h:19
double DetThickness() const
Definition: RPTopology.h:40
static const double sqrt_2
Definition: RPTopology.h:49
Vector strip_direction_
Definition: RPTopology.h:61
unsigned short DetStripNo() const
Definition: RPTopology.h:42
double GetHitPositionInReadoutDirection(double strip_no) const
Definition: RPTopology.h:31
Vector normal_direction_
Definition: RPTopology.h:62