CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
ProxyStripTopology Class Reference

#include <ProxyStripTopology.h>

Inheritance diagram for ProxyStripTopology:
StripTopology Topology

Public Member Functions

virtual int channel (const LocalPoint &lp) const
 
virtual int channel (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const
 conversion taking also the angle from the track state More...
 
virtual LocalError localError (float strip, float stripErr2) const
 
virtual LocalError localError (float strip, float stripErr2, const Topology::LocalTrackPred &trkPred) const
 conversion taking also the predicted track state More...
 
virtual LocalError localError (const MeasurementPoint &mp, const MeasurementError &me) const
 
virtual LocalError localError (const MeasurementPoint &mp, const MeasurementError &me, const Topology::LocalTrackPred &trkPred) const
 conversion taking also the predicted track state More...
 
virtual float localPitch (const LocalPoint &lp) const
 
virtual float localPitch (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const
 conversion taking also the angle from the track state (LocalTrajectoryParameters) More...
 
virtual LocalPoint localPosition (const MeasurementPoint &mp) const
 
virtual LocalPoint localPosition (const MeasurementPoint &mp, const Topology::LocalTrackPred &trkPred) const
 conversion taking also the predicted track state More...
 
virtual LocalPoint localPosition (float strip) const
 
virtual LocalPoint localPosition (float strip, const Topology::LocalTrackPred &trkPred) const
 conversion taking also the predicted track state More...
 
virtual float localStripLength (const LocalPoint &lp) const
 
virtual float localStripLength (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const
 conversion taking also the angle from the track state (LocalTrajectoryParameters) More...
 
virtual MeasurementError measurementError (const LocalPoint &lp, const LocalError &le) const
 
virtual MeasurementError measurementError (const LocalPoint &lp, const LocalError &le, const Topology::LocalTrackAngles &dir) const
 conversion taking also the angle from the track state More...
 
virtual MeasurementPoint measurementPosition (const LocalPoint &lp) const
 
virtual MeasurementPoint measurementPosition (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const
 conversion taking also the angle from the track state More...
 
virtual int nstrips () const
 
virtual float pitch () const
 
 ProxyStripTopology (StripGeomDetType *type, BoundPlane *bp)
 
virtual void setSurfaceDeformation (const SurfaceDeformation *deformation)
 
virtual StripGeomDetTypespecificType () const
 
virtual float strip (const LocalPoint &lp) const
 
virtual float strip (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const
 conversion taking also the track state (LocalTrajectoryParameters) More...
 
virtual float stripAngle (float strip) const
 
virtual float stripLength () const
 
const SurfaceDeformationsurfaceDeformation () const
 
virtual const GeomDetTypetype () const
 
- Public Member Functions inherited from StripTopology
virtual ~StripTopology ()
 
- 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
 
virtual const StripTopologyspecificTopology () const
 

Private Attributes

float theLength
 
DeepCopyPointerByClone< const
SurfaceDeformation
theSurfaceDeformation
 
StripGeomDetTypetheType
 
float theWidth
 

Additional Inherited Members

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

Detailed Description

Definition at line 38 of file ProxyStripTopology.h.

Constructor & Destructor Documentation

ProxyStripTopology::ProxyStripTopology ( StripGeomDetType type,
BoundPlane bp 
)

Definition at line 8 of file ProxyStripTopology.cc.

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

Member Function Documentation

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

Implements Topology.

Definition at line 143 of file ProxyStripTopology.cc.

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

144 {
145  return specificTopology().channel(lp);
146 }
virtual int channel(const LocalPoint &p) const =0
virtual const StripTopology & specificTopology() const
int ProxyStripTopology::channel ( const LocalPoint lp,
const Topology::LocalTrackAngles  
) const
virtual

conversion taking also the angle from the track state

Reimplemented from Topology.

Definition at line 149 of file ProxyStripTopology.cc.

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

150 {
151  if (!this->surfaceDeformation()) return specificTopology().channel(lp);
152 
153  // subtract correction from SurfaceDeformation
155  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
156 
157  return specificTopology().channel(posOrig);
158 }
T y() const
Definition: PV3DBase.h:62
T z() const
Definition: PV3DBase.h:63
virtual int channel(const LocalPoint &p) const =0
JetCorrectorParameters corr
Definition: classes.h:9
const SurfaceDeformation * surfaceDeformation() const
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const
dbl *** dir
Definition: mlp_gen.cc:35
T x() const
Definition: PV3DBase.h:61
LocalError ProxyStripTopology::localError ( float  strip,
float  stripErr2 
) const
virtual

Implements StripTopology.

Definition at line 65 of file ProxyStripTopology.cc.

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

66 {
67  return specificTopology().localError(strip, stripErr2);
68 }
virtual float strip(const LocalPoint &lp) const
virtual LocalError localError(float strip, float stripErr2) const =0
virtual const StripTopology & specificTopology() const
LocalError ProxyStripTopology::localError ( float  strip,
float  stripErr2,
const Topology::LocalTrackPred trkPred 
) const
virtual

conversion taking also the predicted track state

Reimplemented from StripTopology.

Definition at line 71 of file ProxyStripTopology.cc.

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

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

Implements Topology.

Definition at line 86 of file ProxyStripTopology.cc.

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

88 {
89  return specificTopology().localError(mp, me);
90 }
virtual LocalError localError(float strip, float stripErr2) const =0
virtual const StripTopology & specificTopology() const
LocalError ProxyStripTopology::localError ( const MeasurementPoint mp,
const MeasurementError me,
const Topology::LocalTrackPred trkPred 
) const
virtual

conversion taking also the predicted track state

Reimplemented from Topology.

Definition at line 93 of file ProxyStripTopology.cc.

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

96 {
97  // See comment in localError(float strip, float stripErr2,
98  // const Topology::LocalTrackPred &trkPred)!
99  return specificTopology().localError(mp, me);
100 }
virtual LocalError localError(float strip, float stripErr2) const =0
virtual const StripTopology & specificTopology() const
float ProxyStripTopology::localPitch ( const LocalPoint lp) const
virtual

Implements StripTopology.

Definition at line 184 of file ProxyStripTopology.cc.

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

185 {
186  return specificTopology().localPitch(lp);
187 }
virtual float localPitch(const LocalPoint &) const =0
virtual const StripTopology & specificTopology() const
float ProxyStripTopology::localPitch ( const LocalPoint lp,
const Topology::LocalTrackAngles dir 
) const
virtual

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

Reimplemented from StripTopology.

Definition at line 190 of file ProxyStripTopology.cc.

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

191 {
192  if (!this->surfaceDeformation()) return specificTopology().localPitch(lp);
193 
194  // subtract correction from SurfaceDeformation
196  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
197 
198  return specificTopology().localPitch(posOrig);
199 }
T y() const
Definition: PV3DBase.h:62
virtual float localPitch(const LocalPoint &) const =0
T z() const
Definition: PV3DBase.h:63
JetCorrectorParameters corr
Definition: classes.h:9
const SurfaceDeformation * surfaceDeformation() const
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const
T x() const
Definition: PV3DBase.h:61
LocalPoint ProxyStripTopology::localPosition ( const MeasurementPoint mp) const
virtual

Implements Topology.

Definition at line 14 of file ProxyStripTopology.cc.

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

Referenced by localPosition().

15 {
16  return specificTopology().localPosition(mp);
17 
18 // FIXME: Better this way? Well, but posOrig will not contain useful y!
19 // if (!this->surfaceDeformation()) return specificTopology().localPosition(mp);
20 //
21 // // correct with position information from input and zero track angles
22 // const LocalPoint posOrig(specificTopology().localPosition(mp));
23 // return this->localPosition(mp, Topology::LocalTrackPred(posOrig.x(), posOrig.y(), 0., 0.));
24 }
virtual LocalPoint localPosition(float strip) const =0
virtual const StripTopology & specificTopology() const
LocalPoint ProxyStripTopology::localPosition ( const MeasurementPoint mp,
const Topology::LocalTrackPred trkPred 
) const
virtual

conversion taking also the predicted track state

Reimplemented from Topology.

Definition at line 27 of file ProxyStripTopology.cc.

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

29 {
30  if (!this->surfaceDeformation()) 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 }
JetCorrectorParameters corr
Definition: classes.h:9
const SurfaceDeformation * surfaceDeformation() const
virtual LocalPoint localPosition(const MeasurementPoint &mp) const
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
Local3DPoint LocalPoint
Definition: LocalPoint.h:11
virtual LocalPoint localPosition(float strip) const =0
virtual const StripTopology & specificTopology() const
LocalPoint ProxyStripTopology::localPosition ( float  strip) const
virtual

Implements StripTopology.

Definition at line 40 of file ProxyStripTopology.cc.

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

41 {
43 
44 // FIXME: Better this way? Well, but posOrig will not contain useful y!
45 // if (!this->surfaceDeformation()) return specificTopology().localPosition(strip);
46 
47 // // correct with position information from input and zero track angles
48 // const LocalPoint posOrig(specificTopology().localPosition(strip));
49 // return this->localPosition(mp, Topology::LocalTrackPred(posOrig.x(), posOrig.y(), 0., 0.));
50 }
virtual float strip(const LocalPoint &lp) const
virtual LocalPoint localPosition(float strip) const =0
virtual const StripTopology & specificTopology() const
LocalPoint ProxyStripTopology::localPosition ( float  strip,
const Topology::LocalTrackPred trkPred 
) const
virtual

conversion taking also the predicted track state

Reimplemented from StripTopology.

Definition at line 53 of file ProxyStripTopology.cc.

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

54 {
56 
57  // add correction from SurfaceDeformation
59 
61  return LocalPoint(posOld.x()+corr.x(), posOld.y()+corr.y(), posOld.z());
62 }
JetCorrectorParameters corr
Definition: classes.h:9
virtual float strip(const LocalPoint &lp) const
const SurfaceDeformation * surfaceDeformation() const
virtual LocalPoint localPosition(const MeasurementPoint &mp) const
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
Local3DPoint LocalPoint
Definition: LocalPoint.h:11
virtual LocalPoint localPosition(float strip) const =0
virtual const StripTopology & specificTopology() const
float ProxyStripTopology::localStripLength ( const LocalPoint lp) const
virtual

Implements StripTopology.

Definition at line 220 of file ProxyStripTopology.cc.

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

221 {
222  return specificTopology().localStripLength(lp);
223 }
virtual float localStripLength(const LocalPoint &aLP) const =0
virtual const StripTopology & specificTopology() const
float ProxyStripTopology::localStripLength ( const LocalPoint lp,
const Topology::LocalTrackAngles  
) const
virtual

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

Reimplemented from StripTopology.

Definition at line 226 of file ProxyStripTopology.cc.

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

227 {
228  if (!this->surfaceDeformation()) return specificTopology().localStripLength(lp);
229 
230  // subtract correction from SurfaceDeformation
232  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
233 
234  return specificTopology().localStripLength(posOrig);
235 }
T y() const
Definition: PV3DBase.h:62
T z() const
Definition: PV3DBase.h:63
JetCorrectorParameters corr
Definition: classes.h:9
const SurfaceDeformation * surfaceDeformation() const
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual float localStripLength(const LocalPoint &aLP) const =0
virtual const StripTopology & specificTopology() const
dbl *** dir
Definition: mlp_gen.cc:35
T x() const
Definition: PV3DBase.h:61
MeasurementError ProxyStripTopology::measurementError ( const LocalPoint lp,
const LocalError le 
) const
virtual

Implements Topology.

Definition at line 122 of file ProxyStripTopology.cc.

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

123 {
124  return specificTopology().measurementError(lp, le);
125 }
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
virtual const StripTopology & specificTopology() const
MeasurementError ProxyStripTopology::measurementError ( const LocalPoint lp,
const LocalError le,
const Topology::LocalTrackAngles  
) const
virtual

conversion taking also the angle from the track state

Reimplemented from Topology.

Definition at line 128 of file ProxyStripTopology.cc.

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

130 {
131  if (!this->surfaceDeformation()) return specificTopology().measurementError(lp, le);
132 
133  // assuming 'lp' comes from a track prediction
134  // (i.e. where the track thinks it hits the surface)
135  // we need to subtract correction from SurfaceDeformation
137  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
138 
139  return specificTopology().measurementError(posOrig, le);
140 }
T y() const
Definition: PV3DBase.h:62
virtual MeasurementError measurementError(const LocalPoint &, const LocalError &) const =0
T z() const
Definition: PV3DBase.h:63
JetCorrectorParameters corr
Definition: classes.h:9
const SurfaceDeformation * surfaceDeformation() const
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const
dbl *** dir
Definition: mlp_gen.cc:35
T x() const
Definition: PV3DBase.h:61
MeasurementPoint ProxyStripTopology::measurementPosition ( const LocalPoint lp) const
virtual

Implements Topology.

Definition at line 103 of file ProxyStripTopology.cc.

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

104 {
106 }
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
virtual const StripTopology & specificTopology() const
MeasurementPoint ProxyStripTopology::measurementPosition ( const LocalPoint lp,
const Topology::LocalTrackAngles  
) const
virtual

conversion taking also the angle from the track state

Reimplemented from Topology.

Definition at line 109 of file ProxyStripTopology.cc.

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

111 {
112  if (!this->surfaceDeformation()) return specificTopology().measurementPosition(lp);
113 
114  // subtract correction from SurfaceDeformation
116  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
117 
118  return specificTopology().measurementPosition(posOrig);
119 }
T y() const
Definition: PV3DBase.h:62
T z() const
Definition: PV3DBase.h:63
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
JetCorrectorParameters corr
Definition: classes.h:9
const SurfaceDeformation * surfaceDeformation() const
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const
dbl *** dir
Definition: mlp_gen.cc:35
T x() const
Definition: PV3DBase.h:61
int ProxyStripTopology::nstrips ( ) const
virtual

Implements StripTopology.

Definition at line 208 of file ProxyStripTopology.cc.

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

209 {
210  return specificTopology().nstrips();
211 }
virtual int nstrips() const =0
virtual const StripTopology & specificTopology() const
float ProxyStripTopology::pitch ( ) const
virtual

Implements StripTopology.

Definition at line 178 of file ProxyStripTopology.cc.

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

179 {
180  return specificTopology().pitch();
181 }
virtual float pitch() const =0
virtual const StripTopology & specificTopology() const
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 257 of file ProxyStripTopology.cc.

References SurfaceDeformation::positionCorrection(), surfaceDeformation(), theLength, theWidth, PV3DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::y().

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

259 {
260  const SurfaceDeformation::Local2DPoint pos2D(pos.x(), pos.y());// change precision and dimension
261 
262  return this->surfaceDeformation()->positionCorrection(pos2D, dir,
264 }
T y() const
Definition: PV3DBase.h:62
const SurfaceDeformation * surfaceDeformation() const
virtual Local2DVector positionCorrection(const Local2DPoint &localPos, const LocalTrackAngles &localAngles, double length, double width) const =0
T x() const
Definition: PV3DBase.h:61
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 268 of file ProxyStripTopology.cc.

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

269 {
270  return this->surfaceDeformation()->positionCorrection(trk.point(), trk.angles(),
272 }
const LocalTrackAngles & angles() const
Definition: Topology.h:66
const SurfaceDeformation * surfaceDeformation() const
const Local2DPoint & point() const
Definition: Topology.h:65
virtual Local2DVector positionCorrection(const Local2DPoint &localPos, const LocalTrackAngles &localAngles, double length, double width) const =0
void ProxyStripTopology::setSurfaceDeformation ( const SurfaceDeformation deformation)
virtual

Definition at line 250 of file ProxyStripTopology.cc.

References theSurfaceDeformation.

251 {
252  theSurfaceDeformation = deformation;
253 }
DeepCopyPointerByClone< const SurfaceDeformation > theSurfaceDeformation
const StripTopology & ProxyStripTopology::specificTopology ( ) const
privatevirtual

Definition at line 244 of file ProxyStripTopology.cc.

References StripGeomDetType::specificTopology(), and specificType().

Referenced by channel(), localError(), localPitch(), localPosition(), localStripLength(), measurementError(), measurementPosition(), nstrips(), pitch(), strip(), stripAngle(), and stripLength().

245 {
246  return specificType().specificTopology();
247 }
virtual const TopologyType & specificTopology() const
virtual StripGeomDetType & specificType() const
StripGeomDetType & ProxyStripTopology::specificType ( ) const
virtual

Definition at line 241 of file ProxyStripTopology.cc.

References theType.

Referenced by specificTopology().

241 { return *theType;}
StripGeomDetType * theType
float ProxyStripTopology::strip ( const LocalPoint lp) const
virtual

Implements StripTopology.

Definition at line 161 of file ProxyStripTopology.cc.

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

162 {
163  return specificTopology().strip(lp);
164 }
virtual float strip(const LocalPoint &) const =0
virtual const StripTopology & specificTopology() const
float ProxyStripTopology::strip ( const LocalPoint lp,
const Topology::LocalTrackAngles dir 
) const
virtual

conversion taking also the track state (LocalTrajectoryParameters)

Reimplemented from StripTopology.

Definition at line 167 of file ProxyStripTopology.cc.

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

168 {
169  if (!this->surfaceDeformation()) return specificTopology().strip(lp);
170 
171  // subtract correction from SurfaceDeformation
173  const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z());
174 
175  return specificTopology().strip(posOrig);
176 }
T y() const
Definition: PV3DBase.h:62
virtual float strip(const LocalPoint &) const =0
T z() const
Definition: PV3DBase.h:63
JetCorrectorParameters corr
Definition: classes.h:9
const SurfaceDeformation * surfaceDeformation() const
SurfaceDeformation::Local2DVector positionCorrection(const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const
virtual const StripTopology & specificTopology() const
T x() const
Definition: PV3DBase.h:61
float ProxyStripTopology::stripAngle ( float  strip) const
virtual

Implements StripTopology.

Definition at line 202 of file ProxyStripTopology.cc.

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

203 {
205 }
virtual float stripAngle(float strip) const =0
virtual float strip(const LocalPoint &lp) const
virtual const StripTopology & specificTopology() const
float ProxyStripTopology::stripLength ( ) const
virtual

Implements StripTopology.

Definition at line 214 of file ProxyStripTopology.cc.

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

215 {
216  return specificTopology().stripLength();
217 }
virtual float stripLength() const =0
virtual const StripTopology & specificTopology() const
const SurfaceDeformation* ProxyStripTopology::surfaceDeformation ( ) const
inline

Definition at line 94 of file ProxyStripTopology.h.

References theSurfaceDeformation.

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

94  {
95  return theSurfaceDeformation.operator->();
96  }
DeepCopyPointerByClone< const SurfaceDeformation > theSurfaceDeformation
const GeomDetType & ProxyStripTopology::type ( ) const
virtual

Definition at line 238 of file ProxyStripTopology.cc.

References theType.

238 { return *theType;}
StripGeomDetType * theType

Member Data Documentation

float ProxyStripTopology::theLength
private

Definition at line 112 of file ProxyStripTopology.h.

Referenced by positionCorrection().

DeepCopyPointerByClone<const SurfaceDeformation> ProxyStripTopology::theSurfaceDeformation
private

Definition at line 113 of file ProxyStripTopology.h.

Referenced by setSurfaceDeformation(), and surfaceDeformation().

StripGeomDetType* ProxyStripTopology::theType
private

Definition at line 111 of file ProxyStripTopology.h.

Referenced by specificType(), and type().

float ProxyStripTopology::theWidth
private

Definition at line 112 of file ProxyStripTopology.h.

Referenced by positionCorrection().