#include <CSCWireTopology.h>
Public Member Functions | |
int | channel (const LocalPoint &p) const override |
CSCWireTopology (const CSCWireGroupPackage &wg, double yOfFirstWire, float wireAngleInDegrees) | |
CSCWireTopology (const CSCWireTopology &) | |
std::pair< float, float > | equationOfWire (float wire) const |
double | extentOfWirePlane () const |
bool | insideYOfWirePlane (float y) const |
double | lengthOfPlane () const |
LocalError | localError (const MeasurementPoint &, const MeasurementError &) const override |
LocalPoint | localPosition (const MeasurementPoint &) const override |
MeasurementError | measurementError (const LocalPoint &, const LocalError &) const override |
MeasurementPoint | measurementPosition (const LocalPoint &) const override |
float | middleWireOfGroup (int wireGroup) const |
double | narrowWidthOfPlane () const |
int | nearestWire (const LocalPoint &lp) const override |
int | numberOfWireGroups () const |
int | numberOfWires () const override |
int | numberOfWiresPerGroup (int wireGroup) const |
CSCWireTopology & | operator= (const CSCWireTopology &) |
float | restrictToYOfWirePlane (float y) const |
double | wideWidthOfPlane () const |
float | wireAngle () const override |
std::pair< LocalPoint, LocalPoint > | wireEnds (float wire) const |
int | wireGroup (int wire) const |
float | wirePitch () const override |
double | wireSpacing () const |
std::vector< float > | wireValues (float wire) const |
float | yOfWire (float wire, float x=0.) const |
float | yOfWireGroup (int wireGroup, float x=0.) const |
float | yResolution (int wireGroup=1) const |
~CSCWireTopology () override | |
Public Member Functions inherited from WireTopology | |
~WireTopology () 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 | |
double | theAlignmentPinToFirstWire |
CSCWireGeometry * | theWireGeometry |
CSCWireGrouping * | theWireGrouping |
Additional Inherited Members | |
Public Types inherited from Topology | |
typedef Point2DBase< double, LocalTag > | Local2DPoint |
typedef Vector2D::MathVector | MathVector2D |
typedef Basic2DVector< double > | Vector2D |
A concrete class derived from WireTopology, to handle wire (group) geometry functionality for endcap muon CSCs.
Definition at line 18 of file CSCWireTopology.h.
|
override |
Definition at line 16 of file CSCWireTopology.cc.
CSCWireTopology::CSCWireTopology | ( | const CSCWireGroupPackage & | wg, |
double | yOfFirstWire, | ||
float | wireAngleInDegrees | ||
) |
Constructor from endcap muon CSC wire geometry specs
Definition at line 21 of file CSCWireTopology.cc.
References CSCWireGroupPackage::consecutiveGroups, geant_units::operators::convertDegToRad(), geant_units::operators::convertMmToCm(), CSCWireGroupPackage::lengthOfWirePlane, LogTrace, CSCWireGroupPackage::narrowWidthOfWirePlane, CSCWireGroupPackage::numberOfGroups, theWireGeometry, theWireGrouping, CSCWireGroupPackage::wideWidthOfWirePlane, CSCWireGroupPackage::wiresInEachGroup, CSCWireGroupPackage::wireSpacing, and wireSpacing().
CSCWireTopology::CSCWireTopology | ( | const CSCWireTopology & | mewt | ) |
Copy constructor
Definition at line 60 of file CSCWireTopology.cc.
References CSCWireGrouping::clone(), CSCWireGeometry::clone(), theWireGeometry, and theWireGrouping.
|
overridevirtual |
'channel' is wire group number from 1 to no. of groups. Return 0 if out-of-range or in a dead region
Implements Topology.
Definition at line 112 of file CSCWireTopology.cc.
References edmIntegrityCheck::group, CSCWireGeometry::nearestWire(), theWireGeometry, theWireGrouping, and CSCWireGrouping::wireGroup().
std::pair< float, float > CSCWireTopology::equationOfWire | ( | float | wire | ) | const |
Return slope and intercept of straight line representing a wire in 2-dim local coordinates.
The return value is a pair p with p.first = m, p.second = c, where y=mx+c.
Definition at line 135 of file CSCWireTopology.cc.
References CSCWireGeometry::equationOfWire(), and theWireGeometry.
Referenced by CSCLayerGeometry::intersectionOfStripAndWire(), and wireValues().
|
inline |
Extent of wire plane (width normal to wire direction).
Note that for ME11 this distance is not along local y!
cf. lengthOfPlane() which should be the same for all chambers but ME11.
Definition at line 173 of file CSCWireTopology.h.
References numberOfWires(), and wireSpacing().
bool CSCWireTopology::insideYOfWirePlane | ( | float | y | ) | const |
Returns true if arg falls within y limits of wire plane; false otherwise.
Definition at line 153 of file CSCWireTopology.cc.
References theWireGeometry, and CSCWireGeometry::yLimitsOfWirePlane().
Referenced by CSCLayerGeometry::intersectionOfStripAndWire(), and wireValues().
|
inline |
Length/height of wire plane along long axis of trapezoid (local y direction)
Definition at line 107 of file CSCWireTopology.h.
References CSCWireGeometry::lengthOfPlane(), and theWireGeometry.
Referenced by TrackDetectorAssociator::getTAMuonChamberMatches().
|
overridevirtual |
Implements Topology.
Definition at line 94 of file CSCWireTopology.cc.
|
overridevirtual |
Topology interface, but not implemented for CSCWireTopology (yet!)
Implements Topology.
Definition at line 89 of file CSCWireTopology.cc.
|
overridevirtual |
Implements Topology.
Definition at line 106 of file CSCWireTopology.cc.
|
overridevirtual |
Implements Topology.
Definition at line 100 of file CSCWireTopology.cc.
|
inline |
Middle of wire-group. This is the central wire no. for a group with an odd no. of wires. This is a pseudo-wire no. for a group with an even no. of wires. Accordingly, it is non-integer.
Definition at line 148 of file CSCWireTopology.h.
References CSCWireGrouping::middleWireOfGroup(), theWireGrouping, wireGroup(), x, yOfWireGroup(), and yResolution().
Referenced by CSCLayerGeometry::middleWireOfGroup(), and yOfWireGroup().
|
inline |
Width of wire plane at narrow end of trapezoid
Definition at line 95 of file CSCWireTopology.h.
References CSCWireGeometry::narrowWidthOfPlane(), and theWireGeometry.
Referenced by TrackDetectorAssociator::getTAMuonChamberMatches().
|
inlineoverridevirtual |
The nearest (virtual) wire to a given LocalPoint. Beware that this wire might not exist or be read out!
Implements WireTopology.
Definition at line 83 of file CSCWireTopology.h.
References CSCWireGeometry::nearestWire(), and theWireGeometry.
Referenced by CSCLayerGeometry::nearestWire().
|
inline |
How many wire groups
Definition at line 127 of file CSCWireTopology.h.
References CSCWireGrouping::numberOfWireGroups(), and theWireGrouping.
Referenced by CSCLayerGeometry::numberOfWireGroups().
|
inlineoverridevirtual |
Wire group interface Total number of (virtual) wires. Some wires may not be implemented in the hardware. This is the number which would fill the region covered by wires, assuming the constant wire spacing.
Implements WireTopology.
Definition at line 121 of file CSCWireTopology.h.
References CSCWireGrouping::numberOfWires(), and theWireGrouping.
Referenced by extentOfWirePlane(), and CSCLayerGeometry::numberOfWires().
|
inline |
How many wires in a wiregroup
Definition at line 133 of file CSCWireTopology.h.
References CSCWireGrouping::numberOfWiresPerGroup(), and theWireGrouping.
Referenced by CSCLayerGeometry::numberOfWiresPerGroup().
CSCWireTopology & CSCWireTopology::operator= | ( | const CSCWireTopology & | mewt | ) |
Assignment op
Definition at line 69 of file CSCWireTopology.cc.
References CSCWireGrouping::clone(), CSCWireGeometry::clone(), theAlignmentPinToFirstWire, theWireGeometry, and theWireGrouping.
float CSCWireTopology::restrictToYOfWirePlane | ( | float | y | ) | const |
Reset input y to lie within bounds of wire plane at top and bottom.
Definition at line 139 of file CSCWireTopology.cc.
References theWireGeometry, y, and CSCWireGeometry::yLimitsOfWirePlane().
Referenced by CSCLayerGeometry::intersectionOfStripAndWire(), and wireValues().
|
inline |
Width of wire plane at wide end of trapezoid
Definition at line 101 of file CSCWireTopology.h.
References theWireGeometry, and CSCWireGeometry::wideWidthOfPlane().
Referenced by TrackDetectorAssociator::getTAMuonChamberMatches().
|
inlineoverridevirtual |
The angle of the wires w.r.t local x axis (in radians)
Implements WireTopology.
Definition at line 76 of file CSCWireTopology.h.
References theWireGeometry, and CSCWireGeometry::wireAngle().
Referenced by FWRecoGeometryESProducer::addCSCGeometry(), TrackDetectorAssociator::getTAMuonChamberMatches(), ValidateGeometry::validateCSCLayerGeometry(), and CSCLayerGeometry::wireAngle().
|
inline |
Return local (x,y) coordinates of the two ends of a wire across the extent of the wire plane. The returned value is a pair of LocalPoints.
Definition at line 181 of file CSCWireTopology.h.
References theWireGeometry, and CSCWireGeometry::wireEnds().
|
inline |
Wire group containing a given wire
Definition at line 139 of file CSCWireTopology.h.
References theWireGrouping, and CSCWireGrouping::wireGroup().
Referenced by middleWireOfGroup(), and CSCLayerGeometry::wireGroup().
|
inlineoverridevirtual |
The wire pitch. This is the wire spacing but old-timers like the word 'pitch'.
Implements WireTopology.
Definition at line 70 of file CSCWireTopology.h.
References wireSpacing().
Referenced by CSCLayerGeometry::wirePitch().
|
inline |
WireTopology interface The wire spacing (in cm)
Definition at line 63 of file CSCWireTopology.h.
References theWireGeometry, and CSCWireGeometry::wireSpacing().
Referenced by FWRecoGeometryESProducer::addCSCGeometry(), CSCWireTopology(), extentOfWirePlane(), ValidateGeometry::validateCSCLayerGeometry(), wirePitch(), and yResolution().
|
inline |
Return mid-point of a wire in local coordinates, and its length across the chamber volume, in a vector as x, y, length
Definition at line 187 of file CSCWireTopology.h.
References equationOfWire(), insideYOfWirePlane(), restrictToYOfWirePlane(), theWireGeometry, CSCWireGeometry::wireValues(), and y.
Referenced by CSCLayerGeometry::lengthOfWireGroup(), and CSCLayerGeometry::localCenterOfWireGroup().
|
inline |
Local y of a given wire 'number' (float) at given x
Definition at line 89 of file CSCWireTopology.h.
References theWireGeometry, x, and CSCWireGeometry::yOfWire().
Referenced by TrackDetectorAssociator::getTAMuonChamberMatches(), and CSCLayerGeometry::yOfWire().
float CSCWireTopology::yOfWireGroup | ( | int | wireGroup, |
float | x = 0. |
||
) | const |
Extended interface which 'mixes' WireGrouping and WireGeometry info Local y of a given wire group at given x
Definition at line 118 of file CSCWireTopology.cc.
References middleWireOfGroup(), theWireGeometry, and CSCWireGeometry::yOfWire().
Referenced by middleWireOfGroup(), and CSCLayerGeometry::yOfWireGroup().
float CSCWireTopology::yResolution | ( | int | wireGroup = 1 | ) | const |
The measurement resolution from wire groups (in cm.) This approximates the measurement resolution in the local y direction but may be too small by a factor of up to 1.26 due to stripAngle contributions which are neglected here.
Definition at line 123 of file CSCWireTopology.cc.
References CSCWireGrouping::numberOfWiresPerGroup(), mathSSE::sqrt(), theWireGrouping, and wireSpacing().
Referenced by middleWireOfGroup(), and CSCLayerGeometry::yResolution().
|
private |
Definition at line 212 of file CSCWireTopology.h.
Referenced by operator=().
|
private |
Definition at line 210 of file CSCWireTopology.h.
Referenced by channel(), CSCWireTopology(), equationOfWire(), insideYOfWirePlane(), lengthOfPlane(), narrowWidthOfPlane(), nearestWire(), operator=(), restrictToYOfWirePlane(), wideWidthOfPlane(), wireAngle(), wireEnds(), wireSpacing(), wireValues(), yOfWire(), and yOfWireGroup().
|
private |
Definition at line 209 of file CSCWireTopology.h.
Referenced by channel(), CSCWireTopology(), middleWireOfGroup(), numberOfWireGroups(), numberOfWires(), numberOfWiresPerGroup(), operator=(), wireGroup(), and yResolution().