#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, angle_units::operators::convertDegToRad(), angle_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 53 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 108 of file CSCWireTopology.cc.
References watchdog::group, CSCWireGeometry::nearestWire(), AlCaHLTBitMon_ParallelJobs::p, theWireGeometry, theWireGrouping, nano_mu_digi_cff::wire, 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 131 of file CSCWireTopology.cc.
References CSCWireGeometry::equationOfWire(), theWireGeometry, and nano_mu_digi_cff::wire.
Referenced by CSCLayerGeometry::intersectionOfStripAndWire().
|
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 155 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 148 of file CSCWireTopology.cc.
References theWireGeometry, y, and CSCWireGeometry::yLimitsOfWirePlane().
Referenced by CSCLayerGeometry::intersectionOfStripAndWire().
|
inline |
Length/height of wire plane along long axis of trapezoid (local y direction)
Definition at line 96 of file CSCWireTopology.h.
References CSCWireGeometry::lengthOfPlane(), and theWireGeometry.
Referenced by MuCSCTnPFlatTableProducer::GetEdgeAndDistToGap(), and TrackDetectorAssociator::getTAMuonChamberMatches().
|
overridevirtual |
|
overridevirtual |
Topology interface, but not implemented for CSCWireTopology (yet!)
Implements Topology.
Definition at line 84 of file CSCWireTopology.cc.
|
overridevirtual |
Implements Topology.
Definition at line 102 of file CSCWireTopology.cc.
|
overridevirtual |
Implements Topology.
Definition at line 96 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 131 of file CSCWireTopology.h.
References CSCWireGrouping::middleWireOfGroup(), theWireGrouping, and wireGroup().
Referenced by CSCLayerGeometry::middleWireOfGroup(), and yOfWireGroup().
|
inline |
Width of wire plane at narrow end of trapezoid
Definition at line 86 of file CSCWireTopology.h.
References CSCWireGeometry::narrowWidthOfPlane(), and theWireGeometry.
Referenced by MuCSCTnPFlatTableProducer::GetEdgeAndDistToGap(), and 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 76 of file CSCWireTopology.h.
References CSCWireGeometry::nearestWire(), and theWireGeometry.
Referenced by CSCLayerGeometry::nearestWire().
|
inline |
How many wire groups
Definition at line 113 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 108 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 118 of file CSCWireTopology.h.
References CSCWireGrouping::numberOfWiresPerGroup(), theWireGrouping, and wireGroup().
Referenced by CSCLayerGeometry::numberOfWiresPerGroup().
CSCWireTopology & CSCWireTopology::operator= | ( | const CSCWireTopology & | mewt | ) |
Assignment op
Definition at line 65 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 135 of file CSCWireTopology.cc.
References theWireGeometry, y, and CSCWireGeometry::yLimitsOfWirePlane().
Referenced by CSCLayerGeometry::intersectionOfStripAndWire().
|
inline |
Width of wire plane at wide end of trapezoid
Definition at line 91 of file CSCWireTopology.h.
References theWireGeometry, and CSCWireGeometry::wideWidthOfPlane().
Referenced by MuCSCTnPFlatTableProducer::GetEdgeAndDistToGap(), and TrackDetectorAssociator::getTAMuonChamberMatches().
|
inlineoverridevirtual |
The angle of the wires w.r.t local x axis (in radians)
Implements WireTopology.
Definition at line 70 of file CSCWireTopology.h.
References theWireGeometry, and CSCWireGeometry::wireAngle().
Referenced by FWRecoGeometryESProducer::addCSCGeometry(), MuCSCTnPFlatTableProducer::GetEdgeAndDistToGap(), TrackDetectorAssociator::getTAMuonChamberMatches(), CSCGeometryValidate::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 162 of file CSCWireTopology.h.
References theWireGeometry, nano_mu_digi_cff::wire, and CSCWireGeometry::wireEnds().
|
inline |
Wire group containing a given wire
Definition at line 123 of file CSCWireTopology.h.
References theWireGrouping, nano_mu_digi_cff::wire, and CSCWireGrouping::wireGroup().
Referenced by middleWireOfGroup(), numberOfWiresPerGroup(), CSCLayerGeometry::wireGroup(), yOfWireGroup(), and yResolution().
|
inlineoverridevirtual |
The wire pitch. This is the wire spacing but old-timers like the word 'pitch'.
Implements WireTopology.
Definition at line 65 of file CSCWireTopology.h.
References wireSpacing().
Referenced by CSCLayerGeometry::wirePitch().
|
inline |
WireTopology interface The wire spacing (in cm)
Definition at line 59 of file CSCWireTopology.h.
References theWireGeometry, and CSCWireGeometry::wireSpacing().
Referenced by FWRecoGeometryESProducer::addCSCGeometry(), CSCWireTopology(), extentOfWirePlane(), CSCGeometryValidate::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 167 of file CSCWireTopology.h.
References theWireGeometry, nano_mu_digi_cff::wire, and CSCWireGeometry::wireValues().
Referenced by CSCLayerGeometry::lengthOfWireGroup(), and CSCLayerGeometry::localCenterOfWireGroup().
|
inline |
Local y of a given wire 'number' (float) at given x
Definition at line 81 of file CSCWireTopology.h.
References theWireGeometry, nano_mu_digi_cff::wire, x, and CSCWireGeometry::yOfWire().
Referenced by MuCSCTnPFlatTableProducer::GetEdgeAndDistToGap(), 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 114 of file CSCWireTopology.cc.
References middleWireOfGroup(), theWireGeometry, nano_mu_digi_cff::wire, wireGroup(), x, and CSCWireGeometry::yOfWire().
Referenced by 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 119 of file CSCWireTopology.cc.
References CSCWireGrouping::numberOfWiresPerGroup(), mathSSE::sqrt(), theWireGrouping, wireGroup(), and wireSpacing().
Referenced by CSCLayerGeometry::yResolution().
|
private |
Definition at line 190 of file CSCWireTopology.h.
Referenced by operator=().
|
private |
Definition at line 188 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 187 of file CSCWireTopology.h.
Referenced by channel(), CSCWireTopology(), middleWireOfGroup(), numberOfWireGroups(), numberOfWires(), numberOfWiresPerGroup(), operator=(), wireGroup(), and yResolution().