1 #ifndef Geometry_TrackerGeometryBuilder_RectangularPixelPhase2Topology_H 2 #define Geometry_TrackerGeometryBuilder_RectangularPixelPhase2Topology_H 35 int BIG_PIX_PER_ROC_X,
36 int BIG_PIX_PER_ROC_Y,
37 float BIG_PIX_PITCH_X,
38 float BIG_PIX_PITCH_Y,
63 LogDebug(
"RectangularPixelPhase2Topology")
65 <<
", xoffset " <<
m_xoffset <<
", yoffset " <<
m_yoffset <<
", BIG_PIX_PER_ROC_X " << BIG_PIX_PER_ROC_X
66 <<
", BIG_PIX_PER_ROC_Y " << BIG_PIX_PER_ROC_Y <<
", BIG_PIX_PITCH_X " << BIG_PIX_PITCH_X
67 <<
", BIG_PIX_PITCH_Y " << BIG_PIX_PITCH_Y <<
", ROWS_PER_ROC " << ROWS_PER_ROC <<
", COLS_PER_ROC " 68 << COLS_PER_ROC <<
", ROCS_X " << ROCS_X <<
", ROCS_Y " << ROCS_Y <<
"\nNROWS " <<
m_ROWS_PER_ROC *
m_ROCS_X 78 std::pair<float, float>
p =
pixel(lp);
96 std::pair<float, float>
p =
pixel(lp);
103 float localX(
const float mpX)
const override;
104 float localY(
const float mpY)
const override;
114 return !no_big_pixel;
122 return !no_big_pixel;
217 auto firstBigPixel = nPxTot / 2 - nPxBigPerROC;
218 auto lastBigPixel = nPxTot / 2 - 1 + nPxBigPerROC;
224 bool noBigPixel = (nPxBigPerROC == 0) || (iMin > lastBigPixel) || (iMax < firstBigPixel);
int nrows() const override
int rocsX() const override
int rowsperroc() const override
float localX(const float mpX) const override
float pixelFractionInX(const int ixbin) const override
int bigpixperrocX() const
bool containsBigPixelInX(int ixmin, int ixmax) const override
int bigpixperrocY() const
bool isItBigPixelInY(const int iybin) const override
int channel(const LocalPoint &lp) const override
bool bigpixelsY() const override
MeasurementPoint measurementPosition(const LocalPoint &lp) const override
MeasurementError measurementError(const LocalPoint &, const LocalError &) const override
RectangularPixelPhase2Topology(int nrows, int ncols, float pitchx, float pitchy, int ROWS_PER_ROC, int COLS_PER_ROC, int BIG_PIX_PER_ROC_X, int BIG_PIX_PER_ROC_Y, float BIG_PIX_PITCH_X, float BIG_PIX_PITCH_Y, int ROCS_X, int ROCS_Y)
bool containsBigPixelInY(int iymin, int iymax) const override
bool isItEdgePixelInX(int ixbin) const override
int rocsY() const override
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
bool isItEdgePixel(int ixbin, int iybin) const override
Abs< T >::type abs(const T &t)
std::pair< float, float > pixel(const LocalPoint &p) const override
bool isItEdgePixelInY(int iybin) const override
int colsperroc() const override
bool bigpixelsX() const override
LocalPoint localPosition(const MeasurementPoint &mp) const override
bool isItBigPixelInX(const int ixbin) const override
bool containsBigPixel(int iMin, int iMax, int nPxTot, int nPxBigPerROC) const
float pixelFractionInY(const int iybin) const override
float localY(const float mpY) const override
static int pixelToChannel(int row, int col)
std::pair< float, float > pitch() const override
LocalError localError(const MeasurementPoint &, const MeasurementError &) const override
float pitchbigpixelX() const
float pitchbigpixelY() const
int ncolumns() const override