ATLAS Offline Software
Loading...
Searching...
No Matches
MdtCondDbAlg Class Reference

#include <MdtCondDbAlg.h>

Inheritance diagram for MdtCondDbAlg:
Collaboration diagram for MdtCondDbAlg:

Public Member Functions

 MdtCondDbAlg (const std::string &name, ISvcLocator *svc)
virtual ~MdtCondDbAlg ()=default
virtual StatusCode initialize () override
virtual StatusCode execute (const EventContext &) const override
virtual bool isReEntrant () const override
 Avoid scheduling algorithm multiple times.
virtual StatusCode sysInitialize () override
 Override sysInitialize.
virtual bool isClonable () const override
 Specify if the algorithm is clonable.
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm.
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies.
virtual bool filterPassed (const EventContext &ctx) const
virtual void setFilterPassed (bool state, const EventContext &ctx) const
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

using writeHandle_t = SG::WriteCondHandle<MdtCondDbData>
using dataBaseKey_t = SG::ReadCondHandleKey<CondAttrListCollection>
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode loadDependencies (const EventContext &ctx, writeHandle_t &wh) const
StatusCode addDHDependency (const EventContext &ctx, const dataBaseKey_t &key, writeHandle_t &wh) const
StatusCode loadDataPsHv (const EventContext &ctx, MdtCondDbData &dataOut) const
StatusCode loadDataPsLv (const EventContext &ctx, MdtCondDbData &dataOut) const
StatusCode loadDataHv (const EventContext &ctx, MdtCondDbData &dataOut) const
StatusCode loadDataLv (const EventContext &ctx, MdtCondDbData &dataOut) const
StatusCode loadDroppedChambers (const EventContext &ctx, MdtCondDbData &dataOut, bool isMC) const
StatusCode loadMcDeadElements (const EventContext &ctx, MdtCondDbData &dataOut) const
StatusCode loadMcDeadTubes (const EventContext &ctx, MdtCondDbData &dataOut) const
StatusCode loadMcNoisyChannels (const EventContext &ctx, MdtCondDbData &dataOut) const
Identifier identifyChamber (std::string chamber) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

Gaudi::Property< bool > m_isOnline {this, "isOnline", false}
Gaudi::Property< bool > m_isData {this, "isData", false}
Gaudi::Property< bool > m_isRun1 {this, "isRun1", false}
Gaudi::Property< bool > m_checkOnSetPoint {this, "useRun1SetPoints", false}
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
SG::WriteCondHandleKey< MdtCondDbDatam_writeKey {this, "WriteKey", "MdtCondDbData", "Key of output MDT condition data"}
dataBaseKey_t m_readKey_folder_da_pshv
dataBaseKey_t m_readKey_folder_da_psv0
dataBaseKey_t m_readKey_folder_da_psv1
dataBaseKey_t m_readKey_folder_da_pslv
dataBaseKey_t m_readKey_folder_da_droppedChambers
dataBaseKey_t m_readKey_folder_da_hv
dataBaseKey_t m_readKey_folder_da_lv
dataBaseKey_t m_readKey_folder_mc_droppedChambers
dataBaseKey_t m_readKey_folder_mc_deadElements
dataBaseKey_t m_readKey_folder_mc_deadTubes
dataBaseKey_t m_readKey_folder_mc_noisyChannels
std::map< std::string, Identifierm_chamberNames {}
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 19 of file MdtCondDbAlg.h.

Member Typedef Documentation

◆ dataBaseKey_t

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

◆ writeHandle_t

Definition at line 27 of file MdtCondDbAlg.h.

Constructor & Destructor Documentation

◆ MdtCondDbAlg()

MdtCondDbAlg::MdtCondDbAlg ( const std::string & name,
ISvcLocator * svc )

Definition at line 18 of file MdtCondDbAlg.cxx.

18 :
19 AthCondAlgorithm(name, pSvcLocator) {}

◆ ~MdtCondDbAlg()

virtual MdtCondDbAlg::~MdtCondDbAlg ( )
virtualdefault

Member Function Documentation

◆ addDHDependency()

StatusCode MdtCondDbAlg::addDHDependency ( const EventContext & ctx,
const dataBaseKey_t & key,
writeHandle_t & wh ) const
private

Definition at line 74 of file MdtCondDbAlg.cxx.

74 {
75 if (key.empty()) {
76 ATH_MSG_VERBOSE("Key is empty");
77 return StatusCode::SUCCESS;
78 }
79 SG::ReadCondHandle<CondAttrListCollection> readHandle{key, ctx};
80 if (!readHandle.isValid()) {
81 ATH_MSG_FATAL("Failed to load conditions from "<<key.fullKey());
82 return StatusCode::FAILURE;
83 }
84 wh.addDependency(readHandle);
85 return StatusCode::SUCCESS;
86}
#define ATH_MSG_FATAL(x)
#define ATH_MSG_VERBOSE(x)
str wh
Definition parseDir.py:45

◆ cardinality()

unsigned int AthCommonReentrantAlgorithm< Gaudi::Algorithm >::cardinality ( ) const
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Definition at line 75 of file AthCommonReentrantAlgorithm.cxx.

64{
65 return 0;
66}

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode MdtCondDbAlg::execute ( const EventContext & ctx) const
overridevirtual

Definition at line 103 of file MdtCondDbAlg.cxx.

103 {
104 ATH_MSG_DEBUG("execute " << name());
105
106 if (m_isOnline) {
107 ATH_MSG_DEBUG("IsOnline is set to True; nothing to do!");
108 return StatusCode::SUCCESS;
109 }
110
111 // launching Write Cond Handle
112 SG::WriteCondHandle<MdtCondDbData> writeHandle{m_writeKey, ctx};
113 if (writeHandle.isValid()) {
114 ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid."
115 << " In theory this should not be called, but may happen"
116 << " if multiple concurrent events are being processed out of order.");
117 return StatusCode::SUCCESS;
118 }
119 std::unique_ptr<MdtCondDbData> writeCdo{std::make_unique<MdtCondDbData>(m_idHelperSvc->mdtIdHelper())};
120 ATH_CHECK(loadDependencies(ctx, writeHandle));
121 // retrieving data
122 if (m_isData && m_isRun1) {
123 ATH_CHECK(loadDataPsHv(ctx, *writeCdo));
124 ATH_CHECK(loadDataPsLv(ctx, *writeCdo));
125 ATH_CHECK(loadDroppedChambers(ctx, *writeCdo, false));
126 } else if (m_isData && !m_isRun1) {
127 ATH_CHECK(loadDataHv(ctx, *writeCdo));
128 ATH_CHECK(loadDataLv(ctx, *writeCdo));
129 } else {
130 ATH_CHECK(loadDroppedChambers(ctx, *writeCdo, true));
131 ATH_CHECK(loadMcNoisyChannels(ctx, *writeCdo));
132 // ATH_CHECK(loadMcDeadElements (rangeW, writeCdo.get(),ctx));// keep for future development
133 // ATH_CEHCK(loadMcDeadTubes (rangeW, writeCdo.get(),ctx));// keep for future development
134 }
135
136 ATH_CHECK(writeHandle.record(std::move(writeCdo)));
137 ATH_MSG_DEBUG("Recorded new " << writeHandle.key() << " with range " << writeHandle.getRange() << " into Conditions Store");
138
139 return StatusCode::SUCCESS;
140}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
StatusCode loadDroppedChambers(const EventContext &ctx, MdtCondDbData &dataOut, bool isMC) const
Gaudi::Property< bool > m_isOnline
StatusCode loadDataLv(const EventContext &ctx, MdtCondDbData &dataOut) const
StatusCode loadDependencies(const EventContext &ctx, writeHandle_t &wh) const
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
StatusCode loadDataPsHv(const EventContext &ctx, MdtCondDbData &dataOut) const
Gaudi::Property< bool > m_isRun1
StatusCode loadDataHv(const EventContext &ctx, MdtCondDbData &dataOut) const
SG::WriteCondHandleKey< MdtCondDbData > m_writeKey
Gaudi::Property< bool > m_isData
StatusCode loadDataPsLv(const EventContext &ctx, MdtCondDbData &dataOut) const
StatusCode loadMcNoisyChannels(const EventContext &ctx, MdtCondDbData &dataOut) const
const std::string & key() const
const EventIDRange & getRange() const
StatusCode record(const EventIDRange &range, T *t)
record handle, with explicit range DEPRECATED
const DataObjID & fullKey() const

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ extraOutputDeps()

const DataObjIDColl & AthCommonReentrantAlgorithm< Gaudi::Algorithm >::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.

90{
91 // If we didn't find any symlinks to add, just return the collection
92 // from the base class. Otherwise, return the extended collection.
93 if (!m_extendedExtraObjects.empty()) {
95 }
97}
An algorithm that can be simultaneously executed in multiple threads.

◆ filterPassed()

virtual bool AthCommonReentrantAlgorithm< Gaudi::Algorithm >::filterPassed ( const EventContext & ctx) const
inlinevirtualinherited

Definition at line 96 of file AthCommonReentrantAlgorithm.h.

96 {
97 return execState( ctx ).filterPassed();
98 }
virtual bool filterPassed(const EventContext &ctx) const

◆ identifyChamber()

Identifier MdtCondDbAlg::identifyChamber ( std::string chamber) const
private

Definition at line 520 of file MdtCondDbAlg.cxx.

520 {
521 if (chamber[2] == 'Y' || chamber[2] == 'X') chamber[2] = 'S';
522 auto itr = m_chamberNames.find(chamber.substr(0, chamber.find('_')));
523 if (itr != m_chamberNames.end()) return itr->second;
524 ATH_MSG_DEBUG("The chamber "<<chamber<<" is unknown.");
525 return Identifier{};
526}
std::map< std::string, Identifier > m_chamberNames

◆ initialize()

StatusCode MdtCondDbAlg::initialize ( )
overridevirtual

m_readKey_folder_mc_deadElements.empty() && !m_isData

m_readKey_folder_mc_deadTubes.empty() && !m_isData

Definition at line 22 of file MdtCondDbAlg.cxx.

22 {
23 ATH_MSG_DEBUG("initializing " << name());
24
25 ATH_CHECK(m_idHelperSvc.retrieve());
26 ATH_CHECK(m_writeKey.initialize());
36 // The calls to the functions that use these two are commented out,
37 // so don't declare a dependencies on them.
39 ATH_CHECK(m_readKey_folder_mc_deadTubes.initialize(false ));
40
41 ServiceHandle<IGeoModelSvc> geoModel("GeoModelSvc", name());
42 ATH_CHECK(geoModel.retrieve());
43
44 std::string AtlasVersion = geoModel->atlasVersion();
45 std::string MuonVersion = geoModel->muonVersionOverride();
46 std::string detectorKey = MuonVersion.empty() ? AtlasVersion : MuonVersion;
47 std::string detectorNode = MuonVersion.empty() ? "ATLAS" : "MuonSpectrometer";
48
49 ServiceHandle<IRDBAccessSvc> accessSvc("RDBAccessSvc", name());
50 ATH_CHECK(accessSvc.retrieve());
51
52 IRDBRecordset_ptr switchSet = accessSvc->getRecordsetPtr("HwSwIdMapping", detectorKey, detectorNode);
53
54 if ((*switchSet).size() == 0) {
55 ATH_MSG_WARNING("Old Atlas Version : " << AtlasVersion << " Only Online Identifier. Falling back to HwSwIdMapping-00 tag");
56 switchSet = accessSvc->getRecordsetPtr("HwSwIdMapping", "HwSwIdMapping-00");
57 }
58
59 for (unsigned int irow = 0; irow < (*switchSet).size(); ++irow) {
60 const IRDBRecord* switches = (*switchSet)[irow];
61 std::string hardwareName = switches->getString("HARDNAME");
62 std::string stName = switches->getString("SOFTNAME");
63 int stPhi = switches->getInt("SOFTOCTANT");
64 int stEta = switches->getInt("SOFTIZ");
65 bool isValid{false};
66 Identifier ChamberId = m_idHelperSvc->mdtIdHelper().elementID(stName, stEta, stPhi, isValid);
67 if (!isValid) continue;
68
69 m_chamberNames[hardwareName] = ChamberId;
70 }
71
72 return StatusCode::SUCCESS;
73}
#define ATH_MSG_WARNING(x)
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
Definition AtlasPID.h:878
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
virtual const std::string & getString(const std::string &fieldName) const =0
Get string field value.
virtual int getInt(const std::string &fieldName) const =0
Get int field value.
dataBaseKey_t m_readKey_folder_da_pslv
dataBaseKey_t m_readKey_folder_mc_deadTubes
dataBaseKey_t m_readKey_folder_da_psv1
dataBaseKey_t m_readKey_folder_da_droppedChambers
dataBaseKey_t m_readKey_folder_mc_droppedChambers
dataBaseKey_t m_readKey_folder_da_hv
dataBaseKey_t m_readKey_folder_da_psv0
dataBaseKey_t m_readKey_folder_mc_deadElements
Gaudi::Property< bool > m_checkOnSetPoint
dataBaseKey_t m_readKey_folder_mc_noisyChannels
dataBaseKey_t m_readKey_folder_da_pshv
dataBaseKey_t m_readKey_folder_da_lv
const std::string & stName(StIndex index)
convert StIndex into a string

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ isClonable()

◆ isReEntrant()

virtual bool AthCondAlgorithm::isReEntrant ( ) const
inlineoverridevirtualinherited

Avoid scheduling algorithm multiple times.

With multiple concurrent events, conditions objects often expire simultaneously for all slots. To avoid that the scheduler runs the CondAlg in each slot, we declare it as "non-reentrant". This ensures that the conditions objects are only created once.

In case a particular CondAlg should behave differently, it can override this method again and return true.

See also
ATEAM-836

Definition at line 39 of file AthCondAlgorithm.h.

39{ return false; }

◆ loadDataHv()

StatusCode MdtCondDbAlg::loadDataHv ( const EventContext & ctx,
MdtCondDbData & dataOut ) const
private

Definition at line 304 of file MdtCondDbAlg.cxx.

304 {
305 SG::ReadCondHandle<CondAttrListCollection> readCdo{m_readKey_folder_da_hv, ctx};
306
307 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readCdo.fullKey() << " readCdo->size()= " << readCdo->size());
308 for (const auto& [chanNum, atr] : **readCdo) {
309 if (!atr.size()) { continue; }
310
311 const std::string& hv_payload = readCdo->chanName(chanNum);
312 const std::string& hv_name_ml1{*(static_cast<const std::string*>((atr["fsmCurrentState_ML1"]).addressOfData()))};
313 const std::string& hv_name_ml2{*(static_cast<const std::string*>((atr["fsmCurrentState_ML2"]).addressOfData()))};
314 const float hv_v0_ml1{*(static_cast<const float*>((atr["v0set_ML1"]).addressOfData()))};
315 const float hv_v1_ml1{*(static_cast<const float*>((atr["v1set_ML1"]).addressOfData()))};
316 const float hv_v0_ml2{*(static_cast<const float*>((atr["v0set_ML2"]).addressOfData()))};
317 const float hv_v1_ml2{*(static_cast<const float*>((atr["v1set_ML2"]).addressOfData()))};
318
319 Identifier chamberId = identifyChamber(hv_payload);
320 if (!chamberId.is_valid()) continue;
321 auto addChamber = [&](const DcsFsmState& dcsState,
322 const float standbyVolt,
323 const float readyVolt,
324 const int multiLayer) {
325 const MdtIdHelper& idHelper{m_idHelperSvc->mdtIdHelper()};
326 if (multiLayer > idHelper.numberOfMultilayers(chamberId)) return;
327 const Identifier mlId = idHelper.multilayerID(chamberId, multiLayer);
328 constexpr std::array<DcsFsmState, 3> goodStates{DcsFsmState::ON, DcsFsmState::STANDBY, DcsFsmState::UNKNOWN};
329 if ( (std::find(goodStates.begin(), goodStates.end(), dcsState) == goodStates.end()) ||
330 (dcsState != DcsFsmState::ON && readyVolt != standbyVolt)) {
331 writeCdo.setDeadMultilayer(mlId);
332 }
333 writeCdo.setHvState(mlId, dcsState, standbyVolt, readyVolt);
334 };
335 addChamber(getFsmStateEnum(hv_name_ml1), hv_v0_ml1, hv_v1_ml1, 1);
336 addChamber(getFsmStateEnum(hv_name_ml2), hv_v0_ml2, hv_v1_ml2, 2);
337 }
338 return StatusCode::SUCCESS;
339}
bool is_valid() const
Check if id is in a valid state.
Identifier identifyChamber(std::string chamber) const
Identifier multilayerID(const Identifier &channeldID) const
int numberOfMultilayers(const Identifier &id) const
const DataObjID & fullKey() const
DcsFsmState getFsmStateEnum(const std::string &fsmState)
Definition Defs.cxx:8

◆ loadDataLv()

StatusCode MdtCondDbAlg::loadDataLv ( const EventContext & ctx,
MdtCondDbData & dataOut ) const
private

Definition at line 342 of file MdtCondDbAlg.cxx.

342 {
343 SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey_folder_da_lv, ctx};
344 const CondAttrListCollection* readCdo{*readHandle};
345 if (!readCdo) {
346 ATH_MSG_ERROR("Null pointer to the read conditions object");
347 return StatusCode::FAILURE;
348 }
349 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readHandle.fullKey() << " readCdo->size()= " << readCdo->size());
350
351 for (const auto& [chanNum, atr] : *readCdo) {
352 if (!atr.size()) { continue; }
353 const std::string& lv_payload = readCdo->chanName(chanNum);
354 const std::string& lv_name{*static_cast<const std::string*>((atr["fsmCurrentState_LV"]).addressOfData())};
355 if (lv_payload.empty() || lv_name.empty()){
356 ATH_MSG_WARNING("The read data with chanNum "<<chanNum<<", lv_payload: "<<lv_payload<<", hv_name: "<<lv_name
357 <<". Does not have any fsmCurrentState_LV attribute. "
358 <<"May be this is related to ATLASRECTS-6920 / ATLASRECTS-6879. Skip it");
359 continue;
360 }
361 ATH_MSG_VERBOSE("Channel "<<lv_name<<" "<<lv_payload);
362 auto tokens = tokenize(lv_name, " ");
363
364 if (tokens[0] != "ON") {
365 Identifier ChamberId = identifyChamber(lv_payload);
366 writeCdo.setDeadChamber(ChamberId);
367 }
368 }
369
370 return StatusCode::SUCCESS;
371}
#define ATH_MSG_ERROR(x)
size_type size() const
number of Chan/AttributeList pairs
std::vector< std::string > tokenize(const std::string &the_str, std::string_view delimiters)
Splits the string into smaller substrings.

◆ loadDataPsHv()

StatusCode MdtCondDbAlg::loadDataPsHv ( const EventContext & ctx,
MdtCondDbData & dataOut ) const
private

Definition at line 143 of file MdtCondDbAlg.cxx.

143 {
144 SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey_folder_da_pshv, ctx};
145 const CondAttrListCollection* readCdo{*readHandle};
146 if (!readCdo) {
147 ATH_MSG_ERROR("Null pointer to the read conditions object");
148 return StatusCode::FAILURE;
149 }
150
151 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readHandle.fullKey() << " readCdo->size()= " << readCdo->size());
152
153 std::vector<Identifier> cachedDeadMultiLayersId_standby;
154 for (const readOutPair& itr : *readCdo) {
155 const unsigned int chanNum = itr.first;
156 const coral::AttributeList& atr = itr.second;
157 const std::string& hv_payload = readCdo->chanName(chanNum);
158 std::string hv_name;
159
160 if (atr.size() == 1) {
161 hv_name = *(static_cast<const std::string*>((atr["fsm_currentState"]).addressOfData()));
162
163 auto tokens = tokenize(hv_name, " ");
164 auto tokens2 = tokenize(hv_payload, "_");
165
166 if (tokens[0] != "ON" && tokens[0] != "STANDBY" && tokens[0] != "UNKNOWN") {
167 int multilayer = atoi(tokens2[3]);
168 const auto &chamber_name = tokens2[2];
169 Identifier ChamberId = identifyChamber(chamber_name);
170 if (ChamberId.is_valid()) {
171 Identifier MultiLayerId = m_idHelperSvc->mdtIdHelper().channelID(ChamberId, multilayer, 1, 1);
172 writeCdo.setDeadMultilayer(MultiLayerId);
173 writeCdo.setDeadChamber(ChamberId);
174 cachedDeadMultiLayersId_standby.push_back(MultiLayerId);
175 }
176 }
177 if (tokens[0] == "STANDBY") {
178 int multilayer = atoi(tokens2[3]);
179 const auto &chamber_name = tokens2[2];
180 Identifier ChamberId = identifyChamber(chamber_name);
181 if (ChamberId.is_valid()) {
182 Identifier MultiLayerId = m_idHelperSvc->mdtIdHelper().channelID(ChamberId, multilayer, 1, 1);
183 writeCdo.setDeadMultilayer(MultiLayerId);
184 writeCdo.setDeadChamber(ChamberId);
185 cachedDeadMultiLayersId_standby.push_back(MultiLayerId);
186 }
187 }
188 }
189 }
190
191 // moving on to SetPoints
192 if (!m_checkOnSetPoint) return StatusCode::SUCCESS;
193
194 std::map<Identifier, float> chamberML_V1;
195 std::map<Identifier, float> chamberML_V0;
196
197 // V0 handle
198 SG::ReadCondHandle<CondAttrListCollection> readHandle_v0{m_readKey_folder_da_psv0, ctx};
199 const CondAttrListCollection* readCdo_v0{*readHandle_v0};
200 if (!readCdo_v0) {
201 ATH_MSG_ERROR("Null pointer to the read conditions object");
202 return StatusCode::FAILURE;
203 }
204
205 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readHandle_v0.fullKey() << " readCdo->size()= " << readCdo_v0->size());
206
207 // V1
208 SG::ReadCondHandle<CondAttrListCollection> readHandle_v1{m_readKey_folder_da_psv1, ctx};
209 const CondAttrListCollection* readCdo_v1{*readHandle_v1};
210 if (!readCdo_v1) {
211 ATH_MSG_ERROR("Null pointer to the read conditions object");
212 return StatusCode::FAILURE;
213 }
214
215 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readHandle_v1.fullKey() << " readCdo->size()= " << readCdo_v1->size());
216
217 // V0 iteration
218 for (const readOutPair& itr_v0 : *readCdo_v0) {
219 const unsigned int chanNum = itr_v0.first;
220 const coral::AttributeList& atr_v0 = itr_v0.second;
221 const std::string& setPointsV0_payload = readCdo_v0->chanName(chanNum);
222 float setPointsV0_name{0.};
223
224 if (atr_v0.size() == 1) {
225 setPointsV0_name = *(static_cast<const float*>((atr_v0["readBackSettings_v0"]).addressOfData()));
226
227 auto tokens2 = tokenize(setPointsV0_payload, "_");
228
229 int multilayer = atoi(tokens2[3]);
230 const auto &chamber_name = tokens2[2];
231 Identifier ChamberId = identifyChamber(chamber_name);
232 Identifier MultiLayerId = m_idHelperSvc->mdtIdHelper().channelID(ChamberId, multilayer, 1, 1);
233 chamberML_V0[MultiLayerId] = setPointsV0_name;
234 }
235 }
236
237 // V1 iteration
239 for (const readOutPair& itr_v1 : *readCdo_v1) {
240 const unsigned int chanNum = itr_v1.first;
241 const coral::AttributeList& atr_v1 = itr_v1.second;
242 const std::string& setPointsV1_payload = readCdo_v1->chanName(chanNum);
243 float setPointsV1_name{0.};
244
245 if (atr_v1.size() == 1) {
246 setPointsV1_name = *(static_cast<const float*>((atr_v1["readBackSettings_v1"]).addressOfData()));
247
248
249 auto tokens2= tokenize(setPointsV1_payload, "_");
250
251 int multilayer = atoi(tokens2[3]);
252 const auto &chamber_name = tokens2[2];
253 Identifier ChamberId = identifyChamber(chamber_name);
254 Identifier MultiLayerId = m_idHelperSvc->mdtIdHelper().channelID(ChamberId, multilayer, 1, 1);
255 chamberML_V1[MultiLayerId] = setPointsV1_name;
256 }
257 }
258
259 // check for chamber standby the correct value of Setpoint V0 vs SetpointV1
260 // for chamber StandBy --> V0==V1 to be on
261 for (const Identifier& MultilayerId_ch : cachedDeadMultiLayersId_standby) {
262 if (chamberML_V1.find(MultilayerId_ch)->second == chamberML_V0.find(MultilayerId_ch)->second) {
263 ATH_MSG_DEBUG("Chamber has correct Voltage V1 = " << chamberML_V1.find(MultilayerId_ch)->second
264 << " V0= " << chamberML_V0.find(MultilayerId_ch)->second);
265 } else {
266 ATH_MSG_DEBUG("Chamber has wrong correct Voltage V1 = " << chamberML_V1.find(MultilayerId_ch)->second
267 << " V0= " << chamberML_V0.find(MultilayerId_ch)->second);
268 ATH_MSG_DEBUG("Has to be masked!!!");
269 writeCdo.setDeadMultilayer(MultilayerId_ch);
270 }
271 }
272
273 return StatusCode::SUCCESS;
274}
CondAttrListCollection::ChanAttrListPair readOutPair
ChanAttrListMap::const_iterator const_iterator
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...

◆ loadDataPsLv()

StatusCode MdtCondDbAlg::loadDataPsLv ( const EventContext & ctx,
MdtCondDbData & dataOut ) const
private

Definition at line 277 of file MdtCondDbAlg.cxx.

277 {
278 SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey_folder_da_pslv, ctx};
279 const CondAttrListCollection* readCdo{*readHandle};
280 if (!readCdo) {
281 ATH_MSG_ERROR("Null pointer to the read conditions object");
282 return StatusCode::FAILURE;
283 }
284 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readHandle.fullKey() << " readCdo->size()= " << readCdo->size());
285 for (const auto& [chanNum, atr] : *readCdo) {
286 const std::string& hv_payload = readCdo->chanName(chanNum);
287 std::string hv_name;
288
289 if (!atr.size()) { continue; }
290 hv_name = *(static_cast<const std::string*>((atr["fsm_currentState"]).addressOfData()));
291
292 auto tokens = tokenize(hv_name, " ");
293 auto tokens2 = tokenize(hv_payload, "_");
294 if (tokens[0] != "ON") {
295 const auto &chamber_name = tokens2[2];
296 Identifier ChamberId = identifyChamber(chamber_name);
297 if (ChamberId.is_valid()) { writeCdo.setDeadChamber(ChamberId); }
298 }
299 }
300
301 return StatusCode::SUCCESS;
302}

◆ loadDependencies()

StatusCode MdtCondDbAlg::loadDependencies ( const EventContext & ctx,
writeHandle_t & wh ) const
private

◆ loadDroppedChambers()

StatusCode MdtCondDbAlg::loadDroppedChambers ( const EventContext & ctx,
MdtCondDbData & dataOut,
bool isMC ) const
private

Definition at line 374 of file MdtCondDbAlg.cxx.

374 {
375 SG::ReadCondHandle<CondAttrListCollection> readHandle{(isMC ? m_readKey_folder_mc_droppedChambers
377 const CondAttrListCollection* readCdo{*readHandle};
378 if (!readCdo) {
379 ATH_MSG_ERROR("Null pointer to the read conditions object");
380 return StatusCode::FAILURE;
381 }
382 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readHandle.fullKey() << " readCdo->size()= " << readCdo->size());
383
384 for (const readOutPair& itr : *readCdo) {
385 const coral::AttributeList& atr = itr.second;
386 const std::string& chamber_dropped{*(static_cast<const std::string*>((atr["Chambers_disabled"]).addressOfData()))};
387
388 auto tokens = tokenize(chamber_dropped, " ");
389 for (auto & token : tokens) {
390 if (token != "0") {
391 const auto &chamber_name = token;
392 Identifier ChamberId = identifyChamber(chamber_name);
393 if (ChamberId.is_valid()) { writeCdo.setDeadChamber(ChamberId); }
394 }
395 }
396 }
397 return StatusCode::SUCCESS;
398}

◆ loadMcDeadElements()

StatusCode MdtCondDbAlg::loadMcDeadElements ( const EventContext & ctx,
MdtCondDbData & dataOut ) const
private

Definition at line 401 of file MdtCondDbAlg.cxx.

401 {
402 SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey_folder_mc_deadElements, ctx};
403 const CondAttrListCollection* readCdo{*readHandle};
404 if (!readCdo) {
405 ATH_MSG_ERROR("Null pointer to the read conditions object");
406 return StatusCode::FAILURE;
407 }
408
409 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readHandle.fullKey() << " readCdo->size()= " << readCdo->size());
410
411 for (const readOutPair& itr : *readCdo) {
412 const coral::AttributeList& atr = itr.second;
413 const std::string& chamber_name{*(static_cast<const std::string*>((atr["Chambers_Name"]).addressOfData()))};
414 const std::string& list_mlayer{*(static_cast<const std::string*>((atr["Dead_multilayer"]).addressOfData()))};
415 const std::string& list_layer{*(static_cast<const std::string*>((atr["Dead_layer"]).addressOfData()))};
416 const std::string& list_tube{*(static_cast<const std::string*>((atr["Dead_tube"]).addressOfData()))};
417
418 Identifier ChamberId = identifyChamber(chamber_name);
419 auto tokens = tokenize(list_tube, " ");
420 auto tokens_mlayer = tokenize(list_mlayer, " ");
421 auto tokens_layer = tokenize(list_layer, " ");
422
423 for (auto & token : tokens) {
424
425 if (token != "0") {
426 int ml = atoi(token.substr(0, 1));
427 int layer = atoi(token.substr(1, 2));
428 int tube = atoi(token.substr(2));
429 Identifier ChannelId = m_idHelperSvc->mdtIdHelper().channelID(ChamberId, ml, layer, tube);
430 writeCdo.setDeadTube(ChannelId);
431 writeCdo.setDeadChamber(ChamberId);
432 }
433 }
434
435 for (unsigned int i = 0; i < tokens_mlayer.size(); i++) {
436 if (tokens_mlayer[i] != "0") {
437 int ml = atoi(tokens_mlayer[i].substr(0));
438 Identifier ChannelId = m_idHelperSvc->mdtIdHelper().channelID(ChamberId, ml, 1, 1);
439 writeCdo.setDeadMultilayer(ChannelId);
440 writeCdo.setDeadChamber(ChamberId);
441 }
442 }
443
444 for (unsigned int i = 0; i < tokens_layer.size(); i++) {
445 if (tokens_layer[i] != "0") {
446 int ml = atoi(tokens_layer[i].substr(0, 1));
447 int layer = atoi(tokens_layer[i].substr(1));
448 Identifier ChannelId = m_idHelperSvc->mdtIdHelper().channelID(ChamberId, ml, layer, 1);
449 writeCdo.setDeadLayer(ChannelId);
450 writeCdo.setDeadChamber(ChamberId);
451 }
452 }
453 }
454
455 return StatusCode::SUCCESS;
456}
@ layer
Definition HitInfo.h:79

◆ loadMcDeadTubes()

StatusCode MdtCondDbAlg::loadMcDeadTubes ( const EventContext & ctx,
MdtCondDbData & dataOut ) const
private

Definition at line 459 of file MdtCondDbAlg.cxx.

459 {
460 SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey_folder_mc_deadTubes, ctx};
461 const CondAttrListCollection* readCdo{*readHandle};
462 if (!readCdo) {
463 ATH_MSG_ERROR("Null pointer to the read conditions object");
464 return StatusCode::FAILURE;
465 }
466
467 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readHandle.fullKey() << " readCdo->size()= " << readCdo->size());
468
469 for (const readOutPair& itr : *readCdo) {
470 const coral::AttributeList& atr = itr.second;
471
472 std::string dead_tube = *(static_cast<const std::string*>((atr["DeadTube_List"]).addressOfData()));
473 std::string chamber_name = *(static_cast<const std::string*>((atr["Chamber_Name"]).addressOfData()));
474
475 auto tokens = tokenize(dead_tube, " ");
476 Identifier ChamberId = identifyChamber(std::move(chamber_name));
477
478 for (auto & token : tokens) {
479 int ml = atoi(token.substr(0, 1));
480 int layer = atoi(token.substr(1, 2));
481 int tube = atoi(token.substr(2));
482 Identifier ChannelId = m_idHelperSvc->mdtIdHelper().channelID(ChamberId, ml, layer, tube);
483 writeCdo.setDeadTube(ChannelId);
484 }
485 writeCdo.setDeadChamber(ChamberId);
486 }
487
488 return StatusCode::SUCCESS;
489}

◆ loadMcNoisyChannels()

StatusCode MdtCondDbAlg::loadMcNoisyChannels ( const EventContext & ctx,
MdtCondDbData & dataOut ) const
private

Definition at line 492 of file MdtCondDbAlg.cxx.

492 {
493 SG::ReadCondHandle<CondAttrListCollection> readHandle{m_readKey_folder_mc_noisyChannels, ctx};
494 const CondAttrListCollection* readCdo{*readHandle};
495 if (!readCdo) {
496 ATH_MSG_ERROR("Null pointer to the read conditions object");
497 return StatusCode::FAILURE;
498 }
499
500 ATH_MSG_DEBUG("Size of CondAttrListCollection " << readHandle.fullKey() << " readCdo->size()= " << readCdo->size());
501 for (const auto &[chanNum, atr] : *readCdo) {
502 if (!atr.size()) {
503 continue;
504 }
505 const std::string& hv_payload = readCdo->chanName(chanNum);
506 const std::string& hv_name{*(static_cast<const std::string*>((atr["fsm_currentState"]).addressOfData()))};
507
508 auto tokens = tokenize(hv_name, " ");
509
510 auto tokens2 = tokenize(hv_payload, "_");
511
512 if (tokens[0] != "ON") {
513 Identifier ChamberId = identifyChamber(tokens2[2]);
514 writeCdo.setDeadChamber(ChamberId);
515 }
516
517 }
518 return StatusCode::SUCCESS;
519}

◆ msg()

MsgStream & AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< Gaudi::Algorithm >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ setFilterPassed()

virtual void AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool state,
const EventContext & ctx ) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100 {
102 }
virtual void setFilterPassed(bool state, const EventContext &ctx) const

◆ sysExecute()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysExecute ( const EventContext & ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 85 of file AthCommonReentrantAlgorithm.cxx.

77{
78 return BaseAlg::sysExecute (ctx);
79}

◆ sysInitialize()

StatusCode AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in HypoBase, and InputMakerBase.

Definition at line 61 of file AthCommonReentrantAlgorithm.cxx.

107 {
109
110 if (sc.isFailure()) {
111 return sc;
112 }
113
114 ServiceHandle<ICondSvc> cs("CondSvc",name());
115 for (auto h : outputHandles()) {
116 if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
117 // do this inside the loop so we don't create the CondSvc until needed
118 if ( cs.retrieve().isFailure() ) {
119 ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
120 return StatusCode::SUCCESS;
121 }
122 if (cs->regHandle(this,*h).isFailure()) {
124 ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
125 << " with CondSvc");
126 }
127 }
128 }
129 return sc;
130}
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }

Member Data Documentation

◆ m_chamberNames

std::map<std::string, Identifier> MdtCondDbAlg::m_chamberNames {}
private

Definition at line 76 of file MdtCondDbAlg.h.

76{};

◆ m_checkOnSetPoint

Gaudi::Property<bool> MdtCondDbAlg::m_checkOnSetPoint {this, "useRun1SetPoints", false}
private

Definition at line 45 of file MdtCondDbAlg.h.

45{this, "useRun1SetPoints", false};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 114 of file AthCommonReentrantAlgorithm.h.

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> MdtCondDbAlg::m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
private

Definition at line 47 of file MdtCondDbAlg.h.

47{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};

◆ m_isData

Gaudi::Property<bool> MdtCondDbAlg::m_isData {this, "isData", false}
private

Definition at line 43 of file MdtCondDbAlg.h.

43{this, "isData", false};

◆ m_isOnline

Gaudi::Property<bool> MdtCondDbAlg::m_isOnline {this, "isOnline", false}
private

Definition at line 42 of file MdtCondDbAlg.h.

42{this, "isOnline", false};

◆ m_isRun1

Gaudi::Property<bool> MdtCondDbAlg::m_isRun1 {this, "isRun1", false}
private

Definition at line 44 of file MdtCondDbAlg.h.

44{this, "isRun1", false};

◆ m_readKey_folder_da_droppedChambers

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_da_droppedChambers
private
Initial value:
{
this, "ReadKey_DataR1_DC", "/MDT/DCS/DROPPEDCH", "Key of input MDT condition data for Run 1 data dropped chambers"}

Definition at line 59 of file MdtCondDbAlg.h.

59 {
60 this, "ReadKey_DataR1_DC", "/MDT/DCS/DROPPEDCH", "Key of input MDT condition data for Run 1 data dropped chambers"};

◆ m_readKey_folder_da_hv

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_da_hv
private
Initial value:
{this, "ReadKey_DataR2_HV", "/MDT/DCS/HV",
"Key of input MDT condition data for Run 2 data HV"}

Definition at line 61 of file MdtCondDbAlg.h.

61 {this, "ReadKey_DataR2_HV", "/MDT/DCS/HV",
62 "Key of input MDT condition data for Run 2 data HV"};

◆ m_readKey_folder_da_lv

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_da_lv
private
Initial value:
{this, "ReadKey_DataR2_LV", "/MDT/DCS/LV",
"Key of input MDT condition data for Run 2 data LV"}

Definition at line 63 of file MdtCondDbAlg.h.

63 {this, "ReadKey_DataR2_LV", "/MDT/DCS/LV",
64 "Key of input MDT condition data for Run 2 data LV"};

◆ m_readKey_folder_da_pshv

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_da_pshv
private
Initial value:
{this, "ReadKey_DataR1_HV", "/MDT/DCS/PSHVMLSTATE",
"Key of input MDT condition data for Run 1 data HV"}

Definition at line 51 of file MdtCondDbAlg.h.

51 {this, "ReadKey_DataR1_HV", "/MDT/DCS/PSHVMLSTATE",
52 "Key of input MDT condition data for Run 1 data HV"};

◆ m_readKey_folder_da_pslv

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_da_pslv
private
Initial value:
{this, "ReadKey_DataR1_LV", "/MDT/DCS/PSLVCHSTATE",
"Key of input MDT condition data for Run 1 data LV"}

Definition at line 57 of file MdtCondDbAlg.h.

57 {this, "ReadKey_DataR1_LV", "/MDT/DCS/PSLVCHSTATE",
58 "Key of input MDT condition data for Run 1 data LV"};

◆ m_readKey_folder_da_psv0

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_da_psv0
private
Initial value:
{this, "ReadKey_DataR1_V0", "/MDT/DCS/PSV0SETPOINTS",
"Key of input MDT condition data for Run 1 data V0"}

Definition at line 53 of file MdtCondDbAlg.h.

53 {this, "ReadKey_DataR1_V0", "/MDT/DCS/PSV0SETPOINTS",
54 "Key of input MDT condition data for Run 1 data V0"};

◆ m_readKey_folder_da_psv1

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_da_psv1
private
Initial value:
{this, "ReadKey_DataR1_V1", "/MDT/DCS/PSV1SETPOINTS",
"Key of input MDT condition data for Run 1 data V1"}

Definition at line 55 of file MdtCondDbAlg.h.

55 {this, "ReadKey_DataR1_V1", "/MDT/DCS/PSV1SETPOINTS",
56 "Key of input MDT condition data for Run 1 data V1"};

◆ m_readKey_folder_mc_deadElements

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_mc_deadElements
private
Initial value:
{this, "ReadKey_MC_DE", "/MDT/DQMF/DEAD_ELEMENT",
"Key of input MDT condition data for MC dead elements"}

Definition at line 67 of file MdtCondDbAlg.h.

67 {this, "ReadKey_MC_DE", "/MDT/DQMF/DEAD_ELEMENT",
68 "Key of input MDT condition data for MC dead elements"};

◆ m_readKey_folder_mc_deadTubes

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_mc_deadTubes
private
Initial value:
{this, "ReadKey_MC_DT", "/MDT/TUBE_STATUS/DEAD_TUBE",
"Key of input MDT condition data for MC dead tubes"}

Definition at line 69 of file MdtCondDbAlg.h.

69 {this, "ReadKey_MC_DT", "/MDT/TUBE_STATUS/DEAD_TUBE",
70 "Key of input MDT condition data for MC dead tubes"};

◆ m_readKey_folder_mc_droppedChambers

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_mc_droppedChambers
private
Initial value:
{
this, "ReadKey_MC_DC", "/MDT/DCS/DROPPEDCH", "Key of input MDT condition data for MC dropped chambers"}

Definition at line 65 of file MdtCondDbAlg.h.

65 {
66 this, "ReadKey_MC_DC", "/MDT/DCS/DROPPEDCH", "Key of input MDT condition data for MC dropped chambers"};

◆ m_readKey_folder_mc_noisyChannels

dataBaseKey_t MdtCondDbAlg::m_readKey_folder_mc_noisyChannels
private
Initial value:
{
this, "ReadKey_MC_NC", "/MDT/DCS/PSLVCHSTATE", "Key of input MDT condition data for MC noisy channels"}

Definition at line 71 of file MdtCondDbAlg.h.

71 {
72 this, "ReadKey_MC_NC", "/MDT/DCS/PSLVCHSTATE", "Key of input MDT condition data for MC noisy channels"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ m_writeKey

SG::WriteCondHandleKey<MdtCondDbData> MdtCondDbAlg::m_writeKey {this, "WriteKey", "MdtCondDbData", "Key of output MDT condition data"}
private

Definition at line 49 of file MdtCondDbAlg.h.

49{this, "WriteKey", "MdtCondDbData", "Key of output MDT condition data"};

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