CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/Geometry/CommonTopologies/interface/PixelTopology.h

Go to the documentation of this file.
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 float localX(const float mpX) const = 0;
00033   virtual float localY(const float mpY) const = 0;
00034   virtual float localX(const float mpX, const Topology::LocalTrackPred &trk) const { return localX(mpX); }
00035   virtual float localY(const float mpY, const Topology::LocalTrackPred &trk) const { return localY(mpY); }
00036 
00037   virtual bool isItBigPixelInX(const int ixbin) const = 0;
00038   virtual bool isItBigPixelInY(const int iybin) const = 0;
00039   virtual bool containsBigPixelInX(const int& ixmin, const int& ixmax) const = 0;
00040   virtual bool containsBigPixelInY(const int& iymin, const int& iymax) const = 0;
00041 
00042   virtual bool isItEdgePixelInX (int ixbin) const = 0;
00043   virtual bool isItEdgePixelInY (int iybin) const = 0;
00044   virtual bool isItEdgePixel (int ixbin, int iybin) const = 0;
00045 
00046 };
00047 
00048 #endif