Back to home page

Project CMSSW displayed by LXR

 
 

    


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  * Interface for all pixel topologies  
0008  */
0009 
0010 class PixelTopology : public Topology {
0011 public:
0012   ////explicit PixelTopology( DetType* d) : Topology(d) {}
0013   ~PixelTopology() override {}
0014 
0015   //  The following methods are moved to the base class (Topology)
0016 
0017   //  virtual LocalPoint local_position( float channel) const = 0;
0018   //  virtual LocalError local_error( float err) const = 0;
0019   //  virtual int channel( const LocalPoint& p) const = 0;
0020 
0021   virtual std::pair<float, float> pixel(const LocalPoint &p) const = 0;
0022 
0023   /// conversion taking also the angle from the track state
0024   virtual std::pair<float, float> pixel(const LocalPoint &p, const Topology::LocalTrackAngles & /*ltp*/) 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 & /*trk*/) const { return localX(mpX); }
0042   virtual float localY(const float mpY, const Topology::LocalTrackPred & /*trk*/) 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