CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
ProxyStripTopology Class Referencefinal

#include <ProxyStripTopology.h>

Inheritance diagram for ProxyStripTopology:
StripTopology Topology

Public Member Functions

int channel (const LocalPoint &lp) const override
 
int channel (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const override
 conversion taking also the angle from the track state More...
 
float coveredStrips (const LocalPoint &lp1, const LocalPoint &lp2) const override
 
LocalError localError (float strip, float stripErr2) const override
 
LocalError localError (float strip, float stripErr2, const Topology::LocalTrackPred &trkPred) const override
 conversion taking also the predicted track state More...
 
LocalError localError (const MeasurementPoint &mp, const MeasurementError &me) const override
 
LocalError localError (const MeasurementPoint &mp, const MeasurementError &me, const Topology::LocalTrackPred &trkPred) const override
 conversion taking also the predicted track state More...
 
float localPitch (const LocalPoint &lp) const override
 
float localPitch (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const override
 conversion taking also the angle from the track state (LocalTrajectoryParameters) More...
 
LocalPoint localPosition (const MeasurementPoint &mp) const override
 
LocalPoint localPosition (const MeasurementPoint &mp, const Topology::LocalTrackPred &trkPred) const override
 conversion taking also the predicted track state More...
 
LocalPoint localPosition (float strip) const override
 
LocalPoint localPosition (float strip, const Topology::LocalTrackPred &trkPred) const override
 conversion taking also the predicted track state More...
 
float localStripLength (const LocalPoint &lp) const override
 
float localStripLength (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const override
 conversion taking also the angle from the track state (LocalTrajectoryParameters) More...
 
MeasurementError measurementError (const LocalPoint &lp, const LocalError &le) const override
 
MeasurementError measurementError (const LocalPoint &lp, const LocalError &le, const Topology::LocalTrackAngles &dir) const override
 conversion taking also the angle from the track state More...
 
MeasurementPoint measurementPosition (const LocalPoint &lp) const override
 
MeasurementPoint measurementPosition (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const override
 conversion taking also the angle from the track state More...
 
int nstrips () const override
 
float pitch () const override
 
 ProxyStripTopology (StripGeomDetType const *type, Plane *bp)
 
virtual void setSurfaceDeformation (const SurfaceDeformation *deformation)
 
virtual const StripTopologyspecificTopology () const
 
virtual StripGeomDetType const & specificType () const
 
float strip (const LocalPoint &lp) const override
 
float strip (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const override
 conversion taking also the track state (LocalTrajectoryParameters) More...
 
float stripAngle (float strip) const override
 
float stripLength () const override
 
const SurfaceDeformationsurfaceDeformation () const
 
virtual const GeomDetTypetype () const
 
- Public Member Functions inherited from StripTopology
virtual LocalError localError (const MeasurementPoint &, const MeasurementError &) const=0
 
virtual LocalError localError (const MeasurementPoint &mp, const MeasurementError &me, const LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
virtual LocalPoint localPosition (const MeasurementPoint &) const=0
 
virtual LocalPoint localPosition (const MeasurementPoint &mp, const LocalTrackPred &) const
 conversion taking also the angle from the predicted track state More...
 
 ~StripTopology () override
 
- Public Member Functions inherited from Topology
virtual ~Topology ()
 

Private Member Functions

SurfaceDeformation::Local2DVector positionCorrection (const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
 
SurfaceDeformation::Local2DVector positionCorrection (const Topology::LocalTrackPred &trk) const
 

Private Attributes

float theLength
 
std::unique_ptr< const SurfaceDeformationtheSurfaceDeformation
 
StripGeomDetType const * theType
 
float theWidth
 

Additional Inherited Members

- Public Types inherited from Topology
typedef Point2DBase< double, LocalTagLocal2DPoint
 
typedef Vector2D::MathVector MathVector2D
 
typedef Basic2DVector< double > Vector2D
 

Detailed Description

Definition at line 32 of file ProxyStripTopology.h.

Constructor & Destructor Documentation

◆ ProxyStripTopology()

ProxyStripTopology::ProxyStripTopology ( StripGeomDetType const *  type,
Plane bp 
)

Definition at line 8 of file ProxyStripTopology.cc.

9  : theType(type), theLength(bp->bounds().length()), theWidth(bp->bounds().width()) {}
virtual float length() const =0
StripGeomDetType const * theType
virtual float width() const =0
const Bounds & bounds() const
Definition: Surface.h:87

Member Function Documentation

◆ channel() [1/2]

int ProxyStripTopology::channel ( const LocalPoint lp) const
inlineoverridevirtual

Implements Topology.

Definition at line 70 of file ProxyStripTopology.h.

References Topology::channel(), and specificTopology().

70 { return specificTopology().channel(lp); }
virtual int channel(const LocalPoint &p) const =0
virtual const StripTopology & specificTopology() const

◆ channel() [2/2]

int ProxyStripTopology::channel ( const LocalPoint lp,
const Topology::LocalTrackAngles  
) const
overridevirtual

conversion taking also the angle from the track state

Reimplemented from Topology.

Definition at line 118 of file ProxyStripTopology.cc.

References Topology::channel(), alignCSCRings::corr, DeadROC_duringRun::dir, positionCorrection(), specificTopology(), surfaceDeformation(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

118  {
119  if (!this->surfaceDeformation())
120  return specificTopology().channel(lp);
121 
122  // subtract correction from SurfaceDeformation
124  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
125 
126  return specificTopology().channel(posOrig);
127 }
const SurfaceDeformation * surfaceDeformation() const
T z() const
Definition: PV3DBase.h:61
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
dictionary corr
virtual int channel(const LocalPoint &p) const =0
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const

◆ coveredStrips()

float ProxyStripTopology::coveredStrips ( const LocalPoint lp1,
const LocalPoint lp2 
) const
inlineoverridevirtual

Reimplemented from StripTopology.

Definition at line 77 of file ProxyStripTopology.h.

References StripTopology::coveredStrips(), and specificTopology().

77  {
78  return specificTopology().coveredStrips(lp1, lp2);
79  }
virtual float coveredStrips(const LocalPoint &lp1, const LocalPoint &lp2) const
Definition: StripTopology.h:36
virtual const StripTopology & specificTopology() const

◆ localError() [1/4]

LocalError ProxyStripTopology::localError ( float  strip,
float  stripErr2 
) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 44 of file ProxyStripTopology.h.

References StripTopology::localError(), specificTopology(), and strip().

44  {
45  return specificTopology().localError(strip, stripErr2);
46  }
float strip(const LocalPoint &lp) const override
virtual LocalError localError(float strip, float stripErr2) const =0
virtual const StripTopology & specificTopology() const

◆ localError() [2/4]

LocalError ProxyStripTopology::localError ( float  strip,
float  stripErr2,
const Topology::LocalTrackPred trkPred 
) const
overridevirtual

conversion taking also the predicted track state

Reimplemented from StripTopology.

Definition at line 67 of file ProxyStripTopology.cc.

References StripTopology::localError(), specificTopology(), and strip().

67  {
68  // 'strip' is from measurement frame and the topology knows to
69  // calculate the cartesian error.
70  // But assuming no uncertainty on the SurfaceDeformation variables,
71  // the errors do not change from a simple shift to compensate
72  // that the track 'sees' the surface at another place than it thinks...
73 
74  // In case of TwoBowedSurfacesDeformation one could add corrections here due to
75  // relative rotations of the sensors...
76  return specificTopology().localError(strip, stripErr2);
77 }
float strip(const LocalPoint &lp) const override
virtual LocalError localError(float strip, float stripErr2) const =0
virtual const StripTopology & specificTopology() const

◆ localError() [3/4]

LocalError ProxyStripTopology::localError ( const MeasurementPoint mp,
const MeasurementError me 
) const
inlineoverridevirtual

Implements Topology.

Definition at line 50 of file ProxyStripTopology.h.

References StripTopology::localError(), hlt_dqm_clientPB-live_cfg::me, and specificTopology().

50  {
51  return specificTopology().localError(mp, me);
52  }
virtual LocalError localError(float strip, float stripErr2) const =0
virtual const StripTopology & specificTopology() const

◆ localError() [4/4]

LocalError ProxyStripTopology::localError ( const MeasurementPoint mp,
const MeasurementError me,
const Topology::LocalTrackPred trkPred 
) const
overridevirtual

conversion taking also the predicted track state

Reimplemented from Topology.

Definition at line 80 of file ProxyStripTopology.cc.

References StripTopology::localError(), hlt_dqm_clientPB-live_cfg::me, and specificTopology().

82  {
83  // See comment in localError(float strip, float stripErr2,
84  // const Topology::LocalTrackPred &trkPred)!
85  return specificTopology().localError(mp, me);
86 }
virtual LocalError localError(float strip, float stripErr2) const =0
virtual const StripTopology & specificTopology() const

◆ localPitch() [1/2]

float ProxyStripTopology::localPitch ( const LocalPoint lp) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 82 of file ProxyStripTopology.h.

References StripTopology::localPitch(), and specificTopology().

82 { return specificTopology().localPitch(lp); }
virtual float localPitch(const LocalPoint &) const =0
virtual const StripTopology & specificTopology() const

◆ localPitch() [2/2]

float ProxyStripTopology::localPitch ( const LocalPoint lp,
const Topology::LocalTrackAngles dir 
) const
overridevirtual

conversion taking also the angle from the track state (LocalTrajectoryParameters)

Reimplemented from StripTopology.

Definition at line 142 of file ProxyStripTopology.cc.

References alignCSCRings::corr, DeadROC_duringRun::dir, StripTopology::localPitch(), positionCorrection(), specificTopology(), surfaceDeformation(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

142  {
143  if (!this->surfaceDeformation())
144  return specificTopology().localPitch(lp);
145 
146  // subtract correction from SurfaceDeformation
148  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
149 
150  return specificTopology().localPitch(posOrig);
151 }
const SurfaceDeformation * surfaceDeformation() const
T z() const
Definition: PV3DBase.h:61
T x() const
Definition: PV3DBase.h:59
virtual float localPitch(const LocalPoint &) const =0
T y() const
Definition: PV3DBase.h:60
dictionary corr
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const

◆ localPosition() [1/4]

LocalPoint ProxyStripTopology::localPosition ( const MeasurementPoint mp) const
inlineoverridevirtual

Implements Topology.

Definition at line 36 of file ProxyStripTopology.h.

References StripTopology::localPosition(), and specificTopology().

Referenced by localPosition().

36 { return specificTopology().localPosition(mp); }
virtual const StripTopology & specificTopology() const
virtual LocalPoint localPosition(float strip) const =0

◆ localPosition() [2/4]

LocalPoint ProxyStripTopology::localPosition ( const MeasurementPoint mp,
const Topology::LocalTrackPred trkPred 
) const
overridevirtual

conversion taking also the predicted track state

Reimplemented from Topology.

Definition at line 27 of file ProxyStripTopology.cc.

References alignCSCRings::corr, StripTopology::localPosition(), localPosition(), positionCorrection(), specificTopology(), surfaceDeformation(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

28  {
29  if (!this->surfaceDeformation())
30  return specificTopology().localPosition(mp);
31 
32  // add correction from SurfaceDeformation
33  const LocalPoint posOld(specificTopology().localPosition(mp)); // 'original position'
35 
36  return LocalPoint(posOld.x() + corr.x(), posOld.y() + corr.y(), posOld.z());
37 }
const SurfaceDeformation * surfaceDeformation() const
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:30
LocalPoint localPosition(const MeasurementPoint &mp) const override
dictionary corr
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const
virtual LocalPoint localPosition(float strip) const =0

◆ localPosition() [3/4]

LocalPoint ProxyStripTopology::localPosition ( float  strip) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 40 of file ProxyStripTopology.h.

References StripTopology::localPosition(), specificTopology(), and strip().

float strip(const LocalPoint &lp) const override
virtual const StripTopology & specificTopology() const
virtual LocalPoint localPosition(float strip) const =0

◆ localPosition() [4/4]

LocalPoint ProxyStripTopology::localPosition ( float  strip,
const Topology::LocalTrackPred trkPred 
) const
overridevirtual

conversion taking also the predicted track state

Reimplemented from StripTopology.

Definition at line 55 of file ProxyStripTopology.cc.

References alignCSCRings::corr, StripTopology::localPosition(), localPosition(), positionCorrection(), specificTopology(), strip(), surfaceDeformation(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

55  {
56  if (!this->surfaceDeformation())
58 
59  // add correction from SurfaceDeformation
61 
63  return LocalPoint(posOld.x() + corr.x(), posOld.y() + corr.y(), posOld.z());
64 }
const SurfaceDeformation * surfaceDeformation() const
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:30
LocalPoint localPosition(const MeasurementPoint &mp) const override
dictionary corr
float strip(const LocalPoint &lp) const override
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const
virtual LocalPoint localPosition(float strip) const =0

◆ localStripLength() [1/2]

float ProxyStripTopology::localStripLength ( const LocalPoint lp) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 91 of file ProxyStripTopology.h.

References StripTopology::localStripLength(), and specificTopology().

91 { return specificTopology().localStripLength(lp); }
virtual const StripTopology & specificTopology() const
virtual float localStripLength(const LocalPoint &aLP) const =0

◆ localStripLength() [2/2]

float ProxyStripTopology::localStripLength ( const LocalPoint lp,
const Topology::LocalTrackAngles  
) const
overridevirtual

conversion taking also the angle from the track state (LocalTrajectoryParameters)

Reimplemented from StripTopology.

Definition at line 154 of file ProxyStripTopology.cc.

References alignCSCRings::corr, DeadROC_duringRun::dir, StripTopology::localStripLength(), positionCorrection(), specificTopology(), surfaceDeformation(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

154  {
155  if (!this->surfaceDeformation())
156  return specificTopology().localStripLength(lp);
157 
158  // subtract correction from SurfaceDeformation
160  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
161 
162  return specificTopology().localStripLength(posOrig);
163 }
const SurfaceDeformation * surfaceDeformation() const
T z() const
Definition: PV3DBase.h:61
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
dictionary corr
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const
virtual float localStripLength(const LocalPoint &aLP) const =0

◆ measurementError() [1/2]

MeasurementError ProxyStripTopology::measurementError ( const LocalPoint lp,
const LocalError le 
) const
inlineoverridevirtual

Implements Topology.

Definition at line 63 of file ProxyStripTopology.h.

References Topology::measurementError(), and specificTopology().

63  {
64  return specificTopology().measurementError(lp, le);
65  }
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
virtual const StripTopology & specificTopology() const

◆ measurementError() [2/2]

MeasurementError ProxyStripTopology::measurementError ( const LocalPoint lp,
const LocalError le,
const Topology::LocalTrackAngles  
) const
overridevirtual

conversion taking also the angle from the track state

Reimplemented from Topology.

Definition at line 102 of file ProxyStripTopology.cc.

References alignCSCRings::corr, DeadROC_duringRun::dir, Topology::measurementError(), positionCorrection(), specificTopology(), surfaceDeformation(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

104  {
105  if (!this->surfaceDeformation())
106  return specificTopology().measurementError(lp, le);
107 
108  // assuming 'lp' comes from a track prediction
109  // (i.e. where the track thinks it hits the surface)
110  // we need to subtract correction from SurfaceDeformation
112  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
113 
114  return specificTopology().measurementError(posOrig, le);
115 }
const SurfaceDeformation * surfaceDeformation() const
T z() const
Definition: PV3DBase.h:61
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
dictionary corr
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const

◆ measurementPosition() [1/2]

MeasurementPoint ProxyStripTopology::measurementPosition ( const LocalPoint lp) const
inlineoverridevirtual

Implements Topology.

Definition at line 58 of file ProxyStripTopology.h.

References Topology::measurementPosition(), and specificTopology().

58  {
60  }
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
virtual const StripTopology & specificTopology() const

◆ measurementPosition() [2/2]

MeasurementPoint ProxyStripTopology::measurementPosition ( const LocalPoint lp,
const Topology::LocalTrackAngles  
) const
overridevirtual

conversion taking also the angle from the track state

Reimplemented from Topology.

Definition at line 89 of file ProxyStripTopology.cc.

References alignCSCRings::corr, DeadROC_duringRun::dir, Topology::measurementPosition(), positionCorrection(), specificTopology(), surfaceDeformation(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

90  {
91  if (!this->surfaceDeformation())
93 
94  // subtract correction from SurfaceDeformation
96  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
97 
98  return specificTopology().measurementPosition(posOrig);
99 }
const SurfaceDeformation * surfaceDeformation() const
T z() const
Definition: PV3DBase.h:61
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
dictionary corr
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const

◆ nstrips()

int ProxyStripTopology::nstrips ( ) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 88 of file ProxyStripTopology.h.

References StripTopology::nstrips(), and specificTopology().

88 { return specificTopology().nstrips(); }
virtual int nstrips() const =0
virtual const StripTopology & specificTopology() const

◆ pitch()

float ProxyStripTopology::pitch ( ) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 81 of file ProxyStripTopology.h.

References StripTopology::pitch(), and specificTopology().

81 { return specificTopology().pitch(); }
virtual const StripTopology & specificTopology() const
virtual float pitch() const =0

◆ positionCorrection() [1/2]

SurfaceDeformation::Local2DVector ProxyStripTopology::positionCorrection ( const LocalPoint pos,
const Topology::LocalTrackAngles dir 
) const
private

Internal method to get correction of the position from SurfaceDeformation, must not be called if 'theSurfaceDeformation' is a null pointer.

Definition at line 171 of file ProxyStripTopology.cc.

References DeadROC_duringRun::dir, SurfaceDeformation::positionCorrection(), surfaceDeformation(), theLength, and theWidth.

Referenced by channel(), localPitch(), localPosition(), localStripLength(), measurementError(), measurementPosition(), and strip().

172  {
173  const SurfaceDeformation::Local2DPoint pos2D(pos.x(), pos.y()); // change precision and dimension
174 
175  return this->surfaceDeformation()->positionCorrection(pos2D, dir, theLength, theWidth);
176 }
const SurfaceDeformation * surfaceDeformation() const
virtual Local2DVector positionCorrection(const Local2DPoint &localPos, const LocalTrackAngles &localAngles, double length, double width) const =0

◆ positionCorrection() [2/2]

SurfaceDeformation::Local2DVector ProxyStripTopology::positionCorrection ( const Topology::LocalTrackPred trk) const
private

Internal method to get correction of the position from SurfaceDeformation, must not be called if 'theSurfaceDeformation' is a null pointer.

Definition at line 179 of file ProxyStripTopology.cc.

References Topology::LocalTrackPred::angles(), Topology::LocalTrackPred::point(), SurfaceDeformation::positionCorrection(), surfaceDeformation(), theLength, and theWidth.

179  {
180  return this->surfaceDeformation()->positionCorrection(trk.point(), trk.angles(), theLength, theWidth);
181 }
const LocalTrackAngles & angles() const
Definition: Topology.h:65
const SurfaceDeformation * surfaceDeformation() const
const Local2DPoint & point() const
Definition: Topology.h:64
virtual Local2DVector positionCorrection(const Local2DPoint &localPos, const LocalTrackAngles &localAngles, double length, double width) const =0

◆ setSurfaceDeformation()

void ProxyStripTopology::setSurfaceDeformation ( const SurfaceDeformation deformation)
virtual

Definition at line 166 of file ProxyStripTopology.cc.

References theSurfaceDeformation.

166  {
167  theSurfaceDeformation.reset(deformation);
168 }
std::unique_ptr< const SurfaceDeformation > theSurfaceDeformation

◆ specificTopology()

virtual const StripTopology& ProxyStripTopology::specificTopology ( ) const
inlinevirtual

◆ specificType()

virtual StripGeomDetType const& ProxyStripTopology::specificType ( ) const
inlinevirtual

Definition at line 95 of file ProxyStripTopology.h.

References theType.

Referenced by specificTopology().

95 { return *theType; }
StripGeomDetType const * theType

◆ strip() [1/2]

float ProxyStripTopology::strip ( const LocalPoint lp) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 73 of file ProxyStripTopology.h.

References specificTopology(), and StripTopology::strip().

Referenced by localError(), localPosition(), and stripAngle().

73 { return specificTopology().strip(lp); }
virtual float strip(const LocalPoint &) const =0
virtual const StripTopology & specificTopology() const

◆ strip() [2/2]

float ProxyStripTopology::strip ( const LocalPoint lp,
const Topology::LocalTrackAngles dir 
) const
overridevirtual

conversion taking also the track state (LocalTrajectoryParameters)

Reimplemented from StripTopology.

Definition at line 130 of file ProxyStripTopology.cc.

References alignCSCRings::corr, DeadROC_duringRun::dir, positionCorrection(), specificTopology(), StripTopology::strip(), surfaceDeformation(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

130  {
131  if (!this->surfaceDeformation())
132  return specificTopology().strip(lp);
133 
134  // subtract correction from SurfaceDeformation
136  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
137 
138  return specificTopology().strip(posOrig);
139 }
const SurfaceDeformation * surfaceDeformation() const
T z() const
Definition: PV3DBase.h:61
virtual float strip(const LocalPoint &) const =0
T x() const
Definition: PV3DBase.h:59
T y() const
Definition: PV3DBase.h:60
dictionary corr
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const

◆ stripAngle()

float ProxyStripTopology::stripAngle ( float  strip) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 86 of file ProxyStripTopology.h.

References specificTopology(), strip(), and StripTopology::stripAngle().

86 { return specificTopology().stripAngle(strip); }
virtual float stripAngle(float strip) const =0
float strip(const LocalPoint &lp) const override
virtual const StripTopology & specificTopology() const

◆ stripLength()

float ProxyStripTopology::stripLength ( ) const
inlineoverridevirtual

Implements StripTopology.

Definition at line 90 of file ProxyStripTopology.h.

References specificTopology(), and StripTopology::stripLength().

90 { return specificTopology().stripLength(); }
virtual float stripLength() const =0
virtual const StripTopology & specificTopology() const

◆ surfaceDeformation()

const SurfaceDeformation* ProxyStripTopology::surfaceDeformation ( ) const
inline

Definition at line 97 of file ProxyStripTopology.h.

References theSurfaceDeformation.

Referenced by channel(), localPitch(), localPosition(), localStripLength(), measurementError(), measurementPosition(), positionCorrection(), and strip().

97 { return theSurfaceDeformation.operator->(); }
std::unique_ptr< const SurfaceDeformation > theSurfaceDeformation

◆ type()

virtual const GeomDetType& ProxyStripTopology::type ( ) const
inlinevirtual

Definition at line 94 of file ProxyStripTopology.h.

References theType.

94 { return *theType; }
StripGeomDetType const * theType

Member Data Documentation

◆ theLength

float ProxyStripTopology::theLength
private

Definition at line 112 of file ProxyStripTopology.h.

Referenced by positionCorrection().

◆ theSurfaceDeformation

std::unique_ptr<const SurfaceDeformation> ProxyStripTopology::theSurfaceDeformation
private

Definition at line 113 of file ProxyStripTopology.h.

Referenced by setSurfaceDeformation(), and surfaceDeformation().

◆ theType

StripGeomDetType const* ProxyStripTopology::theType
private

Definition at line 111 of file ProxyStripTopology.h.

Referenced by specificType(), and type().

◆ theWidth

float ProxyStripTopology::theWidth
private

Definition at line 112 of file ProxyStripTopology.h.

Referenced by positionCorrection().