|
|
Go to the documentation of this file. 1 #ifndef Geometry_VeryForwardGeometry_CTPPSPixelSimTopology_h
2 #define Geometry_VeryForwardGeometry_CTPPSPixelSimTopology_h
20 double higher_simX_border,
21 double lower_simY_border,
22 double higher_simY_border,
24 unsigned short pixel_row_no,
25 unsigned short pixel_col_no)
59 PixelInfo
getPixelsInvolved(
double x,
double y,
double sigma,
double& hit_pos_x,
double& hit_pos_y)
const;
66 double& higher_y)
const {
68 arow = (2 * ROCSizeInX - 1) - arow;
69 if (arow > (2 * ROCSizeInX - 1) || acol > (3 * ROCSizeInY - 1))
70 throw cms::Exception(
"CTPPSPixelSimTopology") <<
"rows or columns exceeding limits";
76 }
else if (arow <= (ROCSizeInX - 2)) {
79 }
else if (arow == (ROCSizeInX - 1)) {
82 }
else if (arow == ROCSizeInX) {
85 }
else if (arow <= (2 * ROCSizeInX - 2)) {
88 }
else if (arow == (2 * ROCSizeInX - 1)) {
97 }
else if (acol <= (ROCSizeInY - 2)) {
100 }
else if (acol == (ROCSizeInY - 1)) {
103 }
else if (acol == ROCSizeInY) {
106 }
else if (acol <= (2 * ROCSizeInY - 2)) {
109 }
else if (acol == (2 * ROCSizeInY - 1)) {
112 }
else if (acol == (2 * ROCSizeInY)) {
115 }
else if (acol <= (3 * ROCSizeInY - 2)) {
118 }
else if (acol == (3 * ROCSizeInY - 1)) {
140 const double aEF = topEdgeFactor * bottomEdgeFactor * rightEdgeFactor * leftEdgeFactor;
143 throw cms::Exception(
"CTPPSPixelSimTopology") <<
" active edge factor > 1";
153 inline unsigned int row(
double x)
const {
159 throw cms::Exception(
"CTPPSPixelSimTopology") <<
"out of reference frame";
168 arow = (ROCSizeInX - 1);
174 arow = (2 * ROCSizeInX - 1);
176 arow = (2 * ROCSizeInX - 1) - arow;
177 if (arow > (2 * ROCSizeInX - 1))
178 throw cms::Exception(
"CTPPSPixelSimTopology") <<
"row number exceeding limit";
183 inline unsigned int col(
double y)
const {
191 throw cms::Exception(
"CTPPSPixelSimTopology") <<
" out of reference frame";
198 column = ROCSizeInY - 1;
204 column = 2 * ROCSizeInY - 1;
206 column = 2 * ROCSizeInY;
210 column = (3 * ROCSizeInY - 1);
static constexpr double simX_width_
double lower_simY_border_
static constexpr double pitch_simY_
double activeEdgeFactor(double x, double y) const
double lower_simX_border_
static constexpr double simY_width_
unsigned short pixelIndex() const
PixelInfo(double lower_simX_border, double higher_simX_border, double lower_simY_border, double higher_simY_border, double eff_factor, unsigned short pixel_row_no, unsigned short pixel_col_no)
Geometrical and topological information on RPix silicon detector. Uses coordinate a frame with origin...
double distanceFromTopActiveEdge(double x, double y) const
double higher_simY_border_
double higher_simX_border_
double lowerSimYBorder() const
double distanceFromBottomActiveEdge(double x, double y) const
double higherSimYBorder() const
static constexpr double pitch_simX_
double higherSimXBorder() const
unsigned short pixelColNo() const
void rowCol2Index(unsigned int arow, unsigned int acol, unsigned int &index) const
double distanceFromLeftActiveEdge(double x, double y) const
unsigned short pixel_index_
void pixelRange(unsigned int arow, unsigned int acol, double &lower_x, double &higher_x, double &lower_y, double &higher_y) const
void index2RowCol(unsigned int &arow, unsigned int &acol, unsigned int index) const
static constexpr double active_edge_sigma_
unsigned int col(double y) const
unsigned short pixelRowNo() const
static constexpr double phys_active_edge_dist_
unsigned short pixel_col_no_
unsigned int row(double x) const
static constexpr double dead_edge_width_
double lowerSimXBorder() const
unsigned short pixel_row_no_
PixelInfo getPixelsInvolved(double x, double y, double sigma, double &hit_pos_x, double &hit_pos_y) const
static constexpr unsigned short no_of_pixels_simX_
double distanceFromRightActiveEdge(double x, double y) const