8#include "Identifier/Identifier.h"
26 (
m_idHelper.get_detectorElement_hash(measId, hash) ||
27 m_idHelper.detectorElement_hash_max() <
static_cast<unsigned int>(hash))) {
28 msg<<MSG::ERROR <<__FILE__<<
":"<<__LINE__<<
" Failed to look up a proper detector element hash for "
31 }
else if (
m_granularity == RegionGranularity::OnePerChamber &&
33 m_idHelper.module_hash_max() <
static_cast<unsigned int>(hash))) {
34 msg<<MSG::ERROR <<__FILE__<<
":"<<__LINE__<<
" Failed to look up a proper detector element hash for "
38 return std::make_optional<unsigned int>(
static_cast<unsigned int>(hash));
48 if (!
index)
return nullptr;
53 msg<<MSG::WARNING<<__FILE__<<
":"<<__LINE__<<
" No Mdt calibration data is stored for "
60 if (!
index)
return false;
62 msg << MSG::ERROR<<__FILE__<<
":"<<__LINE__<<
" No correction functional set parsed for multilayer "
70 msg << MSG::ERROR<<__FILE__<<
":"<<__LINE__<<
" There already exist a rt relation object for multilayer "
76 if (
msg.level() <= MSG::DEBUG) {
77 msg << MSG::DEBUG<<__FILE__<<
":"<<__LINE__<<
" Added successfully the rt corrections for "
85 if (!
index)
return false;
87 msg << MSG::ERROR<<__FILE__<<
":"<<__LINE__<<
" No rt relation parsed for multilayer "
95 msg << MSG::ERROR<<__FILE__<<
":"<<__LINE__<<
" There already exist a rt relation object for multilayer "
101 if (
msg.level() <= MSG::DEBUG) {
102 msg << MSG::DEBUG<<__FILE__<<
":"<<__LINE__<<
" Added successfully the rt relations for "
110 if (!
index)
return false;
111 if (!tubeContainer) {
112 msg << MSG::ERROR<<__FILE__<<
":"<<__LINE__<<
" No tube ontainer parsed for multilayer "
121 msg << MSG::ERROR<<__FILE__<<
":"<<__LINE__<<
" There already exist a tube calibration container for multilayer "
125 if (
msg.level() <= MSG::DEBUG) {
126 msg << MSG::DEBUG<<__FILE__<<
":"<<__LINE__<<
" Added successfully the tube calibrations for "
132 m_idHelper.numberOfMultilayers(mlID) == 1)
return true;
char data[hepevt_bytes_allocation_ATLAS]
This is a "hash" representation of an Identifier.
std::optional< unsigned int > containerIndex(const Identifier &measId, MsgStream &msg) const
bool storeData(const Identifier &mlID, CorrectionPtr corrFuncSet, MsgStream &msg)
std::vector< MdtFullCalibData > m_dataCache
const MdtIdHelper & m_idHelper
MdtFullCalibData::TubeContainerPtr TubeContainerPtr
MdtCalibDataContainer(const Muon::IMuonIdHelperSvc *idHelprSvc, const RegionGranularity granularity)
float inversePropSpeed() const
MdtFullCalibData::CorrectionPtr CorrectionPtr
const RegionGranularity m_granularity
const Muon::IMuonIdHelperSvc * m_idHelperSvc
MdtFullCalibData::RtRelationPtr RtRelationPtr
bool hasDataForChannel(const Identifier &measId, MsgStream &msg) const
Checks whether a calibration data object is already present.
void setInversePropSpeed(const float speed)
RegionGranularity granularity() const
const MdtFullCalibData * getCalibData(const Identifier &measId, MsgStream &msg) const
Returns the calibration data associated with this station.
Interface for Helper service that creates muon Identifiers and can be used to print Identifiers.
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
class which holds the full set of calibration constants for a given tube
TubeContainerPtr tubeCalib
CorrectionPtr corrections