ATLAS Offline Software
Loading...
Searching...
No Matches
MdtDriftCircle_v1.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
5// EDM include(s):
7// Local include(s):
10#include "GaudiKernel/ServiceHandle.h"
14
15namespace {
16 static const std::string preFixStr{"Mdt_"};
17}
18
19namespace xAOD {
21
27IMPLEMENT_READOUTELEMENT(MdtDriftCircle_v1, m_readoutEle, MdtReadoutElement)
28
34 if (numDimensions() == 1) {
35 return Amg::Vector3D::Zero();
36 }
37 return localPosition<2>()[Trk::locZ] * Amg::Vector3D::UnitZ();
38}
40 if (!m_identifier.isValid()){
41 m_identifier.set(readoutElement()->measurementId(measurementHash()));
42 }
43 return (*m_identifier.ptr());
44}
49
54
56 return std::sqrt(driftRadiusCov());
57}
58} // namespace xAOD
#define IMPLEMENT_SETTER_GETTER_WITH_CAST(CLASS_NAME, STORE_DTYPE, CAST_DTYPE, GETTER, SETTER)
Macro to implement the scalar variable of the xAOD::MuonPrepData object which is then casted to an en...
#define IMPLEMENT_READOUTELEMENT(CLASS_NAME, CACHED_VALUE, READOUT_ELEMENT_TYPE)
Macro to handle the readoutElement.
#define IMPLEMENT_SETTER_GETTER(DTYPE, GETTER, SETTER)
This is a "hash" representation of an Identifier.
static IdentifierHash measurementHash(unsigned int layerNumber, unsigned int tubeNumber)
Transform the layer and tube number to the measurementHash.
https://gitlab.cern.ch/atlas/athena/-/blob/master/MuonSpectrometer/MuonReconstruction/MuonRecEvent/Mu...
unsigned int numDimensions() const override
Override the dimensions to be 1.
float driftRadiusUncert() const
Returns the uncertainty on the drift radius.
MdtDriftCircle_v1()=default
Default constructor.
CxxUtils::CachedValue< Identifier > m_identifier
const MuonGMR4::MdtReadoutElement * readoutElement() const
Retrieve the associated MdtReadoutElement.
::Muon::MdtDriftCircleStatus MdtDriftCircleStatus
float driftRadius() const
Returns the drift radius.
const Identifier & identify() const
: Returns the Athena identifier of the drift circle.
uint16_t driftTube() const
Returns the tube number of the measurement (1-120)
Amg::Vector3D localMeasurementPos() const
: Return the measurement's position vector in the local frame.
IdentifierHash measurementHash() const
Returns the hash of the measurement channel (tube (x) layer)
float driftRadiusCov() const
Returns the covariance of the drift radius.
uint8_t tubeLayer() const
Returns the layer number of the measurement (1-4)
ConstMatrixMap< N > localCovariance() const
Returns the local covariance of the measurement.
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
Eigen::Matrix< double, 3, 1 > Vector3D
@ locR
Definition ParamDefs.h:44
@ locZ
local cylindrical
Definition ParamDefs.h:42
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
MdtDriftCircle_v1::MdtDriftCircleStatus MdtDriftCircleStatus
setScaleOne setStatusOne setSaturated int16_t
setWord1 uint16_t