00001 #ifndef Geometry_CommonTopologies_PixelTopology_H 00002 #define Geometry_CommonTopologies_PixelTopology_H 00003 00004 #include "Geometry/CommonTopologies/interface/Topology.h" 00005 00010 class PixelTopology : public Topology { 00011 public: 00013 virtual ~PixelTopology() {} 00014 00015 // The following methods are moved to the base class (Topology) 00016 00017 // virtual LocalPoint local_position( float channel) const = 0; 00018 // virtual LocalError local_error( float err) const = 0; 00019 // virtual int channel( const LocalPoint& p) const = 0; 00020 00021 virtual std::pair<float,float> pixel( const LocalPoint& p) const = 0; 00022 00024 virtual std::pair<float,float> pixel( const LocalPoint& p, const Topology::LocalTrackAngles &/*ltp*/ ) const { 00025 return pixel(p); 00026 } 00027 00028 virtual std::pair<float,float> pitch() const = 0; 00029 virtual int nrows() const = 0; 00030 virtual int ncolumns() const = 0; 00031 00032 virtual int rocsY() const = 0; 00033 virtual int rocsX() const = 0; 00034 virtual int rowsperroc() const = 0; 00035 virtual int colsperroc() const = 0; 00036 00037 virtual float localX(const float mpX) const = 0; 00038 virtual float localY(const float mpY) const = 0; 00039 virtual float localX(const float mpX, const Topology::LocalTrackPred &/*trk*/) const { return localX(mpX); } 00040 virtual float localY(const float mpY, const Topology::LocalTrackPred &/*trk*/) const { return localY(mpY); } 00041 00042 virtual bool isItBigPixelInX(const int ixbin) const = 0; 00043 virtual bool isItBigPixelInY(const int iybin) const = 0; 00044 virtual bool containsBigPixelInX(const int& ixmin, const int& ixmax) const = 0; 00045 virtual bool containsBigPixelInY(const int& iymin, const int& iymax) const = 0; 00046 00047 virtual bool isItEdgePixelInX (int ixbin) const = 0; 00048 virtual bool isItEdgePixelInY (int iybin) const = 0; 00049 virtual bool isItEdgePixel (int ixbin, int iybin) const = 0; 00050 00051 }; 00052 00053 #endif