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

Algorithm to test writing conditions data and reading them back. More...

#include <IOVDbTestAlg.h>

Inheritance diagram for IOVDbTestAlg:
Collaboration diagram for IOVDbTestAlg:

Public Member Functions

 IOVDbTestAlg (const std::string &name, ISvcLocator *pSvcLocator)
virtual ~IOVDbTestAlg ()
virtual StatusCode initialize ATLAS_NOT_THREAD_SAFE () override
virtual StatusCode execute (const EventContext &ctx) const override
virtual StatusCode finalize () override
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

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

StatusCode createCondObjects (const EventContext &ctx) const
StatusCode printCondObjects () const
StatusCode streamOutCondObjects ()
StatusCode registerCondObjects ()
StatusCode readWithBeginRun ()
void waitForSecond () const
StatusCode testCallBack (IOVSVC_CALLBACK_ARGS)
StatusCode registerIOV (const CLID &clid)
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

BooleanProperty m_writeCondObjs {this, "WriteCondObjs", false}
BooleanProperty m_regIOV {this, "RegisterIOV", false}
BooleanProperty m_readWriteCool {this, "ReadWriteCool", false}
BooleanProperty m_twoStepWriteReg {this, "TwoStepWriteReg", false}
BooleanProperty m_createExtraChans {this, "CreateExtraChanns", false}
BooleanProperty m_nameChans {this, "NameChanns", false}
BooleanProperty m_readInInit {this, "ReadInInit", false}
BooleanProperty m_writeOnlyCool {this, "WriteOnlyCool", false}
BooleanProperty m_fancylist {this, "FancyList", false}
BooleanProperty m_printLB {this, "PrintLB", false}
BooleanProperty m_writeNewTag {this, "WriteNewTag", false}
BooleanProperty m_readNewTag {this, "ReadNewTag", false}
BooleanProperty m_noStream {this, "NoStream", false}
IntegerProperty m_regTime {this, "RegTime", 0, "Register time in sec"}
StringProperty m_streamName {this, "StreamName", "CondStream1"}
IntegerProperty m_run {this, "run", 0}
BooleanProperty m_online {this, "online", false}
StringProperty m_tagID {this, "TagID", ""}
ServiceHandle< IIOVRegistrationSvcm_regSvc
ToolHandle< IAthenaOutputStreamToolm_streamer
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

Algorithm to test writing conditions data and reading them back.

Definition at line 35 of file IOVDbTestAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ IOVDbTestAlg()

IOVDbTestAlg::IOVDbTestAlg ( const std::string & name,
ISvcLocator * pSvcLocator )

Definition at line 36 of file IOVDbTestAlg.cxx.

36 :
37 AthReentrantAlgorithm(name, pSvcLocator),
38 m_regSvc("IOVRegistrationSvc", name),
39 m_streamer ("CondStream1")
40{
41}
ToolHandle< IAthenaOutputStreamTool > m_streamer
ServiceHandle< IIOVRegistrationSvc > m_regSvc

◆ ~IOVDbTestAlg()

IOVDbTestAlg::~IOVDbTestAlg ( )
virtual

Definition at line 45 of file IOVDbTestAlg.cxx.

46{ }

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

virtual StatusCode initialize IOVDbTestAlg::ATLAS_NOT_THREAD_SAFE ( )
overridevirtual

◆ 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}

◆ createCondObjects()

StatusCode IOVDbTestAlg::createCondObjects ( const EventContext & ctx) const
private

Definition at line 142 of file IOVDbTestAlg.cxx.

143{
144 ATH_MSG_INFO ("in createCondObjects()");
145
146 // Create IOVDbTestMDTEleMap
147 IOVDbTestMDTEleMap* elemMap = new IOVDbTestMDTEleMap;
148 unsigned long long timestamp = ctx.eventID().time_stamp();
149 if (timestamp)
150 elemMap->set(ctx.eventID().time_stamp(),"mdt element map");
151 else
152 elemMap->set(ctx.eventID().run_number(), ctx.eventID().event_number(), "mdt element map");
153
154
155 // Must provide a key which is used as the name to create the folder
156 ATH_CHECK( detStore()->record(elemMap, "/IOVDbTest/IOVDbTestMDTEleMap") );
157
158 // Create IOVDbTestMDTEleMapColl
160
161 // Add in 10 maps, set indices
162 unsigned int offset = 0;
163 if (m_createExtraChans) offset = 100;
164 for (unsigned int i = 0; i < 10; ++i) {
165 IOVDbTestMDTEleMap* elemMap = new IOVDbTestMDTEleMap;
166
167 unsigned long long timestamp = ctx.eventID().time_stamp();
168 if (timestamp)
169 elemMap->set(ctx.eventID().time_stamp() + 10*i, "mdt element map");
170 else
171 elemMap->set(ctx.eventID().run_number() + i, ctx.eventID().event_number(), "mdt element map");
172
173 elemMapColl->push_back(elemMap);
174 elemMapColl->add(2*i+1+i + offset);
175 }
176
177 // Must provide a key which is used as the name to create the folder
178 ATH_CHECK( detStore()->record(elemMapColl, "/IOVDbTest/IOVDbTestMDTEleMapColl") );
179
180 // Create IOVDbTestAmdbCorrection
181 IOVDbTestAmdbCorrection* amdbCorr = new IOVDbTestAmdbCorrection;
182 HepGeom::Point3D<double> x(1.0, 2.0, 3.0);
183 HepGeom::Point3D<double> y(4.0, 5.0, 6.0);
184 if (m_writeNewTag) {
185 // writing with new tag, set to different values
186 x = HepGeom::Point3D<double>(11.0, 22.0, 33.0);
187 y = HepGeom::Point3D<double>(44.0, 55.0, 66.0);
188 }
189 amdbCorr->set(x, y, "amdb correction");
190
191 ATH_CHECK( detStore()->record(amdbCorr, "/IOVDbTest/IOVDbTestAMDBCorrection") );
192
193 // Create an attribute list
194
195 // Create spec
196 coral::AttributeListSpecification* attrSpec = new coral::AttributeListSpecification();
197 attrSpec->extend("xPosition", "float");
198 attrSpec->extend("id", "int");
199 attrSpec->extend("name", "string");
200
201 if (!attrSpec->size()) {
202 ATH_MSG_ERROR (" Attribute list specification is empty");
203 return(StatusCode::FAILURE);
204 }
205
206 // FIX this
207 //std::ostringstream attrStr;
208 //attrSpec->print( attrStr );
209 //log << MSG::DEBUG << "Attribute spec " << attrStr.str() << endmsg;
210
211 AthenaAttributeList* attrList = new AthenaAttributeList(*attrSpec);
212 (*attrList)["xPosition"].setValue((float)m_run);
213 (*attrList)["id"].setValue((int)7);
214 (*attrList)["name"].setValue(std::string("TestAttrList"));
215 if (m_writeNewTag) {
216 // writing with new tag, set to different values
217 (*attrList)["xPosition"].setValue((float)125.0);
218 (*attrList)["id"].setValue((int)27);
219 (*attrList)["name"].setValue(std::string("TestAttrListNEWTAG"));
220 }
221 std::ostringstream attrStr1;
222 // FIXME
223 attrList->toOutputStream( attrStr1 );
224 // attrList->print(std::cout);
225 ATH_MSG_DEBUG( "Attribute list " << attrStr1.str() );
226
227 ATH_CHECK( detStore()->record(attrList, "/IOVDbTest/IOVDbTestAttrList") );
228
229 // optionally create a second 'fancy' attributelist testing more datatypes
230 // including bool, CLOB and BLOB types
231 if (m_fancylist) {
232 coral::AttributeListSpecification* fanSpec = new coral::AttributeListSpecification();
233 fanSpec->extend("FanBool","bool");
234 fanSpec->extend("FanInt","int");
235 fanSpec->extend("FanUInt","unsigned int");
236 fanSpec->extend("FanI64","long long");
237 fanSpec->extend("FanU64","unsigned long long");
238 fanSpec->extend("FanFloat","float");
239 fanSpec->extend("FanDouble","double");
240 fanSpec->extend("FanSmallString","string");
241 fanSpec->extend("FanBigString","string");
242 fanSpec->extend("FanBlob","blob");
243 AthenaAttributeList* fanList=new AthenaAttributeList(*fanSpec);
244 // set values, note new style access methods
245 (*fanList)["FanBool"].data<bool>()=true;
246 (*fanList)["FanInt"].data<int>()=-12345;
247 (*fanList)["FanUInt"].data<unsigned int>()=12345;
248 (*fanList)["FanI64"].data<long long>()=-98765432100LL;
249 (*fanList)["FanU64"].data<unsigned long long>()=98765432100LL;
250 (*fanList)["FanFloat"].data<float>()=1.2345;
251 (*fanList)["FanDouble"].data<double>()=1.23456789;
252 (*fanList)["FanSmallString"].data<std::string>()="small string";
253 (*fanList)["FanBigString"].data<std::string>()="potentially long string";
254 // special construction to set blob type
255 coral::Blob& blob=(*fanList)["FanBlob"].data<coral::Blob>();
256 unsigned int blobsize=2000;
257 blob.resize(blobsize);
258 unsigned char* p=static_cast<unsigned char*>(blob.startingAddress());
259 for (unsigned int i=0;i<blobsize;++i,++p) *p=(i % 256);
260 // print out attributelist
261 std::ostringstream fanstr;
262 fanList->toOutputStream(fanstr);
263 ATH_MSG_DEBUG( "Fancy Attribute list " << fanstr.str() );
264 ATH_CHECK( detStore()->record(fanList, "/IOVDbTest/IOVDbTestFancyList") );
265 }
266
267 // Create an attribute list collection
268
269 // Use existing spec
270 CondAttrListCollection* attrListColl = new CondAttrListCollection(true);
271
272 // Add three attr lists
273 coral::AttributeList attrList0(*attrSpec);
274 attrList0["xPosition"].setValue((float)35.0);
275 attrList0["id"].setValue((int)17);
276 attrList0["name"].setValue(std::string("TestAttrList"));
278
279 std::ostringstream attrStr2;
280 attrList0.toOutputStream( attrStr2 );
281 ATH_MSG_DEBUG( "ChanNum " << chanNum << " Attribute list " << attrStr2.str() );
282 attrListColl->add(chanNum, attrList0);
283
284 coral::AttributeList attrList1(*attrSpec);
285 attrList1["xPosition"].setValue((float)45.0);
286 attrList1["id"].setValue((int)27);
287 attrList1["name"].setValue(std::string("TestAttrList"));
288 chanNum = 26;
289
290 std::ostringstream attrStr3;
291 attrList1.toOutputStream( attrStr3 );
292 ATH_MSG_DEBUG( "ChanNum " << chanNum << " Attribute list " << attrStr3.str() );
293 attrListColl->add(chanNum, attrList1);
294
295 coral::AttributeList attrList2(*attrSpec);
296 attrList2["xPosition"].setValue((float)55.0);
297 attrList2["id"].setValue((int)37);
298 attrList2["name"].setValue(std::string("TestAttrList"));
299 chanNum = 36;
300
301 std::ostringstream attrStr4;
302 attrList2.toOutputStream( attrStr4 );
303 ATH_MSG_DEBUG( "ChanNum " << chanNum << " Attribute list " << attrStr4.str() );
304 attrListColl->add(chanNum, attrList2);
305
307 // Two more channels
308 coral::AttributeList attrList3(*attrSpec);
309 attrList3["xPosition"].setValue((float)65.0);
310 attrList3["id"].setValue((int)47);
311 attrList3["name"].setValue(std::string("TestAttrList"));
312 chanNum = 46;
313
314 std::ostringstream attrStr5;
315 attrList3.toOutputStream( attrStr5 );
316 ATH_MSG_DEBUG( "ChanNum " << chanNum << " Attribute list " << attrStr5.str() );
317 attrListColl->add(chanNum, attrList3);
318
319 // Add in new IOV with min run == 4
320 IOVRange range(IOVTime(4, IOVTime::MINEVENT), IOVTime(IOVTime::MAXRUN, IOVTime::MAXEVENT));
321 attrListColl->add(chanNum, range);
322 ATH_MSG_DEBUG( "Add min : since " << range.start().run() << " " << range.start().event()
323 << " till " << range.stop().run() << " " << range.stop().event() );
324
325 coral::AttributeList attrList4(*attrSpec);
326 attrList4["xPosition"].setValue((float)75.0);
327 attrList4["id"].setValue((int)57);
328 attrList4["name"].setValue(std::string("TestAttrList"));
329 chanNum = 56;
330
331 std::ostringstream attrStr6;
332 attrList4.toOutputStream( attrStr6 );
333 ATH_MSG_DEBUG( "ChanNum " << chanNum << " Attribute list " << attrStr6.str() );
334 attrListColl->add(chanNum, attrList4);
335
336 // Add in new IOV with min run == 5
337 IOVRange range1(IOVTime(5, IOVTime::MINEVENT), IOVTime(IOVTime::MAXRUN, IOVTime::MAXEVENT));
338 attrListColl->add(chanNum, range1);
339 ATH_MSG_DEBUG( "Add min : since " << range1.start().run() << " " << range1.start().event() << " till " << range1.stop().run() << " " << range1.stop().event() );
340 }
341 // add names to the channels if needed
342 if (m_nameChans) {
343 ATH_MSG_DEBUG( "Name channels in CondAttrListCollection" );
344 for (CondAttrListCollection::const_iterator citr=attrListColl->begin();
345 citr!=attrListColl->end();++citr) {
347 std::ostringstream name;
348 name << "Name_" << chan;
349 attrListColl->add(chan,name.str());
350 }
351 }
352
353 ATH_CHECK( detStore()->record(attrListColl, "/IOVDbTest/IOVDbTestAttrListColl") );
354
355 return StatusCode::SUCCESS;
356}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
CondMultChanCollection< IOVDbTestMDTEleMap > IOVDbTestMDTEleMapColl
This typedef represents a collection of IOVDbTestMDTEleMap objects.
#define y
#define x
const ServiceHandle< StoreGateSvc > & detStore() const
const_iterator end() const
bool add(ChanNum chanNum, const AttributeList &attributeList)
Adding in chan/attrList pairs.
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
ChanAttrListMap::const_iterator const_iterator
void add(ChanNum chanNum)
Adding in channel numbers.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
BooleanProperty m_writeNewTag
IntegerProperty m_run
BooleanProperty m_fancylist
BooleanProperty m_createExtraChans
BooleanProperty m_nameChans
void set(const HepGeom::Point3D< double > &trans, const HepGeom::Point3D< double > &rot, const std::string &name)
void set(int runNumber, int eventNumber, const std::string &name)
static constexpr uint32_t MAXRUN
Definition IOVTime.h:48
static constexpr uint32_t MINEVENT
Definition IOVTime.h:50
static constexpr uint32_t MAXEVENT
Definition IOVTime.h:51

◆ 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 IOVDbTestAlg::execute ( const EventContext & ctx) const
overridevirtual

Definition at line 553 of file IOVDbTestAlg.cxx.

553 {
554
555 // There are different scenario for conditions data:
556 //
557 // A) Calculating and writing conditions
558 //
559 // 1) Loop over events and accumulate "averages"
560 //
561 // 2) At the desired moment, e.g. after N events or at the end
562 // of the job, calculate the conditions data to be written
563 // out by creating the corresponding objects and store in the
564 // DetectorStore
565 //
566 // 3) Write out objects with the IAthenaOutputStreamTool - done
567 // in finalize.
568 //
569 // 4) Finally, one must "register" the objects written out in
570 // the IOV DB. This writes and IOV and a ref to each object,
571 // and is done in the finalize method.
572 //
573 // B) Reading back in conditions data to analyse it
574 //
575 // 1) Aside from specifying the correct jobOptions, this is
576 // simply done by doing a standard StoreGate retrieve from
577 // the DetectorStore.
578
579 if (msgLvl (MSG::DEBUG)) {
580 msg() << MSG::DEBUG << "Event (run,ev,lb:time): [" << ctx.eventID().run_number() << "," << ctx.eventID().event_number();
581 if (m_printLB) msg() << "," << ctx.eventID().lumi_block();
582 msg() << ":" << ctx.eventID().time_stamp() << "]" << endmsg;
583 }
584
586
587 // We create the conditions objects only at run == 2, event == 5
588 if (2 != ctx.eventID().run_number() || 5 != ctx.eventID().event_number()) {
589 ATH_MSG_DEBUG( "Event NOT selected for creating conditions objects " );
590 return StatusCode::SUCCESS;
591 }
592
593 ATH_MSG_DEBUG( "Creating condtions objects " );
595
596 // Read objects from DetectorStore
597 if(!m_noStream){
599 }
600 }
601 else {
602
603 ATH_MSG_DEBUG( "Calling printCondObjects" <<m_online<< "\t"<<ctx.eventID().run_number()<<"\t"<<ctx.eventID().event_number() );
604
605 // Read objects from DetectorStore
606 if (m_online && 2 == ctx.eventID().run_number() && 9 == ctx.eventID().event_number())
609 }
610
611 return StatusCode::SUCCESS;
612}
#define endmsg
bool msgLvl(const MSG::Level lvl) const
void waitForSecond() const
BooleanProperty m_online
BooleanProperty m_noStream
BooleanProperty m_writeCondObjs
BooleanProperty m_printLB
StatusCode printCondObjects() const
StatusCode createCondObjects(const EventContext &ctx) 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

◆ finalize()

StatusCode IOVDbTestAlg::finalize ( )
overridevirtual

Definition at line 616 of file IOVDbTestAlg.cxx.

616 {
617 ATH_MSG_INFO( "in finalize()" );
618
619 if (m_writeCondObjs) {
620 // Stream out and register objects here
621 ATH_MSG_DEBUG( "Stream out objects directly " );
623 ATH_MSG_DEBUG( "Streamed out OK " );
624 }
625 if(m_regIOV) {
627 ATH_MSG_DEBUG( "Register OK " );
628 }
629
630 return StatusCode::SUCCESS;
631}
BooleanProperty m_regIOV
StatusCode streamOutCondObjects()
StatusCode registerCondObjects()

◆ 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()

◆ 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.

◆ printCondObjects()

StatusCode IOVDbTestAlg::printCondObjects ( ) const
private

Definition at line 360 of file IOVDbTestAlg.cxx.

360 {
361 ATH_MSG_INFO( "in printCondObjects()" );
362
363 // IOVDbTestMDTEleMap
364 const IOVDbTestMDTEleMap* elemMap = nullptr;
365 ATH_CHECK( detStore()->retrieve(elemMap, "/IOVDbTest/IOVDbTestMDTEleMap") );
366 ATH_MSG_INFO( "Retrieved IOVDbTestMDTEleMap " );
367
368 ATH_MSG_INFO( "Found " << elemMap->name()
369 << " run " << elemMap->runNumber()
370 << " event " << elemMap->eventNumber()
371 << " time " << elemMap->timeStamp() );
372
373
374
375 // IOVDbTestAmdbCorrection
376 const IOVDbTestAmdbCorrection* amdbCorr = nullptr;
377 ATH_CHECK( detStore()->retrieve(amdbCorr, "/IOVDbTest/IOVDbTestAMDBCorrection") );
378 ATH_MSG_INFO ("Retrieved /IOVDbTest/IOVDbTestAMDBCorrection" );
379
380 HepGeom::Point3D<double> trans = amdbCorr->getTranslation();
381 HepGeom::Point3D<double> rot = amdbCorr->getRotation();
382
383 ATH_MSG_INFO( "Found " << amdbCorr->name()
384 << " trans " << trans.x() << " " << trans.y() << " " << trans.z()
385 << " rot " << rot.x() << " " << rot.y() << " " << rot.z() );
386
387
388 if (m_readNewTag) {
389 // IOVDbTestAmdbCorrection
390 const IOVDbTestAmdbCorrection* amdbCorr = nullptr;
391 ATH_CHECK( detStore()->retrieve(amdbCorr, "/IOVDbTest/IOVDbTestAMDBCorrection-NEWTAG") );
392 ATH_MSG_INFO( "Retrieved /IOVDbTest/IOVDbTestAMDBCorrection-NEWTAG" );
393
394 HepGeom::Point3D<double> trans = amdbCorr->getTranslation();
395 HepGeom::Point3D<double> rot = amdbCorr->getRotation();
396
397 ATH_MSG_INFO( "Found " << amdbCorr->name()
398 << " trans " << trans.x() << " " << trans.y() << " " << trans.z()
399 << " rot " << rot.x() << " " << rot.y() << " " << rot.z() );
400 }
401
402
403 const AthenaAttributeList* attrList = nullptr;
404 const CondAttrListCollection* attrListColl = nullptr;
405
407 // AttrList
408 ATH_CHECK( detStore()->retrieve(attrList, "/IOVDbTest/IOVDbTestAttrList") );
409 ATH_MSG_DEBUG( "Retrieved IOVDbTestAttrList" );
410
411 std::ostringstream attrStr1;
412 attrList->print( attrStr1 );
413 ATH_MSG_DEBUG( "Attribute list " << attrStr1.str() );
414
415 if (m_readNewTag) {
416 // AttrList
417 ATH_CHECK( detStore()->retrieve(attrList, "/IOVDbTest/IOVDbTestAttrList-NEWTAG") );
418 ATH_MSG_DEBUG( "Retrieved IOVDbTestAttrList-NEWTAG" );
419
420 std::ostringstream attrStr1;
421 attrList->print( attrStr1 );
422 ATH_MSG_DEBUG( "Attribute list NEWTAG: " << attrStr1.str() );
423 }
424
425 // fancy attributelist
426 if (m_fancylist) {
427 ATH_MSG_DEBUG( detStore()->retrieve(attrList, "/IOVDbTest/IOVDbTestFancyList") );
428 ATH_MSG_DEBUG( "Retrieved IOVDbTestFancyList" );
429 std::ostringstream fanstr;
430 attrList->print( fanstr );
431 ATH_MSG_DEBUG( "Fancy Attribute list " << fanstr.str() );
432 // for the blob type, check the actual data is correct
433 const coral::Blob& blob=(*attrList)["FanBlob"].data<coral::Blob>();
434 const unsigned char* p=static_cast<const unsigned char*>
435 (blob.startingAddress());
436 int nerr=0;
437 for (int i=0;i<blob.size();++i,++p) if (*p!=(i % 256)) ++nerr;
438 if (nerr>0) ATH_MSG_ERROR( "Blob has " << nerr <<
439 " data mismatches!" );
440 }
441
442 // AttrListColl
443 ATH_CHECK( detStore()->retrieve(attrListColl, "/IOVDbTest/IOVDbTestAttrListColl") );
444 ATH_MSG_DEBUG( "Retrieved IOVDbTestAttrListColl" );
445
446
447 std::ostringstream attrStr2;
448
449 // Loop over collection
451 CondAttrListCollection::const_iterator last = attrListColl->end();
452 for (; first != last; ++first) {
453
454 if (msgLvl (MSG::DEBUG)) {
455 std::ostringstream attrStr1;
456 (*first).second.toOutputStream( attrStr1 );
457 msg() << MSG::DEBUG << "ChanNum " << (*first).first;
458 // print out the name if present
459 if (attrListColl->name_size()>0) {
461 nitr=attrListColl->chanNamePair((*first).first);
462 if (nitr!=attrListColl->name_end())
463 msg() << MSG::DEBUG << " name " << nitr->second;
464 }
465 msg() << MSG::DEBUG <<
466 " Attribute list " << attrStr1.str() << endmsg;
467 }
468
469 // Print out range if it exits
471 CondAttrListCollection::iov_const_iterator iovIt = attrListColl->chanIOVPair(chanNum);
472 if (iovIt != attrListColl->iov_end()) {
473 const IOVRange& range = (*iovIt).second;
474 if(range.start().isTimestamp()) {
475 ATH_MSG_DEBUG( "Range timestamp : since " << range.start().timestamp()
476 << " till " << range.stop().timestamp() );
477 }
478 else {
479 ATH_MSG_DEBUG( "Range R/E : since " << range.start().run() << " "
480 << range.start().event()
481 << " till " << range.stop().run() << " "
482 << range.stop().event() );
483 }
484 }
485 else {
486 ATH_MSG_DEBUG( "No range found " );
487 }
488 }
489
490 // Simulation and digitization parameters:
491
492 if ( detStore()->retrieve(attrList, "/Simulation/Parameters").isFailure() ) {
493 // May not have been added - just a warning
494 ATH_MSG_WARNING( "Could not retrieve Simulation parameters" );
495 }
496 else {
497 ATH_MSG_DEBUG( "Retrieved Simulation parameters" );
498 std::ostringstream attrStr;
499 attrList->print( attrStr );
500 ATH_MSG_DEBUG( "Attribute list " << attrStr.str() );
501 }
502
503 if (detStore()->retrieve(attrList, "/Digitization/Parameters").isFailure()) {
504 // May not have been added - just a warning
505 ATH_MSG_WARNING( "Could not retrieve Digitization parameters" );
506 }
507 else {
508 ATH_MSG_DEBUG( "Retrieved Digitization parameters" );
509 std::ostringstream attrStr;
510 attrList->print( attrStr );
511 ATH_MSG_DEBUG( "Attribute list " << attrStr.str() );
512 }
513 }
514
515
516 // IOVDbTestMDTEleMapColl
517
518// if (m_readWriteCool) {
519
520 const IOVDbTestMDTEleMapColl* elemMapColl = nullptr;
521 ATH_CHECK( detStore()->retrieve(elemMapColl, "/IOVDbTest/IOVDbTestMDTEleMapColl") );
522 ATH_MSG_INFO( "Retrieved IOVDbTestMDTEleMapColl " );
523
524 // Make sure the channel vector is filled
525 if (elemMapColl->size() != elemMapColl->chan_size()) {
526 ATH_MSG_ERROR( "Must fill in channel numbers! Number of objects: " << elemMapColl->size()
527 << " Number of channels: " << elemMapColl->chan_size() );
528 return(StatusCode::FAILURE);
529 }
530 // Print out IOVs if they are there
531 bool hasIOVs = (elemMapColl->iov_size() == elemMapColl->size());
534 for (unsigned int i = 0; i < elemMapColl->size(); ++i, ++itChan) {
535 const IOVDbTestMDTEleMap* elemMap = (*elemMapColl)[i];
536 msg() << MSG::INFO << "Found " << elemMap->name()
537 << " run " << elemMap->runNumber()
538 << " event " << elemMap->eventNumber()
539 << " time " << elemMap->timeStamp()
540 << " channel " << (*itChan);
541 if(hasIOVs) {
542 msg() << MSG::INFO << " iov " << (*itIOV);
543 ++itIOV;
544 }
545 msg() << MSG::INFO << endmsg;
546 }
547// }
548 return StatusCode::SUCCESS;
549}
#define ATH_MSG_WARNING(x)
void print(std::ostream &os) const
print to simulate function provided by old POOL AttributeList
name_size_type name_size() const
number of Chan/Name pairs
iov_const_iterator iov_end() const
name_const_iterator name_end() const
name_const_iterator chanNamePair(ChanNum chanNum) const
Access to Chan/Name pairs via channel number: returns map iterator.
iov_const_iterator chanIOVPair(ChanNum chanNum) const
Access to Chan/IOV pairs via channel number: returns map iterator.
ChanNameMap::const_iterator name_const_iterator
ChanIOVMap::const_iterator iov_const_iterator
chan_size_type chan_size() const
number of channels
iov_size_type iov_size() const
number of IOVs
chan_const_iterator chan_begin() const
Access to Channel numbers via iterators.
iov_const_iterator iov_begin() const
Access to IOVs via iterators.
size_type size() const noexcept
Returns the number of elements in the collection.
BooleanProperty m_twoStepWriteReg
BooleanProperty m_readWriteCool
BooleanProperty m_readNewTag
HepGeom::Point3D< double > getTranslation() const
HepGeom::Point3D< double > getRotation() const
const std::string & name() const
const std::string & name() const
bool first
Definition DeMoScan.py:534
retrieve(aClass, aKey=None)
Definition PyKernel.py:110

◆ readWithBeginRun()

StatusCode IOVDbTestAlg::readWithBeginRun ( )
private

Definition at line 124 of file IOVDbTestAlg.cxx.

124 {
125 ATH_MSG_INFO( "in readWithBeginRun()" );
126
127 // As a result of the restructuring the EventIncident class (dropping the reference to EventInfo)
128 // the old mechanism of overriding run&event&time is no longer working.
129 // If we need this functionality, then we need to find a new way of implementing it.
130 // For the time being this function simply fires a BeginRun incident using the EventContext, without overriding anything
131
132 ServiceHandle<IIncidentSvc> incSvc("IncidentSvc", name() );
133 ATH_CHECK( incSvc.retrieve() );
134
135 incSvc->fireIncident( Incident(name(), IncidentType::BeginRun, Gaudi::Hive::currentContext()) );
136
137 return StatusCode::SUCCESS;
138}

◆ registerCondObjects()

StatusCode IOVDbTestAlg::registerCondObjects ( )
private

Definition at line 665 of file IOVDbTestAlg.cxx.

665 {
666 ATH_MSG_DEBUG( "entering registerCondObject " );
667
668 // Register the IOV DB with the conditions data written out
669 std::string tag = "no tag";
670 if (m_tagID!="") {
671 tag = "tag MDTEleMap_" + m_tagID;
672 ATH_CHECK( m_regSvc->registerIOV("IOVDbTestMDTEleMap", "MDTEleMap_"+m_tagID,m_run,IOVTime::MAXRUN,IOVTime::MINEVENT,IOVTime::MAXEVENT) );
673 } else {
674 ATH_CHECK( m_regSvc->registerIOV("IOVDbTestMDTEleMap", "") );
675 }
676 ATH_MSG_DEBUG( "registered IOVDbTestMDTEleMap with " << tag );
677
678 // For IOVDbTestAmdbCorrection use time (in sec)
679 uint64_t start=static_cast<long long>(m_regTime)*1000000000LL;
681 tag = "no tag";
682 if (m_tagID!="") {
683 tag = "tag AmdbCorrection_" + m_tagID;
684 ATH_CHECK( m_regSvc->registerIOV("IOVDbTestAmdbCorrection", "AmdbCorrection_"+m_tagID, start, stop) );
685 } else {
686 ATH_CHECK( m_regSvc->registerIOV("IOVDbTestAmdbCorrection", "", start, stop) );
687 }
688 ATH_MSG_DEBUG( "registered IOVDbTestAmdbCorrection with " << tag );
689 if (m_readWriteCool) {
690
691 // Can only write out AttrList's if this is NOT write and reg in two steps
692 if (!m_twoStepWriteReg) {
693
694 // Using COOL, write out attrlist and collection of attrlists
695 tag = "no tag";
696 if (m_tagID!="") {
697 tag = "tag AttrList_" + m_tagID;
698 ATH_CHECK( m_regSvc->registerIOV("AthenaAttributeList","/IOVDbTest/IOVDbTestAttrList","AttrList_"+m_tagID,m_run,IOVTime::MAXRUN,IOVTime::MINEVENT,IOVTime::MAXEVENT) );
699 } else {
700 ATH_CHECK( m_regSvc->registerIOV("AthenaAttributeList","/IOVDbTest/IOVDbTestAttrList","") );
701 }
702 ATH_MSG_DEBUG( "registered AthenaAttributeList with " << tag );
703 if (m_fancylist) {
704 // register Fancy AttributeList
705 tag = "no tag";
706 if (m_tagID!="") {
707 tag = "tag FancyList_" + m_tagID;
708 ATH_CHECK( m_regSvc->registerIOV("AthenaAttributeList","/IOVDbTest/IOVDbTestFancyList","FancyList_"+m_tagID,m_run,IOVTime::MAXRUN,IOVTime::MINEVENT,IOVTime::MAXEVENT) );
709 } else {
710 ATH_CHECK( m_regSvc->registerIOV("AthenaAttributeList", "/IOVDbTest/IOVDbTestFancyList","") );
711 }
712 ATH_MSG_DEBUG ( "registered Fancy AthenaAttributeList with " << tag );
713 }
714 // attrlist collection
715 tag = "no tag";
716 if (m_tagID!="") {
717 tag = "tag AttrListColl_" + m_tagID;
718 ATH_CHECK( m_regSvc->registerIOV("CondAttrListCollection","AttrListColl_"+m_tagID,m_run,IOVTime::MAXRUN,IOVTime::MINEVENT,IOVTime::MAXEVENT) );
719 } else {
720 ATH_CHECK( m_regSvc->registerIOV("CondAttrListCollection", "") );
721 }
722 ATH_MSG_DEBUG( "registered CondAttrListCollection with " << tag );
723 }
724
725 // mdtMapColl
726 tag = "no tag";
727 if (m_tagID!="") {
728 tag = "tag MDTEleMapColl_" + m_tagID;
729 ATH_CHECK( m_regSvc->registerIOV("IOVDbTestMDTEleMapColl","MDTEleMapColl_"+m_tagID,m_run,IOVTime::MAXRUN,IOVTime::MINEVENT,IOVTime::MAXEVENT) );
730 } else {
731 ATH_CHECK( m_regSvc->registerIOV("IOVDbTestMDTEleMapColl","") );
732 }
733 ATH_MSG_DEBUG( "registered IOVDbTestMDTEleMapColl with " << tag );
734 }
735
736 return StatusCode::SUCCESS;
737
738}
StringProperty m_tagID
IntegerProperty m_regTime
static constexpr uint64_t MAXTIMESTAMP
Definition IOVTime.h:58

◆ registerIOV()

StatusCode IOVDbTestAlg::registerIOV ( const CLID & clid)
private

◆ 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

◆ streamOutCondObjects()

StatusCode IOVDbTestAlg::streamOutCondObjects ( )
private

Definition at line 638 of file IOVDbTestAlg.cxx.

638 {
639 ATH_MSG_DEBUG( "entering streamOutCondObjects " );
640 ATH_CHECK( m_streamer->connectOutput() );
641
643 if (!m_writeOnlyCool) {
644 typeKeys.emplace_back("IOVDbTestMDTEleMap", "");
645 typeKeys.emplace_back("IOVDbTestAmdbCorrection", "");
646 typeKeys.emplace_back("IOVDbTestMDTEleMapColl", "");
647 }
648 typeKeys.resize(3);
649
650 ATH_MSG_DEBUG( "Stream out for pairs:" );
651 for (unsigned int i = 0; i < typeKeys.size(); ++i) {
652 ATH_MSG_DEBUG( typeKeys[i].first << " " << typeKeys[i].second << " " );
653 }
654
655 ATH_CHECK( m_streamer->streamObjects(typeKeys) );
656 ATH_CHECK( m_streamer->commitOutput() );
657
658 return StatusCode::SUCCESS;
659}
std::vector< TypeKeyPair > TypeKeyPairs
BooleanProperty m_writeOnlyCool

◆ 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.

◆ testCallBack()

StatusCode IOVDbTestAlg::testCallBack ( IOVSVC_CALLBACK_ARGS )
private

Definition at line 78 of file IOVDbTestAlg.cxx.

78 {
79 // print out the keys we were given (for info)
80 msg() << MSG::INFO << "IOVDbTestAlg::testCallBack callback invoked for keys: i = " << i << " ";
81 for (std::list<std::string>::const_iterator itr=keys.begin(); itr!=keys.end(); ++itr) {
82 msg() << *itr << " ";
83 }
84 msg() << endmsg;
85 return StatusCode::SUCCESS;
86}

◆ 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 }

◆ waitForSecond()

void IOVDbTestAlg::waitForSecond ( ) const
private

Definition at line 49 of file IOVDbTestAlg.cxx.

49 {
50 struct mymsgbuf {
51 long mtype;
52 char mtext[80];
53 };
54
55 key_t key;
56 int msgqueue_id;
57 struct mymsgbuf qbuf;
58
59 /* Create unique key via call to ftok() */
60 key = ftok(".", 'm');
61
62 /* Open the queue */
63 while((msgqueue_id = msgget(key, 0660)) == -1) {
64 printf("waiting for message here.\n");
65 sleep(3);
66 }
67 printf("Recieving a message ...\n");
68
69 qbuf.mtype = 123;
70 msgrcv(msgqueue_id, reinterpret_cast< msgbuf *>(&qbuf), 80, 123, 0);
71
72 printf("Type: %ld Text: %s\n", qbuf.mtype, qbuf.mtext);
73
74 msgctl(msgqueue_id, IPC_RMID, 0); // clearing the message
75
76}

Member Data Documentation

◆ m_createExtraChans

BooleanProperty IOVDbTestAlg::m_createExtraChans {this, "CreateExtraChanns", false}
private

Definition at line 60 of file IOVDbTestAlg.h.

60{this, "CreateExtraChanns", 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_fancylist

BooleanProperty IOVDbTestAlg::m_fancylist {this, "FancyList", false}
private

Definition at line 64 of file IOVDbTestAlg.h.

64{this, "FancyList", false};

◆ m_nameChans

BooleanProperty IOVDbTestAlg::m_nameChans {this, "NameChanns", false}
private

Definition at line 61 of file IOVDbTestAlg.h.

61{this, "NameChanns", false};

◆ m_noStream

BooleanProperty IOVDbTestAlg::m_noStream {this, "NoStream", false}
private

Definition at line 68 of file IOVDbTestAlg.h.

68{this, "NoStream", false};

◆ m_online

BooleanProperty IOVDbTestAlg::m_online {this, "online", false}
private

Definition at line 72 of file IOVDbTestAlg.h.

72{this, "online", false};

◆ m_printLB

BooleanProperty IOVDbTestAlg::m_printLB {this, "PrintLB", false}
private

Definition at line 65 of file IOVDbTestAlg.h.

65{this, "PrintLB", false};

◆ m_readInInit

BooleanProperty IOVDbTestAlg::m_readInInit {this, "ReadInInit", false}
private

Definition at line 62 of file IOVDbTestAlg.h.

62{this, "ReadInInit", false};

◆ m_readNewTag

BooleanProperty IOVDbTestAlg::m_readNewTag {this, "ReadNewTag", false}
private

Definition at line 67 of file IOVDbTestAlg.h.

67{this, "ReadNewTag", false};

◆ m_readWriteCool

BooleanProperty IOVDbTestAlg::m_readWriteCool {this, "ReadWriteCool", false}
private

Definition at line 58 of file IOVDbTestAlg.h.

58{this, "ReadWriteCool", false};

◆ m_regIOV

BooleanProperty IOVDbTestAlg::m_regIOV {this, "RegisterIOV", false}
private

Definition at line 57 of file IOVDbTestAlg.h.

57{this, "RegisterIOV", false};

◆ m_regSvc

ServiceHandle<IIOVRegistrationSvc> IOVDbTestAlg::m_regSvc
private

Definition at line 75 of file IOVDbTestAlg.h.

◆ m_regTime

IntegerProperty IOVDbTestAlg::m_regTime {this, "RegTime", 0, "Register time in sec"}
private

Definition at line 69 of file IOVDbTestAlg.h.

69{this, "RegTime", 0, "Register time in sec"};

◆ m_run

IntegerProperty IOVDbTestAlg::m_run {this, "run", 0}
private

Definition at line 71 of file IOVDbTestAlg.h.

71{this, "run", 0};

◆ m_streamer

ToolHandle<IAthenaOutputStreamTool> IOVDbTestAlg::m_streamer
private

Definition at line 76 of file IOVDbTestAlg.h.

◆ m_streamName

StringProperty IOVDbTestAlg::m_streamName {this, "StreamName", "CondStream1"}
private

Definition at line 70 of file IOVDbTestAlg.h.

70{this, "StreamName", "CondStream1"};

◆ m_tagID

StringProperty IOVDbTestAlg::m_tagID {this, "TagID", ""}
private

Definition at line 73 of file IOVDbTestAlg.h.

73{this, "TagID", ""};

◆ m_twoStepWriteReg

BooleanProperty IOVDbTestAlg::m_twoStepWriteReg {this, "TwoStepWriteReg", false}
private

Definition at line 59 of file IOVDbTestAlg.h.

59{this, "TwoStepWriteReg", false};

◆ 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_writeCondObjs

BooleanProperty IOVDbTestAlg::m_writeCondObjs {this, "WriteCondObjs", false}
private

Definition at line 56 of file IOVDbTestAlg.h.

56{this, "WriteCondObjs", false};

◆ m_writeNewTag

BooleanProperty IOVDbTestAlg::m_writeNewTag {this, "WriteNewTag", false}
private

Definition at line 66 of file IOVDbTestAlg.h.

66{this, "WriteNewTag", false};

◆ m_writeOnlyCool

BooleanProperty IOVDbTestAlg::m_writeOnlyCool {this, "WriteOnlyCool", false}
private

Definition at line 63 of file IOVDbTestAlg.h.

63{this, "WriteOnlyCool", false};

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