1 #ifndef Geometry_TrackerGeometryBuilder_RectangularPixelTopology_H
2 #define Geometry_TrackerGeometryBuilder_RectangularPixelTopology_H
41 const float EPS = 0.001;
42 const float EPSCM = 0.00001;
59 m_nrows(nrows), m_ncols(ncols),
60 m_pitchx(pitchx), m_pitchy(pitchy) {
74 <<m_nrows<<
" "<<m_ncols<<
" "
75 <<m_pitchx<<
" "<<m_pitchy<<
" "<<m_xoffset<<
" "<<m_yoffset
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 {
147 return std::pair<float,float>( float(m_pitchx), float(m_pitchy));
virtual bool containsBigPixelInX(const int &ixmin, const int &ixmax) const =0
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
static const int COLS_PER_ROC
virtual MeasurementPoint measurementPosition(const LocalPoint &lp) const
static const int BIG_PIX_PER_ROC_Y
virtual bool isItBigPixelInX(const int ixbin) const
virtual bool isItBigPixelInY(const int iybin) const
static const int ROWS_PER_ROC
static const int BIG_PIX_PER_ROC_X
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
virtual bool isItEdgePixelInX(int ixbin) const =0
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
virtual std::pair< float, float > pixel(const LocalPoint &p) const =0
virtual bool containsBigPixelInY(const int &iymin, const int &iymax) const =0
virtual int channel(const LocalPoint &lp) const
virtual float localX(const float mpX) const =0
bool isItEdgePixelInY(int iybin) const
virtual LocalError localError(const MeasurementPoint &, const MeasurementError &) const =0
virtual int nrows() const
virtual int ncolumns() const
RectangularPixelTopology(int nrows, int ncols, float pitchx, float pitchy)
virtual bool isItEdgePixelInY(int iybin) const =0
static int pixelToChannel(int row, int col)
virtual std::pair< float, float > pitch() const
bool isItEdgePixel(int ixbin, int iybin) const
bool isItEdgePixelInX(int ixbin) const
virtual float localY(const float mpY) const =0