ATLAS Offline Software
Loading...
Searching...
No Matches
xAOD::CombinedMuonStrip_v1 Class Reference

The Acts fitters running on the Uncalibrated measurements are uncapable of producing two track states on the same surface or alternatively, the propagation onto two surfaces at the same position is numerically challenging due to the zeroish step length. More...

#include <CombinedMuonStrip_v1.h>

Inheritance diagram for xAOD::CombinedMuonStrip_v1:
Collaboration diagram for xAOD::CombinedMuonStrip_v1:

Public Member Functions

 CombinedMuonStrip_v1 ()=default
 Empty constructor.
virtual ~CombinedMuonStrip_v1 ()=default
 virtual destructor
virtual xAOD::UncalibMeasType type () const override final
 Returns the type of the measurement type as a simple enumeration.
unsigned numDimensions () const override
 Specify the number of dimensions as zero -> handle in the calibrator.
const xAOD::MuonMeasurementprimaryStrip () const
 Returns the primary associated measurement.
void setPrimaryStrip (const xAOD::MuonMeasurement *meas)
 Links a prd measurement as primary meaurement.
const xAOD::MuonMeasurementsecondaryStrip () const
 Returns the secondary associated measurement.
void setSecondaryStrip (const xAOD::MuonMeasurement *meas)
 Linkt a prd measurement as secondary measurement.
const MuonGMR4::MuonReadoutElementreadoutElement () const override final
 Returns the associated readout element.
virtual std::uint8_t measuresPhi () const override final
 Returns whether the phi coordinate is measured.
virtual IdentifierHash measurementHash () const override final
 Returns the hash of the measurement channel.
virtual IdentifierHash layerHash () const override final
 Returns the hash of the associated layer (Needed for surface retrieval).
Amg::Vector3D localMeasurementPos () const override final
 Returns the local measurement position in the layer frame.
const Identifieridentify () const
 Returns the Athena identifier of the measurement.
Functions to get measurement properties
DetectorIDHashType identifierHash () const
 Returns the IdentifierHash of the measurement (corresponds to the detector element IdentifierHash).
DetectorIdentType identifier () const
 Returns the full Identifier of the measurement.
template<int N>
ConstVectorMap< N > localPosition () const
 Returns the local position of the measurement.
template<int N>
VectorMap< N > localPosition ()
 Returns the local position as mutable eigen map which can be assigned as well.
template<int N>
ConstMatrixMap< N > localCovariance () const
 Returns the local covariance of the measurement.
template<int N>
MatrixMap< N > localCovariance ()
 Returns the local covariance as mutable eigen map which can be assigned as well.
Functions to set measurement properties
void setIdentifierHash (const DetectorIDHashType idHash)
 Sets the IdentifierHash of the measurement (corresponds to the detector element IdentifierHash).
void setIdentifier (const DetectorIdentType measId)
 Sets the full Identifier of the measurement.
Direct method to set measurement properties
template<int N>
void setMeasurement (const DetectorIDHashType idHash, MeasVector< N > locPos, MeasMatrix< N > locCov)
 Sets IdentifierHash, local position and local covariance of the measurement.

Protected Attributes

CxxUtils::CachedValue< const MuonGMR4::MuonReadoutElement * > m_readoutEle {}
 Cache value of the.

Private Attributes

CxxUtils::CachedValue< Identifierm_identifier {}

Detailed Description

The Acts fitters running on the Uncalibrated measurements are uncapable of producing two track states on the same surface or alternatively, the propagation onto two surfaces at the same position is numerically challenging due to the zeroish step length.

Therefore, the R4 geometry only produces one set of surfaces where local x is oriented with the eta measurement's direction. The CombinedMuonStrip provides a mechanism to pipe the two eta & phi measurements in the same gas gap through the fitting infrastructre. By convention, the combined Muon strip returns the same measurement type as the prds that they're carrying but the dimension is always zero providing a handle to properly distinguish them in the SpacePointCalibrator without the useage of dynamic_casts

Definition at line 19 of file CombinedMuonStrip_v1.h.

Constructor & Destructor Documentation

◆ CombinedMuonStrip_v1()

xAOD::CombinedMuonStrip_v1::CombinedMuonStrip_v1 ( )
default

Empty constructor.

◆ ~CombinedMuonStrip_v1()

virtual xAOD::CombinedMuonStrip_v1::~CombinedMuonStrip_v1 ( )
virtualdefault

virtual destructor

Member Function Documentation

◆ identifier()

DetectorIdentType xAOD::UncalibratedMeasurement_v1::identifier ( ) const
inherited

Returns the full Identifier of the measurement.

◆ identifierHash()

DetectorIDHashType xAOD::UncalibratedMeasurement_v1::identifierHash ( ) const
inherited

Returns the IdentifierHash of the measurement (corresponds to the detector element IdentifierHash).

◆ identify()

const Identifier & xAOD::MuonMeasurement_v1::identify ( ) const
inherited

Returns the Athena identifier of the measurement.

Definition at line 15 of file MuonMeasurement_v1.cxx.

15 {
16 if (!m_identifier.isValid()){
17 m_identifier.set(readoutElement()->measurementId(measurementHash()));
18 }
19 return (*m_identifier.ptr());
20 }
virtual const MuonGMR4::MuonReadoutElement * readoutElement() const =0
Returns the pointer to the associated readout element.
CxxUtils::CachedValue< Identifier > m_identifier
virtual IdentifierHash measurementHash() const =0
Returns the hash of the measurement channel.

◆ layerHash()

IdentifierHash xAOD::CombinedMuonStrip_v1::layerHash ( ) const
finaloverridevirtual

Returns the hash of the associated layer (Needed for surface retrieval).

Implements xAOD::MuonMeasurement_v1.

Definition at line 63 of file CombinedMuonStrip_v1.cxx.

63 {
65 return strip ? strip->layerHash() : IdentifierHash{};
66 }
const xAOD::MuonMeasurement * primaryStrip() const
Returns the primary associated measurement.
MuonMeasurement_v1 MuonMeasurement

◆ localCovariance() [1/2]

template<int N>
MatrixMap< N > xAOD::UncalibratedMeasurement_v1::localCovariance ( )
inherited

Returns the local covariance as mutable eigen map which can be assigned as well.

◆ localCovariance() [2/2]

template<int N>
ConstMatrixMap< N > xAOD::UncalibratedMeasurement_v1::localCovariance ( ) const
inherited

Returns the local covariance of the measurement.

◆ localMeasurementPos()

Amg::Vector3D xAOD::CombinedMuonStrip_v1::localMeasurementPos ( ) const
finaloverridevirtual

Returns the local measurement position in the layer frame.

Implements xAOD::MuonMeasurement_v1.

Definition at line 67 of file CombinedMuonStrip_v1.cxx.

67 {
68 Amg::Vector3D pos{Amg::Vector3D::Zero()};
69 pos.block<2,1>(0,0) = xAOD::toEigen(localPosition<2>());
70 return pos;
71 }
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
Eigen::Matrix< double, 3, 1 > Vector3D

◆ localPosition() [1/2]

template<int N>
VectorMap< N > xAOD::UncalibratedMeasurement_v1::localPosition ( )
inherited

Returns the local position as mutable eigen map which can be assigned as well.

◆ localPosition() [2/2]

template<int N>
ConstVectorMap< N > xAOD::UncalibratedMeasurement_v1::localPosition ( ) const
inherited

Returns the local position of the measurement.

◆ measurementHash()

IdentifierHash xAOD::CombinedMuonStrip_v1::measurementHash ( ) const
finaloverridevirtual

Returns the hash of the measurement channel.

Implements xAOD::MuonMeasurement_v1.

Definition at line 59 of file CombinedMuonStrip_v1.cxx.

59 {
61 return strip ? strip->measurementHash() : IdentifierHash{};
62 }

◆ measuresPhi()

std::uint8_t xAOD::CombinedMuonStrip_v1::measuresPhi ( ) const
finaloverridevirtual

Returns whether the phi coordinate is measured.

Implements xAOD::MuonMeasurement_v1.

Definition at line 56 of file CombinedMuonStrip_v1.cxx.

56 {
57 return 1;
58 }

◆ numDimensions()

unsigned xAOD::CombinedMuonStrip_v1::numDimensions ( ) const
inlineoverridevirtual

Specify the number of dimensions as zero -> handle in the calibrator.

Implements xAOD::UncalibratedMeasurement_v1.

Definition at line 28 of file CombinedMuonStrip_v1.h.

28{ return 0; }

◆ primaryStrip()

const xAOD::MuonMeasurement * xAOD::CombinedMuonStrip_v1::primaryStrip ( ) const

Returns the primary associated measurement.

Definition at line 27 of file CombinedMuonStrip_v1.cxx.

27 {
28 if (acc_primLink.isAvailable(*this) && acc_primLink(*this).isValid()) {
29 return *acc_primLink(*this);
30 }
31 return nullptr;
32 }

◆ readoutElement()

const MuonGMR4::MuonReadoutElement * xAOD::CombinedMuonStrip_v1::readoutElement ( ) const
finaloverridevirtual

Returns the associated readout element.

Implements xAOD::MuonMeasurement_v1.

Definition at line 52 of file CombinedMuonStrip_v1.cxx.

52 {
54 return strip ? strip->readoutElement() : nullptr;
55 }

◆ secondaryStrip()

const xAOD::MuonMeasurement * xAOD::CombinedMuonStrip_v1::secondaryStrip ( ) const

Returns the secondary associated measurement.

Definition at line 33 of file CombinedMuonStrip_v1.cxx.

33 {
34
35 if (acc_secondLink.isAvailable(*this) && acc_secondLink(*this).isValid()) {
36 return *acc_secondLink(*this);
37 }
38 return nullptr;
39 }

◆ setIdentifier()

void xAOD::UncalibratedMeasurement_v1::setIdentifier ( const DetectorIdentType measId)
inherited

Sets the full Identifier of the measurement.

◆ setIdentifierHash()

void xAOD::UncalibratedMeasurement_v1::setIdentifierHash ( const DetectorIDHashType idHash)
inherited

Sets the IdentifierHash of the measurement (corresponds to the detector element IdentifierHash).

◆ setMeasurement()

template<int N>
void xAOD::UncalibratedMeasurement_v1::setMeasurement ( const DetectorIDHashType idHash,
MeasVector< N > locPos,
MeasMatrix< N > locCov )
inherited

Sets IdentifierHash, local position and local covariance of the measurement.

◆ setPrimaryStrip()

void xAOD::CombinedMuonStrip_v1::setPrimaryStrip ( const xAOD::MuonMeasurement * meas)

Links a prd measurement as primary meaurement.

Definition at line 41 of file CombinedMuonStrip_v1.cxx.

41 {
42 assert(meas != nullptr);
43 const auto* cont = static_cast<const xAOD::MuonMeasurementContainer*>(meas->container());
44 acc_primLink(*this) = Link_t{*cont, meas->index()};
45 }
MuonMeasurementContainer_v1 MuonMeasurementContainer

◆ setSecondaryStrip()

void xAOD::CombinedMuonStrip_v1::setSecondaryStrip ( const xAOD::MuonMeasurement * meas)

Linkt a prd measurement as secondary measurement.

Definition at line 46 of file CombinedMuonStrip_v1.cxx.

46 {
47 assert(meas != nullptr);
48 const auto* cont = static_cast<const xAOD::MuonMeasurementContainer*>(meas->container());
49 acc_secondLink(*this) = Link_t{*cont, meas->index()};
50 }

◆ type()

xAOD::UncalibMeasType xAOD::CombinedMuonStrip_v1::type ( ) const
finaloverridevirtual

Returns the type of the measurement type as a simple enumeration.

Implements xAOD::UncalibratedMeasurement_v1.

Definition at line 18 of file CombinedMuonStrip_v1.cxx.

18 {
19 if (const auto* prim = primaryStrip(); prim != nullptr) {
20 return prim->type();
21 }
22 if (const auto* second = secondaryStrip() ; second != nullptr) {
23 return second->type();
24 }
26 }
const xAOD::MuonMeasurement * secondaryStrip() const
Returns the secondary associated measurement.

Member Data Documentation

◆ m_identifier

CxxUtils::CachedValue<Identifier> xAOD::MuonMeasurement_v1::m_identifier {}
privateinherited

Definition at line 48 of file MuonMeasurement_v1.h.

48{};

◆ m_readoutEle

CxxUtils::CachedValue<const MuonGMR4::MuonReadoutElement*> xAOD::MuonMeasurement_v1::m_readoutEle {}
protectedinherited

Cache value of the.

Definition at line 46 of file MuonMeasurement_v1.h.

46{};

The documentation for this class was generated from the following files: