11 no_of_pixels_simX_(0.),
12 no_of_pixels_simY_(0.),
17 active_edge_sigma_(0.),
18 phys_active_edge_dist_(0.),
32 if (xLocalCoordinate < -xModuleSize / 2. || xLocalCoordinate > xModuleSize / 2.)
37 if (is3x2 && (yLocalCoordinate < -yModuleSize / 2. || yLocalCoordinate > yModuleSize / 2.))
39 if (!is3x2 && (
runType_ ==
"Run2") && (yLocalCoordinate < -yModuleSize / 2. || yLocalCoordinate > y2x2top))
41 if (!is3x2 && (
runType_ ==
"Run3") && (yLocalCoordinate < -yModuleSize / 2. || yLocalCoordinate > yModuleSize / 2.))
48 double x,
double y,
double sigma,
double& hit_pos_x,
double& hit_pos_y)
const {
52 if (!(hit_pos_x * hit_pos_y > 0))
53 throw cms::Exception(
"PPSPixelTopology") <<
"pixel out of reference frame";
57 unsigned int interested_row =
row(x);
58 unsigned int interested_col =
col(y);
59 double low_pixel_range_x, high_pixel_range_x, low_pixel_range_y, high_pixel_range_y;
61 interested_row, interested_col, low_pixel_range_x, high_pixel_range_x, low_pixel_range_y, high_pixel_range_y);
73 unsigned int arow,
unsigned int acol,
double& lower_x,
double& higher_x,
double& lower_y,
double& higher_y)
const {
75 arow = (2 * ROCSizeInX - 1) - arow;
76 if (arow > (2 * ROCSizeInX - 1) || acol > (3 * ROCSizeInY - 1))
77 throw cms::Exception(
"PPSPixelTopology") <<
"pixel rows or columns exceeding limits";
83 }
else if (arow <= (ROCSizeInX - 2)) {
86 }
else if (arow == (ROCSizeInX - 1)) {
89 }
else if (arow == ROCSizeInX) {
92 }
else if (arow <= (2 * ROCSizeInX - 2)) {
95 }
else if (arow == (2 * ROCSizeInX - 1)) {
103 }
else if (acol <= (ROCSizeInY - 2)) {
106 }
else if (acol == (ROCSizeInY - 1)) {
109 }
else if (acol == ROCSizeInY) {
112 }
else if (acol <= (2 * ROCSizeInY - 2)) {
115 }
else if (acol == (2 * ROCSizeInY - 1)) {
118 }
else if (acol == (2 * ROCSizeInY)) {
121 }
else if (acol <= (3 * ROCSizeInY - 2)) {
124 }
else if (acol == (3 * ROCSizeInY - 1)) {
142 const double aEF = topEdgeFactor * bottomEdgeFactor * rightEdgeFactor * leftEdgeFactor;
145 throw cms::Exception(
"PPSPixelTopology") <<
" pixel active edge factor > 1";
161 throw cms::Exception(
"PPSPixelTopology") <<
" pixel out of reference frame";
170 arow = (ROCSizeInX - 1);
176 arow = (2 * ROCSizeInX - 1);
178 arow = (2 * ROCSizeInX - 1) - arow;
179 if (arow > (2 * ROCSizeInX - 1))
180 throw cms::Exception(
"PPSPixelTopology") <<
" pixel row number exceeding limit";
193 throw cms::Exception(
"PPSPixelTopology") <<
"pixel out of reference frame";
200 column = ROCSizeInY - 1;
206 column = 2 * ROCSizeInY - 1;
208 column = 2 * ROCSizeInY;
212 column = (3 * ROCSizeInY - 1);
261 s <<
"\n PPS Topology parameters : \n"
274 std::stringstream
ss;
unsigned int col(double y) const
void setPitchSimY(double psy)
void setThickness(double tss)
bool isPixelHit(float xLocalCoordinate, float yLocalCoordinate, bool is3x2) const
unsigned short pixelIndex(PixelInfo pI) const
double distanceFromRightActiveEdge(double x, double y) const
unsigned short getNoPixelsSimY() const
unsigned short getNoPixelsSimX() const
double getActiveEdgeY() const
void setActiveEdgeY(double aey)
double distanceFromBottomActiveEdge(double x, double y) const
double getPhysActiveEdgeDist() const
double getSimXWidth() const
std::string getRunType() const
std::ostream & operator<<(std::ostream &out, const ALILine &li)
PixelInfo getPixelsInvolved(double x, double y, double sigma, double &hit_pos_x, double &hit_pos_y) const
unsigned short no_of_pixels_simX_
void setActiveEdgeX(double aex)
void setDeadEdgeWidth(double dew)
void setPitchSimX(double psx)
double distanceFromTopActiveEdge(double x, double y) const
void setSimYWidth(double syw)
uint16_t const *__restrict__ x
double active_edge_sigma_
void setRunType(std::string rt)
double getPitchSimY() const
double activeEdgeFactor(double x, double y) const
double distanceFromLeftActiveEdge(double x, double y) const
void setNoPixelsSimY(unsigned short npy)
double phys_active_edge_dist_
unsigned int row(double x) const
void setSimXWidth(double sxw)
void printInfo(std::stringstream &s)
double getPitchSimX() const
void setPhysActiveEdgeDist(double pae)
void setNoPixelsSimX(unsigned short npx)
void index2RowCol(unsigned int &arow, unsigned int &acol, unsigned int index) const
double getThickness() const
void rowCol2Index(unsigned int arow, unsigned int acol, unsigned int &index) const
double getDeadEdgeWidth() const
unsigned short pixelColNo() const
double getActiveEdgeX() const
unsigned short getNoPixels() const
void setNoPixels(unsigned short np)
void pixelRange(unsigned int arow, unsigned int acol, double &lower_x, double &higher_x, double &lower_y, double &higher_y) const
unsigned short no_of_pixels_simY_
double getSimYWidth() const
unsigned short no_of_pixels_
unsigned short pixelRowNo() const
void setActiveEdgeSigma(double aes)
double getActiveEdgeSigma() const