File indexing completed on 2024-05-22 04:03:02
0001 #ifndef Geometry_CommonTopologies_PixelTopology_H
0002 #define Geometry_CommonTopologies_PixelTopology_H
0003
0004 #include "Geometry/CommonTopologies/interface/Topology.h"
0005
0006
0007
0008
0009
0010 class PixelTopology : public Topology {
0011 public:
0012
0013 ~PixelTopology() override {}
0014
0015
0016
0017
0018
0019
0020
0021 virtual std::pair<float, float> pixel(const LocalPoint &p) const = 0;
0022
0023
0024 virtual std::pair<float, float> pixel(const LocalPoint &p, const Topology::LocalTrackAngles & ) const {
0025 return pixel(p);
0026 }
0027
0028 virtual std::pair<float, float> pitch() const = 0;
0029 virtual int nrows() const = 0;
0030 virtual int ncolumns() const = 0;
0031
0032 virtual int rocsY() const = 0;
0033 virtual int rocsX() const = 0;
0034 virtual int rowsperroc() const = 0;
0035 virtual int colsperroc() const = 0;
0036 virtual bool bigpixelsX() const = 0;
0037 virtual bool bigpixelsY() const = 0;
0038
0039 virtual float localX(float mpX) const = 0;
0040 virtual float localY(float mpY) const = 0;
0041 virtual float localX(const float mpX, const Topology::LocalTrackPred & ) const { return localX(mpX); }
0042 virtual float localY(const float mpY, const Topology::LocalTrackPred & ) const { return localY(mpY); }
0043
0044 virtual bool isItBigPixelInX(int ixbin) const = 0;
0045 virtual bool isItBigPixelInY(int iybin) const = 0;
0046 virtual float pixelFractionInX(int ixbin) const = 0;
0047 virtual float pixelFractionInY(int iybin) const = 0;
0048 virtual bool containsBigPixelInX(int ixmin, int ixmax) const = 0;
0049 virtual bool containsBigPixelInY(int iymin, int iymax) const = 0;
0050
0051 virtual bool isItEdgePixelInX(int ixbin) const = 0;
0052 virtual bool isItEdgePixelInY(int iybin) const = 0;
0053 virtual bool isItEdgePixel(int ixbin, int iybin) const = 0;
0054 };
0055
0056 #endif