ATLAS Offline Software
Loading...
Searching...
No Matches
MdtDriftCircle_v1.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 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
22IMPLEMENT_SETTER_GETTER(MdtDriftCircle_v1, std::int16_t, tdc, setTdc)
23IMPLEMENT_SETTER_GETTER(MdtDriftCircle_v1, std::int16_t, adc, setAdc)
24IMPLEMENT_SETTER_GETTER(MdtDriftCircle_v1, std::uint16_t, driftTube, setTube)
25IMPLEMENT_SETTER_GETTER(MdtDriftCircle_v1, std::uint8_t, tubeLayer, setLayer)
27IMPLEMENT_READOUTELEMENT(MdtDriftCircle_v1, m_readoutEle, MdtReadoutElement)
28
36std::uint8_t MdtDriftCircle_v1::measuresPhi() const {
37 return numDimensions() == 2;
38}
40 if (numDimensions() == 1) {
41 return Amg::Vector3D::Zero();
42 }
43 return localPosition<2>()[Trk::locZ] * Amg::Vector3D::UnitZ();
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.
IdentifierHash layerHash(const Identifier &measId) const override final
Projects the measurement hash onto the layerHash mainly used to access the plane surface in the cente...
static IdentifierHash measurementHash(unsigned layerNumber, unsigned tubeNumber)
Constructs a Measurement hash from layer && tube number.
Representation of Mdt drift circle (DC) measurements.
float driftRadiusUncert() const
Returns the uncertainty on the drift radius.
MdtDriftCircle_v1()=default
Default constructor.
Amg::Vector3D localMeasurementPos() const override final
: Return the measurement's position vector in the local frame.
unsigned numDimensions() const override
Override the dimensions to be 1.
IdentifierHash layerHash() const override final
Returns the layer hash of the tube layer.
::Muon::MdtDriftCircleStatus MdtDriftCircleStatus
IdentifierHash measurementHash() const override final
Returns the hash of the measurement channel (tube (x) layer).
float driftRadius() const
Returns the drift radius.
std::uint16_t driftTube() const
Returns the tube number of the measurement (1-120).
std::uint8_t measuresPhi() const override final
Returns whether the drift circle measures phi.
std::uint8_t tubeLayer() const
Returns the layer number of the measurement (1-4).
float driftRadiusCov() const
Returns the covariance of the drift radius.
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