ATLAS Offline Software
IOVPayloadContainerPTCnv_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 
17 #include "CoralBase/Date.h"
18 #include "CoralBase/TimeStamp.h"
19 #include <set>
20 
22 {}
23 
24 
25 void
27  IOVPayloadContainer* transObj)
28 {
29 
30  // Make sure transient container is empty - may be reused
31  transObj->m_payloadVec.clear();
32 
33  for( auto & offset : m_objIndexOffset ) {
34  offset = 1; // this is just the initial value before first use
35  }
36 
37  // fill map from type name to int
38  if (m_attributeTypes.size() == 0)fillAttributeTypeMap();
39 
40  // Check which version we have:
41  // 1) earlier version took the attr spec from first attribute list
42  // 2) more recent versions "correctly" checks ALL attribute lists for attr spec -
43  // attribute list spec may be extended as payloads get merged together
44  // Use a non-empty m_attrType vector to detect the earlier version
45  bool isEarlyVersion = persObj->m_attrType.size() > 0;
46 
47  // Loop over persistent attribute list collections
48  typedef std::vector<IOVPayloadContainer_p1::CondAttrListCollection_p1>::const_iterator attrCollIt;
49 
50  attrCollIt it = persObj->m_payloadVec.begin();
51  attrCollIt last = persObj->m_payloadVec.end();
52  transObj->m_payloadVec.reserve(persObj->m_payloadVec.size());
53  for (; it != last; ++it) {
55 
57 
58  // Add to transient payload container
59  transObj->m_payloadVec.push_back(transColl);
60 
61  // Loop over attribute lists
62  typedef std::vector<IOVPayloadContainer_p1::CondAttrListEntry_p1>::const_iterator attrListIt_t;
63 
64  attrListIt_t itattrList = persColl.m_attrLists.begin();
65  attrListIt_t lastAttrList = persColl.m_attrLists.end();
66  for (; itattrList != lastAttrList; ++itattrList) {
67 
69 
70  coral::AttributeList attrList;
71  // Add in attributes
72 
73  unsigned int inameOld = 0;
74  for (unsigned int iattr = entry.m_firstIndex;
75  iattr < entry.m_lastIndex; ++iattr, ++inameOld) {
76 
77  if (!isEarlyVersion) {
78  // version with name index saved in AttrListIndexes
79 
80  // Get indexes to type/value
81  const AttrListIndexes& indexes = persObj->m_attrIndexes[iattr];
82  // Get attribute name and type name
83  unsigned int iname = indexes.nameIndex();
84  unsigned int itype = indexes.typeIndex();
85  const std::string& name = persObj->m_attrName[iname];
86  const std::string& typeName = m_attributeTypes[itype];
87  // Extend attribute list with new type/name
88  attrList.extend(name, typeName);
89  fillAttributeData(persObj, indexes, name, attrList);
90  }
91  else {
92  // Earlier version - did not allow for attr spec
93  // to vary across the collection of attribute
94  // lists
95  bool indexesOK = true;
96  if (inameOld >= persObj->m_attrName.size() ||
97  inameOld >= persObj->m_attrType.size()) {
98 
99  indexesOK = false;
100 
101  }
102 
103  // Get indexes to type/value
104  const AttrListIndexes& indexes = persObj->m_attrIndexes[iattr];
105  // Get attribute name and type name
106  if (indexesOK) {
107  const std::string& name = persObj->m_attrName[inameOld];
108  unsigned int itype = persObj->m_attrType[inameOld];
109  const std::string& typeName = m_attributeTypes[itype];
110  // Extend attribute list with new type/name
111  attrList.extend(name, typeName);
112  fillAttributeData(persObj, indexes, name, attrList);
113  }
114  else {
115  // Error, print out info
116  std::string typeName;
117  unsigned int itype = indexes.typeIndex();
118  typedef std::map<std::string, unsigned int>::const_iterator it_type;
119  it_type typeIt = m_attributeTypeMap.begin();
120  it_type endType = m_attributeTypeMap.end();
121  for (; typeIt != endType; ++typeIt) {
122  if (itype == typeIt->second) {
123  typeName = typeIt->first;
124  break;
125  }
126  }
127  std::string name = "unknown";
128  attrList.extend(name, typeName);
129  fillAttributeData(persObj, indexes, name, attrList);
130  }
131  }
132  }
133 
134 
135  // Add in AttributeList
136  transColl->add(entry.m_channelNumber, attrList);
137 
138  bool hasIOV = !(entry.m_range.m_start == 0 && entry.m_range.m_stop == 0);
139 
140  // Add in IOV
141  if (hasIOV) {
142  if (persColl.m_hasRunLumiBlockTime) {
143  // run/lumiblock
144  IOVTime start;
145  IOVTime stop;
146  start.setRETime(entry.m_range.m_start);
147  stop.setRETime(entry.m_range.m_stop);
148  transColl->add(entry.m_channelNumber, IOVRange(start, stop));
149  }
150  else {
151  // time stamp
152  IOVTime start;
153  IOVTime stop;
154  start.setTimestamp(entry.m_range.m_start);
155  stop.setTimestamp(entry.m_range.m_stop);
156  transColl->add(entry.m_channelNumber, IOVRange(start, stop));
157  }
158  }
159 
160  // Add in name
161  if (entry.m_name.size()) {
162  transColl->add(entry.m_channelNumber, entry.m_name);
163  }
164  }
165 
166  // Set start if needed:
167 
168  // Set stop which may be smaller than the min of all channels
169  IOVTime start;
170  IOVTime stop;
171  bool setStart = (persColl.m_start != static_cast<uint64_t>(-1));
172  if (persColl.m_hasRunLumiBlockTime) {
173  // run/lumiblock
174  if (setStart) start.setRETime ( persColl.m_start );
175  stop.setRETime ( persColl.m_stop );
176  }
177  else {
178  // time stamp
179  if (setStart) start.setTimestamp( persColl.m_start );
180  stop.setTimestamp( persColl.m_stop );
181  }
182  if (setStart) transColl->addNewStart(start);
183  transColl->addNewStop(stop);
184  }
185 }
186 
187 void
189  IOVPayloadContainer_p1* persObj)
190 {
191 
192  // Clear name list from previous conversion
193  m_attrNameMap.clear();
194 
195  // Loop over all attribute lists and collect all possible
196  // names - note that some attribute lists may have more names
197  // (elements) than others, so we loop over all attribute lists
198  // for a complete set
199  std::set<std::string> names;
200  IOVPayloadContainer::const_iterator itPayload = transObj->begin();
201  IOVPayloadContainer::const_iterator itPayloadEnd = transObj->end();
202  // Only if there is at least one attribute list
203  for (; itPayload != itPayloadEnd; ++itPayload) {
204 
205  const CondAttrListCollection* coll = *itPayload;
207  CondAttrListCollection::const_iterator itCollEnd = coll->end();
208  for (; itColl != itCollEnd; ++itColl) {
209  const coral::AttributeList& attrList = itColl->second;
210  // iterate over attribute list and save types
211  coral::AttributeList::const_iterator it = attrList.begin();
212  coral::AttributeList::const_iterator last = attrList.end();
213  for (; it != last; ++it) {
214  const coral::Attribute& attr = *it;
215  std::string name = attr.specification().name();
216  std::string typeName = attr.specification().typeName();
217 
218  // Fill map of names for future lookup for conversion
219  names.insert(name);
220  }
221  }
222 
223  }
224 
225  // Fill map for conversion toPers, and pers lookup table to be
226  // saved for readback
227  unsigned int iname = 0;
228  persObj->m_attrName.reserve(names.size());
229  std::set<std::string>::iterator itName = names.begin();
230  std::set<std::string>::iterator itNameEnd = names.end();
231  for (; itName != itNameEnd; ++itName) {
232  // Save the attr name
233  persObj->m_attrName.push_back(*itName);
234  m_attrNameMap.insert(attrNameMapValue_t(*itName, iname));
235  ++iname;
236  }
237 
238 }
239 
240 
241 void
243 {
244  // fill type name to number map
263 
264  // vector of types
265  m_attributeTypes.push_back("bool");
266  m_attributeTypes.push_back("char");
267  m_attributeTypes.push_back("unsigned char");
268  m_attributeTypes.push_back("short");
269  m_attributeTypes.push_back("unsigned short");
270  m_attributeTypes.push_back("int");
271  m_attributeTypes.push_back("unsigned int");
272  m_attributeTypes.push_back("long");
273  m_attributeTypes.push_back("unsigned long");
274  m_attributeTypes.push_back("long long");
275  m_attributeTypes.push_back("unsigned long long");
276  m_attributeTypes.push_back("float");
277  m_attributeTypes.push_back("double");
278  m_attributeTypes.push_back("long double");
279  m_attributeTypes.push_back("string");
280  m_attributeTypes.push_back("blob");
281  m_attributeTypes.push_back("date");
282  m_attributeTypes.push_back("time stamp");
283 
284 }
285 
286 void
288  unsigned int attrType,
289  const coral::Attribute& attr,
290  IOVPayloadContainer_p1* persObj)
291 {
292  // Fill persistent object with attribute data - must use switch
293  // for all possible types
294  switch (attrType) {
296  persObj->m_attrIndexes.push_back(
298  persObj->m_bool.push_back(attr.data<bool>());
299  break;
301  persObj->m_attrIndexes.push_back(
303  persObj->m_char.push_back(attr.data<char>());
304  break;
306  persObj->m_attrIndexes.push_back(
308  persObj->m_unsignedChar.size()));
309  persObj->m_unsignedChar.push_back(attr.data<unsigned char>());
310  break;
312  persObj->m_attrIndexes.push_back(
314  persObj->m_short.push_back(attr.data<short>());
315  break;
317  persObj->m_attrIndexes.push_back(
319  persObj->m_unsignedShort.size()));
320  persObj->m_unsignedShort.push_back(attr.data<unsigned short>());
321  break;
323  persObj->m_attrIndexes.push_back(
325  persObj->m_int.push_back(attr.data<int>());
326  break;
328  persObj->m_attrIndexes.push_back(
330  persObj->m_unsignedInt.size()));
331  persObj->m_unsignedInt.push_back(attr.data<unsigned int>());
332  break;
334  persObj->m_attrIndexes.push_back(
336  persObj->m_long.push_back(attr.data<long>());
337  break;
339  persObj->m_attrIndexes.push_back(
341  persObj->m_unsignedLong.size()));
342  persObj->m_unsignedLong.push_back(attr.data<unsigned long>());
343  break;
345  persObj->m_attrIndexes.push_back(
347  persObj->m_longLong.push_back(attr.data<long long>());
348  break;
350  persObj->m_attrIndexes.push_back(
352  persObj->m_unsignedLongLong.size()));
353  persObj->m_unsignedLongLong.push_back(attr.data<unsigned long long>());
354  break;
356  persObj->m_attrIndexes.push_back(
358  persObj->m_float.push_back(attr.data<float>());
359  break;
361  persObj->m_attrIndexes.push_back(
363  persObj->m_double.push_back(attr.data<double>());
364  break;
366 // persObj->m_attrIndexes.push_back(
367 // AttrListIndexes(attrName, IOVPayloadContainer_p1::ATTR_LONG_DOUBLE, persObj->m_longDouble.size()));
368 // persObj->m_longDouble.push_back(attr.data<long double>());
369  break;
371  persObj->m_attrIndexes.push_back(
373  persObj->m_string.push_back(attr.data<std::string>());
374  break;
376  // log << MSG::ERROR
377  // << "IOVPayloadContainerPTCnv_p1::fillAttributeData - cannot currently treat BLOB type "
378  // << endmsg;
379  return;
381  persObj->m_attrIndexes.push_back(
383  persObj->m_date.push_back(coral::TimeStamp(attr.data<coral::Date>().time()).total_nanoseconds() );
384  break;
386  persObj->m_attrIndexes.push_back(
388  persObj->m_timeStamp.size()));
389  persObj->m_timeStamp.push_back( attr.data<coral::TimeStamp>().total_nanoseconds() );
390  break;
391  };
392 }
393 
394 
395 void
397  const AttrListIndexes& index,
398  const std::string& name,
399  coral::AttributeList& attrList)
400 {
401  /*
402  this offset calculation solves the problem reported in
403  ATR-22116 trying to get past the limitation introduced by
404  AttrListIndexes::m_objIndex being of type short, which doesn't
405  cover the full length of the type-wise data vectors
406 
407  It is assumed that when reading the persistent object entries,
408  the objIndex starts at 0, and increases by 1 each read for a given type.
409 
410  One must also not call fillAttributeData multiple times for the
411  same (AttrListIndexes index), nor call them out of order
412 
413  * There is one offset per type, initialized to 1
414  * In the first read of a type the offset is set to 0
415  * In all later reads the offset is not changed unless the objIndex equals 0
416  - if objIndex is fixed to be unsigned int, then objIndex should never be 0 in later reads
417  - if objIndex is unsigned short, then objIndex==0 only when it runs into the 65536 boundary
418  and the offset then gets increased by this amount
419 
420  So this will work also when objIndex is integer
421  */
422  unsigned int objIndex = index.objIndex();
423  unsigned int & offset = m_objIndexOffset[index.typeIndex()];
424  if(offset == 1) {
425  offset = 0;
426  } else {
427  if(objIndex == 0) {
428  offset += 65536;
429  }
430  }
431 
432  switch (index.typeIndex()) {
434  attrList[name].setValue(persObj->m_bool[objIndex + offset]);
435  break;
437  attrList[name].setValue(persObj->m_char[objIndex + offset]);
438  break;
440  attrList[name].setValue(persObj->m_unsignedChar[objIndex + offset]);
441  break;
443  attrList[name].setValue(persObj->m_short[objIndex + offset]);
444  break;
446  attrList[name].setValue(persObj->m_unsignedShort[objIndex + offset]);
447  break;
449  attrList[name].setValue(persObj->m_int[objIndex + offset]);
450  break;
452  attrList[name].setValue(persObj->m_unsignedInt[objIndex + offset]);
453  break;
455  attrList[name].setValue(persObj->m_long[objIndex + offset]);
456  break;
458  attrList[name].setValue(persObj->m_unsignedLong[objIndex + offset]);
459  break;
461  attrList[name].setValue(persObj->m_longLong[objIndex + offset]);
462  break;
464  attrList[name].setValue(persObj->m_unsignedLongLong[objIndex + offset]);
465  break;
467  attrList[name].setValue(persObj->m_float[objIndex + offset]);
468  break;
470  attrList[name].setValue(persObj->m_double[objIndex + offset]);
471  break;
473 // attrList[name].setValue(persObj->m_longDouble[objIndex + offset]);
474  break;
476  attrList[name].setValue(persObj->m_string[objIndex + offset]);
477  break;
479  // log << MSG::ERROR
480  // << "IOVPayloadContainerPTCnv_p1::fillAttributeData - cannot currently treat BLOB type "
481  // << endmsg;
482  return;
484  {
485  coral::TimeStamp::ValueType ns( persObj->m_date[objIndex + offset] );
486  attrList[name].setValue( coral::Date(coral::TimeStamp(ns).time()) );
487  break;
488  }
490  {
491  coral::TimeStamp::ValueType ns =
492  coral::TimeStamp::ValueType( persObj->m_timeStamp[objIndex + offset] );
493  attrList[name].setValue( coral::TimeStamp(ns) );
494  break;
495  }
496  };
497 }
IOVPayloadContainerPTCnv_p1::m_attributeTypeMap
std::map< std::string, unsigned int > m_attributeTypeMap
Definition: IOVPayloadContainerPTCnv_p1.h:48
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
IOVRange
Validity Range object. Holds two IOVTimes (start and stop)
Definition: IOVRange.h:30
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
IOVPayloadContainerPTCnv_p1::fillAttributeData
void fillAttributeData(unsigned int attrName, unsigned int attrType, const coral::Attribute &attr, IOVPayloadContainer_p1 *persObj)
Definition: IOVPayloadContainerPTCnv_p1.cxx:287
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
skel.it
it
Definition: skel.GENtoEVGEN.py:396
IOVPayloadContainer_p1::m_long
std::vector< long > m_long
Definition: IOVPayloadContainer_p1.h:114
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
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
MuonValidation_CreateSlides_config.Date
string Date
Definition: MuonValidation_CreateSlides_config.py:26
IOVPayloadContainer_p1::CondAttrListEntry_p1
Definition: IOVPayloadContainer_p1.h:63
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
IOVPayloadContainerPTCnv_p1::fillAttributeTypeMap
void fillAttributeTypeMap()
Definition: IOVPayloadContainerPTCnv_p1.cxx:242
IOVPayloadContainer_p1::ATTR_DOUBLE
@ ATTR_DOUBLE
Definition: IOVPayloadContainer_p1.h:43
IOVPayloadContainerPTCnv_p1::m_objIndexOffset
unsigned int m_objIndexOffset[IOVPayloadContainer_p1::ATTR_TIME_STAMP+1]
Definition: IOVPayloadContainerPTCnv_p1.h:51
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
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
python.subdetectors.mmg.names
names
Definition: mmg.py:8
IOVPayloadContainer_p1::ATTR_DATE
@ ATTR_DATE
Definition: IOVPayloadContainer_p1.h:47
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
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
IOVPayloadContainer_p1::CondAttrListCollection_p1::m_attrLists
std::vector< CondAttrListEntry_p1 > m_attrLists
Definition: IOVPayloadContainer_p1.h:81
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:228
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
IOVPayloadContainerPTCnv_p1::m_attrNameMap
std::map< std::string, unsigned int > m_attrNameMap
Definition: IOVPayloadContainerPTCnv_p1.h:45
IOVPayloadContainerPTCnv_p1.h
Header file for in-file metadata P/T converters (file peeking without Athena)
IOVPayloadContainerPTCnv_p1::attrNameMapValue_t
std::map< std::string, unsigned int >::value_type attrNameMapValue_t
Definition: IOVPayloadContainerPTCnv_p1.h:44
python.PoolAttributeHelper.attrName
attrName
Definition: PoolAttributeHelper.py:100
IOVPayloadContainer_p1::ATTR_CHAR
@ ATTR_CHAR
Definition: IOVPayloadContainer_p1.h:32
IOVPayloadContainerPTCnv_p1::fillPersAttrSpec
void fillPersAttrSpec(const IOVPayloadContainer *transObj, IOVPayloadContainer_p1 *persObj)
Definition: IOVPayloadContainerPTCnv_p1.cxx:188
IOVPayloadContainerPTCnv_p1::m_attributeTypes
std::vector< std::string > m_attributeTypes
Definition: IOVPayloadContainerPTCnv_p1.h:49
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
IOVPayloadContainer::end
const_iterator end() const
End of payload vector.
Definition: IOVPayloadContainer.h:114
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
IOVPayloadContainerPTCnv_p1::IOVPayloadContainerPTCnv_p1
IOVPayloadContainerPTCnv_p1()
Definition: IOVPayloadContainerPTCnv_p1.cxx:21
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
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
IOVPayloadContainerPTCnv_p1::persToTrans
virtual void persToTrans(const IOVPayloadContainer_p1 *persObj, IOVPayloadContainer *transObj)
Definition: IOVPayloadContainerPTCnv_p1.cxx:26
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