#include <CSCRadialStripTopology.h>
Public Member Functions | |
float | angularWidth () const override |
float | centreToIntersection () const override |
int | channel (const LocalPoint &) const override |
CSCRadialStripTopology (int ns, float aw, float dh, float r, float yAx=1.f, float yMid=0.) | |
float | detHeight () const override |
LocalError | localError (float strip, float stripErr2) const override |
LocalError | localError (const MeasurementPoint &, const MeasurementError &) const override |
float | localPitch (const LocalPoint &) const override |
LocalPoint | localPosition (float strip) const override |
LocalPoint | localPosition (const MeasurementPoint &) const override |
float | localStripLength (const LocalPoint &) const override |
MeasurementError | measurementError (const LocalPoint &, const LocalError &) const override |
MeasurementPoint | measurementPosition (const LocalPoint &) const override |
int | nearestStrip (const LocalPoint &) const override |
int | nstrips () const override |
float | originToIntersection () const override |
float | phiOfOneEdge () const override |
float | phiPitch (void) const override |
float | strip (const LocalPoint &) const override |
float | stripAngle (float strip) const override |
float | stripLength () const override |
float | xOfStrip (int strip, float y) const override |
float | yAxisOrientation () const override |
float | yCentreOfStripPlane () const override |
float | yDistanceToIntersection (float y) const override |
float | yExtentOfStripPlane () const override |
~CSCRadialStripTopology () override | |
Public Member Functions inherited from RadialStripTopology | |
float | pitch () const final |
~RadialStripTopology () override | |
Public Member Functions inherited from StripTopology | |
virtual float | coveredStrips (const LocalPoint &lp1, const LocalPoint &lp2) const |
virtual LocalError | localError (float strip, float stripErr2, const Topology::LocalTrackPred &) const |
conversion taking also the angle from the predicted track state More... | |
virtual float | localPitch (const LocalPoint &lp, const Topology::LocalTrackAngles &) const |
conversion taking also the angle from the track state (LocalTrajectoryParameters) More... | |
virtual LocalPoint | localPosition (float strip, const Topology::LocalTrackPred &) const |
conversion taking also the predicted track state More... | |
virtual float | localStripLength (const LocalPoint &lp, const Topology::LocalTrackAngles &) const |
conversion taking also the angle from the track state (LocalTrajectoryParameters) More... | |
virtual float | strip (const LocalPoint &lp, const Topology::LocalTrackAngles &) const |
conversion taking also the angle from the track state (LocalTrajectoryParameters) More... | |
~StripTopology () override | |
Public Member Functions inherited from Topology | |
virtual int | channel (const LocalPoint &lp, const LocalTrackAngles &) const |
conversion taking also the angle from the track state More... | |
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 &mp, const LocalTrackPred &) const |
conversion taking also the angle from the predicted track state More... | |
virtual MeasurementError | measurementError (const LocalPoint &lp, const LocalError &le, const LocalTrackAngles &) const |
conversion taking also the angle from the track state More... | |
virtual MeasurementPoint | measurementPosition (const LocalPoint &lp, const LocalTrackAngles &) const |
conversion taking also the angle from the track state More... | |
virtual | ~Topology () |
Private Attributes | |
float | theAngularWidth |
float | theCentreToIntersection |
float | theDetHeight |
int | theNumberOfStrips |
float | thePhiOfOneEdge |
float | theYAxisOrientation |
float | yCentre |
Friends | |
std::ostream & | operator<< (std::ostream &, const RadialStripTopology &) |
Additional Inherited Members | |
Public Types inherited from Topology | |
typedef Point2DBase< double, LocalTag > | Local2DPoint |
typedef Vector2D::MathVector | MathVector2D |
typedef Basic2DVector< double > | Vector2D |
Definition at line 28 of file CSCRadialStripTopology.h.
CSCRadialStripTopology::CSCRadialStripTopology | ( | int | ns, |
float | aw, | ||
float | dh, | ||
float | r, | ||
float | yAx = 1.f , |
||
float | yMid = 0. |
||
) |
Constructor from:
ns | number of strips |
aw | angular width of a strip |
dh | detector height (usually 2 x apothem of TrapezoidalPlaneBounds) |
r | radial distance from symmetry centre of detector to the point at which the outer edges of the two extreme strips (projected) intersect. |
yAx | orientation of local y axis: 1 means pointing from the smaller side of the module to the larger side (along apothem), and -1 means in the opposite direction, i.e. from the larger side along the apothem to the smaller side. Default value is 1. |
yMid | local y offset if mid-point of detector (strip plane) does not coincide with local origin. This decouples the extent of strip plane from the boundary of the detector in which the RST is embedded. |
Definition at line 7 of file CSCRadialStripTopology.cc.
References LogTrace, theAngularWidth, theNumberOfStrips, thePhiOfOneEdge, theYAxisOrientation, and yCentre.
|
inlineoverride |
|
inlineoverridevirtual |
Angular width of a each strip
Implements RadialStripTopology.
Definition at line 159 of file CSCRadialStripTopology.h.
References theAngularWidth.
Referenced by FWRecoGeometryESProducer::addCSCGeometry(), localError(), localPitch(), OffsetRadialStripTopology::localPosition(), measurementError(), measurementPosition(), OffsetRadialStripTopology::OffsetRadialStripTopology(), phiPitch(), OffsetRadialStripTopology::strip(), strip(), OffsetRadialStripTopology::stripAngle(), stripAngle(), CSCGeometryValidate::validateCSCLayerGeometry(), and ValidateGeometry::validateCSCLayerGeometry().
|
inlineoverridevirtual |
Distance from the intersection of the projections of the extreme edges of the two extreme strips to the symmetry centre of the plane of strips.
Implements RadialStripTopology.
Definition at line 181 of file CSCRadialStripTopology.h.
References theCentreToIntersection.
Referenced by FWRecoGeometryESProducer::addCSCGeometry(), localError(), CSCGeometryValidate::validateCSCLayerGeometry(), and ValidateGeometry::validateCSCLayerGeometry().
|
overridevirtual |
Channel number corresponding to a given LocalPoint.
This is effectively an integer version of strip(), with range 0 to nstrips-1.
LocalPoints outside the detector strip plane will be considered as contributing to the edge channels 0 or nstrips-1.
Implements RadialStripTopology.
Reimplemented in OffsetRadialStripTopology, CSCUngangedStripTopology, and CSCGangedStripTopology.
Definition at line 25 of file CSCRadialStripTopology.cc.
References min(), strip(), and theNumberOfStrips.
Referenced by CSCUngangedStripTopology::channel().
|
inlineoverridevirtual |
Length of long symmetry axis of plane of strips
Implements RadialStripTopology.
Definition at line 169 of file CSCRadialStripTopology.h.
References theDetHeight.
Referenced by localError(), OffsetRadialStripTopology::localPosition(), localPosition(), localStripLength(), measurementError(), and measurementPosition().
|
overridevirtual |
LocalError for a pure strip measurement, where 'strip' is the (float) position (a 'phi' angle wrt y axis) and stripErr2 is the sigma-squared. Both quantities are expressed in units of theAngularWidth of a strip.
Implements RadialStripTopology.
Definition at line 74 of file CSCRadialStripTopology.cc.
References angularWidth(), centreToIntersection(), detHeight(), validate-o2o-wbm::f, phi, funct::pow(), findQualityFiles::rr, stripAngle(), funct::tan(), groupFilesInBlocks::tt, and xy().
|
overridevirtual |
LocalError for a given MeasurementPoint with known MeasurementError. This may be used in Kalman filtering and hence must allow possible correlations between the components.
Implements RadialStripTopology.
Definition at line 87 of file CSCRadialStripTopology.cc.
References angularWidth(), alignmentValidation::c1, centreToIntersection(), funct::cos(), fwrapper::cs, detHeight(), phi, dttmaxenums::R, findQualityFiles::rr, funct::sin(), stripAngle(), groupFilesInBlocks::tt, MeasurementError::uu(), MeasurementError::uv(), MeasurementError::vv(), PV2DBase< T, PVType, FrameType >::x(), xy(), PV2DBase< T, PVType, FrameType >::y(), and yAxisOrientation().
|
overridevirtual |
Pitch (strip width) at a given LocalPoint.
BEWARE: are you sure you really want to call this for a RadialStripTopology?
Implements RadialStripTopology.
Definition at line 118 of file CSCRadialStripTopology.cc.
References angularWidth(), funct::cos(), validate-o2o-wbm::f, min(), nstrips(), funct::pow(), funct::sin(), strip(), stripAngle(), PV3DBase< T, PVType, FrameType >::y(), and yDistanceToIntersection().
Referenced by CSCLayerGeometry::stripPitch().
|
overridevirtual |
LocalPoint on x axis for given 'strip' 'strip' is a float in units of the strip (angular) width
Implements RadialStripTopology.
Reimplemented in OffsetRadialStripTopology.
Definition at line 56 of file CSCRadialStripTopology.cc.
References originToIntersection(), stripAngle(), funct::tan(), and yAxisOrientation().
Referenced by OffsetRadialStripTopology::localPosition().
|
overridevirtual |
LocalPoint for a given MeasurementPoint
What's a MeasurementPoint?
In analogy with that used with TrapezoidalStripTopology objects, a MeasurementPoint is a 2-dim object.
The first dimension measures the angular position wrt central line of symmetry of detector, in units of strip (angular) widths (range 0 to total angle subtended by a detector).
The second dimension measures the fractional position along the strip (range -0.5 to +0.5).
BEWARE! The components are not Cartesian.
Implements RadialStripTopology.
Reimplemented in OffsetRadialStripTopology.
Definition at line 60 of file CSCRadialStripTopology.cc.
References detHeight(), stripAngle(), funct::tan(), x, PV2DBase< T, PVType, FrameType >::x(), y, PV2DBase< T, PVType, FrameType >::y(), yAxisOrientation(), yCentreOfStripPlane(), and yDistanceToIntersection().
|
overridevirtual |
Length of a strip passing through a given LocalPpoint
Implements RadialStripTopology.
Definition at line 41 of file CSCRadialStripTopology.cc.
References detHeight(), validate-o2o-wbm::f, funct::pow(), mathSSE::sqrt(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and yDistanceToIntersection().
|
overridevirtual |
Implements RadialStripTopology.
Definition at line 103 of file CSCRadialStripTopology.cc.
References angularWidth(), fwrapper::cs, detHeight(), validate-o2o-wbm::f, funct::pow(), mathSSE::sqrt(), submitPVValidationJobs::t, PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), LocalError::xy(), PV3DBase< T, PVType, FrameType >::y(), yAxisOrientation(), yDistanceToIntersection(), and LocalError::yy().
|
overridevirtual |
Implements RadialStripTopology.
Reimplemented in OffsetRadialStripTopology.
Definition at line 67 of file CSCRadialStripTopology.cc.
References angularWidth(), detHeight(), phi, phiOfOneEdge(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), yAxisOrientation(), yCentreOfStripPlane(), and yDistanceToIntersection().
Referenced by OffsetRadialStripTopology::measurementPosition().
|
overridevirtual |
Nearest strip to given LocalPoint
Implements RadialStripTopology.
Definition at line 29 of file CSCRadialStripTopology.cc.
References SiStripPI::max, min(), nstrips(), and strip().
Referenced by CSCLayerGeometry::nearestStrip().
|
inlineoverridevirtual |
Total number of strips
Implements RadialStripTopology.
Definition at line 122 of file CSCRadialStripTopology.h.
References theNumberOfStrips.
Referenced by localPitch(), nearestStrip(), CSCLayerGeometry::numberOfStrips(), OffsetRadialStripTopology::strip(), and strip().
|
inlineoverridevirtual |
(y) distance from intersection of the projections of the strips to the local coordinate origin. Same as centreToIntersection() if symmetry centre of strip plane coincides with local origin.
Implements RadialStripTopology.
Definition at line 188 of file CSCRadialStripTopology.h.
References theCentreToIntersection, and yCentre.
Referenced by CSCStripTopology::equationOfStrip(), localPosition(), OffsetRadialStripTopology::localPosition(), OffsetRadialStripTopology::strip(), OffsetRadialStripTopology::toLocal(), OffsetRadialStripTopology::toPrime(), and yDistanceToIntersection().
|
inlineoverridevirtual |
Convenience function to access azimuthal angle of extreme edge of first strip measured relative to long symmetry axis of the plane of strips.
WARNING! This angle is measured clockwise from the local y axis which means it is in the conventional azimuthal phi plane, but azimuth is of course measured from local x axis not y. The range of this angle is -(full angle)/2 to +(full angle)/2.
where (full angle) = nstrips() * angularWidth().
Implements RadialStripTopology.
Definition at line 202 of file CSCRadialStripTopology.h.
References thePhiOfOneEdge.
Referenced by FWRecoGeometryESProducer::addCSCGeometry(), OffsetRadialStripTopology::localPosition(), measurementPosition(), OffsetRadialStripTopology::strip(), strip(), OffsetRadialStripTopology::stripAngle(), stripAngle(), CSCGeometryValidate::validateCSCLayerGeometry(), and ValidateGeometry::validateCSCLayerGeometry().
|
inlineoverridevirtual |
Phi pitch of each strip (= angular width!)
Implements RadialStripTopology.
Definition at line 164 of file CSCRadialStripTopology.h.
References angularWidth().
Referenced by CSCLayerGeometry::stripPhiPitch().
|
overridevirtual |
Strip in which a given LocalPoint lies. This is a float which represents the fractional strip position within the detector.
Returns zero if the LocalPoint falls at the extreme low edge of the detector or BELOW, and float(nstrips) if it falls at the extreme high edge or ABOVE.
Implements RadialStripTopology.
Reimplemented in OffsetRadialStripTopology.
Definition at line 49 of file CSCRadialStripTopology.cc.
References angularWidth(), SiStripPI::max, min(), nstrips(), phi, phiOfOneEdge(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), yAxisOrientation(), and yDistanceToIntersection().
Referenced by CSCGangedStripTopology::channel(), channel(), localPitch(), and nearestStrip().
|
overridevirtual |
Angle between strip and symmetry axis (=local y axis) for given strip.
This is like a phi angle but measured clockwise from y axis rather than counter clockwise from x axis. Note that 'strip' is a float with a continuous range from 0 to float(nstrips) to cover the whole detector, and the centres of strips correspond to half-integer values 0.5, 1.5, ..., nstrips-0.5 whereas values 1, 2, ... nstrips correspond to the upper phi edges of the strips.
Implements RadialStripTopology.
Reimplemented in OffsetRadialStripTopology.
Definition at line 33 of file CSCRadialStripTopology.cc.
References angularWidth(), phiOfOneEdge(), and yAxisOrientation().
Referenced by localError(), localPitch(), localPosition(), and xOfStrip().
|
inlineoverridevirtual |
Height of detector (= length of long symmetry axis of the plane of strips).
Implements RadialStripTopology.
Definition at line 127 of file CSCRadialStripTopology.h.
References theDetHeight.
|
overridevirtual |
Local x where centre of strip intersects input local y
'strip' should be in range 1 to nstrips()
Implements RadialStripTopology.
Definition at line 45 of file CSCRadialStripTopology.cc.
References stripAngle(), funct::tan(), yAxisOrientation(), and yDistanceToIntersection().
Referenced by CSCLayerGeometry::xOfStrip().
|
inlineoverridevirtual |
y axis orientation, 1 means detector width increases with local y
Implements RadialStripTopology.
Definition at line 218 of file CSCRadialStripTopology.h.
References theYAxisOrientation.
Referenced by FWRecoGeometryESProducer::addCSCGeometry(), localError(), localPosition(), measurementError(), measurementPosition(), strip(), stripAngle(), CSCGeometryValidate::validateCSCLayerGeometry(), ValidateGeometry::validateCSCLayerGeometry(), xOfStrip(), and yDistanceToIntersection().
|
inlineoverridevirtual |
Offset in local y between midpoint of detector (strip plane) extent and local origin
Implements RadialStripTopology.
Definition at line 223 of file CSCRadialStripTopology.h.
References yCentre.
Referenced by FWRecoGeometryESProducer::addCSCGeometry(), OffsetRadialStripTopology::localPosition(), localPosition(), measurementPosition(), CSCGeometryValidate::validateCSCLayerGeometry(), ValidateGeometry::validateCSCLayerGeometry(), and CSCStripTopology::yLimitsOfStripPlane().
|
overridevirtual |
Distance in local y from a hit to the point of intersection of projected strips
Implements RadialStripTopology.
Definition at line 37 of file CSCRadialStripTopology.cc.
References originToIntersection(), and yAxisOrientation().
Referenced by localPitch(), localPosition(), localStripLength(), measurementError(), measurementPosition(), strip(), and xOfStrip().
|
inlineoverridevirtual |
y extent of strip plane
Implements RadialStripTopology.
Definition at line 174 of file CSCRadialStripTopology.h.
References theDetHeight.
Referenced by CSCStripTopology::yLimitsOfStripPlane().
|
friend |
Definition at line 9 of file RadialStripTopology.cc.
|
private |
Definition at line 234 of file CSCRadialStripTopology.h.
Referenced by angularWidth(), and CSCRadialStripTopology().
|
private |
Definition at line 236 of file CSCRadialStripTopology.h.
Referenced by centreToIntersection(), and originToIntersection().
|
private |
Definition at line 235 of file CSCRadialStripTopology.h.
Referenced by detHeight(), stripLength(), and yExtentOfStripPlane().
|
private |
Definition at line 233 of file CSCRadialStripTopology.h.
Referenced by channel(), CSCRadialStripTopology(), and nstrips().
|
private |
Definition at line 237 of file CSCRadialStripTopology.h.
Referenced by CSCRadialStripTopology(), and phiOfOneEdge().
|
private |
Definition at line 238 of file CSCRadialStripTopology.h.
Referenced by CSCRadialStripTopology(), and yAxisOrientation().
|
private |
Definition at line 239 of file CSCRadialStripTopology.h.
Referenced by CSCRadialStripTopology(), originToIntersection(), and yCentreOfStripPlane().