#include <RadialStripTopology.h>
Public Member Functions | |
virtual float | angularWidth () const =0 |
virtual float | centreToIntersection () const =0 |
virtual int | channel (const LocalPoint &) const =0 |
virtual float | detHeight () const =0 |
virtual LocalError | localError (const MeasurementPoint &, const MeasurementError &) const =0 |
virtual LocalError | localError (float strip, float stripErr2) const =0 |
virtual float | localPitch (const LocalPoint &) const =0 |
virtual LocalPoint | localPosition (float strip) const =0 |
virtual LocalPoint | localPosition (const MeasurementPoint &) const =0 |
virtual float | localStripLength (const LocalPoint &) const =0 |
virtual MeasurementError | measurementError (const LocalPoint &, const LocalError &) const =0 |
virtual MeasurementPoint | measurementPosition (const LocalPoint &) const =0 |
virtual int | nearestStrip (const LocalPoint &) const =0 |
virtual int | nstrips () const =0 |
virtual float | originToIntersection () const =0 |
virtual float | phiOfOneEdge () const =0 |
virtual float | phiPitch (void) const =0 |
virtual float | pitch () const GCC11_FINAL |
virtual float | strip (const LocalPoint &) const =0 |
virtual float | stripAngle (float strip) const =0 |
virtual float | stripLength () const =0 |
virtual float | xOfStrip (int strip, float y) const =0 |
virtual float | yAxisOrientation () const =0 |
virtual float | yCentreOfStripPlane () const =0 |
virtual float | yDistanceToIntersection (float y) const =0 |
virtual float | yExtentOfStripPlane () const =0 |
virtual | ~RadialStripTopology () |
Friends | |
std::ostream & | operator<< (std::ostream &, const RadialStripTopology &) |
A StripTopology in which the component strips subtend a constant angular width, and, if projected, intersect at a point.
WARNING! Wherever 'float strip' is used the units of 'strip' are angular widths of each strip. The range is from 0.0 at the extreme edge of the 'first' strip at one edge of the detector, to nstrip*angular width at the other edge.
The centre of the first strip is at strip = 0.5
The centre of the last strip is at strip = 0.5 + (nstrip-1)
This is for consistency with CommonDet usage of 'float strip' (but where units are strip pitch rather than strip angular width.)
WARNING! If the mid-point along local y of the plane of strips does not correspond to the local coordinate origin, set the final ctor argument appropriately.
Original version, allows inheritance
A StripTopology in which the component strips subtend a constant angular width, and, if projected, intersect at a point.
WARNING! Wherever 'float strip' is used the units of 'strip' are angular widths of each strip. The range is from 0.0 at the extreme edge of the 'first' strip at one edge of the detector, to nstrip*angular width at the other edge.
The centre of the first strip is at strip = 0.5
The centre of the last strip is at strip = 0.5 + (nstrip-1)
This is for consistency with CommonDet usage of 'float strip' (but where units are strip pitch rather than strip angular width.)
WARNING! If the mid-point along local y of the plane of strips does not correspond to the local coordinate origin, set the final ctor argument appropriately.
now is an abstract class to allow different specialization for tracker and muon
Definition at line 28 of file RadialStripTopology.h.
virtual RadialStripTopology::~RadialStripTopology | ( | ) | [inline, virtual] |
virtual float RadialStripTopology::angularWidth | ( | ) | const [pure virtual] |
Angular width of a each strip
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
Referenced by TrackerValidationVariables::fillHitQuantities().
virtual float RadialStripTopology::centreToIntersection | ( | ) | const [pure virtual] |
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.
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
Referenced by operator<<().
virtual int RadialStripTopology::channel | ( | const LocalPoint & | ) | const [pure virtual] |
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 Topology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, OffsetRadialStripTopology, CSCGangedStripTopology, CSCUngangedStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
virtual float RadialStripTopology::detHeight | ( | ) | const [pure virtual] |
Length of long symmetry axis of plane of strips
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
Referenced by TrackerValidationVariables::fillHitQuantities(), and operator<<().
virtual LocalError RadialStripTopology::localError | ( | const MeasurementPoint & | , |
const MeasurementError & | |||
) | const [pure virtual] |
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 Topology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
virtual LocalError RadialStripTopology::localError | ( | float | strip, |
float | stripErr2 | ||
) | const [pure virtual] |
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 StripTopology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
virtual float RadialStripTopology::localPitch | ( | const LocalPoint & | ) | const [pure virtual] |
Pitch (strip width) at a given LocalPoint.
BEWARE: are you sure you really want to call this for a RadialStripTopology?
Implements StripTopology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
virtual LocalPoint RadialStripTopology::localPosition | ( | const MeasurementPoint & | ) | const [pure virtual] |
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 Topology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, OffsetRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
virtual LocalPoint RadialStripTopology::localPosition | ( | float | strip | ) | const [pure virtual] |
LocalPoint on x axis for given 'strip' 'strip' is a float in units of the strip (angular) width
Implements StripTopology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, OffsetRadialStripTopology, and GCC11_FINAL< T >.
Referenced by TrackerValidationVariables::fillHitQuantities().
virtual float RadialStripTopology::localStripLength | ( | const LocalPoint & | ) | const [pure virtual] |
Length of a strip passing through a given LocalPpoint
Implements StripTopology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
Referenced by TrackerValidationVariables::fillHitQuantities().
virtual MeasurementError RadialStripTopology::measurementError | ( | const LocalPoint & | , |
const LocalError & | |||
) | const [pure virtual] |
Implements Topology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
Referenced by TrackerValidationVariables::fillHitQuantities().
virtual MeasurementPoint RadialStripTopology::measurementPosition | ( | const LocalPoint & | ) | const [pure virtual] |
Implements Topology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, OffsetRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
Referenced by TrackerValidationVariables::fillHitQuantities().
virtual int RadialStripTopology::nearestStrip | ( | const LocalPoint & | ) | const [pure virtual] |
Nearest strip to given LocalPoint
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
virtual int RadialStripTopology::nstrips | ( | ) | const [pure virtual] |
Total number of strips
Implements StripTopology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
Referenced by operator<<().
virtual float RadialStripTopology::originToIntersection | ( | ) | const [pure virtual] |
(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.
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
Referenced by TrackerValidationVariables::fillHitQuantities().
virtual float RadialStripTopology::phiOfOneEdge | ( | ) | const [pure virtual] |
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().
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
Referenced by operator<<().
virtual float RadialStripTopology::phiPitch | ( | void | ) | const [pure virtual] |
Phi pitch of each strip (= angular width!)
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
Referenced by operator<<().
float RadialStripTopology::pitch | ( | ) | const [virtual] |
BEWARE: calling pitch() throws an exception.
Pitch is conventional name for width of something, but this is not sensible for a RadialStripTopology since strip widths vary with local y. Use localPitch(.) instead.
Implements StripTopology.
Reimplemented in GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
Definition at line 4 of file RadialStripTopology.cc.
References Exception.
{ throw cms::Exception("RadialStripTopology") << "pitch() called - makes no sense, use localPitch(.) instead."; return 0.; }
virtual float RadialStripTopology::strip | ( | const LocalPoint & | ) | const [pure virtual] |
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 StripTopology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, OffsetRadialStripTopology, and GCC11_FINAL< T >.
Referenced by SiClusterTranslator::produce().
virtual float RadialStripTopology::stripAngle | ( | float | strip | ) | const [pure virtual] |
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 StripTopology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, OffsetRadialStripTopology, and GCC11_FINAL< T >.
Referenced by TrackerValidationVariables::fillHitQuantities().
virtual float RadialStripTopology::stripLength | ( | ) | const [pure virtual] |
Height of detector (= length of long symmetry axis of the plane of strips).
Implements StripTopology.
Implemented in CSCRadialStripTopology, GCC11_FINAL< T >, GCC11_FINAL< T >, GCC11_FINAL< T >, and GCC11_FINAL< T >.
virtual float RadialStripTopology::xOfStrip | ( | int | strip, |
float | y | ||
) | const [pure virtual] |
Local x where centre of strip intersects input local y
'strip' should be in range 1 to nstrips()
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
virtual float RadialStripTopology::yAxisOrientation | ( | ) | const [pure virtual] |
y axis orientation, 1 means detector width increases with local y
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
Referenced by operator<<().
virtual float RadialStripTopology::yCentreOfStripPlane | ( | ) | const [pure virtual] |
Offset in local y between midpoint of detector (strip plane) extent and local origin
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
Referenced by operator<<().
virtual float RadialStripTopology::yDistanceToIntersection | ( | float | y | ) | const [pure virtual] |
Distance in local y from a hit to the point of intersection of projected strips
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
virtual float RadialStripTopology::yExtentOfStripPlane | ( | ) | const [pure virtual] |
y extent of strip plane
Implemented in CSCRadialStripTopology, and GCC11_FINAL< T >.
std::ostream& operator<< | ( | std::ostream & | os, |
const RadialStripTopology & | rst | ||
) | [friend] |
Reimplemented in CSCRadialStripTopology.
Definition at line 10 of file RadialStripTopology.cc.
{ os << "RadialStripTopology " << std::endl << " " << std::endl << "number of strips " << rst.nstrips() << std::endl << "centre to whereStripsMeet " << rst.centreToIntersection() << std::endl << "detector height in y " << rst.detHeight() << std::endl << "angular width of strips " << rst.phiPitch() << std::endl << "phi of one edge " << rst.phiOfOneEdge() << std::endl << "y axis orientation " << rst.yAxisOrientation() << std::endl << "y of centre of strip plane " << rst.yCentreOfStripPlane() << std::endl; return os; }