![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <MdtRdoToPrepDataToolMT.h>
|
void | printPrepDataImpl (const Muon::MdtPrepDataContainer *mdtPrepDataContainer) const |
|
Muon::MdtDriftCircleStatus | getMdtTwinPosition (const MdtDigit &prompt_digit, const MdtDigit &twin_digit, double &radius, double &errRadius, double &zTwin, double &errZTwin, bool &twinIsPrompt) const |
| method to get the twin tube 2nd coordinate More...
|
|
StatusCode | processCsm (const EventContext &ctx, ConvCache &mdtPrepDataContainer, const MdtCsm *rdoColl) const |
|
StatusCode | processCsmTwin (const EventContext &ctx, ConvCache &mdtPrepDataContainer, const MdtCsm *rdoColll) const |
|
std::unique_ptr< MdtPrepData > | createPrepData (const MdtCalibInput &calibInput, const MdtCalibOutput &calibOutput, ConvCache &cache) const |
| Creates the PRD object. More...
|
|
void | createxAODPrepData (const MdtCalibInput &calibInput, const MdtCalibOutput &calibOutput, xAOD::MdtDriftCircleContainer *xAODMdtPrepDataContainer) const |
| Creates the xAOD PRD object. More...
|
|
ConvCache | setupMdtPrepDataContainer (const EventContext &ctx) const |
| Creates the prep data container to be written. More...
|
|
const MdtCsmContainer * | getRdoContainer (const EventContext &ctx) const |
| Loads the input RDO container from StoreGate. More...
|
|
void | processPRDHashes (const EventContext &ctx, ConvCache &mdtPrepDataContainer, const std::vector< IdentifierHash > &chamberHashInRobs) const |
|
bool | handlePRDHash (const EventContext &ctx, ConvCache &mdtPrepDataContainer, IdentifierHash rdoHash) const |
|
void | initDeadChannels (const MuonGM::MdtReadoutElement *mydetEl) |
|
|
ServiceHandle< Muon::IMuonIdHelperSvc > | m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"} |
|
ToolHandle< IMdtCalibrationTool > | m_calibrationTool {this, "CalibrationTool", "MdtCalibrationTool"} |
| MDT calibration service. More...
|
|
Gaudi::Property< bool > | m_useNewGeo |
|
const MuonGMR4::MuonDetectorManager * | m_detMgrR4 {nullptr} |
|
SG::ReadHandleKey< ActsGeometryContext > | m_geoCtxKey {this, "AlignmentKey", "ActsAlignment", "Stored alignment"} |
|
SG::WriteHandleKey< Muon::MdtPrepDataContainer > | m_mdtPrepDataContainerKey {this, "OutputCollection", "MDT_DriftCircles"} |
| MdtPrepRawData containers. More...
|
|
SG::ReadHandleKey< MdtCsmContainer > | m_rdoContainerKey {this, "RDOContainer", "MDTCSM"} |
|
Gaudi::Property< int > | m_adcCut |
| member variables for algorithm properties: More...
|
|
Gaudi::Property< bool > | m_calibratePrepData {this, "CalibratePrepData", true} |
| toggle on/off calibration of MdtPrepData More...
|
|
Gaudi::Property< bool > | m_decodeData {this, "DecodeData", true} |
| toggle on/off the decoding of MDT RDO into MdtPrepData More...
|
|
bool | m_sortPrepData = false |
| Toggle on/off the sorting of the MdtPrepData. More...
|
|
ToolHandle< Muon::IMDT_RDO_Decoder > | m_mdtDecoder {this, "Decoder", "Muon::MdtRDO_Decoder/MdtRDO_Decoder"} |
|
bool | m_BMGpresent {false} |
|
int | m_BMGid {-1} |
|
Gaudi::Property< bool > | m_useTwin {this, "UseTwin", true} |
|
Gaudi::Property< bool > | m_useAllBOLTwin {this, "UseAllBOLTwin", false} |
|
Gaudi::Property< bool > | m_twinCorrectSlewing {this, "TwinCorrectSlewing", false} |
|
Gaudi::Property< bool > | m_discardSecondaryHitTwin {this, "DiscardSecondaryHitTwin", false} |
|
int | m_twin_chamber [2][3][36] {} |
|
int | m_secondaryHit_twin_chamber [2][3][36] {} |
|
std::unordered_set< Identifier > | m_DeadChannels {} |
|
SG::ReadCondHandleKey< MuonMDT_CablingMap > | m_readKey {this, "ReadKey", "MuonMDT_CablingMap", "Key of MuonMDT_CablingMap"} |
|
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > | m_muDetMgrKey |
|
SG::UpdateHandleKey< MdtPrepDataCollection_Cache > | m_prdContainerCacheKey |
| This is the key for the cache for the MDT PRD containers, can be empty. More...
|
|
SG::WriteHandleKey< xAOD::MdtDriftCircleContainer > | m_mdtxAODKey {this, "MdtxAODKey", "", "If empty, do not produce xAOD, otherwise this is the key of the output xAOD MDT PRD container"} |
|
Tool to produce MDT PRDs
Definition at line 40 of file MdtRdoToPrepDataToolMT.h.
◆ MdtRdoToPrepDataToolMT()
Muon::MdtRdoToPrepDataToolMT::MdtRdoToPrepDataToolMT |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~MdtRdoToPrepDataToolMT()
virtual Muon::MdtRdoToPrepDataToolMT::~MdtRdoToPrepDataToolMT |
( |
| ) |
|
|
virtualdefault |
◆ createPrepData()
Creates the PRD object.
Test by how much do we break frozen Tier0
Definition at line 241 of file MdtRdoToPrepDataToolMT.cxx.
247 " because it's masked "<<(calibInput.
isMasked() ?
"si" :
"no") <<
", "
248 <<
"adc: "<<calibInput.
adc()<<
" vs. "<<
m_adcCut<<
", calibration bailed out "
254 if (!cache.legacyDetMgr) {
257 descriptor = cache.legacyDetMgr->getMdtReadoutElement(calibInput.
identify());
260 <<std::endl<<calibInput<<std::endl<<calibOutput);
269 (
cov)(0, 0) = sigR * sigR;
270 }
else (
cov)(0, 0) = 0;
272 return std::make_unique<MdtPrepData>(calibInput.
identify(),
◆ createxAODPrepData()
Creates the xAOD PRD object.
Test by how much do we break frozen Tier0
Definition at line 282 of file MdtRdoToPrepDataToolMT.cxx.
286 if (!xAODMdtPrepDataContainer || !calibInput.
decriptor() || calibInput.
isMasked() ||
290 <<
" because it's masked " << (calibInput.
isMasked() ?
"si" :
"no")
291 <<
", " <<
"adc: " << calibInput.
adc() <<
" vs. " <<
m_adcCut
296 << calibInput << std::endl << calibOutput);
306 (
cov)(0, 0) = sigR * sigR;
311 xAODMdtPrepDataContainer->
push_back(xprd);
315 const Identifier prdId{calibInput.
identify()};
316 xprd->setIdentifier(calibInput.
identify().get_compact());
318 xprd->setMeasurement(calibInput.
decriptor()
322 xprd->setTdc(calibInput.
tdc());
323 xprd->setAdc(calibInput.
adc());
324 xprd->setTube(id_helper.tube(prdId));
325 xprd->setLayer(id_helper.tubeLayer(prdId));
326 xprd->setStatus(calibOutput.
status());
327 xprd->setReadoutElement(calibInput.
decriptor());
◆ decode() [1/2]
StatusCode Muon::MdtRdoToPrepDataToolMT::decode |
( |
const EventContext & |
ctx, |
|
|
const std::vector< IdentifierHash > & |
idVect |
|
) |
| const |
|
overridevirtual |
Decode method - declared in Muon::IMuonRdoToPrepDataTool.
Construct the hashes from the existing RDOs
Definition at line 207 of file MdtRdoToPrepDataToolMT.cxx.
210 ATH_MSG_DEBUG(
"decodeMdtRDO for " << idVect.size() <<
" offline collections called");
214 if (!mdtPrepDataContainer.isValid) {
215 return StatusCode::FAILURE;
220 ATH_MSG_DEBUG(
"Stored empty container. Decoding MDT RDO into MDT PrepRawData is switched off");
221 return StatusCode::SUCCESS;
224 if (!idVect.empty()) {
228 std::vector<IdentifierHash> rdoHashes{};
230 if (!rdoContainer || rdoContainer->
empty())
return StatusCode::SUCCESS;
231 rdoHashes.reserve(rdoContainer->
size());
232 for (
const MdtCsm* csm : *rdoContainer) rdoHashes.push_back(csm->identifyHash());
236 ATH_CHECK(mdtPrepDataContainer.finalize(msgStream()));
238 return StatusCode::SUCCESS;
◆ decode() [2/2]
StatusCode Muon::MdtRdoToPrepDataToolMT::decode |
( |
const EventContext & |
ctx, |
|
|
const std::vector< uint32_t > & |
robIds |
|
) |
| const |
|
overridevirtual |
◆ getMdtTwinPosition()
method to get the twin tube 2nd coordinate
◆ getRdoContainer()
Loads the input RDO container from StoreGate.
Definition at line 165 of file MdtRdoToPrepDataToolMT.cxx.
167 if (rdoContainerHandle.isValid()) {
169 return rdoContainerHandle.cptr();
◆ handlePRDHash()
bool Muon::MdtRdoToPrepDataToolMT::handlePRDHash |
( |
const EventContext & |
ctx, |
|
|
ConvCache & |
mdtPrepDataContainer, |
|
|
IdentifierHash |
rdoHash |
|
) |
| const |
|
protected |
Definition at line 186 of file MdtRdoToPrepDataToolMT.cxx.
191 if (rdoContainer->empty()) {
195 const MdtCsm* rdoColl = rdoContainer->indexFindPtr(rdoHash);
197 ATH_MSG_DEBUG(
"The rdo container does not have the hash " << rdoHash);
200 if (
processCsm(ctx, mdtPrepDataContainer, rdoColl).isFailure()) {
◆ initDeadChannels()
Definition at line 628 of file MdtRdoToPrepDataToolMT.cxx.
629 PVConstLink cv = mydetEl->getMaterialGeom();
630 int nGrandchildren = cv->getNChildVols();
631 if (nGrandchildren <= 0)
return;
633 std::vector<int> tubes;
634 geoGetIds([&](
int id) { tubes.push_back(
id); }, &*cv);
637 const Identifier detElId = mydetEl->
identify();
642 int want_id =
layer * maxNTubesPerLayer +
tube;
643 if (
it != tubes.end() && *
it == want_id) {
646 it = std::lower_bound(tubes.begin(), tubes.end(), want_id);
647 if (
it != tubes.end() && *
it == want_id) {
◆ initialize()
StatusCode Muon::MdtRdoToPrepDataToolMT::initialize |
( |
| ) |
|
|
overridevirtual |
standard Athena-Algorithm method
Definition at line 83 of file MdtRdoToPrepDataToolMT.cxx.
94 for (
int i = 0;
i < 2;
i++) {
95 for (
int j = 0; j < 3; j++) {
96 for (
int k = 0;
k < 36;
k++) {
118 ATH_MSG_INFO(
"Processing configuration for layouts with BMG chambers.");
134 std::vector<const MuonGMR4::MdtReadoutElement*> mdtRE =
m_detMgrR4->getAllMdtReadoutElements();
139 for (IdentifierHash dead :
re->getParameters().removedTubes) {
152 return StatusCode::SUCCESS;
◆ printPrepDataImpl()
◆ processCsm()
StatusCode Muon::MdtRdoToPrepDataToolMT::processCsm |
( |
const EventContext & |
ctx, |
|
|
ConvCache & |
mdtPrepDataContainer, |
|
|
const MdtCsm * |
rdoColl |
|
) |
| const |
|
protected |
MDT hit context
Definition at line 331 of file MdtRdoToPrepDataToolMT.cxx.
338 Identifier elementId = rdoColl->
identify();
355 << mrodId <<
" / " << csmId);
360 for (
const MdtAmtHit* amtHit : *rdoColl) {
365 std::unique_ptr<MdtDigit> newDigit{
m_mdtDecoder->getDigit(amtHit, subdetId, mrodId, csmId)};
367 ATH_MSG_WARNING(
"Found issue MDT RDO decoder for subdetId/mrodId/csmId "
368 << subdetId <<
"/" << mrodId <<
"/" << csmId <<
" amtHit channelId/tdcId =" << amtHit->channelId() <<
"/"
373 Identifier
channelId = newDigit->identify();
379 if (!driftCircleColl) {
388 << driftCircleColl->identifyHash());
393 int adc = newDigit->adc() / 4;
394 int tdc = newDigit->tdc() / 4;
395 int mask = newDigit->is_masked();
398 <<
" New=" <<
adc <<
" " << tdc);
404 std::unique_ptr<MdtPrepData> newPrepData =
createPrepData(calibIn, calibResult, cache);
406 newPrepData->setHashAndIndex(driftCircleColl->identifyHash(), driftCircleColl->size());
407 driftCircleColl->push_back(std::move(newPrepData));
411 return StatusCode::SUCCESS;
◆ processCsmTwin()
StatusCode Muon::MdtRdoToPrepDataToolMT::processCsmTwin |
( |
const EventContext & |
ctx, |
|
|
ConvCache & |
mdtPrepDataContainer, |
|
|
const MdtCsm * |
rdoColll |
|
) |
| const |
|
protected |
MDT hit context
Definition at line 413 of file MdtRdoToPrepDataToolMT.cxx.
416 ATH_MSG_DEBUG(
" Number of AmtHit in this Csm " << rdoColl->size());
418 Identifier elementId = id_helper.
parentID(rdoColl->identify());
420 uint16_t subdetId = rdoColl->SubDetId();
421 uint16_t mrodId = rdoColl->MrodId();
424 <<
" / " << rdoColl->MrodId() <<
" / " << rdoColl->CsmId());
432 using twin_digit = std::pair<std::unique_ptr<MdtDigit>, std::unique_ptr<MdtDigit>>;
433 std::map<int, twin_digit> mdtDigitColl;
435 for (
const MdtAmtHit* amtHit : *rdoColl) {
436 std::unique_ptr<MdtDigit> newDigit{
m_mdtDecoder->getDigit(amtHit, subdetId, mrodId, csmId)};
440 << subdetId <<
"/" << mrodId <<
"/" << csmId <<
" amtHit channelId/tdcId =" << amtHit->channelId() <<
"/"
446 Identifier
channelId = newDigit->identify();
456 twinPair = (
tube + 1) / 2;
457 }
else if (
tube % 4 == 3) {
458 twinPair = (
tube - 1) / 2;
459 }
else if (
tube % 4 == 2) {
460 twinPair = (
tube + 2) / 2;
468 pair.first = std::move(newDigit);
469 }
else if (!pair.second) {
470 pair.second = std::move(newDigit);
474 ATH_MSG_VERBOSE(
" TWIN TUBES: found a secondary(not twin) hit in a twin tube");
477 if (!secondPair.first) {
478 secondPair.first = std::move(newDigit);
479 }
else if (!secondPair.second) {
480 secondPair.second = std::move(newDigit);
482 ATH_MSG_VERBOSE(
" TWIN TUBES: found a tertiary hit in a twin tube in one RdoCollection for "
484 <<
" tdc = " << newDigit->tdc());
488 ATH_MSG_DEBUG(
" TWIN TUBES: discarding secondary(non-twin) hit in a twin tube as flag m_discardSecondaryHitTwin is set to true");
494 for (std::pair<const int, twin_digit>& digitPair : mdtDigitColl) {
496 std::unique_ptr<MdtDigit>&
digit = digitPair.second.first;
497 std::unique_ptr<MdtDigit>& second_digit = digitPair.second.second;
501 return StatusCode::FAILURE;
509 if (!driftCircleColl) {
517 if (multilayer == 1) {
521 << driftCircleColl->identifyHash());
529 std::unique_ptr<MdtPrepData> newPrepData =
createPrepData(mdtCalibIn, mdtCalibOut, cache);
531 newPrepData->setHashAndIndex(driftCircleColl->identifyHash(), driftCircleColl->size());
532 driftCircleColl->push_back(std::move(newPrepData));
548 updateClosestApproachTwin(mdtCalib1st);
549 updateClosestApproachTwin(mdtCalib2nd);
561 std::unique_ptr<MdtTwinPrepData> twin_newPrepData = std::make_unique<MdtTwinPrepData>(twinCalib.
primaryID(),
574 Amg::Vector3D gpos_centertube = twin_newPrepData->globalPosition();
580 <<
"local pos center tube w/ TWIN INFO "<<
Amg::toString(locpos_centertube, 2)<<std::endl
583 twin_newPrepData->setHashAndIndex(driftCircleColl->identifyHash(), driftCircleColl->size());
584 driftCircleColl->push_back(std::move(twin_newPrepData));
595 std::unique_ptr<MdtPrepData> newPrepData =
createPrepData(calibInput1st, calibResult1st, cache);
597 newPrepData->setHashAndIndex(driftCircleColl->identifyHash(), driftCircleColl->size());
598 driftCircleColl->push_back(std::move(newPrepData));
603 if (!second_digit)
continue;
612 std::unique_ptr<MdtPrepData> second_newPrepData =
createPrepData(calibInput2nd, calibResult2nd, cache);
613 if (second_newPrepData) {
614 second_newPrepData->setHashAndIndex(driftCircleColl->identifyHash(), driftCircleColl->size());
615 driftCircleColl->push_back(std::move(second_newPrepData));
622 <<
" "<<calibResult2nd);
626 return StatusCode::SUCCESS;
◆ processPRDHashes()
void Muon::MdtRdoToPrepDataToolMT::processPRDHashes |
( |
const EventContext & |
ctx, |
|
|
ConvCache & |
mdtPrepDataContainer, |
|
|
const std::vector< IdentifierHash > & |
chamberHashInRobs |
|
) |
| const |
|
protected |
◆ provideEmptyContainer()
StatusCode Muon::MdtRdoToPrepDataToolMT::provideEmptyContainer |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
◆ setupMdtPrepDataContainer()
Creates the prep data container to be written.
Retrieve the Geometry context if activated
Retrieve the legacy detector mananger if activated
Definition at line 659 of file MdtRdoToPrepDataToolMT.cxx.
668 if (
status.isFailure() || !handle.isValid()) {
673 cache.legacyPrd = handle.ptr();
682 if (
status.isFailure() || !handle.isValid()) {
688 cache.legacyPrd = handle.ptr();
692 if (!writeHandle.recordNonConst(std::make_unique<xAOD::MdtDriftCircleContainer>(),
693 std::make_unique<xAOD::MdtDriftCircleAuxContainer>()).isSuccess() ||
694 !writeHandle.isValid()) {
698 cache.xAODPrd = writeHandle.ptr();
703 if (!readHandle.isPresent()) {
707 cache.gctx = readHandle.cptr();
712 if (!detMgrHandle.isValid()) {
716 cache.legacyDetMgr = detMgrHandle.cptr();
719 cache.isValid =
true;
◆ m_adcCut
Gaudi::Property<int> Muon::MdtRdoToPrepDataToolMT::m_adcCut |
|
protected |
Initial value:{this, "AdcCut", 50,
"Minimal cut on the adc to convert it into a prepdata object"}
member variables for algorithm properties:
Definition at line 140 of file MdtRdoToPrepDataToolMT.h.
◆ m_BMGid
int Muon::MdtRdoToPrepDataToolMT::m_BMGid {-1} |
|
protected |
◆ m_BMGpresent
bool Muon::MdtRdoToPrepDataToolMT::m_BMGpresent {false} |
|
protected |
◆ m_calibratePrepData
Gaudi::Property<bool> Muon::MdtRdoToPrepDataToolMT::m_calibratePrepData {this, "CalibratePrepData", true} |
|
protected |
◆ m_calibrationTool
◆ m_DeadChannels
std::unordered_set<Identifier> Muon::MdtRdoToPrepDataToolMT::m_DeadChannels {} |
|
protected |
◆ m_decodeData
Gaudi::Property<bool> Muon::MdtRdoToPrepDataToolMT::m_decodeData {this, "DecodeData", true} |
|
protected |
◆ m_detMgrR4
◆ m_discardSecondaryHitTwin
Gaudi::Property<bool> Muon::MdtRdoToPrepDataToolMT::m_discardSecondaryHitTwin {this, "DiscardSecondaryHitTwin", false} |
|
protected |
◆ m_geoCtxKey
◆ m_idHelperSvc
◆ m_mdtDecoder
◆ m_mdtPrepDataContainerKey
◆ m_mdtxAODKey
◆ m_muDetMgrKey
Initial value:{this, "DetectorManagerKey", "MuonDetectorManager",
"Key of input MuonDetectorManager condition data"}
Definition at line 165 of file MdtRdoToPrepDataToolMT.h.
◆ m_prdContainerCacheKey
Initial value:{this, "MdtPrdContainerCacheKey", "",
"Optional external cache for the MDT PRD container"}
This is the key for the cache for the MDT PRD containers, can be empty.
Definition at line 168 of file MdtRdoToPrepDataToolMT.h.
◆ m_rdoContainerKey
◆ m_readKey
◆ m_secondaryHit_twin_chamber
int Muon::MdtRdoToPrepDataToolMT::m_secondaryHit_twin_chamber[2][3][36] {} |
|
protected |
◆ m_sortPrepData
bool Muon::MdtRdoToPrepDataToolMT::m_sortPrepData = false |
|
protected |
◆ m_twin_chamber
int Muon::MdtRdoToPrepDataToolMT::m_twin_chamber[2][3][36] {} |
|
protected |
◆ m_twinCorrectSlewing
Gaudi::Property<bool> Muon::MdtRdoToPrepDataToolMT::m_twinCorrectSlewing {this, "TwinCorrectSlewing", false} |
|
protected |
◆ m_useAllBOLTwin
Gaudi::Property<bool> Muon::MdtRdoToPrepDataToolMT::m_useAllBOLTwin {this, "UseAllBOLTwin", false} |
|
protected |
◆ m_useNewGeo
Gaudi::Property<bool> Muon::MdtRdoToPrepDataToolMT::m_useNewGeo |
|
protected |
Initial value:{this, "UseR4DetMgr", false,
"Switch between the legacy and the new geometry"}
Definition at line 126 of file MdtRdoToPrepDataToolMT.h.
◆ m_useTwin
Gaudi::Property<bool> Muon::MdtRdoToPrepDataToolMT::m_useTwin {this, "UseTwin", true} |
|
protected |
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
int multilayer(const Identifier &id) const
Access to components of the ID.
uint16_t CsmId() const
Returns the CSM online id (online identifier inside a MROD)
int getNLayers() const
Returns the number of tube layers inside the multilayer.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Scalar phi() const
phi method
MDT RDO's : data from a single channel of an AMT Atlas Muon TDC.
Scalar eta() const
pseudorapidity method
Eigen::Matrix< double, 2, 1 > Vector2D
MuonPrepDataCollection< MdtPrepData > MdtPrepDataCollection
Identifier identify() const
Returns the CSM offline identifier (chamber offline id)
size_t size() const
Duplicate of fullSize for backwards compatability.
uint16_t SubDetId() const
Returns the sub-detector Id.
int tubeLayer(const Identifier &id) const
This container provides acces to the MDT RDOs.
#define ATH_MSG_VERBOSE(x)
MDT RDOs : Chamber Service Module, container of AmtHits of a single Mdt chamber.
bool empty() const
Test if the key is blank.
double uncertPrimaryR() const
@ MdtStatusDriftTime
The tube produced a vaild measurement.
bool empty() const
return true if container is empty
uint16_t MrodId() const
Returns the MROD id from the CSM header.
MdtDriftCircle_v1 MdtDriftCircle
Defined the version of the MdtDriftCircle.
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
::StatusCode StatusCode
StatusCode definition for legacy code.
int tube(const Identifier &id) const
int getMultilayer() const
Returns the multilayer represented by the readout element.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
IdentifierHash identHash() const
Returns the Identifier has of the Element that is Identical to the detElHash from the id_helper class...
const Amg::Transform3D & localToGlobalTransf(const Identifier &id) const
MdtDriftCircleStatus status() const
Status of the calibration.
Eigen::Matrix< float, N, 1 > MeasVector
Abrivation of the Matrix & Covariance definitions.
int stationPhi(const Identifier &id) const
Identifier twinID() const
value_type push_back(value_type pElem)
Add an element to the end of the collection.
StatusCode initialize(bool used=true)
MdtDriftCircleStatus primaryStatus() const
int stationEta(const Identifier &id) const
Eigen::Matrix< double, 3, 1 > Vector3D
double driftRadiusUncert() const
Returns the uncertainty on the drift radius.
const MuonStation * getMuonStation(const std::string &stName, int eta, int phi) const
void geoGetIds(FUNCTION f, const GeoGraphNode *node, int depthLimit=1)
Template helper for running the visitor.
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
const boost::regex re(r_e)
Identifier identify() const override final
Returns the ATLAS Identifier of the MuonReadOutElement.
ChIndex
enum to classify the different chamber layers in the muon spectrometer
@ MdtStatusUnDefined
Undefined.
double primaryDriftR() const
Identifier primaryID() const
IdentifierHash identifyHash() const override final
Returns the IdentifierHash of the MuonStation, i.e.
Eigen::Matrix< float, N, N > MeasMatrix
int getNtubesperlayer() const
Returns the number of tubes in each tube layer.
double driftRadius() const
Returns the drift radius of the calibrated object.
Identifier parentID(const Identifier &id) const
get parent id from channel id