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;
double distanceFromBottomActiveEdge(double x, double y) const
void setPitchSimY(double psy)
void setThickness(double tss)
unsigned short pixelColNo() const
unsigned int col(double y) const
double distanceFromTopActiveEdge(double x, double y) const
double getPitchSimY() const
void setActiveEdgeY(double aey)
double distanceFromRightActiveEdge(double x, double y) const
double getPitchSimX() const
double getDeadEdgeWidth() const
double getActiveEdgeX() const
unsigned int row(double x) const
double getActiveEdgeSigma() const
bool isPixelHit(float xLocalCoordinate, float yLocalCoordinate, bool is3x2) const
unsigned short no_of_pixels_simX_
void setActiveEdgeX(double aex)
void setDeadEdgeWidth(double dew)
void setPitchSimX(double psx)
double activeEdgeFactor(double x, double y) const
double getSimXWidth() const
void setSimYWidth(double syw)
double active_edge_sigma_
void setRunType(std::string rt)
unsigned short getNoPixels() const
double distanceFromLeftActiveEdge(double x, double y) const
unsigned short getNoPixelsSimY() const
std::ostream & operator<<(std::ostream &os, PPSPixelTopology info)
void pixelRange(unsigned int arow, unsigned int acol, double &lower_x, double &higher_x, double &lower_y, double &higher_y) const
unsigned short pixelRowNo() const
void index2RowCol(unsigned int &arow, unsigned int &acol, unsigned int index) const
unsigned short pixelIndex(PixelInfo pI) const
void setNoPixelsSimY(unsigned short npy)
double phys_active_edge_dist_
void setSimXWidth(double sxw)
void printInfo(std::stringstream &s)
double getActiveEdgeY() const
void setPhysActiveEdgeDist(double pae)
PixelInfo getPixelsInvolved(double x, double y, double sigma, double &hit_pos_x, double &hit_pos_y) const
void setNoPixelsSimX(unsigned short npx)
void rowCol2Index(unsigned int arow, unsigned int acol, unsigned int &index) const
double getSimYWidth() const
std::string getRunType() const
void setNoPixels(unsigned short np)
unsigned short getNoPixelsSimX() const
unsigned short no_of_pixels_simY_
double getPhysActiveEdgeDist() const
unsigned short no_of_pixels_
void setActiveEdgeSigma(double aes)
double getThickness() const