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

Tool to perform COOL updates during the run. More...

#include <TrigCOOLUpdateHelper.h>

Inheritance diagram for TrigCOOLUpdateHelper:
Collaboration diagram for TrigCOOLUpdateHelper:

Public Member Functions

 TrigCOOLUpdateHelper (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize () override
virtual StatusCode start () override
virtual StatusCode stop () override
StatusCode hltCoolUpdate (const EventContext &ctx)
 Perform COOL udpates if needed.
StatusCode hltCoolUpdate (const std::string &folder)
 Update specified COOL folder.
StatusCode getFolderName (CTPfragment::FolderIndex idx, std::string &folderName) const
 Return folder name to index.
StatusCode extractFolderUpdates (const EventContext &ctx)
 Decode COOL folder updates according to extra payload in CTP fragment.
StatusCode readFolderInfo ATLAS_NOT_THREAD_SAFE ()
 Read information about existing COOL folders.
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 sysInitialize () override
 Perform system initialization for an algorithm.
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

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode resetFolder (const std::string &folder)
 Reset COOL folder.
StatusCode resetFolders (const std::vector< std::string > &folders)
 Reset list of COOL folders.
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

std::map< std::string, FolderInfom_folderInfo
 CLID/name mapping of COOL folders.
std::map< CTPfragment::FolderIndex, FolderUpdatem_folderUpdates
 Map to store scheduled/done COOL folder updates.
std::map< CTPfragment::FolderIndex, std::string > m_folderNames
 Map to store the folder update index -> name mapping.
SmartIF< IIOVSvcm_iovSvc
SmartIF< IIOVDbSvcm_iovDbSvc
ServiceHandle< IROBDataProviderSvcm_robDataProviderSvc
ToolHandle< GenericMonitoringToolm_monTool {this, "MonTool", {}, "Monitoring tool"}
Gaudi::Property< std::string > m_coolFolderName
Gaudi::Property< std::vector< std::string > > m_folders
Gaudi::Property< uint32_t > m_ctpRobId
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

Tool to perform COOL updates during the run.

Definition at line 59 of file TrigCOOLUpdateHelper.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ TrigCOOLUpdateHelper()

TrigCOOLUpdateHelper::TrigCOOLUpdateHelper ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 31 of file TrigCOOLUpdateHelper.cxx.

34 : AthAlgTool(type, name, parent),
35 m_robDataProviderSvc("ROBDataProviderSvc", name)
36{}
AthAlgTool()
Default constructor:
ServiceHandle< IROBDataProviderSvc > m_robDataProviderSvc

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

StatusCode readFolderInfo TrigCOOLUpdateHelper::ATLAS_NOT_THREAD_SAFE ( )

Read information about existing COOL folders.

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::evtStore ( )
inlineinherited

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

Definition at line 85 of file AthCommonDataStore.h.

◆ extractFolderUpdates()

StatusCode TrigCOOLUpdateHelper::extractFolderUpdates ( const EventContext & ctx)

Decode COOL folder updates according to extra payload in CTP fragment.

Definition at line 251 of file TrigCOOLUpdateHelper.cxx.

252{
253 using CTPfragment::FolderIndex;
254 using CTPfragment::FolderEntry;
255
256 // Fetch CTP fragment ROB
257 const std::vector<uint32_t> robs{m_ctpRobId};
259 try {
260 m_robDataProviderSvc->addROBData(ctx, robs, name());
261 m_robDataProviderSvc->getROBData(ctx, robs, ctpRobs, name());
262 }
263 catch (const std::exception& ex) {
264 ATH_MSG_ERROR("Cannot retrieve CTP ROB 0x" << MSG::hex << m_ctpRobId.value() << MSG::dec << " due to exception: " << ex.what());
265 return StatusCode::FAILURE;
266 }
267
268 if ( ctpRobs.empty() ) {
269 ATH_MSG_ERROR("Cannot retrieve CTP ROB 0x" << MSG::hex << m_ctpRobId.value() << MSG::dec);
270 return StatusCode::FAILURE;
271 }
272
273 // Decode CTP extra payload words
274 std::vector<uint32_t> l1_extraPayload = CTPfragment::extraPayloadWords( ctpRobs[0] );
275 CTPfragment::ExtraPayload ctp_payload;
276 try {
277 ctp_payload = CTPfragment::ExtraPayload(l1_extraPayload);
278 }
279 catch (CTPfragment::ExtraPayloadTooLong& ex) {
280 ATH_MSG_ERROR("Invalid CTP fragment. Exception = " << ex.what());
281 return StatusCode::FAILURE;
282 }
283
284 if ( msgLevel(MSG::DEBUG) ) {
285 msg() << MSG::DEBUG << "CTP extra payload (" << l1_extraPayload.size() << " words): ";
286 for (std::size_t i=0; i<l1_extraPayload.size(); ++i) {
287 msg() << " " << l1_extraPayload[i];
288 }
289 std::ostringstream out;
290 out << ctp_payload;
291 msg() << out.str() << endmsg;
292 }
293
294 // Loop over potential new folder updates
295 for (const std::pair<const FolderIndex, FolderEntry>& kv : ctp_payload.getFolderUpdates()) {
296
297 // Check if we already have an update for this folder
298 std::map<FolderIndex, FolderUpdate>::const_iterator f = m_folderUpdates.find(kv.first);
299
300 // No updates yet or this update supersedes the previous one
301 if (f==m_folderUpdates.end() || (f->second.lumiBlock != kv.second.lumiBlock)) {
302 m_folderUpdates[kv.first] = FolderUpdate(kv.second); // new folder update
303
304 ATH_MSG_DEBUG("Conditions update for folder " << kv.second.folderIndex
305 << " on lumiblock " << kv.second.lumiBlock);
306 }
307 }
308 return StatusCode::SUCCESS;
309}
#define endmsg
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
MsgStream & msg() const
std::vector< const ROBF * > VROBFRAG
std::map< CTPfragment::FolderIndex, FolderUpdate > m_folderUpdates
Map to store scheduled/done COOL folder updates.
Gaudi::Property< uint32_t > m_ctpRobId

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::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

◆ getFolderName()

StatusCode TrigCOOLUpdateHelper::getFolderName ( CTPfragment::FolderIndex idx,
std::string & folderName ) const

Return folder name to index.

Parameters
idxFolder index
folderNameReturns folder name

Definition at line 231 of file TrigCOOLUpdateHelper.cxx.

232{
233 const auto& itr = m_folderNames.find(idx);
234 if (itr==m_folderNames.end()) {
235 ATH_MSG_ERROR(m_coolFolderName << " does not contain a folder for index/channel " << idx
236 << ". Existing folders are:");
237 for (auto const& [idx, name] : m_folderNames) {
238 ATH_MSG_INFO(" (" << idx << ") " << name);
239 }
240 return StatusCode::FAILURE;
241 }
242
243 folderName = itr->second;
244 return StatusCode::SUCCESS;
245}
#define ATH_MSG_INFO(x)
std::map< CTPfragment::FolderIndex, std::string > m_folderNames
Map to store the folder update index -> name mapping.
Gaudi::Property< std::string > m_coolFolderName

◆ hltCoolUpdate() [1/2]

StatusCode TrigCOOLUpdateHelper::hltCoolUpdate ( const EventContext & ctx)

Perform COOL udpates if needed.

Parameters
ctxEvent context

Definition at line 171 of file TrigCOOLUpdateHelper.cxx.

172{
173 // Extract COOL folder updates from CTP fragment
174 if ( extractFolderUpdates(ctx).isFailure() ) {
175 ATH_MSG_ERROR("Failure reading CTP extra payload");
176 return StatusCode::FAILURE;
177 }
178
179 // Loop over folders to be updated
180 for (auto& [idx, f] : m_folderUpdates) {
181
182 if (f.needsUpdate) {
183
184 if ( !m_iovSvc || m_coolFolderName.empty() ) {
185 ATH_MSG_DEBUG("Request to reload COOL folder ID " << idx << " for IOV change in lumiblock "
186 << f.lumiBlock << " but running without IOVSvc. Current event: " << ctx.eventID());
187 f.needsUpdate = false;
188 continue;
189 }
190
191 std::string folderName;
192 if (getFolderName(f.folderIndex, folderName).isFailure()) {
193 continue; // On purpose not a failure
194 }
195
196 ATH_MSG_INFO("Reload of COOL folder " << folderName << " for IOV change in lumiblock "
197 << f.lumiBlock << ". Current event: " << ctx.eventID());
198
199 if ( hltCoolUpdate(folderName).isFailure() ) {
200 ATH_MSG_ERROR("COOL update failed for " << folderName << ". Aborting.");
201 return StatusCode::FAILURE;
202 }
203 // All OK
204 f.needsUpdate = false;
205 }
206 }
207
208 return StatusCode::SUCCESS;
209}
StatusCode hltCoolUpdate(const EventContext &ctx)
Perform COOL udpates if needed.
StatusCode extractFolderUpdates(const EventContext &ctx)
Decode COOL folder updates according to extra payload in CTP fragment.
StatusCode getFolderName(CTPfragment::FolderIndex idx, std::string &folderName) const
Return folder name to index.
SmartIF< IIOVSvc > m_iovSvc

◆ hltCoolUpdate() [2/2]

StatusCode TrigCOOLUpdateHelper::hltCoolUpdate ( const std::string & folder)

Update specified COOL folder.

Parameters
folderFolder name

Definition at line 211 of file TrigCOOLUpdateHelper.cxx.

212{
213 if (std::find(m_folders.begin(), m_folders.end(), folderName)==m_folders.end()) {
214 ATH_MSG_ERROR("Received request to update COOL folder '" << folderName
215 << "' but this folder is not in the allowed list:" << m_folders);
216 return StatusCode::FAILURE;
217 }
218
219 auto mon_t = Monitored::Timer("TIME_CoolFolderUpdate");
220 Monitored::Group mon(m_monTool, mon_t);
221
222 // Reset folder and make IOVDbSvc drop objects
223 if (resetFolder(folderName).isFailure()) {
224 ATH_MSG_ERROR("Reset of " << folderName << " failed");
225 return StatusCode::FAILURE;
226 }
227
228 return StatusCode::SUCCESS;
229}
Gaudi::Property< std::vector< std::string > > m_folders
StatusCode resetFolder(const std::string &folder)
Reset COOL folder.
ToolHandle< GenericMonitoringTool > m_monTool

◆ initialize()

StatusCode TrigCOOLUpdateHelper::initialize ( )
overridevirtual

Definition at line 39 of file TrigCOOLUpdateHelper.cxx.

40{
41 // Do not create these services if they are not available already
42 m_iovSvc = service("IOVSvc", /*createIf=*/false);
43 m_iovDbSvc = service("IOVDbSvc", /*createIf=*/false);
44
45 if (!m_monTool.empty()) ATH_CHECK(m_monTool.retrieve());
46
47 return StatusCode::SUCCESS;
48}
#define ATH_CHECK
Evaluate an expression and check for errors.
SmartIF< IIOVDbSvc > m_iovDbSvc

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::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.

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

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

◆ msgLvl()

bool AthCommonMsg< AlgTool >::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< AlgTool > >::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< AlgTool > >::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< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ resetFolder()

StatusCode TrigCOOLUpdateHelper::resetFolder ( const std::string & folder)
private

Reset COOL folder.

Parameters
folderCOOL folder name

Definition at line 131 of file TrigCOOLUpdateHelper.cxx.

132{
133 // Force a reset of folders by setting an IOVRange in the past
134
135 if (!m_iovSvc || !m_iovDbSvc) return StatusCode::SUCCESS;
136
137 const auto& f = m_folderInfo.find(folder);
138 if ( f==m_folderInfo.end() ) {
139 ATH_MSG_DEBUG("Folder " << folder << " not registered with IOVDbSvc");
140 return StatusCode::SUCCESS;
141 }
142
143 const CLID& clid = f->second.clid;
144 const std::string& key = f->second.key;
145
146 // Make sure we are not trying to reset a time-based folder
147 IOVRange iov;
148 if ( m_iovSvc->getRange(clid, key, iov).isSuccess() ) {
149 if ( iov.start().isTimestamp() || iov.start().isBoth() ) {
150 ATH_MSG_ERROR(folder << " is not a Run/LB based folder. Cannot perform COOL update.");
151 return StatusCode::FAILURE;
152 }
153 }
154
155 if ( m_iovSvc->dropObjectFromDB(clid, key, "StoreGateSvc").isFailure() ) {
156 ATH_MSG_WARNING("Could not invalidate folder " << folder);
157 return StatusCode::FAILURE;
158 }
159
160 // All OK
161 ATH_MSG_INFO("Invalidated IOV and dropped payload of folder " <<
162 folder << (key!=folder ? " (key="+key+")" : "") );
163
164 return StatusCode::SUCCESS;
165}
#define ATH_MSG_WARNING(x)
uint32_t CLID
The Class ID type.
std::map< std::string, FolderInfo > m_folderInfo
CLID/name mapping of COOL folders.

◆ resetFolders()

StatusCode TrigCOOLUpdateHelper::resetFolders ( const std::vector< std::string > & folders)
private

Reset list of COOL folders.

Parameters
foldersList of folder names

Definition at line 118 of file TrigCOOLUpdateHelper.cxx.

119{
120 if (folders.empty()) return StatusCode::SUCCESS;
121
122 StatusCode sc(StatusCode::SUCCESS);
123 for (const std::string& f : folders) {
124 if ( resetFolder(f).isFailure() ) {
125 sc = StatusCode::FAILURE;
126 }
127 }
128 return sc;
129}
static Double_t sc
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ start()

StatusCode TrigCOOLUpdateHelper::start ( )
overridevirtual

Definition at line 51 of file TrigCOOLUpdateHelper.cxx.

52{
53 m_folderUpdates.clear();
54 return StatusCode::SUCCESS;
55}

◆ stop()

StatusCode TrigCOOLUpdateHelper::stop ( )
overridevirtual

Definition at line 57 of file TrigCOOLUpdateHelper.cxx.

58{
59 std::ostringstream pending;
60 // Loop over folder updates
61 for (auto f : m_folderUpdates) {
62 if (f.second.needsUpdate) pending << "[" << f.second.lumiBlock << "," << f.second.folderIndex << "]";
63 }
64
65 if (pending.str().empty()) pending << "NONE";
66 ATH_MSG_INFO("[LB,Folder] with pending COOL updates: " << pending.str());
67
68 return StatusCode::SUCCESS;
69}

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::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< AlgTool > >::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 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_coolFolderName

Gaudi::Property<std::string> TrigCOOLUpdateHelper::m_coolFolderName
private
Initial value:
{
this, "CoolFolderMap", {}, "Name of COOL folder containing folder map"}

Definition at line 126 of file TrigCOOLUpdateHelper.h.

126 {
127 this, "CoolFolderMap", {}, "Name of COOL folder containing folder map"};

◆ m_ctpRobId

Gaudi::Property<uint32_t> TrigCOOLUpdateHelper::m_ctpRobId
private
Initial value:
{
this, "CtpRobId", 0x770001, "ROB ID of CTP fragment containing the extra payload"}

Definition at line 132 of file TrigCOOLUpdateHelper.h.

132 {
133 this, "CtpRobId", 0x770001, "ROB ID of CTP fragment containing the extra payload"};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_folderInfo

std::map<std::string, FolderInfo> TrigCOOLUpdateHelper::m_folderInfo
private

CLID/name mapping of COOL folders.

Definition at line 110 of file TrigCOOLUpdateHelper.h.

◆ m_folderNames

std::map<CTPfragment::FolderIndex, std::string> TrigCOOLUpdateHelper::m_folderNames
private

Map to store the folder update index -> name mapping.

Definition at line 116 of file TrigCOOLUpdateHelper.h.

◆ m_folders

Gaudi::Property<std::vector<std::string> > TrigCOOLUpdateHelper::m_folders
private
Initial value:
{
this, "Folders", {}, "List of folders that can be updated during the run"}

Definition at line 129 of file TrigCOOLUpdateHelper.h.

129 {
130 this, "Folders", {}, "List of folders that can be updated during the run"};

◆ m_folderUpdates

std::map<CTPfragment::FolderIndex, FolderUpdate> TrigCOOLUpdateHelper::m_folderUpdates
private

Map to store scheduled/done COOL folder updates.

Definition at line 113 of file TrigCOOLUpdateHelper.h.

◆ m_iovDbSvc

SmartIF<IIOVDbSvc> TrigCOOLUpdateHelper::m_iovDbSvc
private

Definition at line 120 of file TrigCOOLUpdateHelper.h.

◆ m_iovSvc

SmartIF<IIOVSvc> TrigCOOLUpdateHelper::m_iovSvc
private

Definition at line 119 of file TrigCOOLUpdateHelper.h.

◆ m_monTool

ToolHandle<GenericMonitoringTool> TrigCOOLUpdateHelper::m_monTool {this, "MonTool", {}, "Monitoring tool"}
private

Definition at line 124 of file TrigCOOLUpdateHelper.h.

124{this, "MonTool", {}, "Monitoring tool"};

◆ m_robDataProviderSvc

ServiceHandle<IROBDataProviderSvc> TrigCOOLUpdateHelper::m_robDataProviderSvc
private

Definition at line 121 of file TrigCOOLUpdateHelper.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.


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