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