CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ProxyStripTopology.h
Go to the documentation of this file.
1 #ifndef Geometry_TrackerTopology_ProxyStripTopology_H
2 #define Geometry_TrackerTopology_ProxyStripTopology_H
3 
15 //
26 
30 class Plane;
31 
32 class ProxyStripTopology final : public StripTopology {
33 public:
35 
36  LocalPoint localPosition(const MeasurementPoint& mp) const override { return specificTopology().localPosition(mp); }
38  LocalPoint localPosition(const MeasurementPoint& mp, const Topology::LocalTrackPred& trkPred) const override;
39 
40  LocalPoint localPosition(float strip) const override { return specificTopology().localPosition(strip); }
42  LocalPoint localPosition(float strip, const Topology::LocalTrackPred& trkPred) const override;
43 
44  LocalError localError(float strip, float stripErr2) const override {
45  return specificTopology().localError(strip, stripErr2);
46  }
48  LocalError localError(float strip, float stripErr2, const Topology::LocalTrackPred& trkPred) const override;
49 
50  LocalError localError(const MeasurementPoint& mp, const MeasurementError& me) const override {
51  return specificTopology().localError(mp, me);
52  }
55  const MeasurementError& me,
56  const Topology::LocalTrackPred& trkPred) const override;
57 
58  MeasurementPoint measurementPosition(const LocalPoint& lp) const override {
60  }
62 
63  MeasurementError measurementError(const LocalPoint& lp, const LocalError& le) const override {
64  return specificTopology().measurementError(lp, le);
65  }
67  const LocalError& le,
68  const Topology::LocalTrackAngles& dir) const override;
69 
70  int channel(const LocalPoint& lp) const override { return specificTopology().channel(lp); }
71  int channel(const LocalPoint& lp, const Topology::LocalTrackAngles& dir) const override;
72 
73  float strip(const LocalPoint& lp) const override { return specificTopology().strip(lp); }
75  float strip(const LocalPoint& lp, const Topology::LocalTrackAngles& dir) const override;
76 
77  float coveredStrips(const LocalPoint& lp1, const LocalPoint& lp2) const override {
78  return specificTopology().coveredStrips(lp1, lp2);
79  }
80 
81  float pitch() const override { return specificTopology().pitch(); }
82  float localPitch(const LocalPoint& lp) const override { return specificTopology().localPitch(lp); }
84  float localPitch(const LocalPoint& lp, const Topology::LocalTrackAngles& dir) const override;
85 
86  float stripAngle(float strip) const override { return specificTopology().stripAngle(strip); }
87 
88  int nstrips() const override { return specificTopology().nstrips(); }
89 
90  float stripLength() const override { return specificTopology().stripLength(); }
91  float localStripLength(const LocalPoint& lp) const override { return specificTopology().localStripLength(lp); }
92  float localStripLength(const LocalPoint& lp, const Topology::LocalTrackAngles& dir) const override;
93 
94  virtual const GeomDetType& type() const { return *theType; }
95  virtual StripGeomDetType const& specificType() const { return *theType; }
96 
97  const SurfaceDeformation* surfaceDeformation() const { return theSurfaceDeformation.operator->(); }
98  virtual void setSurfaceDeformation(const SurfaceDeformation* deformation);
99 
100  virtual const StripTopology& specificTopology() const { return specificType().specificTopology(); }
101 
102 private:
106  const Topology::LocalTrackAngles& dir) const;
110 
113  std::unique_ptr<const SurfaceDeformation> theSurfaceDeformation;
114 };
115 
116 #endif
LocalError localError(float strip, float stripErr2) const override
virtual int nstrips() const =0
virtual const StripTopology & specificTopology() const
std::unique_ptr< const SurfaceDeformation > theSurfaceDeformation
float localStripLength(const LocalPoint &lp) const override
virtual float stripAngle(float strip) const =0
float pitch() const override
LocalPoint localPosition(const MeasurementPoint &mp) const override
virtual float coveredStrips(const LocalPoint &lp1, const LocalPoint &lp2) const
Definition: StripTopology.h:36
LocalError localError(const MeasurementPoint &mp, const MeasurementError &me) const override
ProxyStripTopology(StripGeomDetType const *type, Plane *bp)
virtual const GeomDetType & type() const
int nstrips() const override
Definition: Plane.h:16
virtual float strip(const LocalPoint &) const =0
MeasurementError measurementError(const LocalPoint &lp, const LocalError &le) const override
virtual float localPitch(const LocalPoint &) const =0
virtual float stripLength() const =0
float stripLength() const override
float coveredStrips(const LocalPoint &lp1, const LocalPoint &lp2) const override
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
float localPitch(const LocalPoint &lp) const override
virtual const TopologyType & specificTopology() const
virtual int channel(const LocalPoint &p) const =0
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
float strip(const LocalPoint &lp) const override
int channel(const LocalPoint &lp) const override
MeasurementPoint measurementPosition(const LocalPoint &lp) const override
const SurfaceDeformation * surfaceDeformation() const
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
LocalPoint localPosition(float strip) const override
StripGeomDetType const * theType
virtual LocalError localError(float strip, float stripErr2) const =0
virtual StripGeomDetType const & specificType() const
virtual float localStripLength(const LocalPoint &aLP) const =0
virtual float pitch() const =0
virtual LocalPoint localPosition(float strip) const =0
virtual void setSurfaceDeformation(const SurfaceDeformation *deformation)
float stripAngle(float strip) const override