ATLAS Offline Software
IOVPayloadContainerCnv_p1.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
9 #include "CoralBase/Date.h"
10 #include "CoralBase/TimeStamp.h"
11 
13 {}
14 
15 
16 void
18  IOVPayloadContainer* transObj, MsgStream &log)
19 {
20 
21  if (log.level() <= MSG::DEBUG) {
22  log << MSG::DEBUG << "IOVPayloadContainerCnv_p1::persToTrans - entering "
23  << endmsg;
24  }
25 
26  for( auto & offset : m_objIndexOffset ) {
27  offset = 1; // this is just the initial value before first use
28  }
29 
30  IOVPayloadContainer::payloadVec& payloadVec = transObj->m_payloadVec;
31 
32  // Make sure transient container is empty - may be reused
33  payloadVec.clear();
34 
35  // fill map from type name to int
36  if (m_attributeTypes.size() == 0)fillAttributeTypeMap();
37 
38  // Check which version we have:
39  // 1) earlier version took the attr spec from first attribute list
40  // 2) more recent versions "correctly" checks ALL attribute lists for attr spec -
41  // attribute list spec may be extended as payloads get merged together
42  // Use a non-empty m_attrType vector to detect the earlier version
43  bool isEarlyVersion = persObj->m_attrType.size() > 0;
44 
45  // Loop over persistent attribute list collections
46  payloadVec.reserve(persObj->m_payloadVec.size());
48  persObj->m_payloadVec)
49  {
51 
52  // Add to transient payload container
53  payloadVec.push_back(transColl);
54 
55  // Loop over attribute lists
56  typedef std::vector<IOVPayloadContainer_p1::CondAttrListEntry_p1>::const_iterator attrListIt_t;
57 
58  attrListIt_t itattrList = persColl.m_attrLists.begin();
59  attrListIt_t lastAttrList = persColl.m_attrLists.end();
60  for (; itattrList != lastAttrList; ++itattrList) {
61 
63 
64  coral::AttributeList attrList;
65  // Add in attributes
66 
67  unsigned int inameOld = 0;
68  for (unsigned int iattr = entry.m_firstIndex;
69  iattr < entry.m_lastIndex; ++iattr, ++inameOld) {
70 
71  // Check that we have the correct number of attributes
72  if (iattr >= persObj->m_attrIndexes.size()) {
73  log << MSG::ERROR
74  << "IOVPayloadContainerCnv_p1::persToTrans attribute index bigger than array size "
75  << iattr << " " << persObj->m_attrIndexes.size() << " last index "
76  << entry.m_lastIndex
77  << endmsg;
78  return;
79  }
80 
81  if (!isEarlyVersion) {
82  // version with name index saved in AttrListIndexes
83 
84  // Get indexes to type/value
85  const AttrListIndexes& indexes = persObj->m_attrIndexes[iattr];
86  // Get attribute name and type name
87  unsigned int iname = indexes.nameIndex();
88  unsigned int itype = indexes.typeIndex();
89  const std::string& name = persObj->m_attrName[iname];
90  const std::string& typeName = m_attributeTypes[itype];
91  // Extend attribute list with new type/name
92  attrList.extend(name, typeName);
93  fillAttributeData(persObj, indexes, name, attrList, log);
94  }
95  else {
96  // Earlier version - did not allow for attr spec
97  // to vary across the collection of attribute
98  // lists
99  bool indexesOK = true;
100  if (inameOld >= persObj->m_attrName.size() ||
101  inameOld >= persObj->m_attrType.size()) {
102  log << MSG::WARNING << "IOVPayloadContainerCnv_p1::persToTrans name index bigger than name/type size. index "
103  << inameOld << " name size " << persObj->m_attrName.size()
104  << " attr size " << persObj->m_attrType.size()
105  << " last index " << entry.m_lastIndex
106  << " Most likely unfilled attribute list. Skipping to the next attrlist entry."
107  << endmsg;
108  indexesOK = false;
109 
110  }
111 
112  // Get indexes to type/value
113  const AttrListIndexes& indexes = persObj->m_attrIndexes[iattr];
114  // Get attribute name and type name
115  if (indexesOK) {
116  const std::string& name = persObj->m_attrName[inameOld];
117  unsigned int itype = persObj->m_attrType[inameOld];
118  const std::string& typeName = m_attributeTypes[itype];
119  // Extend attribute list with new type/name
120  attrList.extend(name, typeName);
121  fillAttributeData(persObj, indexes, name, attrList, log);
122  }
123  else {
124  // Error, print out info
125  std::string typeName;
126  unsigned int itype = indexes.typeIndex();
127  typedef std::map<std::string, unsigned int>::const_iterator it_type;
128  it_type typeIt = m_attributeTypeMap.begin();
129  it_type endType = m_attributeTypeMap.end();
130  for (; typeIt != endType; ++typeIt) {
131  if (itype == typeIt->second) {
132  typeName = typeIt->first;
133  break;
134  }
135  }
136  std::string name = "unknown";
137  attrList.extend(name, typeName);
138  fillAttributeData(persObj, indexes, name, attrList, log);
139  }
140  }
141  }
142 
143 
144 // std::ostringstream attrStr;
145 // attrList.toOutputStream(attrStr);
146 // log << MSG::DEBUG << "IOVPayloadContainerCnv_p1::persToTrans - 3 "
147 // << "start/stop " << entry.m_range.m_start << " "
148 // << entry.m_range.m_stop << " attrList " << attrStr.str()
149 // << endmsg;
150 // log << MSG::DEBUG << "IOVPayloadContainerCnv_p1::persToTrans - 3 "
151 // << "attrList size " << attrList.size()
152 // << endmsg;
153 // for (unsigned int i = 0; i < attrList.size(); ++i) {
154 // log << MSG::DEBUG << attrList[i].specification().name() << " "
155 // << attrList[i].specification().typeName() << " "
156 // << endmsg;
157 // }
158 
159 
160  // Add in AttributeList
161  transColl->add(entry.m_channelNumber, attrList);
162 
163  bool hasIOV = !(entry.m_range.m_start == 0 && entry.m_range.m_stop == 0);
164 
165  // Add in IOV
166  if (hasIOV) {
167  if (persColl.m_hasRunLumiBlockTime) {
168  // run/lumiblock
169  IOVTime start;
170  IOVTime stop;
171  start.setRETime(entry.m_range.m_start);
172  stop.setRETime(entry.m_range.m_stop);
173  transColl->add(entry.m_channelNumber, IOVRange(start, stop));
174  }
175  else {
176  // time stamp
177  IOVTime start;
178  IOVTime stop;
179  start.setTimestamp(entry.m_range.m_start);
180  stop.setTimestamp(entry.m_range.m_stop);
181  transColl->add(entry.m_channelNumber, IOVRange(start, stop));
182  }
183  }
184 
185  // Add in name
186  if (entry.m_name.size()) {
187  transColl->add(entry.m_channelNumber, entry.m_name);
188  }
189  }
190 
191  // Set start if needed:
192 
193  // Set stop which may be smaller than the min of all channels
194  IOVTime start;
195  IOVTime stop;
196  bool setStart = (persColl.m_start != static_cast<uint64_t>(-1));
197  if (persColl.m_hasRunLumiBlockTime) {
198  // run/lumiblock
199  if (setStart) start.setRETime ( persColl.m_start );
200  stop.setRETime ( persColl.m_stop );
201  }
202  else {
203  // time stamp
204  if (setStart) start.setTimestamp( persColl.m_start );
205  stop.setTimestamp( persColl.m_stop );
206  }
207  if (setStart) transColl->addNewStart(start);
208  transColl->addNewStop(stop);
209  }
210 }
211 
212 void
214  IOVPayloadContainer_p1* persObj, MsgStream &log)
215 {
216 
217  if (log.level() <= MSG::DEBUG) {
218  log << MSG::DEBUG << "IOVPayloadContainerCnv_p1::transToPers "
219  << endmsg;
220  }
221 
222 
223  // fill map from type name to int
224  if (m_attributeTypes.size() == 0)fillAttributeTypeMap();
225 
226  // Create attribute list specification
227  fillPersAttrSpec(transObj, persObj, log);
228 
229  // Nothing to do if specification was not filled
230  if (!persObj->m_attrName.size()) {
231  if (log.level() <= MSG::DEBUG) {
232  log << MSG::DEBUG << "IOVPayloadContainerCnv_p1::transToPers - empty attr list spec "
233  << endmsg;
234  }
235  return;
236  }
237 
238  // Now fill pers object
239  persObj->m_payloadVec.resize(transObj->size());
240 
241  // Loop over transient CondAttrListCollection
242  unsigned int ipcoll = 0;
244  IOVPayloadContainer::const_iterator last = transObj->end();
245  for (; it != last; ++it, ++ipcoll) {
246  const CondAttrListCollection* tColl = *it;
248  persObj->m_payloadVec[ipcoll];
249  pColl.m_attrLists.resize(tColl->size());
250 
251  // minimal IOVRange
252  bool isRunLumiBlock = tColl->minRange().start().isRunEvent();
253  if (isRunLumiBlock) {
254  // run/lumiblock
255  pColl.m_hasRunLumiBlockTime = true;
256  // Save start and stop which may be form an IOV smaller than the min of all channels
257  pColl.m_start = tColl->minRange().start().re_time();
258  pColl.m_stop = tColl->minRange().stop().re_time();
259  }
260  else {
261  // time stamp
262  pColl.m_hasRunLumiBlockTime = false;
263  // Save start and stop which may be form an IOV smaller than the min of all channels
264  pColl.m_start = tColl->minRange().start().timestamp();
265  pColl.m_stop = tColl->minRange().stop().timestamp();
266  }
267 
268  // Loop over transient AttributeLists
270  CondAttrListCollection::const_iterator lastAttr = tColl->end();
271  unsigned int ientry = 0;
272  for (; itAttr != lastAttr; ++itAttr, ++ientry) {
274 
275  unsigned int chan = (*itAttr).first;
276  entry.m_channelNumber = chan;
277  entry.m_firstIndex = persObj->m_attrIndexes.size();
278  // make sure last index is set in case of error
279  entry.m_lastIndex = persObj->m_attrIndexes.size();
280  entry.m_range.m_start = 0;
281  entry.m_range.m_stop = 0;
282 
283  // Look for IOV per channel
285  if (iovIt != tColl->iov_end()) {
286  // this channel has an IOV of its own
287  if (isRunLumiBlock) {
288  entry.m_range.m_start = iovIt->second.start().re_time();
289  entry.m_range.m_stop = iovIt->second.stop().re_time();
290  }
291  else {
292  entry.m_range.m_start = iovIt->second.start().timestamp();
293  entry.m_range.m_stop = iovIt->second.stop().timestamp();
294  }
295  }
296 
297  // Add in name
298  std::string name = tColl->chanName(chan);
299  if (name.size()) {
300  entry.m_name = name;
301  }
302 
303  // Add in each attribute value and save indexes
304 
305  const coral::AttributeList& attrList = (*itAttr).second;
306 
307  coral::AttributeList::const_iterator itAttr = attrList.begin();
308  coral::AttributeList::const_iterator itLast = attrList.end();
309  for (; itAttr != itLast; ++itAttr) {
310 
311  std::string typeName = itAttr->specification().typeName();
312  std::map<std::string, unsigned int>::const_iterator attIt =
314  if (attIt == m_attributeTypeMap.end()) {
315  log << MSG::ERROR << "IOVPayloadContainerCnv_p1::transToPers - cannot find attibute type in map - name "
316  << typeName << endmsg;
317  return;
318  }
319  unsigned int itype = attIt->second;
320 
321  std::string name = itAttr->specification().name();
322  attIt = m_attrNameMap.find(name);
323  if (attIt == m_attrNameMap.end()) {
324  log << MSG::ERROR << "IOVPayloadContainerCnv_p1::transToPers - cannot find attibute name in map - name "
325  << name << endmsg;
326  return;
327  }
328  unsigned int iname = attIt->second;
329 
330  // fill persistent object with attribute data:
331  // name, type, attribute list, persObj
332  fillAttributeData(iname, itype,(*itAttr), persObj, log);
333  }
334 
335  // Now save the last index into the index vector
336  entry.m_lastIndex = persObj->m_attrIndexes.size();
337  }
338  }
339 }
340 
341 void
343  IOVPayloadContainer_p1* persObj,
344  MsgStream &log)
345 {
346 
347  if (log.level() <= MSG::DEBUG) {
348  log << MSG::DEBUG << "IOVPayloadContainerCnv_p1::fillPersAttrSpec IOVPayloadContainer size "
349  << transObj->size() << endmsg;
350  }
351 
352  // Clear name list from previous conversion
353  m_attrNameMap.clear();
354 
355  // Loop over all attribute lists and collect all possible
356  // names - note that some attribute lists may have more names
357  // (elements) than others, so we loop over all attribute lists
358  // for a complete set
359  std::set<std::string> names;
360  IOVPayloadContainer::const_iterator itPayload = transObj->begin();
361  IOVPayloadContainer::const_iterator itPayloadEnd = transObj->end();
362  // Only if there is at least one attribute list
363  for (; itPayload != itPayloadEnd; ++itPayload) {
364 
365  const CondAttrListCollection* coll = *itPayload;
367  CondAttrListCollection::const_iterator itCollEnd = coll->end();
368  for (; itColl != itCollEnd; ++itColl) {
369  const coral::AttributeList& attrList = itColl->second;
370  // iterate over attribute list and save types
371  coral::AttributeList::const_iterator it = attrList.begin();
372  coral::AttributeList::const_iterator last = attrList.end();
373  for (; it != last; ++it) {
374  const coral::Attribute& attr = *it;
375  std::string name = attr.specification().name();
376  std::string typeName = attr.specification().typeName();
377 
378  // Fill map of names for future lookup for conversion
379  names.insert(name);
380  }
381  }
382 
383  }
384 
385  // Fill map for conversion toPers, and pers lookup table to be
386  // saved for readback
387  unsigned int iname = 0;
388  persObj->m_attrName.reserve(names.size());
389  std::set<std::string>::iterator itName = names.begin();
390  std::set<std::string>::iterator itNameEnd = names.end();
391  for (; itName != itNameEnd; ++itName) {
392  // Save the attr name
393  persObj->m_attrName.push_back(*itName);
394  m_attrNameMap.insert(attrNameMapValue_t(*itName, iname));
395  ++iname;
396  }
397 
398  if (log.level() <= MSG::DEBUG) {
399  log << MSG::DEBUG << "IOVPayloadContainerCnv_p1::fillPersAttrSpec number of attribute names "
400  << names.size() << endmsg;
401  }
402 }
403 
404 
405 void
407 {
408  // fill type name to number map
427 
428  // vector of types
429  m_attributeTypes.push_back("bool");
430  m_attributeTypes.push_back("char");
431  m_attributeTypes.push_back("unsigned char");
432  m_attributeTypes.push_back("short");
433  m_attributeTypes.push_back("unsigned short");
434  m_attributeTypes.push_back("int");
435  m_attributeTypes.push_back("unsigned int");
436  m_attributeTypes.push_back("long");
437  m_attributeTypes.push_back("unsigned long");
438  m_attributeTypes.push_back("long long");
439  m_attributeTypes.push_back("unsigned long long");
440  m_attributeTypes.push_back("float");
441  m_attributeTypes.push_back("double");
442  m_attributeTypes.push_back("long double");
443  m_attributeTypes.push_back("string");
444  m_attributeTypes.push_back("blob");
445  m_attributeTypes.push_back("date");
446  m_attributeTypes.push_back("time stamp");
447 
448 }
449 
450 void
452  unsigned int attrType,
453  const coral::Attribute& attr,
454  IOVPayloadContainer_p1* persObj,
455  MsgStream & log)
456 {
457  // Fill persistent object with attribute data - must use switch
458  // for all possible types
459  switch (attrType) {
461  persObj->m_attrIndexes.push_back(
463  persObj->m_bool.push_back(attr.data<bool>());
464  break;
466  persObj->m_attrIndexes.push_back(
468  persObj->m_char.push_back(attr.data<char>());
469  break;
471  persObj->m_attrIndexes.push_back(
473  persObj->m_unsignedChar.size()));
474  persObj->m_unsignedChar.push_back(attr.data<unsigned char>());
475  break;
477  persObj->m_attrIndexes.push_back(
479  persObj->m_short.push_back(attr.data<short>());
480  break;
482  persObj->m_attrIndexes.push_back(
484  persObj->m_unsignedShort.size()));
485  persObj->m_unsignedShort.push_back(attr.data<unsigned short>());
486  break;
488  persObj->m_attrIndexes.push_back(
490  persObj->m_int.push_back(attr.data<int>());
491  break;
493  persObj->m_attrIndexes.push_back(
495  persObj->m_unsignedInt.size()));
496  persObj->m_unsignedInt.push_back(attr.data<unsigned int>());
497  break;
499  persObj->m_attrIndexes.push_back(
501  persObj->m_long.push_back(attr.data<long>());
502  break;
504  persObj->m_attrIndexes.push_back(
506  persObj->m_unsignedLong.size()));
507  persObj->m_unsignedLong.push_back(attr.data<unsigned long>());
508  break;
510  persObj->m_attrIndexes.push_back(
512  persObj->m_longLong.push_back(attr.data<long long>());
513  break;
515  persObj->m_attrIndexes.push_back(
517  persObj->m_unsignedLongLong.size()));
518  persObj->m_unsignedLongLong.push_back(attr.data<unsigned long long>());
519  break;
521  persObj->m_attrIndexes.push_back(
523  persObj->m_float.push_back(attr.data<float>());
524  break;
526  persObj->m_attrIndexes.push_back(
528  persObj->m_double.push_back(attr.data<double>());
529  break;
531 // persObj->m_attrIndexes.push_back(
532 // AttrListIndexes(attrName, IOVPayloadContainer_p1::ATTR_LONG_DOUBLE, persObj->m_longDouble.size()));
533 // persObj->m_longDouble.push_back(attr.data<long double>());
534  break;
536  persObj->m_attrIndexes.push_back(
538  persObj->m_string.push_back(attr.data<std::string>());
539  break;
541  log << MSG::ERROR
542  << "IOVPayloadContainerCnv_p1::fillAttributeData - cannot currently treat BLOB type "
543  << endmsg;
544  return;
546  persObj->m_attrIndexes.push_back(
548  persObj->m_date.push_back(coral::TimeStamp(attr.data<coral::Date>().time()).total_nanoseconds() );
549  break;
551  persObj->m_attrIndexes.push_back(
553  persObj->m_timeStamp.size()));
554  persObj->m_timeStamp.push_back( attr.data<coral::TimeStamp>().total_nanoseconds() );
555  break;
556  };
557 }
558 
559 
560 void
562  const AttrListIndexes& index,
563  const std::string& name,
564  coral::AttributeList& attrList,
565  MsgStream & log)
566 {
567  /*
568  this offset calculation solves the problem reported in
569  ATR-22116 trying to get past the limitation introduced by
570  AttrListIndexes::m_objIndex being of type short, which doesn't
571  cover the full length of the type-wise data vectors
572 
573  It is assumed that when reading the persistent object entries,
574  the objIndex starts at 0, and increases by 1 each read for a given type.
575 
576  One must also not call fillAttributeData multiple times for the
577  same (AttrListIndexes index), nor call them out of order
578 
579  * There is one offset per type, initialized to 1
580  * In the first read of a type the offset is set to 0
581  * In all later reads the offset is not changed unless the objIndex equals 0
582  - if objIndex is fixed to be unsigned int, then objIndex should never be 0 in later reads
583  - if objIndex is unsigned short, then objIndex==0 only when it runs into the 65536 boundary
584  and the offset then gets increased by this amount
585 
586  So this will work also when objIndex is integer
587  */
588 
589  unsigned int objIndex = index.objIndex();
590  unsigned int & offset = m_objIndexOffset[index.typeIndex()];
591  if(offset == 1) {
592  offset = 0;
593  } else {
594  if(objIndex == 0) {
595  offset += 65536;
596  }
597  }
598 
599  // Fill persistent object with attribute data - must use switch
600  // for all possible types
601  switch (index.typeIndex()) {
603  attrList[name].setValue(persObj->m_bool[objIndex + offset]);
604  break;
606  attrList[name].setValue(persObj->m_char[objIndex + offset]);
607  break;
609  attrList[name].setValue(persObj->m_unsignedChar[objIndex + offset]);
610  break;
612  attrList[name].setValue(persObj->m_short[objIndex + offset]);
613  break;
615  attrList[name].setValue(persObj->m_unsignedShort[objIndex + offset]);
616  break;
618  attrList[name].setValue(persObj->m_int[objIndex + offset]);
619  break;
621  attrList[name].setValue(persObj->m_unsignedInt[objIndex + offset]);
622  break;
624  attrList[name].setValue(persObj->m_long[objIndex + offset]);
625  break;
627  attrList[name].setValue(persObj->m_unsignedLong[objIndex + offset]);
628  break;
630  attrList[name].setValue(persObj->m_longLong[objIndex + offset]);
631  break;
633  attrList[name].setValue(persObj->m_unsignedLongLong[objIndex + offset]);
634  break;
636  attrList[name].setValue(persObj->m_float[objIndex + offset]);
637  break;
639  attrList[name].setValue(persObj->m_double[objIndex + offset]);
640  break;
642 // attrList[name].setValue(persObj->m_longDouble[objIndex + offset]);
643  break;
645  attrList[name].setValue(persObj->m_string[objIndex + offset]);
646  break;
648  log << MSG::ERROR
649  << "IOVPayloadContainerCnv_p1::fillAttributeData - cannot currently treat BLOB type "
650  << endmsg;
651  return;
653  {
654  coral::TimeStamp::ValueType ns( persObj->m_date[objIndex + offset] );
655  attrList[name].setValue( coral::Date(coral::TimeStamp(ns).time()) );
656  break;
657  }
659  {
660  coral::TimeStamp::ValueType ns =
661  coral::TimeStamp::ValueType( persObj->m_timeStamp[objIndex + offset] );
662  attrList[name].setValue( coral::TimeStamp(ns) );
663  break;
664  }
665  };
666 }
667 
668 
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
IOVPayloadContainer_p1::m_attrIndexes
std::vector< AttrListIndexes > m_attrIndexes
Definition: IOVPayloadContainer_p1.h:105
IOVPayloadContainer.h
This class is a container for the payload of conditions data. It is intended to be used to store cond...
CondAttrListCollection::end
const_iterator end() const
Definition: CondAttrListCollection.h:315
IOVPayloadContainer_p1::m_short
std::vector< short > m_short
Definition: IOVPayloadContainer_p1.h:110
python.CaloScaleNoiseConfig.TimeStamp
TimeStamp
Definition: CaloScaleNoiseConfig.py:87
IOVPayloadContainer_p1::m_double
std::vector< double > m_double
Definition: IOVPayloadContainer_p1.h:119
IOVPayloadContainer::payloadVec
std::vector< CondAttrListCollection * > payloadVec
Definition: IOVPayloadContainer.h:38
IOVRange
Validity Range object. Holds two IOVTimes (start and stop)
Definition: IOVRange.h:30
CondAttrListCollection::iov_end
iov_const_iterator iov_end() const
Definition: CondAttrListCollection.h:343
IOVPayloadContainer_p1::CondAttrListCollection_p1::m_stop
unsigned long long m_stop
Definition: IOVPayloadContainer_p1.h:88
CondAttrListCollection.h
This file defines the class for a collection of AttributeLists where each one is associated with a ch...
AttrListIndexes
Indexes to attribute name, type name and object value for the persistent storage of an attribute list...
Definition: AttrListIndexes.h:20
CondAttrListCollection::minRange
IOVRange minRange() const
Current minimal IOVRange.
Definition: CondAttrListCollection.h:438
IOVPayloadContainer_p1::ATTR_UNSIGNED_INT
@ ATTR_UNSIGNED_INT
Definition: IOVPayloadContainer_p1.h:37
IOVPayloadContainer_p1::m_unsignedLongLong
std::vector< unsigned long long > m_unsignedLongLong
Definition: IOVPayloadContainer_p1.h:117
IOVPayloadContainer_p1::m_unsignedInt
std::vector< unsigned int > m_unsignedInt
Definition: IOVPayloadContainer_p1.h:113
IOVPayloadContainer_p1::ATTR_UNSIGNED_LONG
@ ATTR_UNSIGNED_LONG
Definition: IOVPayloadContainer_p1.h:39
CondAttrListCollection::addNewStop
void addNewStop(const IOVTime &stop)
Add new stop time to minRange - make sure that stop is <= to new stop
Definition: CondAttrListCollection.h:518
index
Definition: index.py:1
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
IOVPayloadContainer_p1::m_float
std::vector< float > m_float
Definition: IOVPayloadContainer_p1.h:118
IOVRange::start
const IOVTime & start() const
Definition: IOVRange.h:38
IOVTime::timestamp
uint64_t timestamp() const noexcept
Definition: IOVTime.h:108
skel.it
it
Definition: skel.GENtoEVGEN.py:423
IOVPayloadContainer_p1::m_long
std::vector< long > m_long
Definition: IOVPayloadContainer_p1.h:114
IOVTime::re_time
uint64_t re_time() const noexcept
Definition: IOVTime.h:107
IOVPayloadContainer_p1::ATTR_FLOAT
@ ATTR_FLOAT
Definition: IOVPayloadContainer_p1.h:42
IOVPayloadContainer_p1::CondAttrListCollection_p1::m_start
unsigned long long m_start
Definition: IOVPayloadContainer_p1.h:87
CondAttrListCollection::begin
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
Definition: CondAttrListCollection.h:309
IOVPayloadContainer_p1::ATTR_LONG
@ ATTR_LONG
Definition: IOVPayloadContainer_p1.h:38
CondAttrListCollection::addNewStart
void addNewStart(const IOVTime &start)
Add new start time to minRange - make sure that start is >= to new start.
Definition: CondAttrListCollection.h:508
IOVPayloadContainer_p1::ATTR_INT
@ ATTR_INT
Definition: IOVPayloadContainer_p1.h:36
PixelModuleFeMask_create_db.stop
int stop
Definition: PixelModuleFeMask_create_db.py:76
python.PyKernel.AttributeList
AttributeList
Definition: PyKernel.py:36
IOVPayloadContainer_p1::ATTR_LONG_DOUBLE
@ ATTR_LONG_DOUBLE
Definition: IOVPayloadContainer_p1.h:44
IOVPayloadContainerCnv_p1.h
CondAttrListCollection
This class is a collection of AttributeLists where each one is associated with a channel number....
Definition: CondAttrListCollection.h:52
IOVPayloadContainer_p1::ATTR_UNSIGNED_LONG_LONG
@ ATTR_UNSIGNED_LONG_LONG
Definition: IOVPayloadContainer_p1.h:41
CondAttrListCollection::iov_const_iterator
ChanIOVMap::const_iterator iov_const_iterator
Definition: CondAttrListCollection.h:66
IOVPayloadContainer::size
size_type size() const
size of payload vector
Definition: IOVPayloadContainer.h:121
MuonValidation_CreateSlides_config.Date
string Date
Definition: MuonValidation_CreateSlides_config.py:26
IOVPayloadContainer_p1::CondAttrListEntry_p1
Definition: IOVPayloadContainer_p1.h:63
IOVRange::stop
const IOVTime & stop() const
Definition: IOVRange.h:39
IOVPayloadContainer_p1.h
This class is the persistent version of a container for the payload of conditions data....
IOVPayloadContainer::begin
const_iterator begin() const
Begin of payload vector.
Definition: IOVPayloadContainer.h:107
IOVTime
Basic time unit for IOVSvc. Hold time as a combination of run and event numbers.
Definition: IOVTime.h:33
IOVPayloadContainer_p1::CondAttrListCollection_p1
Definition: IOVPayloadContainer_p1.h:74
IOVPayloadContainer_p1::m_char
std::vector< char > m_char
Definition: IOVPayloadContainer_p1.h:108
IOVPayloadContainer_p1::ATTR_LONG_LONG
@ ATTR_LONG_LONG
Definition: IOVPayloadContainer_p1.h:40
IOVPayloadContainerCnv_p1::persToTrans
virtual void persToTrans(const IOVPayloadContainer_p1 *persObj, IOVPayloadContainer *transObj, MsgStream &log)
Definition: IOVPayloadContainerCnv_p1.cxx:17
IOVPayloadContainer_p1::ATTR_DOUBLE
@ ATTR_DOUBLE
Definition: IOVPayloadContainer_p1.h:43
AttrListIndexes::typeIndex
unsigned short typeIndex() const
Index into the type name vector.
Definition: AttrListIndexes.h:96
IOVPayloadContainer_p1::m_attrName
std::vector< std::string > m_attrName
Definition: IOVPayloadContainer_p1.h:126
IOVPayloadContainer_p1::m_longLong
std::vector< long long > m_longLong
Definition: IOVPayloadContainer_p1.h:116
IOVPayloadContainer_p1::m_attrType
std::vector< unsigned int > m_attrType
Definition: IOVPayloadContainer_p1.h:127
IOVPayloadContainerCnv_p1::attrNameMapValue_t
std::map< std::string, unsigned int >::value_type attrNameMapValue_t
Definition: IOVPayloadContainerCnv_p1.h:45
ReadCellNoiseFromCool.chan
chan
Definition: ReadCellNoiseFromCool.py:52
IOVPayloadContainer_p1::m_string
std::vector< std::string > m_string
Definition: IOVPayloadContainer_p1.h:121
IOVPayloadContainer_p1::ATTR_UNSIGNED_CHAR
@ ATTR_UNSIGNED_CHAR
Definition: IOVPayloadContainer_p1.h:33
IOVPayloadContainer_p1::ATTR_UNSIGNED_SHORT
@ ATTR_UNSIGNED_SHORT
Definition: IOVPayloadContainer_p1.h:35
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
python.subdetectors.mmg.names
names
Definition: mmg.py:8
IOVPayloadContainer_p1::ATTR_DATE
@ ATTR_DATE
Definition: IOVPayloadContainer_p1.h:47
IOVPayloadContainerCnv_p1::fillPersAttrSpec
void fillPersAttrSpec(const IOVPayloadContainer *transObj, IOVPayloadContainer_p1 *persObj, MsgStream &log)
Definition: IOVPayloadContainerCnv_p1.cxx:342
IOVPayloadContainer_p1::m_unsignedShort
std::vector< unsigned short > m_unsignedShort
Definition: IOVPayloadContainer_p1.h:111
IOVPayloadContainer_p1::ATTR_SHORT
@ ATTR_SHORT
Definition: IOVPayloadContainer_p1.h:34
IOVTime::isRunEvent
bool isRunEvent() const noexcept
Definition: IOVTime.h:113
IOVPayloadContainerCnv_p1::m_objIndexOffset
unsigned int m_objIndexOffset[IOVPayloadContainer_p1::ATTR_TIME_STAMP+1]
Definition: IOVPayloadContainerCnv_p1.h:52
IOVPayloadContainer::m_payloadVec
payloadVec m_payloadVec
Definition: IOVPayloadContainer.h:97
xAOD::uint64_t
uint64_t
Definition: EventInfo_v1.cxx:123
IOVPayloadContainer_p1::m_date
std::vector< unsigned long long > m_date
Definition: IOVPayloadContainer_p1.h:122
IOVPayloadContainer
This class is a container for the payload of conditions data. It is intended to be used to store cond...
Definition: IOVPayloadContainer.h:35
CondAttrListCollection::chanName
const std::string & chanName(ChanNum chanNum) const
find name for particular channel
Definition: CondAttrListCollection.h:426
IOVPayloadContainer_p1::CondAttrListCollection_p1::m_attrLists
std::vector< CondAttrListEntry_p1 > m_attrLists
Definition: IOVPayloadContainer_p1.h:81
IOVPayloadContainerCnv_p1::fillAttributeData
void fillAttributeData(unsigned int attrName, unsigned int attrType, const coral::Attribute &attr, IOVPayloadContainer_p1 *persObj, MsgStream &log)
Definition: IOVPayloadContainerCnv_p1.cxx:451
IOVPayloadContainer_p1
Definition: IOVPayloadContainer_p1.h:27
GetAllXsec.entry
list entry
Definition: GetAllXsec.py:132
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
IOVPayloadContainerCnv_p1::IOVPayloadContainerCnv_p1
IOVPayloadContainerCnv_p1()
Definition: IOVPayloadContainerCnv_p1.cxx:12
AttrListIndexes::nameIndex
unsigned short nameIndex() const
Index into attribute name vector.
Definition: AttrListIndexes.h:89
IOVPayloadContainer_p1::ATTR_BOOL
@ ATTR_BOOL
Definition: IOVPayloadContainer_p1.h:31
CondAttrListCollection::size
size_type size() const
number of Chan/AttributeList pairs
Definition: CondAttrListCollection.h:322
IOVPayloadContainerCnv_p1::m_attributeTypes
std::vector< std::string > m_attributeTypes
Definition: IOVPayloadContainerCnv_p1.h:50
python.PoolAttributeHelper.attrName
attrName
Definition: PoolAttributeHelper.py:100
IOVPayloadContainer_p1::ATTR_CHAR
@ ATTR_CHAR
Definition: IOVPayloadContainer_p1.h:32
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
CondAttrListCollection::const_iterator
ChanAttrListMap::const_iterator const_iterator
Definition: CondAttrListCollection.h:63
IOVPayloadContainer::const_iterator
payloadVec::const_iterator const_iterator
Definition: IOVPayloadContainer.h:39
IOVPayloadContainerCnv_p1::m_attrNameMap
std::map< std::string, unsigned int > m_attrNameMap
Definition: IOVPayloadContainerCnv_p1.h:46
DEBUG
#define DEBUG
Definition: page_access.h:11
IOVPayloadContainer::end
const_iterator end() const
End of payload vector.
Definition: IOVPayloadContainer.h:114
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
convertTimingResiduals.offset
offset
Definition: convertTimingResiduals.py:71
IOVPayloadContainer_p1::ATTR_STRING
@ ATTR_STRING
Definition: IOVPayloadContainer_p1.h:45
ReadCalibFromCool.typeName
typeName
Definition: ReadCalibFromCool.py:477
IOVPayloadContainer_p1::m_unsignedLong
std::vector< unsigned long > m_unsignedLong
Definition: IOVPayloadContainer_p1.h:115
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
IOVPayloadContainerCnv_p1::fillAttributeTypeMap
void fillAttributeTypeMap()
Definition: IOVPayloadContainerCnv_p1.cxx:406
IOVPayloadContainer_p1::m_unsignedChar
std::vector< unsigned char > m_unsignedChar
Definition: IOVPayloadContainer_p1.h:109
IOVPayloadContainer_p1::ATTR_BLOB
@ ATTR_BLOB
Definition: IOVPayloadContainer_p1.h:46
IOVPayloadContainer_p1::m_int
std::vector< int > m_int
Definition: IOVPayloadContainer_p1.h:112
IOVPayloadContainer_p1::m_payloadVec
std::vector< CondAttrListCollection_p1 > m_payloadVec
Definition: IOVPayloadContainer_p1.h:102
CondAttrListCollection::chanIOVPair
iov_const_iterator chanIOVPair(ChanNum chanNum) const
Access to Chan/IOV pairs via channel number: returns map iterator.
Definition: CondAttrListCollection.h:330
IOVPayloadContainer_p1::CondAttrListCollection_p1::m_hasRunLumiBlockTime
bool m_hasRunLumiBlockTime
Definition: IOVPayloadContainer_p1.h:89
CondAttrListCollection::add
bool add(ChanNum chanNum, const AttributeList &attributeList)
Adding in chan/attrList pairs.
Definition: CondAttrListCollection.h:452
IOVPayloadContainerCnv_p1::m_attributeTypeMap
std::map< std::string, unsigned int > m_attributeTypeMap
Definition: IOVPayloadContainerCnv_p1.h:49
IOVPayloadContainer_p1::ATTR_TIME_STAMP
@ ATTR_TIME_STAMP
Definition: IOVPayloadContainer_p1.h:48
IOVPayloadContainer_p1::m_bool
std::vector< bool > m_bool
Definition: IOVPayloadContainer_p1.h:107
IOVPayloadContainer_p1::m_timeStamp
std::vector< unsigned long long > m_timeStamp
Definition: IOVPayloadContainer_p1.h:123
IOVPayloadContainerCnv_p1::transToPers
virtual void transToPers(const IOVPayloadContainer *transObj, IOVPayloadContainer_p1 *persObj, MsgStream &log)
Definition: IOVPayloadContainerCnv_p1.cxx:213