CMS 3D CMS Logo

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 #include <memory>
31 
32 class Plane;
33 
34 class ProxyStripTopology final : public StripTopology {
35 public:
37 
38  LocalPoint localPosition(const MeasurementPoint& mp) const override { return specificTopology().localPosition(mp); }
40  LocalPoint localPosition(const MeasurementPoint& mp, const Topology::LocalTrackPred& trkPred) const override;
41 
42  LocalPoint localPosition(float strip) const override { return specificTopology().localPosition(strip); }
44  LocalPoint localPosition(float strip, const Topology::LocalTrackPred& trkPred) const override;
45 
46  LocalError localError(float strip, float stripErr2) const override {
47  return specificTopology().localError(strip, stripErr2);
48  }
50  LocalError localError(float strip, float stripErr2, const Topology::LocalTrackPred& trkPred) const override;
51 
52  LocalError localError(const MeasurementPoint& mp, const MeasurementError& me) const override {
53  return specificTopology().localError(mp, me);
54  }
57  const MeasurementError& me,
58  const Topology::LocalTrackPred& trkPred) const override;
59 
60  MeasurementPoint measurementPosition(const LocalPoint& lp) const override {
62  }
64 
65  MeasurementError measurementError(const LocalPoint& lp, const LocalError& le) const override {
66  return specificTopology().measurementError(lp, le);
67  }
69  const LocalError& le,
70  const Topology::LocalTrackAngles& dir) const override;
71 
72  int channel(const LocalPoint& lp) const override { return specificTopology().channel(lp); }
73  int channel(const LocalPoint& lp, const Topology::LocalTrackAngles& dir) const override;
74 
75  float strip(const LocalPoint& lp) const override { return specificTopology().strip(lp); }
77  float strip(const LocalPoint& lp, const Topology::LocalTrackAngles& dir) const override;
78 
79  float coveredStrips(const LocalPoint& lp1, const LocalPoint& lp2) const override {
80  return specificTopology().coveredStrips(lp1, lp2);
81  }
82 
83  float pitch() const override { return specificTopology().pitch(); }
84  float localPitch(const LocalPoint& lp) const override { return specificTopology().localPitch(lp); }
86  float localPitch(const LocalPoint& lp, const Topology::LocalTrackAngles& dir) const override;
87 
88  float stripAngle(float strip) const override { return specificTopology().stripAngle(strip); }
89 
90  int nstrips() const override { return specificTopology().nstrips(); }
91 
92  float stripLength() const override { return specificTopology().stripLength(); }
93  float localStripLength(const LocalPoint& lp) const override { return specificTopology().localStripLength(lp); }
94  float localStripLength(const LocalPoint& lp, const Topology::LocalTrackAngles& dir) const override;
95 
96  virtual const GeomDetType& type() const { return *theType; }
97  virtual StripGeomDetType const& specificType() const { return *theType; }
98 
99  const SurfaceDeformation* surfaceDeformation() const { return theSurfaceDeformation.operator->(); }
100  virtual void setSurfaceDeformation(const SurfaceDeformation* deformation);
101 
102  virtual const StripTopology& specificTopology() const { return specificType().specificTopology(); }
103 
104 private:
108  const Topology::LocalTrackAngles& dir) const;
112 
115  std::unique_ptr<const SurfaceDeformation> theSurfaceDeformation;
116 };
117 
118 #endif
LocalError localError(float strip, float stripErr2) const override
virtual int nstrips() const =0
const SurfaceDeformation * surfaceDeformation() 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
LocalError localError(const MeasurementPoint &mp, const MeasurementError &me) const override
ProxyStripTopology(StripGeomDetType const *type, Plane *bp)
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 StripGeomDetType const & specificType() const
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 int channel(const LocalPoint &p) const =0
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
float strip(const LocalPoint &lp) const override
virtual const TopologyType & specificTopology() const
virtual float coveredStrips(const LocalPoint &lp1, const LocalPoint &lp2) const
Definition: StripTopology.h:36
int channel(const LocalPoint &lp) const override
MeasurementPoint measurementPosition(const LocalPoint &lp) const override
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 const StripTopology & specificTopology() const
virtual const GeomDetType & type() 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