#include <DTTopology.h>
Public Types | |
enum | Side { zMin, zMax, xMin, xMax, yMin, yMax, none } |
Sides of the cell. More... | |
Public Types inherited from Topology | |
typedef Point2DBase< double, LocalTag > | Local2DPoint |
typedef Vector2D::MathVector | MathVector2D |
typedef Basic2DVector< double > | Vector2D |
Public Member Functions | |
float | cellHeight () const |
Returns the cell height. More... | |
float | cellLenght () const |
float | cellWidth () const |
Returns the cell width. More... | |
int | channel (const LocalPoint &p) const override |
int | channels () const |
Returns the number of wires in the layer. More... | |
DTTopology (int firstWire, int nChannels, float semilenght) | |
Constructor: number of first wire, total # of wires in the layer and their lenght. More... | |
int | firstChannel () const |
Returns the wire number of the first wire. More... | |
bool | isWireValid (const int wireNumber) const |
int | lastChannel () const |
Returns the wire number of the last wire. More... | |
LocalError | localError (const MeasurementPoint &, const MeasurementError &) const override |
LocalPoint | localPosition (const MeasurementPoint &) const override |
MeasurementError | measurementError (const LocalPoint &, const LocalError &) const override |
Conversion to the measurement frame. More... | |
MeasurementPoint | measurementPosition (const LocalPoint &) const override |
Side | onWhichBorder (float x, float y, float z) const |
Side | onWhichBorder_old (float x, float y, float z) const |
Returns the side of the cell in which resides the point (x,y,z) (old cell geometry). More... | |
float | sensibleHeight () const |
Returns the height of the actual sensible volume of the cell. More... | |
float | sensibleWidth () const |
Returns the width of the actual sensible volume of the cell. More... | |
float | wirePosition (int wireNumber) const |
Returns the x position in the layer of a given wire number. More... | |
~DTTopology () 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 | |
int | theFirstChannel |
float | theLength |
int | theNChannels |
Local2DPoint | theOffSet |
Static Private Attributes | |
static const float | IBeamThickness = 0.13 |
static const float | IBeamWingLength = 0.635 |
static const float | IBeamWingThickness = 0.13 |
static const float | plateThickness = 0.15 |
static const float | theHeight = 1.3 |
static const float | theWidth = 4.2 |
Conversion between the local frame of the DT DetUnits (i.e. a layer of cells in a superlayer) and the "measurement frame". This is a rectangular frame where x runs between (FirstCellNumber-0.5) and (LastCellNumber+0.5). Note that cell numbers follow the hardware convention, so that FirstCellNumber is either 1 or 2 depending of the layer.
Note that DTs measure a time, not a position, so unlike for strip detectors, there is no guarantee that a measurement in a cell will not end up in the neighbouring cell. This must be taken into account for all cases where a * LocalPoint is used as an argument, e.g. to get back the channel number. This will be an issue if wire misalignment is introduced.
The Topology interface is extended with methods relevant for the DT detectors, e.g. wirePosition(int), etc.
Definition at line 28 of file DTTopology.h.
enum DTTopology::Side |
Sides of the cell.
Enumerator | |
---|---|
zMin | |
zMax | |
xMin | |
xMax | |
yMin | |
yMax | |
none |
Definition at line 89 of file DTTopology.h.
DTTopology::DTTopology | ( | int | firstWire, |
int | nChannels, | ||
float | semilenght | ||
) |
Constructor: number of first wire, total # of wires in the layer and their lenght.
Definition at line 22 of file DTTopology.cc.
References gather_cfg::cout, theFirstChannel, theHeight, theLength, theNChannels, theOffSet, and theWidth.
|
inlineoverride |
Definition at line 33 of file DTTopology.h.
|
inline |
Returns the cell height.
Definition at line 71 of file DTTopology.h.
References theHeight.
Referenced by FWRecoGeometryESProducer::addDTGeometry(), DTGeometryTest::analyze(), DTDigitizer::dumpHit(), HoughGrouping::obtainGeometricalBorders(), and HoughGrouping::run().
|
inline |
Returns the cell length. This is the length of the sensitive volume, i.e. lenght of the wire minus the lenght of the two tappini (1.55 mm each)
Definition at line 74 of file DTTopology.h.
References theLength.
Referenced by FWRecoGeometryESProducer::addDTGeometry(), DTGeometryTest::analyze(), DTDigitizer::dumpHit(), DTDigitizer::externalDelays(), DTTTrigSyncTOFCorr::offset(), DTTTrigSyncFromDB::offset(), and DTRecHitQuality::simHitDistFromFE().
|
inline |
Returns the cell width.
Definition at line 69 of file DTTopology.h.
References theWidth.
Referenced by FWRecoGeometryESProducer::addDTGeometry(), DTGeometryTest::analyze(), DTDigitizer::dumpHit(), HoughGrouping::obtainGeometricalBorders(), DTTrigGeomUtils::phiRange(), HoughGrouping::run(), and DTTrigGeomUtils::thetaRange().
|
overridevirtual |
Return the wire number, starting from a LocalPoint. This method is deprecated: when converting the position of a rechit, there is no guarantee that the converted value can be interpreted as the cell where the hit belongs, see note on neighbouring cells in the class header.
Implements Topology.
Definition at line 54 of file DTTopology.cc.
References theFirstChannel, theOffSet, theWidth, PV2DBase< T, PVType, FrameType >::x(), and PV3DBase< T, PVType, FrameType >::x().
Referenced by HoughGrouping::associateHits(), and MuonSimHitProducer::produce().
|
inline |
Returns the number of wires in the layer.
Definition at line 76 of file DTTopology.h.
References theNChannels.
Referenced by FWRecoGeometryESProducer::addDTGeometry(), DTGeometryTest::analyze(), DTNoiseAnalysisTest::dqmEndLuminosityBlock(), DTEfficiencyTest::dqmEndLuminosityBlock(), DTTrigGeom::getGeom(), DTTrigGeomUtils::phiRange(), DTOccupancyTest::runOccupancyTest(), DTOccupancyTestML::runOccupancyTest(), and DTTrigGeomUtils::thetaRange().
|
inline |
Returns the wire number of the first wire.
Definition at line 79 of file DTTopology.h.
References theFirstChannel.
Referenced by FWRecoGeometryESProducer::addDTGeometry(), DTGeometryTest::analyze(), DTTPDeadWriter::analyze(), DTNoiseCalibration::analyze(), DTEfficiencyTask::analyze(), HoughGrouping::associateHits(), DTt0DBValidation::beginRun(), dtCalibration::DTT0WireInChamberReferenceCorrection::correction(), DTNoiseAnalysisTest::dqmEndLuminosityBlock(), DTEfficiencyTest::dqmEndLuminosityBlock(), DTT0Correction::endJob(), DTNoiseCalibration::endJob(), DTTrigGeom::getGeom(), HoughGrouping::obtainGeometricalBorders(), DTLocalTriggerBaseTest::phiRange(), MuonSimHitProducer::produce(), HoughGrouping::run(), DTOccupancyTest::runOccupancyTest(), DTOccupancyTestML::runOccupancyTest(), and ValidateGeometry::validateDTLayerGeometry().
|
inline |
Definition at line 64 of file DTTopology.h.
References lastChannel(), and theFirstChannel.
Referenced by DTLinearDriftAlgo::compute(), DTNoDriftAlgo::compute(), DTLinearDriftFromDBAlgo::compute(), and wirePosition().
|
inline |
Returns the wire number of the last wire.
Definition at line 81 of file DTTopology.h.
References theFirstChannel, and theNChannels.
Referenced by FWRecoGeometryESProducer::addDTGeometry(), DTGeometryTest::analyze(), DTNoiseCalibration::analyze(), DTEfficiencyTask::analyze(), DTnoiseDBValidation::beginRun(), DTt0DBValidation::beginRun(), DTEfficiencyTest::dqmEndLuminosityBlock(), DTT0Correction::endJob(), DTNoiseCalibration::endJob(), isWireValid(), HoughGrouping::obtainGeometricalBorders(), DTLocalTriggerBaseTest::phiRange(), MuonSimHitProducer::produce(), HoughGrouping::run(), ValidateGeometry::validateDTLayerGeometry(), and wirePosition().
|
overridevirtual |
Conversion between measurement coordinates and local cartesian coordinates.
Implements Topology.
Definition at line 41 of file DTTopology.cc.
References theLength, theWidth, MeasurementError::uu(), and MeasurementError::vv().
|
overridevirtual |
Conversion between measurement coordinates and local cartesian coordinates.
Implements Topology.
Definition at line 37 of file DTTopology.cc.
References theFirstChannel, theLength, theOffSet, theWidth, PV2DBase< T, PVType, FrameType >::x(), and PV2DBase< T, PVType, FrameType >::y().
|
overridevirtual |
Conversion to the measurement frame.
Implements Topology.
Definition at line 50 of file DTTopology.cc.
References theLength, theWidth, LocalError::xx(), and LocalError::yy().
|
overridevirtual |
Conversion to the measurement frame. (Caveat: when converting the position of a rechit, there is no guarantee that the converted value can be interpreted as the cell where the hit belongs, see note on neighbouring cells in the class header.
Implements Topology.
Definition at line 45 of file DTTopology.cc.
References theFirstChannel, theLength, theOffSet, theWidth, PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::y().
DTTopology::Side DTTopology::onWhichBorder | ( | float | x, |
float | y, | ||
float | z | ||
) | const |
Returns the side of the cell in which resides the point (x,y,z) (new cell geometry, i.e. with I-beam profiles).
Definition at line 78 of file DTTopology.cc.
References geometryDiff::epsilon, IBeamWingLength, IBeamWingThickness, none, sensibleHeight(), sensibleWidth(), xMax, xMin, zMax, and zMin.
Referenced by DTDigitizer::computeTime(), DTDigitizer::dumpHit(), and DTHitAssociator::SimHitOK().
DTTopology::Side DTTopology::onWhichBorder_old | ( | float | x, |
float | y, | ||
float | z | ||
) | const |
Returns the side of the cell in which resides the point (x,y,z) (old cell geometry).
Definition at line 112 of file DTTopology.cc.
References geometryDiff::epsilon, none, sensibleHeight(), sensibleWidth(), xMax, xMin, zMax, and zMin.
float DTTopology::sensibleHeight | ( | ) | const |
Returns the height of the actual sensible volume of the cell.
Definition at line 35 of file DTTopology.cc.
References plateThickness, and theHeight.
Referenced by onWhichBorder(), and onWhichBorder_old().
float DTTopology::sensibleWidth | ( | ) | const |
Returns the width of the actual sensible volume of the cell.
Definition at line 33 of file DTTopology.cc.
References IBeamThickness, and theWidth.
Referenced by onWhichBorder(), and onWhichBorder_old().
float DTTopology::wirePosition | ( | int | wireNumber | ) | const |
Returns the x position in the layer of a given wire number.
Definition at line 59 of file DTTopology.cc.
References Exception, isWireValid(), lastChannel(), theFirstChannel, theOffSet, theWidth, and PV2DBase< T, PVType, FrameType >::x().
Referenced by DTResolutionAnalysisTask::analyze(), HoughGrouping::associateHits(), DTSegmentUpdator::calculateT0corr(), DTRecHitSegmentResidual::compute(), DTLinearDriftAlgo::compute(), DTNoDriftAlgo::compute(), DTLinearDriftFromDBAlgo::compute(), DTCalibValidationFromMuons::compute(), DTCalibValidation::compute(), DTDigitizer::computeTime(), DTDigiSyncTOFCorr::digitizerOffset(), DTSegmentUpdator::fit(), DTTrigGeom::getGeom(), DTTMax::InfoLayer::InfoLayer(), DTClusterer::initHits(), DTTrigGeom::localPosition(), HoughGrouping::obtainGeometricalBorders(), DTTTrigSyncTOFCorr::offset(), DTTTrigSyncFromDB::offset(), DTLocalTriggerBaseTest::phiRange(), DTCalibValidationFromMuons::recHitDistFromWire(), DTCalibValidation::recHitDistFromWire(), DTRecHitQuality::recHitDistFromWire(), GlobalRecHitsAnalyzer::recHitDistFromWire(), GlobalRecHitsProducer::recHitDistFromWire(), HoughGrouping::run(), MuonPathAnalyticAnalyzer::segment_fitter(), DTResidualCalibration::segmentToWireDistance(), DTRecHitQuality::simHitDistFromWire(), GlobalRecHitsAnalyzer::simHitDistFromWire(), GlobalRecHitsProducer::simHitDistFromWire(), DTHitAssociator::SimHitOK(), DTTrigGeom::tubePosInCh(), DTSegmentUpdator::updateHits(), and ValidateGeometry::validateDTLayerGeometry().
|
staticprivate |
Definition at line 108 of file DTTopology.h.
Referenced by sensibleWidth().
|
staticprivate |
Definition at line 106 of file DTTopology.h.
Referenced by onWhichBorder().
|
staticprivate |
Definition at line 105 of file DTTopology.h.
Referenced by onWhichBorder().
|
staticprivate |
Definition at line 107 of file DTTopology.h.
Referenced by sensibleHeight().
|
private |
Definition at line 98 of file DTTopology.h.
Referenced by channel(), DTTopology(), firstChannel(), isWireValid(), lastChannel(), localPosition(), measurementPosition(), and wirePosition().
|
staticprivate |
Definition at line 102 of file DTTopology.h.
Referenced by cellHeight(), DTTopology(), and sensibleHeight().
|
private |
Definition at line 103 of file DTTopology.h.
Referenced by cellLenght(), DTTopology(), localError(), localPosition(), measurementError(), and measurementPosition().
|
private |
Definition at line 99 of file DTTopology.h.
Referenced by channels(), DTTopology(), and lastChannel().
|
private |
Definition at line 110 of file DTTopology.h.
Referenced by channel(), DTTopology(), localPosition(), measurementPosition(), and wirePosition().
|
staticprivate |
Definition at line 101 of file DTTopology.h.
Referenced by cellWidth(), channel(), DTTopology(), localError(), localPosition(), measurementError(), measurementPosition(), sensibleWidth(), and wirePosition().