ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
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. More...
 
virtual bool isClonable () const override
 Specify if the algorithm is clonable. More...
 
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
 
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
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. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
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. More...
 

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 > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

BooleanProperty m_writeCondObjs
 
BooleanProperty m_regIOV
 
BooleanProperty m_readWriteCool
 
BooleanProperty m_twoStepWriteReg
 
BooleanProperty m_createExtraChans
 
BooleanProperty m_nameChans
 
BooleanProperty m_readInInit
 
BooleanProperty m_writeOnlyCool
 
BooleanProperty m_fancylist
 
BooleanProperty m_printLB
 
BooleanProperty m_writeNewTag
 
BooleanProperty m_readNewTag
 
BooleanProperty m_noStream
 
IntegerProperty m_regTime
 
StringProperty m_streamName
 
IntegerProperty m_run
 
BooleanProperty m_online
 
std::string m_tagID
 
ServiceHandle< IIOVRegistrationSvcm_regSvc
 
ToolHandle< IAthenaOutputStreamToolm_streamer
 
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Algorithm to test writing conditions data and reading them back.

Definition at line 36 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_writeCondObjs(false),
39  m_regIOV(false),
40  m_readWriteCool(false),
41  m_twoStepWriteReg(false),
42  m_createExtraChans(false),
43  m_readInInit(false),
44  m_writeOnlyCool(false),
45  m_fancylist(false),
46  m_printLB(false),
47  m_writeNewTag(false),
48  m_readNewTag(false),
49  m_noStream(false),
50  m_regTime(0),
51  m_streamName("CondStream1"),
52  m_tagID(""),
53  m_regSvc("IOVRegistrationSvc", name),
54  m_streamer ("CondStream1")
55 
56 {
57  declareProperty("WriteCondObjs", m_writeCondObjs);
58  declareProperty("RegisterIOV", m_regIOV);
59  declareProperty("ReadWriteCool", m_readWriteCool);
60  declareProperty("WriteOnlyCool", m_writeOnlyCool);
61  declareProperty("TwoStepWriteReg", m_twoStepWriteReg);
62  declareProperty("StreamName", m_streamName);
63  declareProperty("CreateExtraChanns", m_createExtraChans);
64  declareProperty("NameChanns", m_nameChans);
65  declareProperty("ReadInInit", m_readInInit);
66  declareProperty("FancyList", m_fancylist);
67  declareProperty("PrintLB", m_printLB);
68  declareProperty("WriteNewTag", m_writeNewTag);
69  declareProperty("ReadNewTag", m_readNewTag);
70  declareProperty("RegTime", m_regTime); // Register time in sec
71  declareProperty("TagID", m_tagID);
72  declareProperty("run", m_run);
73  declareProperty("online", m_online);
74  declareProperty("NoStream", m_noStream);
75 }

◆ ~IOVDbTestAlg()

IOVDbTestAlg::~IOVDbTestAlg ( )
virtual

Definition at line 79 of file IOVDbTestAlg.cxx.

80 { }

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

virtual StatusCode initialize IOVDbTestAlg::ATLAS_NOT_THREAD_SAFE ( )
overridevirtual

◆ cardinality()

unsigned int AthReentrantAlgorithm::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.

Override this to return 0 for reentrant algorithms.

Definition at line 55 of file AthReentrantAlgorithm.cxx.

56 {
57  return 0;
58 }

◆ createCondObjects()

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

Definition at line 176 of file IOVDbTestAlg.cxx.

177 {
178  ATH_MSG_INFO ("in createCondObjects()");
179 
180  // Create IOVDbTestMDTEleMap
181  IOVDbTestMDTEleMap* elemMap = new IOVDbTestMDTEleMap;
182  unsigned long long timestamp = ctx.eventID().time_stamp();
183  if (timestamp)
184  elemMap->set(ctx.eventID().time_stamp(),"mdt element map");
185  else
186  elemMap->set(ctx.eventID().run_number(), ctx.eventID().event_number(), "mdt element map");
187 
188 
189  // Must provide a key which is used as the name to create the folder
190  ATH_CHECK( detStore()->record(elemMap, "/IOVDbTest/IOVDbTestMDTEleMap") );
191 
192  // Create IOVDbTestMDTEleMapColl
194 
195  // Add in 10 maps, set indices
196  unsigned int offset = 0;
197  if (m_createExtraChans) offset = 100;
198  for (unsigned int i = 0; i < 10; ++i) {
199  IOVDbTestMDTEleMap* elemMap = new IOVDbTestMDTEleMap;
200 
201  unsigned long long timestamp = ctx.eventID().time_stamp();
202  if (timestamp)
203  elemMap->set(ctx.eventID().time_stamp() + 10*i, "mdt element map");
204  else
205  elemMap->set(ctx.eventID().run_number() + i, ctx.eventID().event_number(), "mdt element map");
206 
207  elemMapColl->push_back(elemMap);
208  elemMapColl->add(2*i+1+i + offset);
209  }
210 
211  // Must provide a key which is used as the name to create the folder
212  ATH_CHECK( detStore()->record(elemMapColl, "/IOVDbTest/IOVDbTestMDTEleMapColl") );
213 
214  // Create IOVDbTestAmdbCorrection
216  HepGeom::Point3D<double> x(1.0, 2.0, 3.0);
217  HepGeom::Point3D<double> y(4.0, 5.0, 6.0);
218  if (m_writeNewTag) {
219  // writing with new tag, set to different values
220  x = HepGeom::Point3D<double>(11.0, 22.0, 33.0);
221  y = HepGeom::Point3D<double>(44.0, 55.0, 66.0);
222  }
223  amdbCorr->set(x, y, "amdb correction");
224 
225  ATH_CHECK( detStore()->record(amdbCorr, "/IOVDbTest/IOVDbTestAMDBCorrection") );
226 
227  // Create an attribute list
228 
229  // Create spec
230  coral::AttributeListSpecification* attrSpec = new coral::AttributeListSpecification();
231  attrSpec->extend("xPosition", "float");
232  attrSpec->extend("id", "int");
233  attrSpec->extend("name", "string");
234 
235  if (!attrSpec->size()) {
236  ATH_MSG_ERROR (" Attribute list specification is empty");
237  return(StatusCode::FAILURE);
238  }
239 
240  // FIX this
241  //std::ostringstream attrStr;
242  //attrSpec->print( attrStr );
243  //log << MSG::DEBUG << "Attribute spec " << attrStr.str() << endmsg;
244 
245  AthenaAttributeList* attrList = new AthenaAttributeList(*attrSpec);
246  (*attrList)["xPosition"].setValue((float)m_run);
247  (*attrList)["id"].setValue((int)7);
248  (*attrList)["name"].setValue(std::string("TestAttrList"));
249  if (m_writeNewTag) {
250  // writing with new tag, set to different values
251  (*attrList)["xPosition"].setValue((float)125.0);
252  (*attrList)["id"].setValue((int)27);
253  (*attrList)["name"].setValue(std::string("TestAttrListNEWTAG"));
254  }
255  std::ostringstream attrStr1;
256  // FIXME
257  attrList->toOutputStream( attrStr1 );
258  // attrList->print(std::cout);
259  ATH_MSG_DEBUG( "Attribute list " << attrStr1.str() );
260 
261  ATH_CHECK( detStore()->record(attrList, "/IOVDbTest/IOVDbTestAttrList") );
262 
263  // optionally create a second 'fancy' attributelist testing more datatypes
264  // including bool, CLOB and BLOB types
265  if (m_fancylist) {
266  coral::AttributeListSpecification* fanSpec = new coral::AttributeListSpecification();
267  fanSpec->extend("FanBool","bool");
268  fanSpec->extend("FanInt","int");
269  fanSpec->extend("FanUInt","unsigned int");
270  fanSpec->extend("FanI64","long long");
271  fanSpec->extend("FanU64","unsigned long long");
272  fanSpec->extend("FanFloat","float");
273  fanSpec->extend("FanDouble","double");
274  fanSpec->extend("FanSmallString","string");
275  fanSpec->extend("FanBigString","string");
276  fanSpec->extend("FanBlob","blob");
277  AthenaAttributeList* fanList=new AthenaAttributeList(*fanSpec);
278  // set values, note new style access methods
279  (*fanList)["FanBool"].data<bool>()=true;
280  (*fanList)["FanInt"].data<int>()=-12345;
281  (*fanList)["FanUInt"].data<unsigned int>()=12345;
282  (*fanList)["FanI64"].data<long long>()=-98765432100LL;
283  (*fanList)["FanU64"].data<unsigned long long>()=98765432100LL;
284  (*fanList)["FanFloat"].data<float>()=1.2345;
285  (*fanList)["FanDouble"].data<double>()=1.23456789;
286  (*fanList)["FanSmallString"].data<std::string>()="small string";
287  (*fanList)["FanBigString"].data<std::string>()="potentially long string";
288  // special construction to set blob type
289  coral::Blob& blob=(*fanList)["FanBlob"].data<coral::Blob>();
290  unsigned int blobsize=2000;
291  blob.resize(blobsize);
292  unsigned char* p=static_cast<unsigned char*>(blob.startingAddress());
293  for (unsigned int i=0;i<blobsize;++i,++p) *p=(i % 256);
294  // print out attributelist
295  std::ostringstream fanstr;
296  fanList->toOutputStream(fanstr);
297  ATH_MSG_DEBUG( "Fancy Attribute list " << fanstr.str() );
298  ATH_CHECK( detStore()->record(fanList, "/IOVDbTest/IOVDbTestFancyList") );
299  }
300 
301  // Create an attribute list collection
302 
303  // Use existing spec
304  CondAttrListCollection* attrListColl = new CondAttrListCollection(true);
305 
306  // Add three attr lists
307  coral::AttributeList attrList0(*attrSpec);
308  attrList0["xPosition"].setValue((float)35.0);
309  attrList0["id"].setValue((int)17);
310  attrList0["name"].setValue(std::string("TestAttrList"));
312 
313  std::ostringstream attrStr2;
314  attrList0.toOutputStream( attrStr2 );
315  ATH_MSG_DEBUG( "ChanNum " << chanNum << " Attribute list " << attrStr2.str() );
316  attrListColl->add(chanNum, attrList0);
317 
318  coral::AttributeList attrList1(*attrSpec);
319  attrList1["xPosition"].setValue((float)45.0);
320  attrList1["id"].setValue((int)27);
321  attrList1["name"].setValue(std::string("TestAttrList"));
322  chanNum = 26;
323 
324  std::ostringstream attrStr3;
325  attrList1.toOutputStream( attrStr3 );
326  ATH_MSG_DEBUG( "ChanNum " << chanNum << " Attribute list " << attrStr3.str() );
327  attrListColl->add(chanNum, attrList1);
328 
329  coral::AttributeList attrList2(*attrSpec);
330  attrList2["xPosition"].setValue((float)55.0);
331  attrList2["id"].setValue((int)37);
332  attrList2["name"].setValue(std::string("TestAttrList"));
333  chanNum = 36;
334 
335  std::ostringstream attrStr4;
336  attrList2.toOutputStream( attrStr4 );
337  ATH_MSG_DEBUG( "ChanNum " << chanNum << " Attribute list " << attrStr4.str() );
338  attrListColl->add(chanNum, attrList2);
339 
340  if(m_createExtraChans) {
341  // Two more channels
342  coral::AttributeList attrList3(*attrSpec);
343  attrList3["xPosition"].setValue((float)65.0);
344  attrList3["id"].setValue((int)47);
345  attrList3["name"].setValue(std::string("TestAttrList"));
346  chanNum = 46;
347 
348  std::ostringstream attrStr5;
349  attrList3.toOutputStream( attrStr5 );
350  ATH_MSG_DEBUG( "ChanNum " << chanNum << " Attribute list " << attrStr5.str() );
351  attrListColl->add(chanNum, attrList3);
352 
353  // Add in new IOV with min run == 4
355  attrListColl->add(chanNum, range);
356  ATH_MSG_DEBUG( "Add min : since " << range.start().run() << " " << range.start().event()
357  << " till " << range.stop().run() << " " << range.stop().event() );
358 
359  coral::AttributeList attrList4(*attrSpec);
360  attrList4["xPosition"].setValue((float)75.0);
361  attrList4["id"].setValue((int)57);
362  attrList4["name"].setValue(std::string("TestAttrList"));
363  chanNum = 56;
364 
365  std::ostringstream attrStr6;
366  attrList4.toOutputStream( attrStr6 );
367  ATH_MSG_DEBUG( "ChanNum " << chanNum << " Attribute list " << attrStr6.str() );
368  attrListColl->add(chanNum, attrList4);
369 
370  // Add in new IOV with min run == 5
372  attrListColl->add(chanNum, range1);
373  ATH_MSG_DEBUG( "Add min : since " << range1.start().run() << " " << range1.start().event() << " till " << range1.stop().run() << " " << range1.stop().event() );
374  }
375  // add names to the channels if needed
376  if (m_nameChans) {
377  ATH_MSG_DEBUG( "Name channels in CondAttrListCollection" );
378  for (CondAttrListCollection::const_iterator citr=attrListColl->begin();
379  citr!=attrListColl->end();++citr) {
381  std::ostringstream name;
382  name << "Name_" << chan;
383  attrListColl->add(chan,name.str());
384  }
385  }
386 
387  ATH_CHECK( detStore()->record(attrListColl, "/IOVDbTest/IOVDbTestAttrListColl") );
388 
389  return StatusCode::SUCCESS;
390 }

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

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

95 { return m_detStore; }

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

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

Definition at line 587 of file IOVDbTestAlg.cxx.

587  {
588 
589  // There are different scenario for conditions data:
590  //
591  // A) Calculating and writing conditions
592  //
593  // 1) Loop over events and accumulate "averages"
594  //
595  // 2) At the desired moment, e.g. after N events or at the end
596  // of the job, calculate the conditions data to be written
597  // out by creating the corresponding objects and store in the
598  // DetectorStore
599  //
600  // 3) Write out objects with the IAthenaOutputStreamTool - done
601  // in finalize.
602  //
603  // 4) Finally, one must "register" the objects written out in
604  // the IOV DB. This writes and IOV and a ref to each object,
605  // and is done in the finalize method.
606  //
607  // B) Reading back in conditions data to analyse it
608  //
609  // 1) Aside from specifying the correct jobOptions, this is
610  // simply done by doing a standard StoreGate retrieve from
611  // the DetectorStore.
612 
613  if (msgLvl (MSG::DEBUG)) {
614  msg() << MSG::DEBUG << "Event (run,ev,lb:time): [" << ctx.eventID().run_number() << "," << ctx.eventID().event_number();
615  if (m_printLB) msg() << "," << ctx.eventID().lumi_block();
616  msg() << ":" << ctx.eventID().time_stamp() << "]" << endmsg;
617  }
618 
620 
621  // We create the conditions objects only at run == 2, event == 5
622  if (2 != ctx.eventID().run_number() || 5 != ctx.eventID().event_number()) {
623  ATH_MSG_DEBUG( "Event NOT selected for creating conditions objects " );
624  return StatusCode::SUCCESS;
625  }
626 
627  ATH_MSG_DEBUG( "Creating condtions objects " );
629 
630  // Read objects from DetectorStore
631  if(!m_noStream){
633  }
634  }
635  else {
636 
637  ATH_MSG_DEBUG( "Calling printCondObjects" <<m_online<< "\t"<<ctx.eventID().run_number()<<"\t"<<ctx.eventID().event_number() );
638 
639  // Read objects from DetectorStore
640  if (m_online && 2 == ctx.eventID().run_number() && 9 == ctx.eventID().event_number())
641  waitForSecond();
643  }
644 
645  return StatusCode::SUCCESS;
646 }

◆ 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 & AthReentrantAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 79 of file AthReentrantAlgorithm.cxx.

80 {
81  // If we didn't find any symlinks to add, just return the collection
82  // from the base class. Otherwise, return the extended collection.
83  if (!m_extendedExtraObjects.empty()) {
85  }
86  return Algorithm::extraOutputDeps();
87 }

◆ filterPassed()

virtual bool AthReentrantAlgorithm::filterPassed ( const EventContext &  ctx) const
inlinevirtualinherited

Definition at line 135 of file AthReentrantAlgorithm.h.

135  {
136  return execState( ctx ).filterPassed();
137  }

◆ finalize()

StatusCode IOVDbTestAlg::finalize ( )
overridevirtual

Definition at line 650 of file IOVDbTestAlg.cxx.

650  {
651  ATH_MSG_INFO( "in finalize()" );
652 
653  if (m_writeCondObjs) {
654  // Stream out and register objects here
655  ATH_MSG_DEBUG( "Stream out objects directly " );
657  ATH_MSG_DEBUG( "Streamed out OK " );
658  }
659  if(m_regIOV) {
661  ATH_MSG_DEBUG( "Register OK " );
662  }
663 
664  return StatusCode::SUCCESS;
665 }

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

bool AthReentrantAlgorithm::isClonable ( ) const
overridevirtualinherited

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ 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 394 of file IOVDbTestAlg.cxx.

394  {
395  ATH_MSG_INFO( "in printCondObjects()" );
396 
397  // IOVDbTestMDTEleMap
398  const IOVDbTestMDTEleMap* elemMap = nullptr;
399  ATH_CHECK( detStore()->retrieve(elemMap, "/IOVDbTest/IOVDbTestMDTEleMap") );
400  ATH_MSG_INFO( "Retrieved IOVDbTestMDTEleMap " );
401 
402  ATH_MSG_INFO( "Found " << elemMap->name()
403  << " run " << elemMap->runNumber()
404  << " event " << elemMap->eventNumber()
405  << " time " << elemMap->timeStamp() );
406 
407 
408 
409  // IOVDbTestAmdbCorrection
410  const IOVDbTestAmdbCorrection* amdbCorr = nullptr;
411  ATH_CHECK( detStore()->retrieve(amdbCorr, "/IOVDbTest/IOVDbTestAMDBCorrection") );
412  ATH_MSG_INFO ("Retrieved /IOVDbTest/IOVDbTestAMDBCorrection" );
413 
414  HepGeom::Point3D<double> trans = amdbCorr->getTranslation();
415  HepGeom::Point3D<double> rot = amdbCorr->getRotation();
416 
417  ATH_MSG_INFO( "Found " << amdbCorr->name()
418  << " trans " << trans.x() << " " << trans.y() << " " << trans.z()
419  << " rot " << rot.x() << " " << rot.y() << " " << rot.z() );
420 
421 
422  if (m_readNewTag) {
423  // IOVDbTestAmdbCorrection
424  const IOVDbTestAmdbCorrection* amdbCorr = nullptr;
425  ATH_CHECK( detStore()->retrieve(amdbCorr, "/IOVDbTest/IOVDbTestAMDBCorrection-NEWTAG") );
426  ATH_MSG_INFO( "Retrieved /IOVDbTest/IOVDbTestAMDBCorrection-NEWTAG" );
427 
428  HepGeom::Point3D<double> trans = amdbCorr->getTranslation();
429  HepGeom::Point3D<double> rot = amdbCorr->getRotation();
430 
431  ATH_MSG_INFO( "Found " << amdbCorr->name()
432  << " trans " << trans.x() << " " << trans.y() << " " << trans.z()
433  << " rot " << rot.x() << " " << rot.y() << " " << rot.z() );
434  }
435 
436 
437  const AthenaAttributeList* attrList = nullptr;
438  const CondAttrListCollection* attrListColl = nullptr;
439 
441  // AttrList
442  ATH_CHECK( detStore()->retrieve(attrList, "/IOVDbTest/IOVDbTestAttrList") );
443  ATH_MSG_DEBUG( "Retrieved IOVDbTestAttrList" );
444 
445  std::ostringstream attrStr1;
446  attrList->print( attrStr1 );
447  ATH_MSG_DEBUG( "Attribute list " << attrStr1.str() );
448 
449  if (m_readNewTag) {
450  // AttrList
451  ATH_CHECK( detStore()->retrieve(attrList, "/IOVDbTest/IOVDbTestAttrList-NEWTAG") );
452  ATH_MSG_DEBUG( "Retrieved IOVDbTestAttrList-NEWTAG" );
453 
454  std::ostringstream attrStr1;
455  attrList->print( attrStr1 );
456  ATH_MSG_DEBUG( "Attribute list NEWTAG: " << attrStr1.str() );
457  }
458 
459  // fancy attributelist
460  if (m_fancylist) {
461  ATH_MSG_DEBUG( detStore()->retrieve(attrList, "/IOVDbTest/IOVDbTestFancyList") );
462  ATH_MSG_DEBUG( "Retrieved IOVDbTestFancyList" );
463  std::ostringstream fanstr;
464  attrList->print( fanstr );
465  ATH_MSG_DEBUG( "Fancy Attribute list " << fanstr.str() );
466  // for the blob type, check the actual data is correct
467  const coral::Blob& blob=(*attrList)["FanBlob"].data<coral::Blob>();
468  const unsigned char* p=static_cast<const unsigned char*>
469  (blob.startingAddress());
470  int nerr=0;
471  for (int i=0;i<blob.size();++i,++p) if (*p!=(i % 256)) ++nerr;
472  if (nerr>0) ATH_MSG_ERROR( "Blob has " << nerr <<
473  " data mismatches!" );
474  }
475 
476  // AttrListColl
477  ATH_CHECK( detStore()->retrieve(attrListColl, "/IOVDbTest/IOVDbTestAttrListColl") );
478  ATH_MSG_DEBUG( "Retrieved IOVDbTestAttrListColl" );
479 
480 
481  std::ostringstream attrStr2;
482 
483  // Loop over collection
485  CondAttrListCollection::const_iterator last = attrListColl->end();
486  for (; first != last; ++first) {
487 
488  if (msgLvl (MSG::DEBUG)) {
489  std::ostringstream attrStr1;
490  (*first).second.toOutputStream( attrStr1 );
491  msg() << MSG::DEBUG << "ChanNum " << (*first).first;
492  // print out the name if present
493  if (attrListColl->name_size()>0) {
495  nitr=attrListColl->chanNamePair((*first).first);
496  if (nitr!=attrListColl->name_end())
497  msg() << MSG::DEBUG << " name " << nitr->second;
498  }
499  msg() << MSG::DEBUG <<
500  " Attribute list " << attrStr1.str() << endmsg;
501  }
502 
503  // Print out range if it exits
504  CondAttrListCollection::ChanNum chanNum = (*first).first;
506  if (iovIt != attrListColl->iov_end()) {
507  const IOVRange& range = (*iovIt).second;
508  if(range.start().isTimestamp()) {
509  ATH_MSG_DEBUG( "Range timestamp : since " << range.start().timestamp()
510  << " till " << range.stop().timestamp() );
511  }
512  else {
513  ATH_MSG_DEBUG( "Range R/E : since " << range.start().run() << " "
514  << range.start().event()
515  << " till " << range.stop().run() << " "
516  << range.stop().event() );
517  }
518  }
519  else {
520  ATH_MSG_DEBUG( "No range found " );
521  }
522  }
523 
524  // Simulation and digitization parameters:
525 
526  if ( detStore()->retrieve(attrList, "/Simulation/Parameters").isFailure() ) {
527  // May not have been added - just a warning
528  ATH_MSG_WARNING( "Could not retrieve Simulation parameters" );
529  }
530  else {
531  ATH_MSG_DEBUG( "Retrieved Simulation parameters" );
532  std::ostringstream attrStr;
533  attrList->print( attrStr );
534  ATH_MSG_DEBUG( "Attribute list " << attrStr.str() );
535  }
536 
537  if (detStore()->retrieve(attrList, "/Digitization/Parameters").isFailure()) {
538  // May not have been added - just a warning
539  ATH_MSG_WARNING( "Could not retrieve Digitization parameters" );
540  }
541  else {
542  ATH_MSG_DEBUG( "Retrieved Digitization parameters" );
543  std::ostringstream attrStr;
544  attrList->print( attrStr );
545  ATH_MSG_DEBUG( "Attribute list " << attrStr.str() );
546  }
547  }
548 
549 
550  // IOVDbTestMDTEleMapColl
551 
552 // if (m_readWriteCool) {
553 
554  const IOVDbTestMDTEleMapColl* elemMapColl = nullptr;
555  ATH_CHECK( detStore()->retrieve(elemMapColl, "/IOVDbTest/IOVDbTestMDTEleMapColl") );
556  ATH_MSG_INFO( "Retrieved IOVDbTestMDTEleMapColl " );
557 
558  // Make sure the channel vector is filled
559  if (elemMapColl->size() != elemMapColl->chan_size()) {
560  ATH_MSG_ERROR( "Must fill in channel numbers! Number of objects: " << elemMapColl->size()
561  << " Number of channels: " << elemMapColl->chan_size() );
562  return(StatusCode::FAILURE);
563  }
564  // Print out IOVs if they are there
565  bool hasIOVs = (elemMapColl->iov_size() == elemMapColl->size());
568  for (unsigned int i = 0; i < elemMapColl->size(); ++i, ++itChan) {
569  const IOVDbTestMDTEleMap* elemMap = (*elemMapColl)[i];
570  msg() << MSG::INFO << "Found " << elemMap->name()
571  << " run " << elemMap->runNumber()
572  << " event " << elemMap->eventNumber()
573  << " time " << elemMap->timeStamp()
574  << " channel " << (*itChan);
575  if(hasIOVs) {
576  msg() << MSG::INFO << " iov " << (*itIOV);
577  ++itIOV;
578  }
579  msg() << MSG::INFO << endmsg;
580  }
581 // }
582  return StatusCode::SUCCESS;
583 }

◆ readWithBeginRun()

StatusCode IOVDbTestAlg::readWithBeginRun ( )
private

Definition at line 158 of file IOVDbTestAlg.cxx.

158  {
159  ATH_MSG_INFO( "in readWithBeginRun()" );
160 
161  // As a result of the restructuring the EventIncident class (dropping the reference to EventInfo)
162  // the old mechanism of overriding run&event&time is no longer working.
163  // If we need this functionality, then we need to find a new way of implementing it.
164  // For the time being this function simply fires a BeginRun incident using the EventContext, without overriding anything
165 
166  ServiceHandle<IIncidentSvc> incSvc("IncidentSvc", name() );
167  ATH_CHECK( incSvc.retrieve() );
168 
169  incSvc->fireIncident( Incident(name(), IncidentType::BeginRun, Gaudi::Hive::currentContext()) );
170 
171  return StatusCode::SUCCESS;
172 }

◆ registerCondObjects()

StatusCode IOVDbTestAlg::registerCondObjects ( )
private

Definition at line 706 of file IOVDbTestAlg.cxx.

706  {
707  ATH_MSG_DEBUG( "entering registerCondObject " );
708 
709  // Register the IOV DB with the conditions data written out
710  std::string tag = "no tag";
711  if (m_tagID!="") {
712  tag = "tag MDTEleMap_" + m_tagID;
713  ATH_CHECK( m_regSvc->registerIOV("IOVDbTestMDTEleMap", "MDTEleMap_"+m_tagID,m_run,IOVTime::MAXRUN,IOVTime::MINEVENT,IOVTime::MAXEVENT) );
714  } else {
715  ATH_CHECK( m_regSvc->registerIOV("IOVDbTestMDTEleMap", "") );
716  }
717  ATH_MSG_DEBUG( "registered IOVDbTestMDTEleMap with " << tag );
718 
719  // For IOVDbTestAmdbCorrection use time (in sec)
720  uint64_t start=static_cast<long long>(m_regTime)*1000000000LL;
722  tag = "no tag";
723  if (m_tagID!="") {
724  tag = "tag AmdbCorrection_" + m_tagID;
725  ATH_CHECK( m_regSvc->registerIOV("IOVDbTestAmdbCorrection", "AmdbCorrection_"+m_tagID, start, stop) );
726  } else {
727  ATH_CHECK( m_regSvc->registerIOV("IOVDbTestAmdbCorrection", "", start, stop) );
728  }
729  ATH_MSG_DEBUG( "registered IOVDbTestAmdbCorrection with " << tag );
730  if (m_readWriteCool) {
731 
732  // Can only write out AttrList's if this is NOT write and reg in two steps
733  if (!m_twoStepWriteReg) {
734 
735  // Using COOL, write out attrlist and collection of attrlists
736  tag = "no tag";
737  if (m_tagID!="") {
738  tag = "tag AttrList_" + m_tagID;
739  ATH_CHECK( m_regSvc->registerIOV("AthenaAttributeList","/IOVDbTest/IOVDbTestAttrList","AttrList_"+m_tagID,m_run,IOVTime::MAXRUN,IOVTime::MINEVENT,IOVTime::MAXEVENT) );
740  } else {
741  ATH_CHECK( m_regSvc->registerIOV("AthenaAttributeList","/IOVDbTest/IOVDbTestAttrList","") );
742  }
743  ATH_MSG_DEBUG( "registered AthenaAttributeList with " << tag );
744  if (m_fancylist) {
745  // register Fancy AttributeList
746  tag = "no tag";
747  if (m_tagID!="") {
748  tag = "tag FancyList_" + m_tagID;
749  ATH_CHECK( m_regSvc->registerIOV("AthenaAttributeList","/IOVDbTest/IOVDbTestFancyList","FancyList_"+m_tagID,m_run,IOVTime::MAXRUN,IOVTime::MINEVENT,IOVTime::MAXEVENT) );
750  } else {
751  ATH_CHECK( m_regSvc->registerIOV("AthenaAttributeList", "/IOVDbTest/IOVDbTestFancyList","") );
752  }
753  ATH_MSG_DEBUG ( "registered Fancy AthenaAttributeList with " << tag );
754  }
755  // attrlist collection
756  tag = "no tag";
757  if (m_tagID!="") {
758  tag = "tag AttrListColl_" + m_tagID;
759  ATH_CHECK( m_regSvc->registerIOV("CondAttrListCollection","AttrListColl_"+m_tagID,m_run,IOVTime::MAXRUN,IOVTime::MINEVENT,IOVTime::MAXEVENT) );
760  } else {
761  ATH_CHECK( m_regSvc->registerIOV("CondAttrListCollection", "") );
762  }
763  ATH_MSG_DEBUG( "registered CondAttrListCollection with " << tag );
764  }
765 
766  // mdtMapColl
767  tag = "no tag";
768  if (m_tagID!="") {
769  tag = "tag MDTEleMapColl_" + m_tagID;
770  ATH_CHECK( m_regSvc->registerIOV("IOVDbTestMDTEleMapColl","MDTEleMapColl_"+m_tagID,m_run,IOVTime::MAXRUN,IOVTime::MINEVENT,IOVTime::MAXEVENT) );
771  } else {
772  ATH_CHECK( m_regSvc->registerIOV("IOVDbTestMDTEleMapColl","") );
773  }
774  ATH_MSG_DEBUG( "registered IOVDbTestMDTEleMapColl with " << tag );
775  }
776 
777  return StatusCode::SUCCESS;
778 
779 }

◆ 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
366  }

◆ setFilterPassed()

virtual void AthReentrantAlgorithm::setFilterPassed ( bool  state,
const EventContext &  ctx 
) const
inlinevirtualinherited

Definition at line 139 of file AthReentrantAlgorithm.h.

139  {
140  execState( ctx ).setFilterPassed( state );
141  }

◆ streamOutCondObjects()

StatusCode IOVDbTestAlg::streamOutCondObjects ( )
private

Definition at line 672 of file IOVDbTestAlg.cxx.

672  {
673  ATH_MSG_DEBUG( "entering streamOutCondObjects " );
674  ATH_CHECK( m_streamer->connectOutput() );
675 
676  int npairs = 3;
677  int index = 0;
678  IAthenaOutputStreamTool::TypeKeyPairs typeKeys(npairs);
679  if (!m_writeOnlyCool) {
680  IAthenaOutputStreamTool::TypeKeyPair mdtPair("IOVDbTestMDTEleMap", "");
681  typeKeys[index] = mdtPair;
682  ++index;
683  IAthenaOutputStreamTool::TypeKeyPair amdbCorr("IOVDbTestAmdbCorrection", "");
684  typeKeys[index] = amdbCorr;
685  ++index;
686  IAthenaOutputStreamTool::TypeKeyPair mdtCollPair("IOVDbTestMDTEleMapColl", "");
687  typeKeys[index] = mdtCollPair;
688  ++index;
689  }
690 
691  ATH_MSG_DEBUG( "Stream out for pairs:" );
692  for (unsigned int i = 0; i < typeKeys.size(); ++i) {
693  ATH_MSG_DEBUG( typeKeys[i].first << " " << typeKeys[i].second << " " );
694  }
695 
696  ATH_CHECK( m_streamer->streamObjects(typeKeys) );
697  ATH_CHECK( m_streamer->commitOutput() );
698 
699  return StatusCode::SUCCESS;
700 }

◆ sysExecute()

StatusCode AthReentrantAlgorithm::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 67 of file AthReentrantAlgorithm.cxx.

68 {
69  return Gaudi::Algorithm::sysExecute (ctx);
70 }

◆ sysInitialize()

StatusCode AthReentrantAlgorithm::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 InputMakerBase, and HypoBase.

Definition at line 96 of file AthReentrantAlgorithm.cxx.

96  {
98 
99  if (sc.isFailure()) {
100  return sc;
101  }
102 
103  ServiceHandle<ICondSvc> cs("CondSvc",name());
104  for (auto h : outputHandles()) {
105  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
106  // do this inside the loop so we don't create the CondSvc until needed
107  if ( cs.retrieve().isFailure() ) {
108  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
109  return StatusCode::SUCCESS;
110  }
111  if (cs->regHandle(this,*h).isFailure()) {
112  sc = StatusCode::FAILURE;
113  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
114  << " with CondSvc");
115  }
116  }
117  }
118  return sc;
119 }

◆ 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 112 of file IOVDbTestAlg.cxx.

112  {
113  // print out the keys we were given (for info)
114  msg() << MSG::INFO << "IOVDbTestAlg::testCallBack callback invoked for keys: i = " << i << " ";
115  for (std::list<std::string>::const_iterator itr=keys.begin(); itr!=keys.end(); ++itr) {
116  msg() << *itr << " ";
117  }
118  msg() << endmsg;
119  return StatusCode::SUCCESS;
120 }

◆ 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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

◆ waitForSecond()

void IOVDbTestAlg::waitForSecond ( ) const
private

Definition at line 83 of file IOVDbTestAlg.cxx.

83  {
84  struct mymsgbuf {
85  long mtype;
86  char mtext[80];
87  };
88 
89  key_t key;
90  int msgqueue_id;
91  struct mymsgbuf qbuf;
92 
93  /* Create unique key via call to ftok() */
94  key = ftok(".", 'm');
95 
96  /* Open the queue */
97  while((msgqueue_id = msgget(key, 0660)) == -1) {
98  printf("waiting for message here.\n");
99  sleep(3);
100  }
101  printf("Recieving a message ...\n");
102 
103  qbuf.mtype = 123;
104  msgrcv(msgqueue_id, (struct msgbuf *)(&qbuf), 80, 123, 0);
105 
106  printf("Type: %ld Text: %s\n", qbuf.mtype, qbuf.mtext);
107 
108  msgctl(msgqueue_id, IPC_RMID, 0); // clearing the message
109 
110 }

Member Data Documentation

◆ m_createExtraChans

BooleanProperty IOVDbTestAlg::m_createExtraChans
private

Definition at line 61 of file IOVDbTestAlg.h.

◆ 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 AthReentrantAlgorithm::m_extendedExtraObjects
privateinherited

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

Empty if no symlinks were found.

Definition at line 153 of file AthReentrantAlgorithm.h.

◆ m_fancylist

BooleanProperty IOVDbTestAlg::m_fancylist
private

Definition at line 65 of file IOVDbTestAlg.h.

◆ m_nameChans

BooleanProperty IOVDbTestAlg::m_nameChans
private

Definition at line 62 of file IOVDbTestAlg.h.

◆ m_noStream

BooleanProperty IOVDbTestAlg::m_noStream
private

Definition at line 69 of file IOVDbTestAlg.h.

◆ m_online

BooleanProperty IOVDbTestAlg::m_online
private

Definition at line 73 of file IOVDbTestAlg.h.

◆ m_printLB

BooleanProperty IOVDbTestAlg::m_printLB
private

Definition at line 66 of file IOVDbTestAlg.h.

◆ m_readInInit

BooleanProperty IOVDbTestAlg::m_readInInit
private

Definition at line 63 of file IOVDbTestAlg.h.

◆ m_readNewTag

BooleanProperty IOVDbTestAlg::m_readNewTag
private

Definition at line 68 of file IOVDbTestAlg.h.

◆ m_readWriteCool

BooleanProperty IOVDbTestAlg::m_readWriteCool
private

Definition at line 59 of file IOVDbTestAlg.h.

◆ m_regIOV

BooleanProperty IOVDbTestAlg::m_regIOV
private

Definition at line 58 of file IOVDbTestAlg.h.

◆ m_regSvc

ServiceHandle<IIOVRegistrationSvc> IOVDbTestAlg::m_regSvc
private

Definition at line 76 of file IOVDbTestAlg.h.

◆ m_regTime

IntegerProperty IOVDbTestAlg::m_regTime
private

Definition at line 70 of file IOVDbTestAlg.h.

◆ m_run

IntegerProperty IOVDbTestAlg::m_run
private

Definition at line 72 of file IOVDbTestAlg.h.

◆ m_streamer

ToolHandle<IAthenaOutputStreamTool> IOVDbTestAlg::m_streamer
private

Definition at line 77 of file IOVDbTestAlg.h.

◆ m_streamName

StringProperty IOVDbTestAlg::m_streamName
private

Definition at line 71 of file IOVDbTestAlg.h.

◆ m_tagID

std::string IOVDbTestAlg::m_tagID
private

Definition at line 74 of file IOVDbTestAlg.h.

◆ m_twoStepWriteReg

BooleanProperty IOVDbTestAlg::m_twoStepWriteReg
private

Definition at line 60 of file IOVDbTestAlg.h.

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

Definition at line 57 of file IOVDbTestAlg.h.

◆ m_writeNewTag

BooleanProperty IOVDbTestAlg::m_writeNewTag
private

Definition at line 67 of file IOVDbTestAlg.h.

◆ m_writeOnlyCool

BooleanProperty IOVDbTestAlg::m_writeOnlyCool
private

Definition at line 64 of file IOVDbTestAlg.h.


The documentation for this class was generated from the following files:
CondMultChanCollection::chan_const_iterator
ChanVec::const_iterator chan_const_iterator
Definition: CondMultChanCollection.h:58
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
IOVDbTestAmdbCorrection
Definition: IOVDbTestAmdbCorrection.h:20
IOVDbTestAlg::m_tagID
std::string m_tagID
Definition: IOVDbTestAlg.h:74
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
CondAttrListCollection::end
const_iterator end() const
Definition: CondAttrListCollection.h:315
IOVDbTestAlg::m_writeNewTag
BooleanProperty m_writeNewTag
Definition: IOVDbTestAlg.h:67
IAthenaOutputStreamTool::TypeKeyPairs
std::vector< TypeKeyPair > TypeKeyPairs
Definition: IAthenaOutputStreamTool.h:100
IOVRange
Validity Range object. Holds two IOVTimes (start and stop)
Definition: IOVRange.h:30
IOVDbTestMDTEleMap::set
void set(int runNumber, int eventNumber, const std::string &name)
Definition: IOVDbTestMDTEleMap.cxx:32
IOVDbTestAlg::m_run
IntegerProperty m_run
Definition: IOVDbTestAlg.h:72
CondAttrListCollection::iov_end
iov_const_iterator iov_end() const
Definition: CondAttrListCollection.h:343
IOVDbTestMDTEleMap::runNumber
int runNumber() const
Definition: IOVDbTestMDTEleMap.cxx:46
IOVTime::MAXRUN
static constexpr uint32_t MAXRUN
Definition: IOVTime.h:48
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
IOVDbTestAlg::m_readNewTag
BooleanProperty m_readNewTag
Definition: IOVDbTestAlg.h:68
IOVDbTestAlg::m_writeOnlyCool
BooleanProperty m_writeOnlyCool
Definition: IOVDbTestAlg.h:64
CondMultChanCollection::chan_begin
chan_const_iterator chan_begin() const
Access to Channel numbers via iterators.
Definition: CondMultChanCollection.h:128
AthenaAttributeList::print
void print(std::ostream &os) const
print to simulate function provided by old POOL AttributeList
Definition: AthenaAttributeList.cxx:16
IOVDbTestMDTEleMapColl
CondMultChanCollection< IOVDbTestMDTEleMap > IOVDbTestMDTEleMapColl
This typedef represents a collection of IOVDbTestMDTEleMap objects.
Definition: IOVDbTestMDTEleMapColl.h:16
index
Definition: index.py:1
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
IOVDbTestAlg::registerCondObjects
StatusCode registerCondObjects()
Definition: IOVDbTestAlg.cxx:706
CondMultChanCollection
A CondMultChanCollection is a template class which can hold a collection of T* objects which are inte...
Definition: CondMultChanCollection.h:52
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
IOVDbTestAlg::m_readWriteCool
BooleanProperty m_readWriteCool
Definition: IOVDbTestAlg.h:59
AthCommonDataStore::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 > renounce(T &h)
Definition: AthCommonDataStore.h:380
IOVDbTestAlg::m_regIOV
BooleanProperty m_regIOV
Definition: IOVDbTestAlg.h:58
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
AthCommonMsg< Gaudi::Algorithm >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
CondAttrListCollection::begin
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
Definition: CondAttrListCollection.h:309
python.subdetectors.tile.Blob
Blob
Definition: tile.py:17
CondMultChanCollection::chan_size
chan_size_type chan_size() const
number of channels
Definition: CondMultChanCollection.h:145
IOVDbTestMDTEleMap
Definition: IOVDbTestMDTEleMap.h:22
PixelModuleFeMask_create_db.stop
int stop
Definition: PixelModuleFeMask_create_db.py:76
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:52
x
#define x
IOVDbTestAlg::m_nameChans
BooleanProperty m_nameChans
Definition: IOVDbTestAlg.h:62
IOVDbTestMDTEleMap::name
const std::string & name() const
Definition: IOVDbTestMDTEleMap.cxx:26
CondAttrListCollection::iov_const_iterator
ChanIOVMap::const_iterator iov_const_iterator
Definition: CondAttrListCollection.h:66
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
IOVDbTestAmdbCorrection::set
void set(const HepGeom::Point3D< double > &trans, const HepGeom::Point3D< double > &rot, const std::string &name)
Definition: IOVDbTestAmdbCorrection.cxx:21
CondAttrListCollection::name_const_iterator
ChanNameMap::const_iterator name_const_iterator
Definition: CondAttrListCollection.h:69
IOVTime
Basic time unit for IOVSvc. Hold time as a combination of run and event numbers.
Definition: IOVTime.h:33
IOVDbTestAlg::m_streamName
StringProperty m_streamName
Definition: IOVDbTestAlg.h:71
IOVDbTestAlg::m_writeCondObjs
BooleanProperty m_writeCondObjs
Definition: IOVDbTestAlg.h:57
IOVDbTestAlg::waitForSecond
void waitForSecond() const
Definition: IOVDbTestAlg.cxx:83
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
IOVDbTestAmdbCorrection::name
const std::string & name() const
Definition: IOVDbTestAmdbCorrection.cxx:29
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthReentrantAlgorithm::AthReentrantAlgorithm
AthReentrantAlgorithm()
Default constructor:
IOVDbTestMDTEleMap::timeStamp
int timeStamp() const
Definition: IOVDbTestMDTEleMap.cxx:56
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
IOVDbTestAlg::m_regTime
IntegerProperty m_regTime
Definition: IOVDbTestAlg.h:70
checkCoolLatestUpdate.chanNum
chanNum
Definition: checkCoolLatestUpdate.py:27
IOVDbTestAlg::m_regSvc
ServiceHandle< IIOVRegistrationSvc > m_regSvc
Definition: IOVDbTestAlg.h:76
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
lumiFormat.i
int i
Definition: lumiFormat.py:85
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
IOVDbTestAlg::m_streamer
ToolHandle< IAthenaOutputStreamTool > m_streamer
Definition: IOVDbTestAlg.h:77
IOVDbTestAlg::printCondObjects
StatusCode printCondObjects() const
Definition: IOVDbTestAlg.cxx:394
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
IOVTime::MAXTIMESTAMP
static constexpr uint64_t MAXTIMESTAMP
Definition: IOVTime.h:58
IAthenaOutputStreamTool::TypeKeyPair
std::pair< std::string, std::string > TypeKeyPair
Stream out objects.
Definition: IAthenaOutputStreamTool.h:99
IOVDbTestAmdbCorrection::getTranslation
HepGeom::Point3D< double > getTranslation() const
Definition: IOVDbTestAmdbCorrection.cxx:34
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthenaAttributeList
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
Definition: PersistentDataModel/PersistentDataModel/AthenaAttributeList.h:45
IOVDbTestMDTEleMap::eventNumber
int eventNumber() const
Definition: IOVDbTestMDTEleMap.cxx:51
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
CondAttrListCollection::ChanNum
unsigned int ChanNum
Definition: CondAttrListCollection.h:55
AthReentrantAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthReentrantAlgorithm.h:153
CondMultChanCollection::iov_begin
iov_const_iterator iov_begin() const
Access to IOVs via iterators.
Definition: CondMultChanCollection.h:155
CondMultChanCollection::iov_const_iterator
IOVVec::const_iterator iov_const_iterator
Definition: CondMultChanCollection.h:61
IOVDbTestAlg::m_fancylist
BooleanProperty m_fancylist
Definition: IOVDbTestAlg.h:65
CondMultChanCollection::iov_size
iov_size_type iov_size() const
number of IOVs
Definition: CondMultChanCollection.h:172
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
IOVTime::MAXEVENT
static constexpr uint32_t MAXEVENT
Definition: IOVTime.h:51
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
CondMultChanCollection::add
void add(ChanNum chanNum)
Adding in channel numbers.
Definition: CondMultChanCollection.h:199
CondAttrListCollection::name_size
name_size_type name_size() const
number of Chan/Name pairs
Definition: CondAttrListCollection.h:377
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
AthReentrantAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthReentrantAlgorithm.cxx:96
IOVDbTestAlg::m_noStream
BooleanProperty m_noStream
Definition: IOVDbTestAlg.h:69
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
IOVTime::MINEVENT
static constexpr uint32_t MINEVENT
Definition: IOVTime.h:50
IOVDbTestAlg::m_twoStepWriteReg
BooleanProperty m_twoStepWriteReg
Definition: IOVDbTestAlg.h:60
IOVDbTestAlg::m_readInInit
BooleanProperty m_readInInit
Definition: IOVDbTestAlg.h:63
IOVDbTestAlg::streamOutCondObjects
StatusCode streamOutCondObjects()
Definition: IOVDbTestAlg.cxx:672
DeMoScan.index
string index
Definition: DeMoScan.py:364
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition: CondAttrListCollection.h:63
CondAttrListCollection::chanNamePair
name_const_iterator chanNamePair(ChanNum chanNum) const
Access to Chan/Name pairs via channel number: returns map iterator.
Definition: CondAttrListCollection.h:357
DeMoScan.first
bool first
Definition: DeMoScan.py:536
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< Gaudi::Algorithm >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
IOVDbTestAlg::createCondObjects
StatusCode createCondObjects(const EventContext &ctx) const
Definition: IOVDbTestAlg.cxx:176
CondAttrListCollection::chanIOVPair
iov_const_iterator chanIOVPair(ChanNum chanNum) const
Access to Chan/IOV pairs via channel number: returns map iterator.
Definition: CondAttrListCollection.h:330
CondAttrListCollection::add
bool add(ChanNum chanNum, const AttributeList &attributeList)
Adding in chan/attrList pairs.
Definition: CondAttrListCollection.h:452
IOVDbTestAlg::m_createExtraChans
BooleanProperty m_createExtraChans
Definition: IOVDbTestAlg.h:61
IOVDbTestAlg::m_printLB
BooleanProperty m_printLB
Definition: IOVDbTestAlg.h:66
IOVDbTestAmdbCorrection::getRotation
HepGeom::Point3D< double > getRotation() const
Definition: IOVDbTestAmdbCorrection.cxx:39
IOVDbTestAlg::m_online
BooleanProperty m_online
Definition: IOVDbTestAlg.h:73
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
CaloCondBlobAlgs_fillNoiseFromASCII.blob
blob
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:96
fitman.k
k
Definition: fitman.py:528
CondAttrListCollection::name_end
name_const_iterator name_end() const
Definition: CondAttrListCollection.h:370
ServiceHandle< IIncidentSvc >
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37