CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 <HepMC/SimpleVector.h>
14 
15 #include "TMath.h"
20 
21 namespace HepMC {
22  class ThreeVector;
23 }
24 
30 {
31  public:
32  RPTopology();
33  inline const HepMC::ThreeVector& GetStripReadoutAxisDir() const {return strip_readout_direction_;}
34  inline const HepMC::ThreeVector& GetStripDirection() const {return strip_direction_;}
35  inline const HepMC::ThreeVector& GetNormalDirection() const {return normal_direction_;}
36 
40  inline double GetHitPositionInReadoutDirection(double strip_no) const
41 // { return y_width_/2. - last_strip_to_border_dist_ - strip_no * pitch_; }
42  {return last_strip_to_border_dist_ + (no_of_strips_-1)*pitch_ - y_width_/2. - strip_no * pitch_;}
43 
44  inline double DetXWidth() const {return x_width_;}
45  inline double DetYWidth() const {return y_width_;}
46  inline double DetEdgeLength() const {return phys_edge_lenght_;}
47  inline double DetThickness() const {return thickness_;}
48  inline double DetPitch() const {return pitch_;}
49  inline unsigned short DetStripNo() const {return no_of_strips_;}
50 
53  static bool IsHit(double u, double v, double insensitiveMargin = 0);
54 
55  public:
56  static const double sqrt_2;
57 
58  static const double pitch_;
59  static const double thickness_;
60  static const unsigned short no_of_strips_;
61  static const double x_width_;
62  static const double y_width_;
63  static const double phys_edge_lenght_;
64  static const double last_strip_to_border_dist_;
65  static const double last_strip_to_center_dist_;
66 
67  HepMC::ThreeVector strip_readout_direction_;
68  HepMC::ThreeVector strip_direction_;
69  HepMC::ThreeVector normal_direction_;
70 };
71 
72 #endif //Geometry_VeryForwardRPTopology_RPTopology
HepMC::ThreeVector strip_readout_direction_
Definition: RPTopology.h:67
const HepMC::ThreeVector & GetStripReadoutAxisDir() const
Definition: RPTopology.h:33
const HepMC::ThreeVector & GetNormalDirection() const
Definition: RPTopology.h:35
static const double phys_edge_lenght_
Definition: RPTopology.h:63
static const double last_strip_to_center_dist_
Definition: RPTopology.h:65
double DetPitch() const
Definition: RPTopology.h:48
static const double thickness_
Definition: RPTopology.h:59
HepMC::ThreeVector normal_direction_
Definition: RPTopology.h:69
double DetXWidth() const
Definition: RPTopology.h:44
static bool IsHit(double u, double v, double insensitiveMargin=0)
Definition: RPTopology.cc:36
static const unsigned short no_of_strips_
Definition: RPTopology.h:60
double DetYWidth() const
Definition: RPTopology.h:45
static const double y_width_
Definition: RPTopology.h:62
const HepMC::ThreeVector & GetStripDirection() const
Definition: RPTopology.h:34
static const double x_width_
Definition: RPTopology.h:61
double DetEdgeLength() const
Definition: RPTopology.h:46
HepMC::ThreeVector strip_direction_
Definition: RPTopology.h:68
static const double last_strip_to_border_dist_
Definition: RPTopology.h:64
static const double pitch_
Definition: RPTopology.h:58
Geometrical and topological information on RP silicon detector. Uses coordinate a frame with origin i...
Definition: RPTopology.h:29
unsigned short DetStripNo() const
Definition: RPTopology.h:49
double DetThickness() const
Definition: RPTopology.h:47
static const double sqrt_2
Definition: RPTopology.h:56
double GetHitPositionInReadoutDirection(double strip_no) const
Definition: RPTopology.h:40