CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions
edm::IndexIntoFile::IndexIntoFileItrSorted Class Reference

#include <IndexIntoFile.h>

Inheritance diagram for edm::IndexIntoFile::IndexIntoFileItrSorted:
edm::IndexIntoFile::IndexIntoFileItrImpl

Public Member Functions

virtual IndexIntoFileItrImplclone () const
 
virtual EntryNumber_t entry () const
 
 IndexIntoFileItrSorted (IndexIntoFile const *indexIntoFile, EntryType entryType, int indexToRun, int indexToLumi, int indexToEventRange, long long indexToEvent, long long nEvents)
 
virtual LuminosityBlockNumber_t lumi () const
 
virtual EntryNumber_t peekAheadAtEventEntry () const
 
virtual LuminosityBlockNumber_t peekAheadAtLumi () const
 
virtual int processHistoryIDIndex () const
 
virtual RunNumber_t run () const
 
virtual bool skipLumiInRun ()
 
- Public Member Functions inherited from edm::IndexIntoFile::IndexIntoFileItrImpl
void advanceToNextLumiOrRun ()
 
void advanceToNextRun ()
 
void copyPosition (IndexIntoFileItrImpl const &position)
 
EntryNumber_t firstEventEntryThisLumi ()
 
EntryNumber_t firstEventEntryThisRun ()
 
EntryType getEntryType () const
 
IndexIntoFile const * indexIntoFile () const
 
 IndexIntoFileItrImpl (IndexIntoFile const *indexIntoFile, EntryType entryType, int indexToRun, int indexToLumi, int indexToEventRange, long long indexToEvent, long long nEvents)
 
long long indexToEvent () const
 
int indexToEventRange () const
 
int indexToLumi () const
 
int indexToRun () const
 
void initializeLumi ()
 
void initializeRun ()
 
long long nEvents () const
 
void next ()
 
bool operator== (IndexIntoFileItrImpl const &right) const
 
int size () const
 
void skipEventBackward (int &phIndexOfEvent, RunNumber_t &runOfEvent, LuminosityBlockNumber_t &lumiOfEvent, EntryNumber_t &eventEntry)
 
void skipEventForward (int &phIndexOfSkippedEvent, RunNumber_t &runOfSkippedEvent, LuminosityBlockNumber_t &lumiOfSkippedEvent, EntryNumber_t &skippedEventEntry)
 
bool skipToNextEventInLumi ()
 
EntryType type () const
 
virtual ~IndexIntoFileItrImpl ()
 

Private Member Functions

virtual EntryType getRunOrLumiEntryType (int index) const
 
virtual void initializeLumi_ ()
 
virtual bool isSameLumi (int index1, int index2) const
 
virtual bool isSameRun (int index1, int index2) const
 
virtual bool nextEventRange ()
 
virtual bool previousEventRange ()
 
virtual bool setToLastEventInRange (int index)
 

Additional Inherited Members

- Protected Member Functions inherited from edm::IndexIntoFile::IndexIntoFileItrImpl
void setIndexToEvent (long long value)
 
void setIndexToEventRange (int value)
 
void setIndexToLumi (int value)
 
void setInvalid ()
 
void setNEvents (long long value)
 

Detailed Description

Definition at line 609 of file IndexIntoFile.h.

Constructor & Destructor Documentation

edm::IndexIntoFile::IndexIntoFileItrSorted::IndexIntoFileItrSorted ( IndexIntoFile const *  indexIntoFile,
EntryType  entryType,
int  indexToRun,
int  indexToLumi,
int  indexToEventRange,
long long  indexToEvent,
long long  nEvents 
)

Definition at line 1602 of file IndexIntoFile.cc.

References edm::IndexIntoFile::fillRunOrLumiIndexes().

1608  :
1610  entryType,
1611  indexToRun,
1612  indexToLumi,
1614  indexToEvent,
1615  nEvents) {
1617  }
IndexIntoFile const * indexIntoFile() const
IndexIntoFileItrImpl(IndexIntoFile const *indexIntoFile, EntryType entryType, int indexToRun, int indexToLumi, int indexToEventRange, long long indexToEvent, long long nEvents)
void fillRunOrLumiIndexes() const

Member Function Documentation

IndexIntoFile::IndexIntoFileItrImpl * edm::IndexIntoFile::IndexIntoFileItrSorted::clone ( void  ) const
virtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1619 of file IndexIntoFile.cc.

1619  {
1620  return new IndexIntoFileItrSorted(*this);
1621  }
IndexIntoFileItrSorted(IndexIntoFile const *indexIntoFile, EntryType entryType, int indexToRun, int indexToLumi, int indexToEventRange, long long indexToEvent, long long nEvents)
IndexIntoFile::EntryNumber_t edm::IndexIntoFile::IndexIntoFileItrSorted::entry ( ) const
virtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1638 of file IndexIntoFile.cc.

References i, edm::IndexIntoFile::invalidEntry, edm::IndexIntoFile::kEnd, edm::IndexIntoFile::kLumi, and edm::IndexIntoFile::kRun.

1638  {
1639  if(type() == kEnd) return invalidEntry;
1640  if(type() == kRun) {
1641  int i = indexIntoFile()->runOrLumiIndexes()[indexToRun()].indexToGetEntry();
1642  return indexIntoFile()->runOrLumiEntries()[i].entry();
1643  }
1644  if(type() == kLumi) {
1645  int i = indexIntoFile()->runOrLumiIndexes()[indexToLumi()].indexToGetEntry();
1646  return indexIntoFile()->runOrLumiEntries()[i].entry();
1647  }
1648  long long eventNumberIndex =
1649  indexIntoFile()->runOrLumiIndexes()[indexToEventRange()].beginEventNumbers() +
1650  indexToEvent();
1652  return indexIntoFile()->eventEntries().at(eventNumberIndex).entry();
1653  }
int i
Definition: DBlmapReader.cc:9
IndexIntoFile const * indexIntoFile() const
std::vector< EventEntry > & eventEntries() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
std::vector< RunOrLumiEntry > const & runOrLumiEntries() const
Used internally and for test purposes.
void fillEventEntries() const
static EntryNumber_t const invalidEntry
IndexIntoFile::EntryType edm::IndexIntoFile::IndexIntoFileItrSorted::getRunOrLumiEntryType ( int  index) const
privatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1730 of file IndexIntoFile.cc.

References edm::IndexIntoFile::kEnd, edm::IndexIntoFile::kLumi, edm::IndexIntoFile::kRun, edm::IndexIntoFile::runOrLumiIndexes(), and findQualityFiles::size.

1730  {
1731  if(index < 0 || index >= size()) {
1732  return kEnd;
1733  } else if(indexIntoFile()->runOrLumiIndexes()[index].isRun()) {
1734  return kRun;
1735  }
1736  return kLumi;
1737  }
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
void edm::IndexIntoFile::IndexIntoFileItrSorted::initializeLumi_ ( )
privatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1670 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidIndex, nEvents, and edm::IndexIntoFile::runOrLumiIndexes().

1670  {
1671  assert(indexToLumi() != invalidIndex);
1673  setIndexToEvent(0);
1674  setNEvents(
1675  indexIntoFile()->runOrLumiIndexes()[indexToLumi()].endEventNumbers() -
1676  indexIntoFile()->runOrLumiIndexes()[indexToLumi()].beginEventNumbers());
1677  if(nEvents() == 0){
1679  }
1680  }
static int const invalidIndex
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
bool edm::IndexIntoFile::IndexIntoFileItrSorted::isSameLumi ( int  index1,
int  index2 
) const
privatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1739 of file IndexIntoFile.cc.

References findQualityFiles::size.

1739  {
1740  if(index1 < 0 || index1 >= size() || index2 < 0 || index2 >= size()) {
1741  return false;
1742  }
1743  return indexIntoFile()->runOrLumiIndexes()[index1].lumi() ==
1744  indexIntoFile()->runOrLumiIndexes()[index2].lumi();
1745  }
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
bool edm::IndexIntoFile::IndexIntoFileItrSorted::isSameRun ( int  index1,
int  index2 
) const
privatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1747 of file IndexIntoFile.cc.

References findQualityFiles::size.

1747  {
1748  if(index1 < 0 || index1 >= size() || index2 < 0 || index2 >= size()) {
1749  return false;
1750  }
1751  return indexIntoFile()->runOrLumiIndexes()[index1].run() ==
1752  indexIntoFile()->runOrLumiIndexes()[index2].run() &&
1753  indexIntoFile()->runOrLumiIndexes()[index1].processHistoryIDIndex() ==
1754  indexIntoFile()->runOrLumiIndexes()[index2].processHistoryIDIndex();
1755  }
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
LuminosityBlockNumber_t edm::IndexIntoFile::IndexIntoFileItrSorted::lumi ( ) const
virtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1633 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidLumi, edm::IndexIntoFile::kEnd, and edm::IndexIntoFile::kRun.

1633  {
1634  if(type() == kEnd || type() == kRun) return invalidLumi;
1635  return indexIntoFile()->runOrLumiIndexes()[indexToLumi()].lumi();
1636  }
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
static LuminosityBlockNumber_t const invalidLumi
bool edm::IndexIntoFile::IndexIntoFileItrSorted::nextEventRange ( )
privatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1682 of file IndexIntoFile.cc.

1682  {
1683  return false;
1684  }
IndexIntoFile::EntryNumber_t edm::IndexIntoFile::IndexIntoFileItrSorted::peekAheadAtEventEntry ( ) const
virtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1660 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidEntry, edm::IndexIntoFile::invalidIndex, and nEvents.

1660  {
1661  if(indexToLumi() == invalidIndex) return invalidEntry;
1662  if(indexToEvent() >= nEvents()) return invalidEntry;
1663  long long eventNumberIndex =
1664  indexIntoFile()->runOrLumiIndexes()[indexToEventRange()].beginEventNumbers() +
1665  indexToEvent();
1667  return indexIntoFile()->eventEntries().at(eventNumberIndex).entry();
1668  }
static int const invalidIndex
IndexIntoFile const * indexIntoFile() const
std::vector< EventEntry > & eventEntries() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
void fillEventEntries() const
static EntryNumber_t const invalidEntry
LuminosityBlockNumber_t edm::IndexIntoFile::IndexIntoFileItrSorted::peekAheadAtLumi ( ) const
virtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1655 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidIndex, and edm::IndexIntoFile::invalidLumi.

1655  {
1656  if(indexToLumi() == invalidIndex) return invalidLumi;
1657  return indexIntoFile()->runOrLumiIndexes()[indexToLumi()].lumi();
1658  }
static int const invalidIndex
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
static LuminosityBlockNumber_t const invalidLumi
bool edm::IndexIntoFile::IndexIntoFileItrSorted::previousEventRange ( )
privatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1686 of file IndexIntoFile.cc.

1686  {
1687  return false;
1688  }
int edm::IndexIntoFile::IndexIntoFileItrSorted::processHistoryIDIndex ( ) const
virtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1623 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidIndex, and edm::IndexIntoFile::kEnd.

1623  {
1624  if(type() == kEnd) return invalidIndex;
1625  return indexIntoFile()->runOrLumiIndexes()[indexToRun()].processHistoryIDIndex();
1626  }
static int const invalidIndex
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
RunNumber_t edm::IndexIntoFile::IndexIntoFileItrSorted::run ( ) const
virtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1628 of file IndexIntoFile.cc.

References edm::IndexIntoFile::invalidRun, and edm::IndexIntoFile::kEnd.

Referenced by Types.LuminosityBlockID::cppID().

1628  {
1629  if(type() == kEnd) return invalidRun;
1630  return indexIntoFile()->runOrLumiIndexes()[indexToRun()].run();
1631  }
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
static RunNumber_t const invalidRun
bool edm::IndexIntoFile::IndexIntoFileItrSorted::setToLastEventInRange ( int  index)
privatevirtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1690 of file IndexIntoFile.cc.

References getHLTprescales::index, nEvents, and edm::IndexIntoFile::runOrLumiIndexes().

1690  {
1691  long long nEventsInRange =
1692  indexIntoFile()->runOrLumiIndexes()[index].endEventNumbers() -
1693  indexIntoFile()->runOrLumiIndexes()[index].beginEventNumbers();
1694  if(nEventsInRange == 0) {
1695  return false;
1696  }
1697  while(index > 0 &&
1698  !indexIntoFile()->runOrLumiIndexes()[index - 1].isRun() &&
1699  isSameLumi(index, index - 1)) {
1700  --index;
1701  }
1702  assert(nEventsInRange ==
1703  indexIntoFile()->runOrLumiIndexes()[index].endEventNumbers() -
1704  indexIntoFile()->runOrLumiIndexes()[index].beginEventNumbers());
1705 
1707  setNEvents(nEventsInRange);
1708  assert(nEvents() > 0);
1709  setIndexToEvent(nEventsInRange - 1);
1710  return true;
1711  }
virtual bool isSameLumi(int index1, int index2) const
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const
bool edm::IndexIntoFile::IndexIntoFileItrSorted::skipLumiInRun ( )
virtual

Implements edm::IndexIntoFile::IndexIntoFileItrImpl.

Definition at line 1713 of file IndexIntoFile.cc.

References i, edm::IndexIntoFile::invalidIndex, fjr2json::lumi, edm::IndexIntoFile::runOrLumiIndexes(), and findQualityFiles::size.

1713  {
1714  if(indexToLumi() == invalidIndex) return false;
1715  for(int i = 1; indexToLumi() + i < size(); ++i) {
1716  int newLumi = indexToLumi() + i;
1717  if(indexIntoFile()->runOrLumiIndexes()[newLumi].isRun()) {
1718  return false; // hit next run
1719  } else if(indexIntoFile()->runOrLumiIndexes()[newLumi].lumi() ==
1721  continue;
1722  }
1723  setIndexToLumi(newLumi);
1724  initializeLumi();
1725  return true; // hit next lumi
1726  }
1727  return false; // hit the end of the IndexIntoFile
1728  }
int i
Definition: DBlmapReader.cc:9
static int const invalidIndex
virtual LuminosityBlockNumber_t lumi() const
IndexIntoFile const * indexIntoFile() const
std::vector< RunOrLumiIndexes > & runOrLumiIndexes() const