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