CMS 3D CMS Logo

CTPPSPixelTopology.h
Go to the documentation of this file.
1 #ifndef Geometry_VeryForwardGeometry_CTPPSPixelTopology_h
2 #define Geometry_VeryForwardGeometry_CTPPSPixelTopology_h
3 
4 #include "TMath.h"
6 
12 {
13  public:
16 
17  static constexpr double pitch_simY_ = 150E-3;
18  static constexpr double pitch_simX_ = 100E-3;
19  static constexpr double thickness_ = 0.23;
20  static constexpr unsigned short no_of_pixels_simX_ = 160;
21  static constexpr unsigned short no_of_pixels_simY_ = 156;
22  static constexpr unsigned short no_of_pixels_ = 160*156;
23  static constexpr double simX_width_ = 16.6;
24  static constexpr double simY_width_ = 24.4;
25  static constexpr double dead_edge_width_ = 200E-3;
26  static constexpr double active_edge_sigma_ = 0.02;
27  static constexpr double phys_active_edge_dist_ = 0.150;
28 
29  inline double detPitchSimX() const { return pitch_simX_; }
30  inline double detPitchSimY() const { return pitch_simY_; }
31  inline double detThickness() const { return thickness_; }
32  inline unsigned short detPixelSimXNo() const { return no_of_pixels_simX_; }
33  inline unsigned short detPixelSimYNo() const { return no_of_pixels_simY_; }
34  inline unsigned short detPixelNo() const { return no_of_pixels_; }
35  inline double detXWidth() const { return simX_width_; }
36  inline double detYWidth() const { return simY_width_; }
37  inline double detDeadEdgeWidth() const { return dead_edge_width_; }
38  inline double activeEdgeSigma() const { return active_edge_sigma_; }
39  inline double physActiveEdgeDist() const { return phys_active_edge_dist_; }
40 
41 
42  static bool isPixelHit(float xLocalCoordinate, float yLocalCoordinate, bool is3x2 = true)
43  {
44 // check hit fiducial boundaries
45  double xModuleSize = 2*((no_of_pixels_simX_/2. + 1)*pitch_simX_ + dead_edge_width_);
46  if(xLocalCoordinate < -xModuleSize/2. || xLocalCoordinate > xModuleSize/2.)
47  return false;
48 
49  double yModuleSize = (no_of_pixels_simY_ + 4.)*pitch_simY_ + 2.*dead_edge_width_;
50  double y2x2top = no_of_pixels_simY_/6.*pitch_simY_ + dead_edge_width_;
51  if(is3x2 && (yLocalCoordinate < -yModuleSize/2. || yLocalCoordinate > yModuleSize/2.))
52  return false;
53 
54  if(!is3x2 && (yLocalCoordinate < -yModuleSize/2. || yLocalCoordinate > y2x2top))
55  return false;
56 
57  return true;
58 
59  }
60 
62 };
63 
64 #endif
static double pitch_simY_
unsigned short detPixelSimXNo() const
double detThickness() const
double detPitchSimY() const
static double phys_active_edge_dist_
static unsigned short no_of_pixels_simY_
double detPitchSimX() const
static bool isPixelHit(float xLocalCoordinate, float yLocalCoordinate, bool is3x2=true)
double detXWidth() const
static double active_edge_sigma_
double physActiveEdgeDist() const
Geometrical and topological information on RPix silicon detector. Uses coordinate a frame with origin...
static double dead_edge_width_
static double simX_width_
unsigned short detPixelSimYNo() const
static unsigned short no_of_pixels_
double detDeadEdgeWidth() const
static double simY_width_
unsigned short detPixelNo() const
CTPPSPixelIndices indices_
double activeEdgeSigma() const
static unsigned short no_of_pixels_simX_
static double thickness_
static double pitch_simX_
#define constexpr
double detYWidth() const