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, V, H > &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, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &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 {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. 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 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 }

◆ ~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
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 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
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 
306  if(m_createExtraChans) {
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
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
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 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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 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())
607  waitForSecond();
609  }
610 
611  return StatusCode::SUCCESS;
612 }

◆ 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
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  }
96  return BaseAlg::extraOutputDeps();
97 }

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

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

◆ 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 AthCommonReentrantAlgorithm< Gaudi::Algorithm >::isClonable
overridevirtualinherited

Specify if the algorithm is clonable.

Reentrant algorithms are clonable.

Definition at line 68 of file AthCommonReentrantAlgorithm.cxx.

52 {
53  // Reentrant algorithms are clonable.
54  return true;
55 }

◆ 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 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
470  CondAttrListCollection::ChanNum chanNum = (*first).first;
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 }

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

◆ 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 AthCommonReentrantAlgorithm< Gaudi::Algorithm >::setFilterPassed ( bool  state,
const EventContext &  ctx 
) const
inlinevirtualinherited

Definition at line 100 of file AthCommonReentrantAlgorithm.h.

100  {
101  execState( ctx ).setFilterPassed( state );
102  }

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

◆ 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 InputMakerBase, and HypoBase.

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()) {
123  sc = StatusCode::FAILURE;
124  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
125  << " with CondSvc");
126  }
127  }
128  }
129  return sc;
130 }

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

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

◆ m_nameChans

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

Definition at line 61 of file IOVDbTestAlg.h.

◆ m_noStream

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

Definition at line 68 of file IOVDbTestAlg.h.

◆ m_online

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

Definition at line 72 of file IOVDbTestAlg.h.

◆ m_printLB

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

Definition at line 65 of file IOVDbTestAlg.h.

◆ m_readInInit

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

Definition at line 62 of file IOVDbTestAlg.h.

◆ m_readNewTag

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

Definition at line 67 of file IOVDbTestAlg.h.

◆ m_readWriteCool

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

Definition at line 58 of file IOVDbTestAlg.h.

◆ m_regIOV

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

Definition at line 57 of file IOVDbTestAlg.h.

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

◆ m_run

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

Definition at line 71 of file IOVDbTestAlg.h.

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

◆ m_tagID

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

Definition at line 73 of file IOVDbTestAlg.h.

◆ m_twoStepWriteReg

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

Definition at line 59 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 {this, "WriteCondObjs", false}
private

Definition at line 56 of file IOVDbTestAlg.h.

◆ m_writeNewTag

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

Definition at line 66 of file IOVDbTestAlg.h.

◆ m_writeOnlyCool

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

Definition at line 63 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
CondAttrListCollection::end
const_iterator end() const
Definition: CondAttrListCollection.h:315
IOVDbTestAlg::m_writeNewTag
BooleanProperty m_writeNewTag
Definition: IOVDbTestAlg.h:66
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:71
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:67
IOVDbTestAlg::m_writeOnlyCool
BooleanProperty m_writeOnlyCool
Definition: IOVDbTestAlg.h:63
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
IOVDbTestAlg::registerCondObjects
StatusCode registerCondObjects()
Definition: IOVDbTestAlg.cxx:665
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:13
IOVDbTestAlg::m_tagID
StringProperty m_tagID
Definition: IOVDbTestAlg.h:73
IOVDbTestAlg::m_readWriteCool
BooleanProperty m_readWriteCool
Definition: IOVDbTestAlg.h:58
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:57
python.SystemOfUnits.second
float second
Definition: SystemOfUnits.py:135
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:61
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
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:74
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
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
IOVTime
Basic time unit for IOVSvc. Hold time as a combination of run and event numbers.
Definition: IOVTime.h:33
AthCommonReentrantAlgorithm::extraOutputDeps
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
Definition: AthCommonReentrantAlgorithm.cxx:89
IOVDbTestAlg::m_writeCondObjs
BooleanProperty m_writeCondObjs
Definition: IOVDbTestAlg.h:56
IOVDbTestAlg::waitForSecond
void waitForSecond() const
Definition: IOVDbTestAlg.cxx:49
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
IOVDbTestAmdbCorrection::name
const std::string & name() const
Definition: IOVDbTestAmdbCorrection.cxx:29
AthCommonDataStore
Definition: AthCommonDataStore.h:52
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:69
checkCoolLatestUpdate.chanNum
chanNum
Definition: checkCoolLatestUpdate.py:26
IOVDbTestAlg::m_regSvc
ServiceHandle< IIOVRegistrationSvc > m_regSvc
Definition: IOVDbTestAlg.h:75
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:76
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
IOVDbTestAlg::printCondObjects
StatusCode printCondObjects() const
Definition: IOVDbTestAlg.cxx:360
AthCommonReentrantAlgorithm::sysExecute
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
Definition: AthCommonReentrantAlgorithm.cxx:76
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
IOVTime::MAXTIMESTAMP
static constexpr uint64_t MAXTIMESTAMP
Definition: IOVTime.h:58
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
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:64
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:240
IOVDbTestAlg::m_noStream
BooleanProperty m_noStream
Definition: IOVDbTestAlg.h:68
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:59
IOVDbTestAlg::streamOutCondObjects
StatusCode streamOutCondObjects()
Definition: IOVDbTestAlg.cxx:638
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
python.Constants.INFO
int INFO
Definition: Control/AthenaCommon/python/Constants.py:15
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:534
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:629
AthCommonReentrantAlgorithm< Gaudi::Algorithm >::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthCommonReentrantAlgorithm.cxx:107
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:801
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:23
IOVDbTestAlg::createCondObjects
StatusCode createCondObjects(const EventContext &ctx) const
Definition: IOVDbTestAlg.cxx:142
CondAttrListCollection::chanIOVPair
iov_const_iterator chanIOVPair(ChanNum chanNum) const
Access to Chan/IOV pairs via channel number: returns map iterator.
Definition: CondAttrListCollection.h:330
AthCommonReentrantAlgorithm< Gaudi::Algorithm >::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthCommonReentrantAlgorithm.h:114
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:60
IOVDbTestAlg::m_printLB
BooleanProperty m_printLB
Definition: IOVDbTestAlg.h:65
IOVDbTestAmdbCorrection::getRotation
HepGeom::Point3D< double > getRotation() const
Definition: IOVDbTestAmdbCorrection.cxx:39
IOVDbTestAlg::m_online
BooleanProperty m_online
Definition: IOVDbTestAlg.h:72
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
CaloCondBlobAlgs_fillNoiseFromASCII.blob
blob
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:95
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