1 #ifndef Geometry_TrackerGeometryBuilder_RectangularPixelTopology_H
2 #define Geometry_TrackerGeometryBuilder_RectangularPixelTopology_H
41 const float EPS = 0.001;
42 const float EPSCM = 0.00001;
87 std::pair<float,float>
p =
pixel(lp);
106 std::pair<float,float>
p =
pixel(lp);
113 virtual float localX(
const float mpX)
const;
114 virtual float localY(
const float mpY)
const;
120 return ( (ixbin == 79) || (ixbin == 80));
123 int iybin0 = iybin%52;
124 return ( (iybin0 == 0) || (iybin0 == 51));
135 return ( (ixbin == 0) || (ixbin == (
m_nrows-1)) );
138 return ( (iybin == 0) || (iybin == (
m_ncols-1)) );
146 virtual std::pair<float,float>
pitch()
const {
virtual float localY(const float mpY) const
bool isItEdgePixelInY(int iybin) const
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const
static const int ROWS_PER_ROC
virtual bool isItBigPixelInY(const int iybin) const
virtual std::pair< float, float > pitch() const
bool isItEdgePixelInX(int ixbin) const
bool containsBigPixelInY(const int &iymin, const int &iymax) const
virtual MeasurementPoint measurementPosition(const LocalPoint &lp) const
bool isItEdgePixel(int ixbin, int iybin) const
RectangularPixelTopology(int nrows, int ncols, float pitchx, float pitchy)
static const int BIG_PIX_PER_ROC_X
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
static const int COLS_PER_ROC
bool containsBigPixelInX(const int &ixmin, const int &ixmax) const
virtual int ncolumns() const
virtual LocalError localError(const MeasurementPoint &, const MeasurementError &) const
virtual int channel(const LocalPoint &lp) const
virtual LocalPoint localPosition(const MeasurementPoint &mp) const
virtual float localX(const float mpX) const
virtual std::pair< float, float > pixel(const LocalPoint &p) const
virtual bool isItBigPixelInX(const int ixbin) const
static int pixelToChannel(int row, int col)
static const int BIG_PIX_PER_ROC_Y
virtual int nrows() const