ATLAS Offline Software
|
This class represents the corrected MDT measurements, where the corrections include the effects of wire sag etc. More...
#include <MdtDriftCircleOnTrack.h>
Public Member Functions | |
MdtDriftCircleOnTrack ()=default | |
Default ctor - for use by POOL only. More... | |
MdtDriftCircleOnTrack (const MdtDriftCircleOnTrack &) | |
MdtDriftCircleOnTrack & | operator= (const MdtDriftCircleOnTrack &) |
MdtDriftCircleOnTrack (MdtDriftCircleOnTrack &&)=default | |
MdtDriftCircleOnTrack & | operator= (MdtDriftCircleOnTrack &&)=default |
MdtDriftCircleOnTrack (const MdtPrepData *RIO, Trk::LocalParameters &&locPos, Amg::MatrixX &&errDriftRadius, const double driftTime, const Trk::DriftCircleStatus status, const Amg::Vector3D &globDir, const double positionAlongWire, const MuonDriftCircleErrorStrategy &errorStrategy) | |
Constructor for both non-sagged and sagged wire (default is non-sagged, since saggedSurface=0). More... | |
MdtDriftCircleOnTrack (const MdtPrepData *RIO, Trk::LocalParameters &&locPos, Amg::MatrixX &&errDriftRadius, const double driftTime, const Trk::DriftCircleStatus status, const double positionAlongWire, const MuonDriftCircleErrorStrategy &errorStrategy) | |
Constructor without global direction for both non-sagged and sagged wire (default is non-sagged, since saggedSurface=0). More... | |
MdtDriftCircleOnTrack (const ElementLinkToIDC_MDT_Container &RIO, Trk::LocalParameters &&locPos, Amg::MatrixX &&errDriftRadius, const Identifier &id, const MuonGM::MdtReadoutElement *detEl, const double driftTime, const Trk::DriftCircleStatus status, const double positionAlongWire, const double localAngle, const MuonDriftCircleErrorStrategy &errorStrategy) | |
virtual | ~MdtDriftCircleOnTrack ()=default |
Destructor: More... | |
Trk::DriftCircleSide | side () const |
Returns the side on which the drift radius is wrt to the track. More... | |
Trk::DriftCircleStatus | status () const |
Returns the status of the drift radius calibration. More... | |
virtual MdtDriftCircleOnTrack * | clone () const override final |
Pseudo-constructor, needed to avoid excessive RTTI. More... | |
virtual const MdtPrepData * | prepRawData () const override final |
Returns the PrepRawData used to create this corrected measurement. More... | |
const ElementLinkToIDC_MDT_Container & | prepRawDataLink () const |
IdentifierHash | collectionHash () const |
Returns the hashID of the PRD collection. More... | |
virtual IdentifierHash | idDE () const override final |
Returns an invalid hash. More... | |
virtual const MuonGM::MdtReadoutElement * | detectorElement () const override final |
Returns the detector element, assoicated with the PRD of this class. More... | |
virtual const Trk::StraightLineSurface & | associatedSurface () const override final |
Returns the surface on which this measurement was taken. More... | |
virtual const Amg::Vector3D & | globalPosition () const override final |
Returns the global Position. More... | |
virtual bool | rioType (Trk::RIO_OnTrackType::Type type) const override final |
Method checking the Rio On Track type. More... | |
double | driftRadius () const |
Returns the value of the drift radius. More... | |
double | driftTime () const |
Returns the value of the drift time used to obtain the drift radius. More... | |
double | positionAlongWire () const |
Returns the position along the wire, as determined by the extrapolation used when creating this Trk::RIO_OnTrack. More... | |
double | localAngle () const |
Returns the local angle, as determined by the extrapolation used when creating this Trk::RIO_OnTrack. More... | |
const MuonDriftCircleErrorStrategy & | errorStrategy () const |
Get information about the creation strategy used by Muon::MdtDriftCircleOnTrackCreator when making this object. More... | |
virtual MsgStream & | dump (MsgStream &stream) const override final |
Dumps information about the PRD. More... | |
virtual std::ostream & | dump (std::ostream &stream) const override final |
Dumps information about the PRD. More... | |
std::unique_ptr< RIO_OnTrack > | uniqueClone () const |
NVI clone returning unique_ptr. More... | |
virtual bool | type (MeasurementBaseType::Type type) const override final |
Extended method checking the type. More... | |
Identifier | identify () const |
return the identifier -extends MeasurementBase More... | |
const LocalParameters & | localParameters () const |
Interface method to get the LocalParameters. More... | |
const Amg::MatrixX & | localCovariance () const |
Interface method to get the localError. More... | |
Static Public Member Functions | |
static std::size_t | numberOfInstantiations () |
Static Public Attributes | |
static std::atomic_size_t | s_numberOfInstantiations |
Protected Attributes | |
Identifier | m_identifier {} |
Identifier of the RIO_OnTrack (comes from the associated Trk::PrepRawData) More... | |
LocalParameters | m_localParams |
Amg::MatrixX | m_localCovariance |
Private Member Functions | |
virtual void | setLocalParameters (const Trk::LocalParameters &locPos) |
Sets the local parameters. More... | |
virtual void | setValues (const Trk::TrkDetElementBase *, const Trk::PrepRawData *) override final |
Sets the DetElement and Trk::PrepRawData pointers after reading from disk. More... | |
void | setGlobalPosition (Amg::Vector3D &&loc3Dframe) const |
Uses the passed loc3Dframe to calculate and set the global coord of this hit. More... | |
void | setErrorStrategy (const MuonDriftCircleErrorStrategy &strategy) |
Private Attributes | |
Trk::DriftCircleStatus | m_status {Trk::DriftCircleStatus::UNDECIDED} |
information on the status of the Mdt measurement - see Trk::DriftCircleStatus for definitions More... | |
ElementLinkToIDC_MDT_Container | m_rio {} |
the pointer to the MdtPrepData object (mutable because it might need to be recreated when reading tracks) More... | |
CxxUtils::CachedUniquePtr< Amg::Vector3D > | m_globalPosition {} |
global position of the measurement. More... | |
double | m_localAngle {0.} |
This angle is the position of the point of closest approach in cylindrical coordinates, and is needed to construct the global position. More... | |
double | m_positionAlongWire {0.} |
This is the position of the point of closest approach, in the local z coord (i.e. More... | |
double | m_driftTime {0.} |
This is the drift time used to obtain the drift radius. More... | |
MuonDriftCircleErrorStrategy | m_errorStrategy {} |
Records information about the 'strategy' used by Muon::MdtDriftCircleOnTrackCreator to make this object. More... | |
const MuonGM::MdtReadoutElement * | m_detEl {nullptr} |
Friends | |
class | Trk::ITrkEventCnvTool |
class | Muon::MuonEventCnvTool |
class | Muon::MdtDriftCircleOnTrackCreator |
This class represents the corrected MDT measurements, where the corrections include the effects of wire sag etc.
Definition at line 37 of file MdtDriftCircleOnTrack.h.
|
default |
Muon::MdtDriftCircleOnTrack::MdtDriftCircleOnTrack | ( | const MdtDriftCircleOnTrack & | other | ) |
Definition at line 64 of file MdtDriftCircleOnTrack.cxx.
|
default |
Muon::MdtDriftCircleOnTrack::MdtDriftCircleOnTrack | ( | const MdtPrepData * | RIO, |
Trk::LocalParameters && | locPos, | ||
Amg::MatrixX && | errDriftRadius, | ||
const double | driftTime, | ||
const Trk::DriftCircleStatus | status, | ||
const Amg::Vector3D & | globDir, | ||
const double | positionAlongWire, | ||
const MuonDriftCircleErrorStrategy & | errorStrategy | ||
) |
Constructor for both non-sagged and sagged wire (default is non-sagged, since saggedSurface=0).
Using the constructor implies the sign solution of the MDT is resolved.
The identifier hash, det element pointer etc are taken from RIO (the MdtPrepData pointer) so it is vital that this pointer is not zero.
[in] | RIO | pointer to parent MdtPrepData used to create this RIO_OnTrack |
[in] | locPos | local position (i.e. drift radius) of the measurement. This drift radius includes all corrections |
[in] | errDriftRadius | the Amg::MatrixX (should be 1d, and contains the error on the drift radius measurement) |
[in] | driftTime | drift time used to obtain the drift radius |
[in] | status | status of drift circle. See Trk::DriftCircleStatus for definitions. |
[in] | globDir | the predicted/extrapolated track direction (used to calculate global position) |
[in] | positionAlongWire | this is the extrapolated position along the wire. i.e. it is NOT a measurement, and so should not be included in the Amg::MatrixX |
[in] | saggedSurface | pointer to a Trk::StraightLineSurface created at the sagged position of the wire. It is not mandatory (i.e. if nothing is passed, or a zero pointer then the non-sagged wire is used). If something is passed, this object will own it (i.e. it will be deleted by this object) |
[in] | creationParameters | A bitword containing information about the construction of the ROT. See m_rotCreationParameters for details. |
scaling the direction with drift radius
Definition at line 16 of file MdtDriftCircleOnTrack.cxx.
Muon::MdtDriftCircleOnTrack::MdtDriftCircleOnTrack | ( | const MdtPrepData * | RIO, |
Trk::LocalParameters && | locPos, | ||
Amg::MatrixX && | errDriftRadius, | ||
const double | driftTime, | ||
const Trk::DriftCircleStatus | status, | ||
const double | positionAlongWire, | ||
const MuonDriftCircleErrorStrategy & | errorStrategy | ||
) |
Constructor without global direction for both non-sagged and sagged wire (default is non-sagged, since saggedSurface=0).
This necessarily implies that the DriftCircleStatus is UNDECIDED, since without the GlobalDirection it cannot be worked out. In order to have a fully defined MdtDriftCircleOnTrack it is necessary to use the complete constructor (above)
The identifier hash, det element pointer etc are taken from RIO (the MdtPrepData pointer) so it is vital that this pointer is not zero.
[in] | RIO | pointer to parent MdtPrepData used to create this RIO_OnTrack |
[in] | locPos | local position (i.e. drift radius) of the measurement. This drift radius includes all corrections |
[in] | errDriftRadius | the Amg::MatrixX (should be 1d, and contains the error on the drift radius measurement) |
[in] | driftTime | drift time used to obtain the drift radius |
[in] | status | status of drift circle. See Trk::DriftCircleStatus for definitions. |
[in] | positionAlongWire | this is the extrapolated position along the wire. i.e. it is NOT a measurement, and so should not be included in the Amg::MatrixX |
[in] | saggedSurface | pointer to a Trk::StraightLineSurface created at the sagged position of the wire. It is not mandatory (i.e. if nothing is passed, or a zero pointer then the non-sagged wire is used). If something is passed, this object will own it (i.e. it will be deleted by this object) |
[in] | creationParameters | A bitword containing information about the construction of the ROT. See m_rotCreationParameters for details. |
Definition at line 48 of file MdtDriftCircleOnTrack.cxx.
Muon::MdtDriftCircleOnTrack::MdtDriftCircleOnTrack | ( | const ElementLinkToIDC_MDT_Container & | RIO, |
Trk::LocalParameters && | locPos, | ||
Amg::MatrixX && | errDriftRadius, | ||
const Identifier & | id, | ||
const MuonGM::MdtReadoutElement * | detEl, | ||
const double | driftTime, | ||
const Trk::DriftCircleStatus | status, | ||
const double | positionAlongWire, | ||
const double | localAngle, | ||
const MuonDriftCircleErrorStrategy & | errorStrategy | ||
) |
Definition at line 74 of file MdtDriftCircleOnTrack.cxx.
|
virtualdefault |
Destructor:
|
inlinefinaloverridevirtual |
Returns the surface on which this measurement was taken.
Implements Trk::RIO_OnTrack.
Definition at line 271 of file MdtDriftCircleOnTrack.h.
|
inlinefinaloverridevirtual |
Pseudo-constructor, needed to avoid excessive RTTI.
Implements Trk::RIO_OnTrack.
Definition at line 256 of file MdtDriftCircleOnTrack.h.
|
inline |
Returns the hashID of the PRD collection.
Definition at line 264 of file MdtDriftCircleOnTrack.h.
|
inlinefinaloverridevirtual |
Returns the detector element, assoicated with the PRD of this class.
Implements Trk::RIO_OnTrack.
Definition at line 268 of file MdtDriftCircleOnTrack.h.
|
inline |
Returns the value of the drift radius.
Obviously to use this method you need to cast to a MdtDriftCircleOnTrack if you have a pointer or reference to the base class (Trk::RIO_OnTrack). An alternative is to use:
Definition at line 277 of file MdtDriftCircleOnTrack.h.
|
inline |
Returns the value of the drift time used to obtain the drift radius.
Obviously to use this method you need to cast to a MdtDriftCircleOnTrack if you have a pointer or reference to the base class (Trk::RIO_OnTrack).
Definition at line 280 of file MdtDriftCircleOnTrack.h.
|
finaloverridevirtual |
Dumps information about the PRD.
Reimplemented from Trk::RIO_OnTrack.
Definition at line 130 of file MdtDriftCircleOnTrack.cxx.
|
finaloverridevirtual |
Dumps information about the PRD.
Reimplemented from Trk::RIO_OnTrack.
Definition at line 145 of file MdtDriftCircleOnTrack.cxx.
|
inline |
Get information about the creation strategy used by Muon::MdtDriftCircleOnTrackCreator when making this object.
Definition at line 283 of file MdtDriftCircleOnTrack.h.
|
finaloverridevirtual |
Returns the global Position.
Be aware that this is calculated from the predicted position along the tube, and the drift radius. i.e. it is partly inferred from other data, and so is not a 'true' measurement.
Implements Trk::RIO_OnTrack.
Definition at line 108 of file MdtDriftCircleOnTrack.cxx.
|
inlinefinaloverridevirtual |
Returns an invalid hash.
Implements Trk::RIO_OnTrack.
Definition at line 149 of file MdtDriftCircleOnTrack.h.
|
inlineinherited |
|
inline |
Returns the local angle, as determined by the extrapolation used when creating this Trk::RIO_OnTrack.
Definition at line 282 of file MdtDriftCircleOnTrack.h.
|
inlineinherited |
Interface method to get the localError.
Definition at line 138 of file MeasurementBase.h.
|
inlineinherited |
Interface method to get the LocalParameters.
Definition at line 132 of file MeasurementBase.h.
|
inlinestaticinherited |
Definition at line 25 of file TrkObjectCounter.h.
MdtDriftCircleOnTrack & Muon::MdtDriftCircleOnTrack::operator= | ( | const MdtDriftCircleOnTrack & | other | ) |
Definition at line 94 of file MdtDriftCircleOnTrack.cxx.
|
default |
|
inline |
Returns the position along the wire, as determined by the extrapolation used when creating this Trk::RIO_OnTrack.
Definition at line 281 of file MdtDriftCircleOnTrack.h.
|
inlinefinaloverridevirtual |
Returns the PrepRawData used to create this corrected measurement.
Implements Trk::RIO_OnTrack.
Definition at line 257 of file MdtDriftCircleOnTrack.h.
|
inline |
Definition at line 262 of file MdtDriftCircleOnTrack.h.
|
inlinefinaloverridevirtual |
Method checking the Rio On Track type.
Implements Trk::RIO_OnTrack.
Definition at line 166 of file MdtDriftCircleOnTrack.h.
|
inlineprivate |
Definition at line 276 of file MdtDriftCircleOnTrack.h.
|
private |
Uses the passed loc3Dframe to calculate and set the global coord of this hit.
If there is a sagged wire defined, this will be used for the transformation, otherwise the detector element surface is used
Definition at line 125 of file MdtDriftCircleOnTrack.cxx.
|
inlineprivatevirtual |
Sets the local parameters.
Definition at line 275 of file MdtDriftCircleOnTrack.h.
|
inlinefinaloverrideprivatevirtual |
Sets the DetElement and Trk::PrepRawData pointers after reading from disk.
Implements Trk::RIO_OnTrack.
Definition at line 286 of file MdtDriftCircleOnTrack.h.
|
inline |
Returns the side on which the drift radius is wrt to the track.
Definition at line 249 of file MdtDriftCircleOnTrack.h.
|
inline |
Returns the status of the drift radius calibration.
(for more information see the definition of TrkEventPrimitives/DriftCircleStatus)
Definition at line 255 of file MdtDriftCircleOnTrack.h.
|
inlinefinaloverridevirtualinherited |
Extended method checking the type.
Implements Trk::MeasurementBase.
Definition at line 110 of file RIO_OnTrack.h.
|
inlineinherited |
NVI clone returning unique_ptr.
Definition at line 97 of file RIO_OnTrack.h.
|
friend |
Definition at line 42 of file MdtDriftCircleOnTrack.h.
|
friend |
Definition at line 41 of file MdtDriftCircleOnTrack.h.
|
friend |
Definition at line 40 of file MdtDriftCircleOnTrack.h.
|
private |
Definition at line 241 of file MdtDriftCircleOnTrack.h.
|
private |
This is the drift time used to obtain the drift radius.
Definition at line 235 of file MdtDriftCircleOnTrack.h.
|
private |
Records information about the 'strategy' used by Muon::MdtDriftCircleOnTrackCreator to make this object.
Definition at line 238 of file MdtDriftCircleOnTrack.h.
|
private |
global position of the measurement.
Definition at line 226 of file MdtDriftCircleOnTrack.h.
|
protectedinherited |
Identifier of the RIO_OnTrack (comes from the associated Trk::PrepRawData)
Definition at line 149 of file RIO_OnTrack.h.
|
private |
This angle is the position of the point of closest approach in cylindrical coordinates, and is needed to construct the global position.
Definition at line 229 of file MdtDriftCircleOnTrack.h.
|
protectedinherited |
Definition at line 112 of file MeasurementBase.h.
|
protectedinherited |
Definition at line 111 of file MeasurementBase.h.
|
private |
This is the position of the point of closest approach, in the local z coord (i.e.
along the wire), and is needed to construct the global position
Definition at line 232 of file MdtDriftCircleOnTrack.h.
|
private |
the pointer to the MdtPrepData object (mutable because it might need to be recreated when reading tracks)
Definition at line 223 of file MdtDriftCircleOnTrack.h.
|
private |
information on the status of the Mdt measurement - see Trk::DriftCircleStatus for definitions
Definition at line 220 of file MdtDriftCircleOnTrack.h.
|
inlinestaticinherited |
Definition at line 22 of file TrkObjectCounter.h.