CMS 3D CMS Logo

ProxyMTDTopology.h
Go to the documentation of this file.
1 #ifndef Geometry_MTDGeometryBuilder_ProxyMTDTopology_H
2 #define Geometry_MTDGeometryBuilder_ProxyMTDTopology_H
3 
15 //
21 
25 
26 class Plane;
27 
28 class ProxyMTDTopology final : public PixelTopology {
29 public:
30 
31  ProxyMTDTopology( MTDGeomDetType const * type, Plane * bp );
32 
33  LocalPoint localPosition( const MeasurementPoint& ) const override;
36  const Topology::LocalTrackPred &trkPred ) const override;
37 
39  const MeasurementError& ) const override;
42  const MeasurementError& me,
43  const Topology::LocalTrackPred &trkPred ) const override;
44 
45  MeasurementPoint measurementPosition( const LocalPoint & ) const override;
47  const Topology::LocalTrackAngles &dir ) const override;
48 
49  MeasurementError measurementError( const LocalPoint &lp, const LocalError &le ) const override;
51  const Topology::LocalTrackAngles &dir ) const override;
52 
53  int channel( const LocalPoint& ) const override;
54  int channel( const LocalPoint &lp, const Topology::LocalTrackAngles &dir ) const override;
55 
56  std::pair<float,float> pixel( const LocalPoint& p) const override;
58  std::pair<float,float> pixel( const LocalPoint& p,
59  const Topology::LocalTrackAngles &ltp ) const override;
60 
61  std::pair<float,float> pitch() const override { return specificTopology().pitch(); }
62  int nrows() const override { return specificTopology().nrows(); }
63  int ncolumns() const override { return specificTopology().ncolumns(); }
64  int rocsY() const override { return specificTopology().rocsY(); }
65  int rocsX() const override { return specificTopology().rocsX(); }
66  int rowsperroc() const override { return specificTopology().rowsperroc(); }
67  int colsperroc() const override { return specificTopology().colsperroc(); }
68  float localX( const float mpX ) const override;
69  float localX( const float mpX, const Topology::LocalTrackPred &trkPred ) const override;
70  float localY( const float mpY ) const override;
71  float localY( const float mpY, const Topology::LocalTrackPred &trkPred ) const override;
72 
73  bool isItBigPixelInX(const int ixbin) const override {
74  return specificTopology().isItBigPixelInX(ixbin);
75  }
76  bool isItBigPixelInY(const int iybin) const override {
77  return specificTopology().isItBigPixelInY(iybin);
78  }
79  bool containsBigPixelInX(int ixmin, int ixmax) const override {
80  return specificTopology().containsBigPixelInX(ixmin, ixmax);
81  }
82  bool containsBigPixelInY(int iymin, int iymax) const override {
83  return specificTopology().containsBigPixelInY(iymin, iymax);
84  }
85 
86  bool isItEdgePixelInX(int ixbin) const override {
87  return specificTopology().isItEdgePixelInX(ixbin);
88  }
89  bool isItEdgePixelInY(int iybin) const override {
90  return specificTopology().isItEdgePixelInY(iybin);
91  }
92  bool isItEdgePixel(int ixbin, int iybin) const override {
93  return specificTopology().isItEdgePixel(ixbin, iybin);
94  }
95 
96  virtual const GeomDetType& type() const { return *theType;}
97 
98  virtual MTDGeomDetType const & specificType() const { return *theType; }
99 
101  return theSurfaceDeformation.operator->();
102  }
103  virtual void setSurfaceDeformation(const SurfaceDeformation * deformation);
104 
105 
106  virtual const PixelTopology& specificTopology() const { return specificType().specificTopology(); }
107 
108 private:
109 
118 
121  std::unique_ptr<const SurfaceDeformation> theSurfaceDeformation;
122 };
123 
124 #endif
type
Definition: HCALResponse.h:21
int ncolumns() const override
virtual int nrows() const =0
MeasurementPoint measurementPosition(const LocalPoint &) const override
virtual bool isItEdgePixel(int ixbin, int iybin) const =0
virtual int rowsperroc() const =0
bool isItEdgePixelInY(int iybin) const override
std::pair< float, float > pitch() const override
LocalPoint localPosition(const MeasurementPoint &) const override
virtual bool isItEdgePixelInX(int ixbin) const =0
bool isItBigPixelInY(const int iybin) const override
LocalError localError(const MeasurementPoint &, const MeasurementError &) const override
bool isItEdgePixel(int ixbin, int iybin) const override
bool isItBigPixelInX(const int ixbin) const override
int colsperroc() const override
virtual std::pair< float, float > pitch() const =0
virtual bool isItEdgePixelInY(int iybin) const =0
virtual int rocsX() const =0
virtual void setSurfaceDeformation(const SurfaceDeformation *deformation)
virtual bool isItBigPixelInX(int ixbin) const =0
bool containsBigPixelInX(int ixmin, int ixmax) const override
const SurfaceDeformation * surfaceDeformation() const
Definition: Plane.h:17
int nrows() const override
MTDGeomDetType const * theType
virtual int colsperroc() const =0
virtual bool containsBigPixelInX(int ixmin, int ixmax) const =0
virtual const PixelTopology & specificTopology() const
int rocsY() const override
virtual bool isItBigPixelInY(int iybin) const =0
virtual int rocsY() const =0
int channel(const LocalPoint &) const override
ProxyMTDTopology(MTDGeomDetType const *type, Plane *bp)
virtual const GeomDetType & type() const
bool isItEdgePixelInX(int ixbin) const override
float localX(const float mpX) const override
int rocsX() const override
int rowsperroc() const override
virtual MTDGeomDetType const & specificType() const
bool containsBigPixelInY(int iymin, int iymax) const override
std::unique_ptr< const SurfaceDeformation > theSurfaceDeformation
float localY(const float mpY) const override
virtual const TopologyType & specificTopology() const
virtual int ncolumns() const =0
MeasurementError measurementError(const LocalPoint &lp, const LocalError &le) const override
std::pair< float, float > pixel(const LocalPoint &p) const override
dbl *** dir
Definition: mlp_gen.cc:35
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual bool containsBigPixelInY(int iymin, int iymax) const =0