#include <ProxyStripTopology.h>
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 | |
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 | |
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 | |
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) | |
virtual LocalPoint | localPosition (float strip) const |
virtual LocalPoint | localPosition (float strip, const Topology::LocalTrackPred &trkPred) const |
conversion taking also the predicted track state | |
virtual LocalPoint | localPosition (const MeasurementPoint &mp, const Topology::LocalTrackPred &trkPred) const |
conversion taking also the predicted track state | |
virtual LocalPoint | localPosition (const MeasurementPoint &mp) const |
virtual float | localStripLength (const LocalPoint &lp, const Topology::LocalTrackAngles &dir) const |
conversion taking also the angle from the track state (LocalTrajectoryParameters) | |
virtual float | localStripLength (const LocalPoint &lp) const |
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 | |
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 | |
virtual int | nstrips () const |
virtual float | pitch () const |
ProxyStripTopology (StripGeomDetType *type, BoundPlane *bp) | |
virtual void | setSurfaceDeformation (const SurfaceDeformation *deformation) |
virtual StripGeomDetType & | specificType () 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) | |
virtual float | stripAngle (float strip) const |
virtual float | stripLength () const |
const SurfaceDeformation * | surfaceDeformation () const |
virtual const GeomDetType & | type () const |
Private Member Functions | |
SurfaceDeformation::Local2DVector | positionCorrection (const LocalPoint &pos, const Topology::LocalTrackAngles &dir) const |
SurfaceDeformation::Local2DVector | positionCorrection (const Topology::LocalTrackPred &trk) const |
virtual const StripTopology & | specificTopology () const |
Private Attributes | |
float | theLength |
DeepCopyPointerByClone< const SurfaceDeformation > | theSurfaceDeformation |
StripGeomDetType * | theType |
float | theWidth |
Definition at line 38 of file ProxyStripTopology.h.
ProxyStripTopology::ProxyStripTopology | ( | StripGeomDetType * | type, |
BoundPlane * | bp | ||
) |
int ProxyStripTopology::channel | ( | const LocalPoint & | lp | ) | const [virtual] |
Implements Topology.
Definition at line 143 of file ProxyStripTopology.cc.
References Topology::channel(), and specificTopology().
{ return specificTopology().channel(lp); }
int ProxyStripTopology::channel | ( | const LocalPoint & | lp, |
const Topology::LocalTrackAngles & | dir | ||
) | 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(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ if (!this->surfaceDeformation()) return specificTopology().channel(lp); // subtract correction from SurfaceDeformation const SurfaceDeformation::Local2DVector corr(this->positionCorrection(lp, dir)); const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z()); return specificTopology().channel(posOrig); }
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().
{ // See comment in localError(float strip, float stripErr2, // const Topology::LocalTrackPred &trkPred)! return specificTopology().localError(mp, me); }
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().
{ // 'strip' is from measurement frame and the topology knows to // calculate the cartesian error. // But assuming no uncertainty on the SurfaceDeformation variables, // the errors do not change from a simple shift to compensate // that the track 'sees' the surface at another place than it thinks... // In case of TwoBowedSurfacesDeformation one could add corrections here due to // relative rotations of the sensors... return specificTopology().localError(strip, stripErr2); }
LocalError ProxyStripTopology::localError | ( | float | strip, |
float | stripErr2 | ||
) | const [virtual] |
Implements StripTopology.
Definition at line 65 of file ProxyStripTopology.cc.
References StripTopology::localError(), and specificTopology().
{ return specificTopology().localError(strip, stripErr2); }
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().
{ return specificTopology().localError(mp, me); }
float ProxyStripTopology::localPitch | ( | const LocalPoint & | lp | ) | const [virtual] |
Implements StripTopology.
Definition at line 184 of file ProxyStripTopology.cc.
References StripTopology::localPitch(), and specificTopology().
{ return specificTopology().localPitch(lp); }
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(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ if (!this->surfaceDeformation()) return specificTopology().localPitch(lp); // subtract correction from SurfaceDeformation const SurfaceDeformation::Local2DVector corr(this->positionCorrection(lp, dir)); const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z()); return specificTopology().localPitch(posOrig); }
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(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ if (!this->surfaceDeformation()) return specificTopology().localPosition(strip); // add correction from SurfaceDeformation const LocalPoint posOld(specificTopology().localPosition(strip)); const SurfaceDeformation::Local2DVector corr(this->positionCorrection(trkPred)); return LocalPoint(posOld.x()+corr.x(), posOld.y()+corr.y(), posOld.z()); }
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().
{ return specificTopology().localPosition(mp); // FIXME: Better this way? Well, but posOrig will not contain useful y! // if (!this->surfaceDeformation()) return specificTopology().localPosition(mp); // // // correct with position information from input and zero track angles // const LocalPoint posOrig(specificTopology().localPosition(mp)); // return this->localPosition(mp, Topology::LocalTrackPred(posOrig.x(), posOrig.y(), 0., 0.)); }
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(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ if (!this->surfaceDeformation()) return specificTopology().localPosition(mp); // add correction from SurfaceDeformation const LocalPoint posOld(specificTopology().localPosition(mp)); // 'original position' const SurfaceDeformation::Local2DVector corr(this->positionCorrection(trkPred)); return LocalPoint(posOld.x()+corr.x(), posOld.y()+corr.y(), posOld.z()); }
LocalPoint ProxyStripTopology::localPosition | ( | float | strip | ) | const [virtual] |
Implements StripTopology.
Definition at line 40 of file ProxyStripTopology.cc.
References StripTopology::localPosition(), and specificTopology().
{ return specificTopology().localPosition(strip); // FIXME: Better this way? Well, but posOrig will not contain useful y! // if (!this->surfaceDeformation()) return specificTopology().localPosition(strip); // // correct with position information from input and zero track angles // const LocalPoint posOrig(specificTopology().localPosition(strip)); // return this->localPosition(mp, Topology::LocalTrackPred(posOrig.x(), posOrig.y(), 0., 0.)); }
float ProxyStripTopology::localStripLength | ( | const LocalPoint & | lp | ) | const [virtual] |
Implements StripTopology.
Definition at line 220 of file ProxyStripTopology.cc.
References StripTopology::localStripLength(), and specificTopology().
{ return specificTopology().localStripLength(lp); }
float ProxyStripTopology::localStripLength | ( | const LocalPoint & | lp, |
const Topology::LocalTrackAngles & | ltp | ||
) | 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(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ if (!this->surfaceDeformation()) return specificTopology().localStripLength(lp); // subtract correction from SurfaceDeformation const SurfaceDeformation::Local2DVector corr(this->positionCorrection(lp, dir)); const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z()); return specificTopology().localStripLength(posOrig); }
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().
{ return specificTopology().measurementError(lp, le); }
MeasurementError ProxyStripTopology::measurementError | ( | const LocalPoint & | lp, |
const LocalError & | le, | ||
const Topology::LocalTrackAngles & | dir | ||
) | 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(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ if (!this->surfaceDeformation()) return specificTopology().measurementError(lp, le); // assuming 'lp' comes from a track prediction // (i.e. where the track thinks it hits the surface) // we need to subtract correction from SurfaceDeformation const SurfaceDeformation::Local2DVector corr(this->positionCorrection(lp, dir)); const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z()); return specificTopology().measurementError(posOrig, le); }
MeasurementPoint ProxyStripTopology::measurementPosition | ( | const LocalPoint & | lp | ) | const [virtual] |
Implements Topology.
Definition at line 103 of file ProxyStripTopology.cc.
References Topology::measurementPosition(), and specificTopology().
{ return specificTopology().measurementPosition(lp); }
MeasurementPoint ProxyStripTopology::measurementPosition | ( | const LocalPoint & | lp, |
const Topology::LocalTrackAngles & | dir | ||
) | 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(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ if (!this->surfaceDeformation()) return specificTopology().measurementPosition(lp); // subtract correction from SurfaceDeformation const SurfaceDeformation::Local2DVector corr(this->positionCorrection(lp, dir)); const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z()); return specificTopology().measurementPosition(posOrig); }
int ProxyStripTopology::nstrips | ( | ) | const [virtual] |
Implements StripTopology.
Definition at line 208 of file ProxyStripTopology.cc.
References StripTopology::nstrips(), and specificTopology().
{ return specificTopology().nstrips(); }
float ProxyStripTopology::pitch | ( | ) | const [virtual] |
Implements StripTopology.
Definition at line 178 of file ProxyStripTopology.cc.
References StripTopology::pitch(), and specificTopology().
{ return specificTopology().pitch(); }
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.
{ return this->surfaceDeformation()->positionCorrection(trk.point(), trk.angles(), theLength, theWidth); }
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().
{ const SurfaceDeformation::Local2DPoint pos2D(pos.x(), pos.y());// change precision and dimension return this->surfaceDeformation()->positionCorrection(pos2D, dir, theLength, theWidth); }
void ProxyStripTopology::setSurfaceDeformation | ( | const SurfaceDeformation * | deformation | ) | [virtual] |
Definition at line 250 of file ProxyStripTopology.cc.
References theSurfaceDeformation.
{ theSurfaceDeformation = deformation; }
const StripTopology & ProxyStripTopology::specificTopology | ( | ) | const [private, virtual] |
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().
{ return specificType().specificTopology(); }
StripGeomDetType & ProxyStripTopology::specificType | ( | ) | const [virtual] |
Definition at line 241 of file ProxyStripTopology.cc.
References theType.
Referenced by specificTopology().
{ return *theType;}
float ProxyStripTopology::strip | ( | const LocalPoint & | lp | ) | const [virtual] |
Implements StripTopology.
Definition at line 161 of file ProxyStripTopology.cc.
References specificTopology(), and StripTopology::strip().
{ return specificTopology().strip(lp); }
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(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
{ if (!this->surfaceDeformation()) return specificTopology().strip(lp); // subtract correction from SurfaceDeformation const SurfaceDeformation::Local2DVector corr(this->positionCorrection(lp, dir)); const LocalPoint posOrig(lp.x() - corr.x(), lp.y() - corr.y(), lp.z()); return specificTopology().strip(posOrig); }
float ProxyStripTopology::stripAngle | ( | float | strip | ) | const [virtual] |
Implements StripTopology.
Definition at line 202 of file ProxyStripTopology.cc.
References specificTopology(), and StripTopology::stripAngle().
{ return specificTopology().stripAngle(strip); }
float ProxyStripTopology::stripLength | ( | ) | const [virtual] |
Implements StripTopology.
Definition at line 214 of file ProxyStripTopology.cc.
References specificTopology(), and StripTopology::stripLength().
{ return specificTopology().stripLength(); }
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().
{ return theSurfaceDeformation.operator->(); }
const GeomDetType & ProxyStripTopology::type | ( | ) | const [virtual] |
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().