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

This class is a collection of AttributeLists where each one is associated with a channel number. More...

#include <CondAttrListCollection.h>

Inheritance diagram for CondAttrListCollection:
Collaboration diagram for CondAttrListCollection:

Public Types

typedef unsigned int ChanNum
typedef coral::AttributeList AttributeList
typedef std::map< ChanNum, coral::AttributeList > ChanAttrListMap
typedef ChanAttrListMap::value_type ChanAttrListPair
typedef std::map< ChanNum, IOVRangeChanIOVMap
typedef ChanIOVMap::value_type ChanIOVPair
typedef std::map< ChanNum, std::string > ChanNameMap
typedef ChanNameMap::value_type ChanNamePair
typedef ChanAttrListMap::const_iterator const_iterator
typedef ChanAttrListMap::iterator iterator
typedef ChanAttrListMap::size_type size_type
typedef ChanIOVMap::const_iterator iov_const_iterator
typedef ChanIOVMap::iterator iov_iterator
typedef ChanIOVMap::size_type iov_size_type
typedef ChanNameMap::const_iterator name_const_iterator
typedef ChanNameMap::iterator name_iterator
typedef ChanNameMap::size_type name_size_type

Public Member Functions

 CondAttrListCollection (bool hasRunLumiBlockTime)
 Constructor with specification for type of time: run/lumiBlock or timestamp.
 ~CondAttrListCollection ()
 CondAttrListCollection (const CondAttrListCollection &rhs)
CondAttrListCollectionoperator= (const CondAttrListCollection &rhs)=delete
const_iterator chanAttrListPair (ChanNum chanNum) const
 Access to Chan/AttributeList pairs via channel number: returns map iterator.
const_iterator begin () const
 Access to Chan/AttributeList pairs via iterators.
const_iterator end () const
size_type size () const
 number of Chan/AttributeList pairs
iov_const_iterator chanIOVPair (ChanNum chanNum) const
 Access to Chan/IOV pairs via channel number: returns map iterator.
iov_const_iterator iov_begin () const
 Access to Chan/IOV pairs via iterators.
iov_const_iterator iov_end () const
iov_size_type iov_size () const
 number of Chan/IOV pairs
name_const_iterator chanNamePair (ChanNum chanNum) const
 Access to Chan/Name pairs via channel number: returns map iterator.
name_const_iterator name_begin () const
 Access to Chan/Name pairs via iterators.
name_const_iterator name_end () const
name_size_type name_size () const
 number of Chan/Name pairs
ChanNum chanNum (unsigned int index) const
 channel number for index: (index = 0 to size-1)
bool fixChanNum (ChanNum oldChan, ChanNum newChan)
const AttributeListattributeList (ChanNum chanNum) const
 attribute list for a given channel number
const IOVRangeiovRange (ChanNum chanNum) const
 IOVRange list for a given channel number.
const std::string & chanName (ChanNum chanNum) const
 find name for particular channel
const IOVRangeminRange () const
 Current minimal IOVRange.
bool hasUniqueIOV () const
 Check whether there is a unique IOV for all channels.
bool add (ChanNum chanNum, const AttributeList &attributeList)
 Adding in chan/attrList pairs.
void addShared (ChanNum chanNum, const AttributeList &attributeList)
 Adding in chan/attrList pairs with shared data.
void add (ChanNum chanNum, const IOVRange &range)
 Adding in chan/iov range pairs.
void add (ChanNum chanNum, const std::string &name)
 Adding in chan/name pairs: ASSUMED TO BE IN ORDER.
void addNewStart (const IOVTime &start)
 Add new start time to minRange - make sure that start is >= to new start.
void addNewStop (const IOVTime &stop)
 Add new stop time to minRange - make sure that stop is <= to new stop.
void resetMinRange ()
 Reset minRange according to the IOVs of the contained channels.
void dump () const
 Dump our contents to std::cout.
void dump (std::ostringstream &stream) const
 Dump the contents to std::ostringstream.
bool operator== (const CondAttrListCollection &rhs) const
 Equal operator.
bool operator!= (const CondAttrListCollection &rhs) const
 Comparison operator.
bool isSameButMinRange (const CondAttrListCollection &rhs, bool ignoreIOVs=false) const
 Equal operator which ignores minRange.

Private Member Functions

 CondAttrListCollection ()
 Default constructor - we hide it to prevent clients from using it - forcing them to specify the type of IOVTime with the other constructor.

Private Attributes

ChanAttrListMap m_attrMap
ChanIOVMap m_iovMap
ChanNameMap m_nameMap
IOVRange m_minRange
bool m_hasUniqueIOV
bool m_hasRunLumiBlockTime
coral::AttributeListSpecification * m_spec

Detailed Description

This class is a collection of AttributeLists where each one is associated with a channel number.

This allows R/W with COOL of multichannel conditions objects, stored in COOL itself. The collection looks like a vector of pairs of (channel num, AttributeList) where one may iterate over all of them or access each AttrList by channel number as in a map. One also maintains the IOV of each channel allow update of only invalid channels.

WARNING: In order to accumulation correctly the minimum IOVRange for all channels one needs to use the constructor which specifies the type of time being used, i.e. run/lumiBlock or timestamp

Definition at line 50 of file CondAttrListCollection.h.

Member Typedef Documentation

◆ AttributeList

typedef coral::AttributeList CondAttrListCollection::AttributeList

Definition at line 55 of file CondAttrListCollection.h.

◆ ChanAttrListMap

typedef std::map<ChanNum, coral::AttributeList> CondAttrListCollection::ChanAttrListMap

Definition at line 56 of file CondAttrListCollection.h.

◆ ChanAttrListPair

typedef ChanAttrListMap::value_type CondAttrListCollection::ChanAttrListPair

Definition at line 57 of file CondAttrListCollection.h.

◆ ChanIOVMap

Definition at line 58 of file CondAttrListCollection.h.

◆ ChanIOVPair

typedef ChanIOVMap::value_type CondAttrListCollection::ChanIOVPair

Definition at line 59 of file CondAttrListCollection.h.

◆ ChanNameMap

typedef std::map<ChanNum, std::string> CondAttrListCollection::ChanNameMap

Definition at line 60 of file CondAttrListCollection.h.

◆ ChanNamePair

typedef ChanNameMap::value_type CondAttrListCollection::ChanNamePair

Definition at line 61 of file CondAttrListCollection.h.

◆ ChanNum

typedef unsigned int CondAttrListCollection::ChanNum

Definition at line 54 of file CondAttrListCollection.h.

◆ const_iterator

typedef ChanAttrListMap::const_iterator CondAttrListCollection::const_iterator

Definition at line 62 of file CondAttrListCollection.h.

◆ iov_const_iterator

typedef ChanIOVMap::const_iterator CondAttrListCollection::iov_const_iterator

Definition at line 65 of file CondAttrListCollection.h.

◆ iov_iterator

typedef ChanIOVMap::iterator CondAttrListCollection::iov_iterator

Definition at line 66 of file CondAttrListCollection.h.

◆ iov_size_type

typedef ChanIOVMap::size_type CondAttrListCollection::iov_size_type

Definition at line 67 of file CondAttrListCollection.h.

◆ iterator

typedef ChanAttrListMap::iterator CondAttrListCollection::iterator

Definition at line 63 of file CondAttrListCollection.h.

◆ name_const_iterator

typedef ChanNameMap::const_iterator CondAttrListCollection::name_const_iterator

Definition at line 68 of file CondAttrListCollection.h.

◆ name_iterator

typedef ChanNameMap::iterator CondAttrListCollection::name_iterator

Definition at line 69 of file CondAttrListCollection.h.

◆ name_size_type

typedef ChanNameMap::size_type CondAttrListCollection::name_size_type

Definition at line 70 of file CondAttrListCollection.h.

◆ size_type

typedef ChanAttrListMap::size_type CondAttrListCollection::size_type

Definition at line 64 of file CondAttrListCollection.h.

Constructor & Destructor Documentation

◆ CondAttrListCollection() [1/3]

CondAttrListCollection::CondAttrListCollection ( bool hasRunLumiBlockTime)
inlineexplicit

Constructor with specification for type of time: run/lumiBlock or timestamp.

Definition at line 218 of file CondAttrListCollection.h.

219 :
222 m_hasUniqueIOV(true),
223 m_hasRunLumiBlockTime(hasRunLumiBlockTime),
224 m_spec(nullptr)
225{
227 m_minRange = IOVRange(IOVTime(IOVTime::MINTIMESTAMP),
228 IOVTime(IOVTime::MAXTIMESTAMP));
229 }
230}
coral::AttributeListSpecification * m_spec
static constexpr uint64_t MAXTIMESTAMP
Definition IOVTime.h:58
static constexpr uint32_t MAXRUN
Definition IOVTime.h:48
static constexpr uint32_t MINEVENT
Definition IOVTime.h:50
static constexpr uint64_t MINTIMESTAMP
Definition IOVTime.h:56
static constexpr uint32_t MAXEVENT
Definition IOVTime.h:51
static constexpr uint32_t MINRUN
Definition IOVTime.h:44

◆ ~CondAttrListCollection()

CondAttrListCollection::~CondAttrListCollection ( )
inline

Definition at line 232 of file CondAttrListCollection.h.

232 {
233 if (m_spec) m_spec->release();
234}

◆ CondAttrListCollection() [2/3]

CondAttrListCollection::CondAttrListCollection ( const CondAttrListCollection & rhs)
inline

Definition at line 236 of file CondAttrListCollection.h.

237 :
238 DataObject::DataObject(rhs),
239 m_iovMap(rhs.m_iovMap),
240 m_nameMap(rhs.m_nameMap),
244 m_spec(nullptr)
245{
246 // members with normal semantics setup in initialisation list
247 // make a new cached AttributeListSpecificaiton and make the payload use it
248 if (!rhs.m_attrMap.empty()) {
249 m_spec=new coral::AttributeListSpecification();
250 const coral::AttributeList& atr1=rhs.m_attrMap.begin()->second;
251 for (const auto& attr : atr1) {
252 const coral::AttributeSpecification& aspec=attr.specification();
253 m_spec->extend(aspec.name(),aspec.typeName());
254 }
255 for (const auto& [chanNum, attrList] : rhs.m_attrMap) {
256 auto newit = m_attrMap.try_emplace(chanNum, *m_spec, true).first;
257 newit->second.fastCopyData(attrList);
258 }
259 }
260}
ChanNum chanNum(unsigned int index) const
channel number for index: (index = 0 to size-1)

◆ CondAttrListCollection() [3/3]

CondAttrListCollection::CondAttrListCollection ( )
inlineprivate

Default constructor - we hide it to prevent clients from using it - forcing them to specify the type of IOVTime with the other constructor.

Definition at line 208 of file CondAttrListCollection.h.

209:
212 m_hasUniqueIOV(true),
214 m_spec(nullptr)
215{}

Member Function Documentation

◆ add() [1/3]

bool CondAttrListCollection::add ( ChanNum chanNum,
const AttributeList & attributeList )
inline

Adding in chan/attrList pairs.

Adding in chan/attrList pairs: ASSUMED TO BE IN ORDER.

Definition at line 451 of file CondAttrListCollection.h.

452{
453 if (m_attrMap.empty()) {
454 m_spec=new coral::AttributeListSpecification();
455 for (const auto& attr : attributeList) {
456 const coral::AttributeSpecification& aspec=attr.specification();
457 m_spec->extend(aspec.name(),aspec.typeName());
458 }
459 }
460 m_attrMap[chanNum]=coral::AttributeList(*m_spec,true);
461 m_attrMap[chanNum].fastCopyData(attributeList);
462
463 return true;
464}
const AttributeList & attributeList(ChanNum chanNum) const
attribute list for a given channel number

◆ add() [2/3]

void CondAttrListCollection::add ( ChanNum chanNum,
const IOVRange & range )
inline

Adding in chan/iov range pairs.

Adding in chan/iov pairs: ASSUMED TO BE IN ORDER.

Definition at line 483 of file CondAttrListCollection.h.

484{
486
487 // Accumulate minRange
488 IOVTime start = m_minRange.start();
489 if (m_minRange.start() < range.start()) start = range.start();
490 IOVTime stop = m_minRange.stop();
491 if (range.stop() < m_minRange.stop()) stop = range.stop();
492 m_minRange = IOVRange(start, stop);
493 if (m_hasUniqueIOV && range != m_minRange)m_hasUniqueIOV = false;
494}

◆ add() [3/3]

void CondAttrListCollection::add ( ChanNum chanNum,
const std::string & name )
inline

Adding in chan/name pairs: ASSUMED TO BE IN ORDER.

Definition at line 498 of file CondAttrListCollection.h.

◆ addNewStart()

void CondAttrListCollection::addNewStart ( const IOVTime & start)
inline

Add new start time to minRange - make sure that start is >= to new start.

Definition at line 507 of file CondAttrListCollection.h.

508{
509 if (start > m_minRange.start()) {
510 m_minRange = IOVRange(start,m_minRange.stop());
511 }
512}

◆ addNewStop()

void CondAttrListCollection::addNewStop ( const IOVTime & stop)
inline

Add new stop time to minRange - make sure that stop is <= to new stop.

Definition at line 517 of file CondAttrListCollection.h.

518{
519 if (stop < m_minRange.stop()) {
520 m_minRange = IOVRange(m_minRange.start(), stop);
521 }
522}

◆ addShared()

void CondAttrListCollection::addShared ( ChanNum chanNum,
const AttributeList & attributeList )
inline

Adding in chan/attrList pairs with shared data.

Adding in chan/attrList pairs with shared AttrList: ASSUMED TO BE IN ORDER.

Definition at line 468 of file CondAttrListCollection.h.

469{
470 if (m_attrMap.empty()) {
471 m_spec=new coral::AttributeListSpecification();
472 for (const auto& attr : attributeList) {
473 const coral::AttributeSpecification& aspec=attr.specification();
474 m_spec->extend(aspec.name(),aspec.typeName());
475 }
476 }
477 m_attrMap[chanNum]=coral::AttributeList(*m_spec,true);
479}

◆ attributeList()

const CondAttrListCollection::AttributeList & CondAttrListCollection::attributeList ( ChanNum chanNum) const
inline

attribute list for a given channel number

Definition at line 400 of file CondAttrListCollection.h.

401{
403 if (itr!=m_attrMap.end()) {
404 return itr->second;
405 } else {
406 static const AttributeList attr;
407 return attr;
408 }
409}
ChanAttrListMap::const_iterator const_iterator
coral::AttributeList AttributeList

◆ begin()

CondAttrListCollection::const_iterator CondAttrListCollection::begin ( ) const
inline

Access to Chan/AttributeList pairs via iterators.

Definition at line 308 of file CondAttrListCollection.h.

309{
310 return (m_attrMap.begin());
311}

◆ chanAttrListPair()

CondAttrListCollection::const_iterator CondAttrListCollection::chanAttrListPair ( ChanNum chanNum) const
inline

Access to Chan/AttributeList pairs via channel number: returns map iterator.

Access to Chan/AttributeList pairs via channel number.

Definition at line 300 of file CondAttrListCollection.h.

301{
302 return (m_attrMap.find(chanNum));
303}

◆ chanIOVPair()

CondAttrListCollection::iov_const_iterator CondAttrListCollection::chanIOVPair ( ChanNum chanNum) const
inline

Access to Chan/IOV pairs via channel number: returns map iterator.

Access to IOV pairs via channel number.

Definition at line 329 of file CondAttrListCollection.h.

330{
331 return (m_iovMap.find(chanNum));
332}

◆ chanName()

const std::string & CondAttrListCollection::chanName ( ChanNum chanNum) const
inline

find name for particular channel

Definition at line 425 of file CondAttrListCollection.h.

425 {
427 if (itr!=m_nameMap.end()) {
428 return itr->second;
429 } else {
430 static const std::string name;
431 return name;
432 }
433}
ChanNameMap::const_iterator name_const_iterator

◆ chanNamePair()

CondAttrListCollection::name_const_iterator CondAttrListCollection::chanNamePair ( ChanNum chanNum) const
inline

Access to Chan/Name pairs via channel number: returns map iterator.

Access to name via channel number.

Definition at line 356 of file CondAttrListCollection.h.

357{
358 return (m_nameMap.find(chanNum));
359}

◆ chanNum()

CondAttrListCollection::ChanNum CondAttrListCollection::chanNum ( unsigned int index) const
inline

channel number for index: (index = 0 to size-1)

Definition at line 383 of file CondAttrListCollection.h.

384{
385 if (index < size()) {
387 unsigned int count = index;
388 while (count > 0) {
389 ++it;
390 --count;
391 }
392 return (it->first);
393 }
394 // otherwise return max
395 else return (0xFFFF);
396}
const_iterator begin() const
Access to Chan/AttributeList pairs via iterators.
size_type size() const
number of Chan/AttributeList pairs
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:146
str index
Definition DeMoScan.py:362

◆ dump() [1/2]

void CondAttrListCollection::dump ( ) const
inline

Dump our contents to std::cout.

Definition at line 556 of file CondAttrListCollection.h.

557{
558 // min range
559 std::cout << "min range: " << m_minRange << std::endl;
560
561 // attribute list
562 for (const auto& [chanNum, attrList] : m_attrMap) {
563 std::cout << "chan, attr: " << chanNum << std::endl;
564 attrList.toOutputStream(std::cout) << std::endl;
565 }
566 // IOVs
567 for (const auto& [chanNum, iov] : m_iovMap) {
568 std::cout << "chan, iov: " << chanNum << std::endl;
569 std::cout << iov << std::endl;
570 }
571 // channel names
572 for (const auto& [chanNum, name] : m_nameMap) {
573 std::cout << "chan, name: " << chanNum << std::endl;
574 std::cout << name << std::endl;
575 }
576
577}

◆ dump() [2/2]

void CondAttrListCollection::dump ( std::ostringstream & stream) const
inline

Dump the contents to std::ostringstream.

Definition at line 580 of file CondAttrListCollection.h.

581{
582 stream << m_minRange << " iov size " << m_iovMap.size() << std::endl;
583 // IOVs
584 for (const auto& [chanNum, iov] : m_iovMap) {
585 stream << "chan, iov: " << chanNum << " " << iov << std::endl;
586 }
587 // Attribute list
588 for (const auto& [chanNum, attrList] : m_attrMap) {
589 stream << "chan, attr: " << chanNum << std::endl;
590 attrList.toOutputStream(stream) << std::endl;
591 }
592 // channel names
593 for (const auto& [chanNum, name] : m_nameMap) {
594 stream << "chan, name: " << chanNum << " " << name << std::endl;
595 }
596}

◆ end()

CondAttrListCollection::const_iterator CondAttrListCollection::end ( ) const
inline

Definition at line 314 of file CondAttrListCollection.h.

315{
316 return (m_attrMap.end());
317}

◆ fixChanNum()

bool CondAttrListCollection::fixChanNum ( ChanNum oldChan,
ChanNum newChan )
inline

Definition at line 667 of file CondAttrListCollection.h.

668 {
669 auto attrRet = m_attrMap.emplace(newChan, m_attrMap[oldChan]);
670 // if a new element was inserted, erase the old one
671 if (attrRet.second) m_attrMap.erase(oldChan);
672
673 auto iovRet = m_iovMap.emplace(newChan, m_iovMap[oldChan]);
674 // if a new element was inserted, erase the old one
675 if (iovRet.second) m_iovMap.erase(oldChan);
676
677 auto nameRet = m_nameMap.emplace(newChan, m_nameMap[oldChan]);
678 // if a new element was inserted, erase the old one
679 if (nameRet.second) m_nameMap.erase(oldChan);
680
681 return attrRet.first->first == newChan
682 && iovRet.first->first == newChan
683 && nameRet.first->first == newChan;
684 }

◆ hasUniqueIOV()

bool CondAttrListCollection::hasUniqueIOV ( ) const
inline

Check whether there is a unique IOV for all channels.

Definition at line 444 of file CondAttrListCollection.h.

445{
446 return (m_hasUniqueIOV);
447}

◆ iov_begin()

CondAttrListCollection::iov_const_iterator CondAttrListCollection::iov_begin ( ) const
inline

Access to Chan/IOV pairs via iterators.

Access to AttributeList pairs via iterators.

Definition at line 336 of file CondAttrListCollection.h.

337{
338 return (m_iovMap.begin());
339}

◆ iov_end()

CondAttrListCollection::iov_const_iterator CondAttrListCollection::iov_end ( ) const
inline

Definition at line 342 of file CondAttrListCollection.h.

343{
344 return (m_iovMap.end());
345}

◆ iov_size()

CondAttrListCollection::iov_size_type CondAttrListCollection::iov_size ( ) const
inline

number of Chan/IOV pairs

number of pairs

Definition at line 349 of file CondAttrListCollection.h.

350{
351 return (m_iovMap.size());
352}

◆ iovRange()

const IOVRange & CondAttrListCollection::iovRange ( ChanNum chanNum) const
inline

IOVRange list for a given channel number.

Definition at line 413 of file CondAttrListCollection.h.

414{
416 if (itr!=m_iovMap.end()) {
417 return itr->second;
418 } else {
419 // Default is the minRange
420 return (m_minRange);
421 }
422}
ChanIOVMap::const_iterator iov_const_iterator

◆ isSameButMinRange()

bool CondAttrListCollection::isSameButMinRange ( const CondAttrListCollection & rhs,
bool ignoreIOVs = false ) const
inline

Equal operator which ignores minRange.

Same as equal operator but ignores the values for minRange. This allows merging of AttrListColls which have the same content and differ only by the minRange.

Definition at line 621 of file CondAttrListCollection.h.

623{
624
625 // Compare with right hand side
626
627 if(m_hasUniqueIOV != rhs.m_hasUniqueIOV) return false;
628 if(m_hasRunLumiBlockTime != rhs.m_hasRunLumiBlockTime) return false;
629 if (m_attrMap.size() != rhs.m_attrMap.size()) return false;
630 if (m_iovMap.size() != rhs.m_iovMap.size()) return false;
631 if (m_nameMap.size() != rhs.m_nameMap.size()) return false;
632
633 if (!ignoreIOVs) {
634 // Check IOVs
635 auto it1 = m_iovMap.begin();
636 auto it2 = rhs.m_iovMap.begin();
637 auto end1 = m_iovMap.end();
638 for (; it1 != end1; ++it1, ++it2) {
639 if (it1->first != it2->first) return false;
640 if (it1->second != it2->second) return false;
641 }
642 }
643
644 // Check attribute lists
645 auto it3 = m_attrMap.begin();
646 auto it4 = rhs.m_attrMap.begin();
647 auto end3 = m_attrMap.end();
648 for (; it3 != end3; ++it3, ++it4) {
649 if (it3->first != it4->first) return false;
650 if (it3->second != it4->second) return false;
651 }
652
653 // Check names
654 auto it5 = m_nameMap.begin();
655 auto it6 = rhs.m_nameMap.begin();
656 auto end5 = m_nameMap.end();
657 for (; it5 != end5; ++it5, ++it6) {
658 if (it5->first != it6->first) return false;
659 if (it5->second != it6->second) return false;
660 }
661
662 return true;
663}

◆ minRange()

const IOVRange & CondAttrListCollection::minRange ( ) const
inline

Current minimal IOVRange.

Definition at line 437 of file CondAttrListCollection.h.

438{
439 return (m_minRange);
440}

◆ name_begin()

CondAttrListCollection::name_const_iterator CondAttrListCollection::name_begin ( ) const
inline

Access to Chan/Name pairs via iterators.

Access to chan/name pairs via iterators.

Definition at line 363 of file CondAttrListCollection.h.

364{
365 return (m_nameMap.begin());
366}

◆ name_end()

CondAttrListCollection::name_const_iterator CondAttrListCollection::name_end ( ) const
inline

Definition at line 369 of file CondAttrListCollection.h.

370{
371 return (m_nameMap.end());
372}

◆ name_size()

CondAttrListCollection::name_size_type CondAttrListCollection::name_size ( ) const
inline

number of Chan/Name pairs

number of pairs

Definition at line 376 of file CondAttrListCollection.h.

377{
378 return (m_nameMap.size());
379}

◆ operator!=()

bool CondAttrListCollection::operator!= ( const CondAttrListCollection & rhs) const
inline

Comparison operator.

Compares channels, IOVs and attributes. For attributes only types and values are compared, not the attribute names

Definition at line 614 of file CondAttrListCollection.h.

615{
616 return (!((*this) == rhs));
617}

◆ operator=()

CondAttrListCollection & CondAttrListCollection::operator= ( const CondAttrListCollection & rhs)
delete

◆ operator==()

bool CondAttrListCollection::operator== ( const CondAttrListCollection & rhs) const
inline

Equal operator.

Compares channels, IOVs and attributes. For attributes only types and values are compared, not the attribute names

Definition at line 601 of file CondAttrListCollection.h.

602{
603
604 // Compare minRange
605 if (m_minRange != rhs.m_minRange) return false;
606 // Rest is in isSameButMinRange
607 return (isSameButMinRange (rhs));
608}
bool isSameButMinRange(const CondAttrListCollection &rhs, bool ignoreIOVs=false) const
Equal operator which ignores minRange.

◆ resetMinRange()

void CondAttrListCollection::resetMinRange ( )
inline

Reset minRange according to the IOVs of the contained channels.

This is needed to expand minRange, done with a subsequent addNewStart/Stop.

Definition at line 528 of file CondAttrListCollection.h.

529{
530 // Reset minRange to max
531 if (m_minRange.start().isTimestamp()) {
532 m_minRange = IOVRange(IOVTime(IOVTime::MINTIMESTAMP), IOVTime(IOVTime::MAXTIMESTAMP));
533 }
534 else {
535 m_minRange = IOVRange(IOVTime(IOVTime::MINRUN, IOVTime::MINEVENT),
537 }
539 iov_const_iterator last1 = iov_end();
540 for (; it1 != last1; ++it1) {
541 const IOVTime& start = (*it1).second.start();
542 const IOVTime& stop = (*it1).second.stop();
543 if (start > m_minRange.start() && stop < m_minRange.stop()) {
544 m_minRange = IOVRange(start, stop);
545 }
546 else if (start > m_minRange.start()) {
547 m_minRange = IOVRange(start,m_minRange.stop());
548 }
549 else if (stop < m_minRange.stop()) {
550 m_minRange = IOVRange(m_minRange.start(), stop);
551 }
552 }
553}
iov_const_iterator iov_end() const
iov_const_iterator iov_begin() const
Access to Chan/IOV pairs via iterators.

◆ size()

CondAttrListCollection::size_type CondAttrListCollection::size ( ) const
inline

number of Chan/AttributeList pairs

number of pairs

Definition at line 321 of file CondAttrListCollection.h.

322{
323 return (m_attrMap.size());
324}

Member Data Documentation

◆ m_attrMap

ChanAttrListMap CondAttrListCollection::m_attrMap
private

Definition at line 190 of file CondAttrListCollection.h.

◆ m_hasRunLumiBlockTime

bool CondAttrListCollection::m_hasRunLumiBlockTime
private

Definition at line 195 of file CondAttrListCollection.h.

◆ m_hasUniqueIOV

bool CondAttrListCollection::m_hasUniqueIOV
private

Definition at line 194 of file CondAttrListCollection.h.

◆ m_iovMap

ChanIOVMap CondAttrListCollection::m_iovMap
private

Definition at line 191 of file CondAttrListCollection.h.

◆ m_minRange

IOVRange CondAttrListCollection::m_minRange
private

Definition at line 193 of file CondAttrListCollection.h.

◆ m_nameMap

ChanNameMap CondAttrListCollection::m_nameMap
private

Definition at line 192 of file CondAttrListCollection.h.

◆ m_spec

coral::AttributeListSpecification* CondAttrListCollection::m_spec
private

Definition at line 196 of file CondAttrListCollection.h.


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