CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
DQMRootSource Class Reference
Inheritance diagram for DQMRootSource:
edm::InputSource edm::ProductRegistryHelper

Classes

class  RunLumiPHIDKey
 
class  RunPHIDKey
 

Public Member Functions

 DQMRootSource (edm::ParameterSet const &, const edm::InputSourceDescription &)
 
virtual ~DQMRootSource ()
 
- Public Member Functions inherited from edm::InputSource
boost::shared_ptr
< ActivityRegistry
actReg () const
 Accessor for Activity Registry. More...
 
boost::shared_ptr
< BranchIDListHelper
branchIDListHelper () const
 Accessor for branchIDListHelper. More...
 
void closeFile (FileBlock *, bool cleaningUpAfterException)
 close current file More...
 
void doBeginJob ()
 Called by framework at beginning of job. More...
 
void doBeginLumi (LuminosityBlockPrincipal &lbp)
 Called by framework at beginning of lumi block. More...
 
void doBeginRun (RunPrincipal &rp)
 Called by framework at beginning of run. More...
 
void doEndJob ()
 Called by framework at end of job. More...
 
void doEndLumi (LuminosityBlockPrincipal &lbp, bool cleaningUpAfterException)
 Called by framework at end of lumi block. More...
 
void doEndRun (RunPrincipal &rp, bool cleaningUpAfterException)
 Called by framework at end of run. More...
 
void doPostForkReacquireResources (boost::shared_ptr< multicore::MessageReceiverForSource >)
 
void doPreForkReleaseResources ()
 Called by the framework before forking the process. More...
 
ProcessingController::ForwardState forwardState () const
 
bool goToEvent (EventID const &eventID)
 
 InputSource (ParameterSet const &, InputSourceDescription const &)
 Constructor. More...
 
 InputSource (InputSource const &)=delete
 
void issueReports (EventID const &eventID)
 issue an event report More...
 
LuminosityBlockNumber_t luminosityBlock () const
 Accessor for current luminosity block number. More...
 
boost::shared_ptr
< LuminosityBlockAuxiliary
luminosityBlockAuxiliary () const
 Called by the framework to merge or insert lumi in principal cache. More...
 
int maxEvents () const
 
int maxLuminosityBlocks () const
 
ModuleDescription const & moduleDescription () const
 Accessor for 'module' description. More...
 
ItemType nextItemType ()
 
InputSourceoperator= (InputSource const &)=delete
 
bool primary () const
 Accessor for primary input source flag. More...
 
ProcessConfiguration const & processConfiguration () const
 Accessor for Process Configuration. More...
 
std::string const & processGUID () const
 Accessor for global process identifier. More...
 
ProcessingMode processingMode () const
 RunsLumisAndEvents (default), RunsAndLumis, or Runs. More...
 
boost::shared_ptr
< ProductRegistry const > 
productRegistry () const
 Accessor for product registry. More...
 
bool randomAccess () const
 
boost::shared_ptr
< LuminosityBlockPrincipal
readAndCacheLumi (HistoryAppender &historyAppender)
 Read next luminosity block (new lumi) More...
 
boost::shared_ptr< RunPrincipalreadAndCacheRun (HistoryAppender &historyAppender)
 Read next run (new run) More...
 
void readAndMergeLumi (boost::shared_ptr< LuminosityBlockPrincipal > lbp)
 Read next luminosity block (same as a prior lumi) More...
 
void readAndMergeRun (boost::shared_ptr< RunPrincipal > rp)
 Read next run (same as a prior run) More...
 
EventPrincipalreadEvent (EventPrincipal &ep)
 
EventPrincipalreadEvent (EventPrincipal &ep, EventID const &)
 Read a specific event. More...
 
std::unique_ptr< FileBlockreadFile ()
 Read next file. More...
 
boost::shared_ptr
< LuminosityBlockAuxiliary
readLuminosityBlockAuxiliary ()
 Read next luminosity block Auxilary. More...
 
boost::shared_ptr< RunAuxiliaryreadRunAuxiliary ()
 Read next run Auxiliary. More...
 
ProcessHistoryID const & reducedProcessHistoryID () const
 
void registerProducts ()
 Register any produced products. More...
 
int remainingEvents () const
 
int remainingLuminosityBlocks () const
 
void repeat ()
 Reset the remaining number of events/lumis to the maximum number. More...
 
ProcessingController::ReverseState reverseState () const
 
void rewind ()
 Begin again at the first event. More...
 
RunNumber_t run () const
 Accessor for current run number. More...
 
boost::shared_ptr< RunAuxiliaryrunAuxiliary () const
 Called by the framework to merge or insert run in principal cache. More...
 
void setLuminosityBlockNumber_t (LuminosityBlockNumber_t lb)
 Set the luminosity block ID. More...
 
void setRunNumber (RunNumber_t r)
 Set the run number. More...
 
void skipEvents (int offset)
 
bool skipForForking ()
 
Timestamp const & timestamp () const
 Accessor for the current time, as seen by the input source. More...
 
virtual ~InputSource ()
 Destructor. More...
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::InputSource
static const std::string & baseType ()
 
static void fillDescription (ParameterSetDescription &desc)
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 

Private Member Functions

virtual void closeFile_ ()
 
 DQMRootSource (const DQMRootSource &)
 
virtual edm::InputSource::ItemType getNextItemType ()
 
void logFileAction (char const *msg, char const *fileName) const
 
const DQMRootSourceoperator= (const DQMRootSource &)
 
void readElements ()
 
virtual edm::EventPrincipalreadEvent_ (edm::EventPrincipal &)
 
virtual std::unique_ptr
< edm::FileBlock
readFile_ ()
 
virtual boost::shared_ptr
< edm::LuminosityBlockPrincipal
readLuminosityBlock_ (boost::shared_ptr< edm::LuminosityBlockPrincipal > lbCache)
 
virtual boost::shared_ptr
< edm::LuminosityBlockAuxiliary
readLuminosityBlockAuxiliary_ ()
 
void readNextItemType ()
 
virtual boost::shared_ptr
< edm::RunPrincipal
readRun_ (boost::shared_ptr< edm::RunPrincipal > rpCache)
 
virtual boost::shared_ptr
< edm::RunAuxiliary
readRunAuxiliary_ ()
 
void setupFile (unsigned int iIndex)
 

Private Attributes

edm::InputFileCatalog m_catalog
 
std::auto_ptr< TFile > m_file
 
size_t m_fileIndex
 
unsigned int m_filterOnRun
 
std::vector
< edm::ProcessHistoryID
m_historyIDs
 
edm::JobReport::Token m_jrToken
 
bool m_justOpenedFileSoNeedToGenerateRunTransition
 
unsigned int m_lastSeenLumi2
 
edm::ProcessHistoryID m_lastSeenReducedPHID
 
edm::ProcessHistoryID m_lastSeenReducedPHID2
 
unsigned int m_lastSeenRun
 
unsigned int m_lastSeenRun2
 
edm::LuminosityBlockAuxiliary m_lumiAux
 
std::set< MonitorElement * > m_lumiElements
 
std::list< unsigned int >::iterator m_nextIndexItr
 
edm::InputSource::ItemType m_nextItemType
 
std::list< unsigned int > m_orderedIndices
 
std::list< unsigned int >::iterator m_presentIndexItr
 
size_t m_presentlyOpenFileIndex
 
std::vector
< edm::ProcessHistoryID
m_reducedHistoryIDs
 
edm::RunAuxiliary m_runAux
 
std::set< MonitorElement * > m_runElements
 
std::vector< RunLumiToRange > m_runlumiToRange
 
bool m_shouldReadMEs
 
std::vector< boost::shared_ptr
< TreeReaderBase > > 
m_treeReaders
 
std::vector< TTree * > m_trees
 

Additional Inherited Members

- Public Types inherited from edm::InputSource
enum  ItemType {
  IsInvalid, IsStop, IsFile, IsRun,
  IsLumi, IsEvent, IsRepeat
}
 
enum  ProcessingMode { Runs, RunsAndLumis, RunsLumisAndEvents }
 
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Protected Member Functions inherited from edm::InputSource
void decreaseRemainingEventsBy (int iSkipped)
 
bool eventCached () const
 
boost::shared_ptr
< LuminosityBlockPrincipal >
const 
luminosityBlockPrincipal () const
 
bool newLumi () const
 
bool newRun () const
 
ProductRegistryproductRegistryUpdate () const
 
void reset () const
 
void resetEventCached ()
 
void resetLuminosityBlockAuxiliary (bool isNewLumi=true) const
 
void resetNewLumi ()
 
void resetNewRun ()
 
void resetRunAuxiliary (bool isNewRun=true) const
 
boost::shared_ptr
< RunPrincipal > const 
runPrincipal () const
 
void setEventCached ()
 Called by the framework to merge or ached() const {return eventCached_;}. More...
 
void setLuminosityBlockAuxiliary (LuminosityBlockAuxiliary *lbp)
 
void setNewLumi ()
 
void setNewRun ()
 
void setRunAuxiliary (RunAuxiliary *rp)
 
void setTimestamp (Timestamp const &theTime)
 To set the current time, as seen by the input source. More...
 
virtual void skip (int offset)
 
ItemType state () const
 

Detailed Description

Definition at line 291 of file DQMRootSource.cc.

Constructor & Destructor Documentation

DQMRootSource::DQMRootSource ( edm::ParameterSet const &  iPSet,
const edm::InputSourceDescription iDesc 
)

Definition at line 421 of file DQMRootSource.cc.

References edm::InputFileCatalog::fileNames(), edm::InputSource::IsStop, kFloatIndex, kIntIndex, kStringIndex, kTH1DIndex, kTH1FIndex, kTH1SIndex, kTH2DIndex, kTH2FIndex, kTH2SIndex, kTH3FIndex, kTProfile2DIndex, kTProfileIndex, m_catalog, m_fileIndex, m_nextItemType, and m_treeReaders.

421  :
422  edm::InputSource(iPSet,iDesc),
423  m_catalog(iPSet.getUntrackedParameter<std::vector<std::string> >("fileNames"),
424  iPSet.getUntrackedParameter<std::string>("overrideCatalog")),
426  m_fileIndex(0),
428  m_trees(kNIndicies,static_cast<TTree*>(0)),
429  m_treeReaders(kNIndicies,boost::shared_ptr<TreeReaderBase>()),
431  m_lastSeenRun(0),
433  m_lastSeenRun2(0),
434  m_lastSeenLumi2(0),
435  m_filterOnRun(iPSet.getUntrackedParameter<unsigned int>("filterOnRun", 0)),
437  m_shouldReadMEs(true)
438 {
439  if(m_fileIndex ==m_catalog.fileNames().size()) {
441  } else{
442  m_treeReaders[kIntIndex].reset(new TreeSimpleReader<Long64_t>());
443  m_treeReaders[kFloatIndex].reset(new TreeSimpleReader<double>());
444  m_treeReaders[kStringIndex].reset(new TreeObjectReader<std::string>());
445  m_treeReaders[kTH1FIndex].reset(new TreeObjectReader<TH1F>());
446  m_treeReaders[kTH1SIndex].reset(new TreeObjectReader<TH1S>());
447  m_treeReaders[kTH1DIndex].reset(new TreeObjectReader<TH1D>());
448  m_treeReaders[kTH2FIndex].reset(new TreeObjectReader<TH2F>());
449  m_treeReaders[kTH2SIndex].reset(new TreeObjectReader<TH2S>());
450  m_treeReaders[kTH2DIndex].reset(new TreeObjectReader<TH2D>());
451  m_treeReaders[kTH3FIndex].reset(new TreeObjectReader<TH3F>());
452  m_treeReaders[kTProfileIndex].reset(new TreeObjectReader<TProfile>());
453  m_treeReaders[kTProfile2DIndex].reset(new TreeObjectReader<TProfile2D>());
454  }
455 
456 }
edm::InputSource::ItemType m_nextItemType
unsigned int m_lastSeenRun2
std::vector< boost::shared_ptr< TreeReaderBase > > m_treeReaders
size_t m_presentlyOpenFileIndex
unsigned int m_filterOnRun
bool m_justOpenedFileSoNeedToGenerateRunTransition
edm::InputFileCatalog m_catalog
edm::ProcessHistoryID m_lastSeenReducedPHID2
std::vector< TTree * > m_trees
std::vector< std::string > const & fileNames() const
unsigned int m_lastSeenLumi2
edm::ProcessHistoryID m_lastSeenReducedPHID
unsigned int m_lastSeenRun
DQMRootSource::~DQMRootSource ( )
virtual

Definition at line 463 of file DQMRootSource.cc.

References edm::InputFileCatalog::fileNames(), logFileAction(), m_catalog, m_file, and m_presentlyOpenFileIndex.

464 {
465  if(m_file.get() != 0 && m_file->IsOpen()) {
466  m_file->Close();
467  logFileAction(" Closed file ", m_catalog.fileNames()[m_presentlyOpenFileIndex].c_str());
468  }
469 }
void logFileAction(char const *msg, char const *fileName) const
size_t m_presentlyOpenFileIndex
edm::InputFileCatalog m_catalog
std::auto_ptr< TFile > m_file
std::vector< std::string > const & fileNames() const
DQMRootSource::DQMRootSource ( const DQMRootSource )
private

Member Function Documentation

void DQMRootSource::closeFile_ ( )
privatevirtual

Reimplemented from edm::InputSource.

Definition at line 645 of file DQMRootSource.cc.

References edm::JobReport::inputFileClosed(), and m_jrToken.

645  {
648 }
edm::JobReport::Token m_jrToken
void inputFileClosed(Token fileToken)
Definition: JobReport.cc:550
void DQMRootSource::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 408 of file DQMRootSource.cc.

References edm::ConfigurationDescriptions::addDefault(), edm::ParameterSetDescription::addUntracked(), and AlCaHLTBitMon_QueryRunRegistry::string.

408  {
410  desc.addUntracked<std::vector<std::string> >("fileNames")
411  ->setComment("Names of files to be processed.");
412  desc.addUntracked<unsigned int>("filterOnRun",0)
413  ->setComment("Just limit the process to the selected run.");
414  desc.addUntracked<std::string>("overrideCatalog",std::string())
415  ->setComment("An alternate file catalog to use instead of the standard site one.");
416  descriptions.addDefault(desc);
417 }
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
void addDefault(ParameterSetDescription const &psetDescription)
edm::InputSource::ItemType DQMRootSource::getNextItemType ( )
privatevirtual

Implements edm::InputSource.

Definition at line 491 of file DQMRootSource.cc.

References m_nextItemType.

492 {
493  //std::cout <<"getNextItemType "<<m_nextItemType<<std::endl;
494  return m_nextItemType;
495 }
edm::InputSource::ItemType m_nextItemType
void DQMRootSource::logFileAction ( char const *  msg,
char const *  fileName 
) const
private

Definition at line 985 of file DQMRootSource.cc.

References convertXMLtoSQLite_cfg::fileName, and edm::FlushMessageLog().

Referenced by setupFile(), and ~DQMRootSource().

985  {
986  edm::LogAbsolute("fileAction") << std::setprecision(0) << edm::TimeOfDay() << msg << fileName;
988 }
void FlushMessageLog()
const DQMRootSource& DQMRootSource::operator= ( const DQMRootSource )
private
void DQMRootSource::readElements ( )
private

Definition at line 650 of file DQMRootSource.cc.

References getHLTprescales::index, kNoTypesStored, m_orderedIndices, m_presentIndexItr, m_reducedHistoryIDs, m_runlumiToRange, m_shouldReadMEs, m_treeReaders, and matplotRender::reader.

Referenced by readLuminosityBlock_(), and readRun_().

650  {
652  RunLumiToRange runLumiRange = m_runlumiToRange[*m_presentIndexItr];
653  bool shouldContinue = false;
654  do
655  {
656  shouldContinue = false;
658  if(runLumiRange.m_type == kNoTypesStored) {continue;}
659  boost::shared_ptr<TreeReaderBase> reader = m_treeReaders[runLumiRange.m_type];
660  ULong64_t index = runLumiRange.m_firstIndex;
661  ULong64_t endIndex = runLumiRange.m_lastIndex+1;
662  for (; index != endIndex; ++index)
663  {
664  bool isLumi = runLumiRange.m_lumi !=0;
665  if (m_shouldReadMEs)
666  reader->read(index,*store,isLumi);
667 // if (isLumi)
668 // {
669 // std::cout << runLumiRange.m_run << " " << runLumiRange.m_lumi << " lumi element "<< element->getFullname()<<" "<<index<< " " << runLumiRange.m_type << std::endl;
670 // m_lumiElements.insert(element);
671 // }
672 // else
673 // {
674 // std::cout << runLumiRange.m_run << " " << runLumiRange.m_lumi << " run element "<< element->getFullname()<<" "<<index<< " " << runLumiRange.m_type << std::endl;
675 // m_runElements.insert(element);
676 // }
677  }
678  if (m_presentIndexItr != m_orderedIndices.end())
679  {
680  //are there more parts to this same run/lumi?
681  const RunLumiToRange nextRunLumiRange = m_runlumiToRange[*m_presentIndexItr];
682  //continue to the next item if that item is either
683  if ( (m_reducedHistoryIDs.at(nextRunLumiRange.m_historyIDIndex) == m_reducedHistoryIDs.at(runLumiRange.m_historyIDIndex)) &&
684  (nextRunLumiRange.m_run == runLumiRange.m_run) &&
685  (nextRunLumiRange.m_lumi == runLumiRange.m_lumi) )
686  {
687  shouldContinue= true;
688  runLumiRange = nextRunLumiRange;
689  }
690  }
691  } while(shouldContinue);
692 }
std::vector< boost::shared_ptr< TreeReaderBase > > m_treeReaders
std::list< unsigned int >::iterator m_presentIndexItr
std::vector< edm::ProcessHistoryID > m_reducedHistoryIDs
std::vector< RunLumiToRange > m_runlumiToRange
std::list< unsigned int > m_orderedIndices
edm::EventPrincipal * DQMRootSource::readEvent_ ( edm::EventPrincipal )
privatevirtual

Implements edm::InputSource.

Definition at line 486 of file DQMRootSource.cc.

487 {
488  return 0;
489 }
std::unique_ptr< edm::FileBlock > DQMRootSource::readFile_ ( )
privatevirtual

Reimplemented from edm::InputSource.

Definition at line 624 of file DQMRootSource.cc.

References edm::InputFileCatalog::fileNames(), edm::JobReport::inputFileOpened(), edm::InputFileCatalog::logicalFileNames(), m_catalog, m_file, m_fileIndex, m_jrToken, readNextItemType(), setupFile(), and AlCaHLTBitMon_QueryRunRegistry::string.

624  {
625  //std::cout <<"readFile_"<<std::endl;
627  ++m_fileIndex;
629 
633  std::string(),
634  std::string(),
635  "DQMRootSource",
636  "source",
637  m_file->GetUUID().AsString(),//edm::createGlobalIdentifier(),
638  std::vector<std::string>()
639  );
640 
641  return std::unique_ptr<edm::FileBlock>(new edm::FileBlock);
642 }
edm::JobReport::Token m_jrToken
void readNextItemType()
Token inputFileOpened(std::string const &physicalFileName, std::string const &logicalFileName, std::string const &catalog, std::string const &inputType, std::string const &inputSourceClassName, std::string const &moduleLabel, std::string const &guid, std::vector< std::string > const &branchNames)
Definition: JobReport.cc:502
edm::InputFileCatalog m_catalog
std::auto_ptr< TFile > m_file
std::vector< std::string > const & logicalFileNames() const
std::vector< std::string > const & fileNames() const
void setupFile(unsigned int iIndex)
boost::shared_ptr< edm::LuminosityBlockPrincipal > DQMRootSource::readLuminosityBlock_ ( boost::shared_ptr< edm::LuminosityBlockPrincipal lbCache)
privatevirtual

Reimplemented from edm::InputSource.

Definition at line 586 of file DQMRootSource.cc.

References m_lastSeenLumi2, m_lastSeenReducedPHID2, m_lastSeenRun2, m_orderedIndices, m_presentIndexItr, m_reducedHistoryIDs, m_runlumiToRange, m_shouldReadMEs, readElements(), readNextItemType(), and edm::JobReport::reportInputLumiSection().

587 {
588  assert(m_presentIndexItr != m_orderedIndices.end());
589  RunLumiToRange runLumiRange = m_runlumiToRange[*m_presentIndexItr];
590  assert(runLumiRange.m_run == lbCache->id().run());
591  assert(runLumiRange.m_lumi == lbCache->id().luminosityBlock());
592 
593  //NOTE: need to reset all lumi block elements at this point
594  if( ( m_lastSeenLumi2 != runLumiRange.m_lumi ||
595  m_lastSeenRun2 != runLumiRange.m_run ||
596  m_lastSeenReducedPHID2 != m_reducedHistoryIDs.at(runLumiRange.m_historyIDIndex) )
597  && m_shouldReadMEs) {
598 
600  std::vector<MonitorElement*> allMEs = (*store).getAllContents("");
601  for(auto const& ME : allMEs) {
602  // We do not want to reset Run Products here!
603  if (ME->getLumiFlag()) {
604  ME->Reset();
605  }
606  }
607  m_lastSeenReducedPHID2 = m_reducedHistoryIDs.at(runLumiRange.m_historyIDIndex);
608  m_lastSeenRun2 = runLumiRange.m_run;
609  m_lastSeenLumi2 = runLumiRange.m_lumi;
610  }
612  //std::cout <<"readLuminosityBlock_"<<std::endl;
613 
614  readElements();
615 
617  jr->reportInputLumiSection(lbCache->id().run(),lbCache->id().luminosityBlock());
618 
619  lbCache->fillLuminosityBlockPrincipal();
620  return lbCache;
621 }
unsigned int m_lastSeenRun2
void readNextItemType()
std::list< unsigned int >::iterator m_presentIndexItr
std::vector< edm::ProcessHistoryID > m_reducedHistoryIDs
Definition: ME.h:11
std::vector< RunLumiToRange > m_runlumiToRange
edm::ProcessHistoryID m_lastSeenReducedPHID2
std::list< unsigned int > m_orderedIndices
unsigned int m_lastSeenLumi2
void reportInputLumiSection(unsigned int run, unsigned int lumiSectId)
Definition: JobReport.cc:658
boost::shared_ptr< edm::LuminosityBlockAuxiliary > DQMRootSource::readLuminosityBlockAuxiliary_ ( )
privatevirtual

Implements edm::InputSource.

Definition at line 513 of file DQMRootSource.cc.

References m_historyIDs, m_lumiAux, m_nextIndexItr, m_orderedIndices, m_runlumiToRange, and edm::LuminosityBlockAuxiliary::setProcessHistoryID().

514 {
515  //std::cout <<"readLuminosityBlockAuxiliary_"<<std::endl;
516  assert(m_nextIndexItr != m_orderedIndices.end());
517  const RunLumiToRange runLumiRange = m_runlumiToRange[*m_nextIndexItr];
518  m_lumiAux = edm::LuminosityBlockAuxiliary(edm::LuminosityBlockID(runLumiRange.m_run,runLumiRange.m_lumi),
519  edm::Timestamp(runLumiRange.m_beginTime),
520  edm::Timestamp(runLumiRange.m_endTime));
521  assert(m_historyIDs.size() > runLumiRange.m_historyIDIndex);
522  //std::cout <<"lumi "<<m_lumiAux.beginTime().value()<<" "<<runLumiRange.m_beginTime<<std::endl;
523  m_lumiAux.setProcessHistoryID(m_historyIDs[runLumiRange.m_historyIDIndex]);
524 
525  return boost::shared_ptr<edm::LuminosityBlockAuxiliary>(new edm::LuminosityBlockAuxiliary(m_lumiAux));
526 }
std::vector< RunLumiToRange > m_runlumiToRange
edm::LuminosityBlockAuxiliary m_lumiAux
std::vector< edm::ProcessHistoryID > m_historyIDs
std::list< unsigned int > m_orderedIndices
void setProcessHistoryID(ProcessHistoryID const &phid)
std::list< unsigned int >::iterator m_nextIndexItr
void DQMRootSource::readNextItemType ( )
private

Definition at line 694 of file DQMRootSource.cc.

References edm::InputFileCatalog::fileNames(), edm::InputSource::IsFile, edm::InputSource::IsLumi, edm::InputSource::IsRun, edm::InputSource::IsStop, m_catalog, m_fileIndex, m_justOpenedFileSoNeedToGenerateRunTransition, m_lastSeenReducedPHID, m_lastSeenRun, m_nextIndexItr, m_nextItemType, m_orderedIndices, m_reducedHistoryIDs, and m_runlumiToRange.

Referenced by readFile_(), readLuminosityBlock_(), and readRun_().

695 {
696  //Do the work of actually figuring out where next to go
697 
698  assert (m_nextIndexItr != m_orderedIndices.end());
699  RunLumiToRange runLumiRange = m_runlumiToRange[*m_nextIndexItr];
700 
702  if (runLumiRange.m_lumi != 0 && m_nextItemType == edm::InputSource::IsRun) {
704  return;
705  }
706  ++m_nextIndexItr;
707  }
708  else
709  {
710  //NOTE: the following makes the iterator not be advanced in the
711  //do while loop below.
712  runLumiRange.m_run=0;
713  }
714 
715  bool shouldContinue = false;
716  do
717  {
718  shouldContinue = false;
719  if (m_nextIndexItr == m_orderedIndices.end())
720  {
721  //go to next file
723  //std::cout <<"going to next file"<<std::endl;
724  if(m_fileIndex == m_catalog.fileNames().size()) {
726  }
727  break;
728  }
729  const RunLumiToRange nextRunLumiRange = m_runlumiToRange[*m_nextIndexItr];
730  //continue to the next item if that item is the same run or lumi as we just did
731  if( (m_reducedHistoryIDs.at(nextRunLumiRange.m_historyIDIndex) == m_reducedHistoryIDs.at(runLumiRange.m_historyIDIndex) ) &&
732  (nextRunLumiRange.m_run == runLumiRange.m_run) &&
733  (nextRunLumiRange.m_lumi == runLumiRange.m_lumi) ) {
734  shouldContinue= true;
735  ++m_nextIndexItr;
736  //std::cout <<" advancing " <<nextRunLumiRange.m_run<<" "<<nextRunLumiRange.m_lumi<<std::endl;
737  }
738  } while(shouldContinue);
739 
740  if(m_nextIndexItr != m_orderedIndices.end()) {
745  } else {
747  }
748  }
749 }
edm::InputSource::ItemType m_nextItemType
std::vector< edm::ProcessHistoryID > m_reducedHistoryIDs
std::vector< RunLumiToRange > m_runlumiToRange
bool m_justOpenedFileSoNeedToGenerateRunTransition
edm::InputFileCatalog m_catalog
std::list< unsigned int > m_orderedIndices
std::vector< std::string > const & fileNames() const
edm::ProcessHistoryID m_lastSeenReducedPHID
std::list< unsigned int >::iterator m_nextIndexItr
unsigned int m_lastSeenRun
boost::shared_ptr< edm::RunPrincipal > DQMRootSource::readRun_ ( boost::shared_ptr< edm::RunPrincipal rpCache)
privatevirtual

If the collate option is not set for the DQMStore, we should indeed be sure to reset all histograms after a run transition, but we should definitely avoid doing it using a local, private copy of the actual content of the DQMStore. Clients are completely free to delete/add MonitorElements from the DQMStore and the local copy stored in the std::set will never notice it until it will try to reset a deleted object. That's why the resetting directly queries the DQMStore for its current content.

Reimplemented from edm::InputSource.

Definition at line 529 of file DQMRootSource.cc.

References m_filterOnRun, m_justOpenedFileSoNeedToGenerateRunTransition, m_lastSeenReducedPHID, m_lastSeenRun, m_orderedIndices, m_presentIndexItr, m_reducedHistoryIDs, m_runlumiToRange, m_shouldReadMEs, readElements(), readNextItemType(), and edm::JobReport::reportInputRunNumber().

530 {
531  assert(m_presentIndexItr != m_orderedIndices.end());
532  RunLumiToRange runLumiRange = m_runlumiToRange[*m_presentIndexItr];
533 
535  unsigned int runID =rpCache->id().run();
536  assert(runID == runLumiRange.m_run);
537 
538  m_shouldReadMEs = (m_filterOnRun == 0 ||
539  (m_filterOnRun != 0 && m_filterOnRun == runID));
540  // std::cout <<"readRun_"<<std::endl;
541  // std::cout <<"m_shouldReadMEs " << m_shouldReadMEs <<std::endl;
542 
553  //NOTE: need to reset all run elements at this point
554  if( m_lastSeenRun != runID ||
555  m_lastSeenReducedPHID != m_reducedHistoryIDs.at(runLumiRange.m_historyIDIndex) ) {
556  if (m_shouldReadMEs) {
558  std::vector<MonitorElement*> allMEs = (*store).getAllContents("");
559  for(auto const& ME : allMEs) {
560  // We do not want to reset here Lumi products, since a dedicated
561  // resetting is done at every lumi transition.
562  if (ME->getLumiFlag()) continue;
563  if ( !(*store).isCollate() )
564  ME->Reset();
565  }
566  }
567  m_lastSeenReducedPHID = m_reducedHistoryIDs.at(runLumiRange.m_historyIDIndex);
568  m_lastSeenRun = runID;
569  }
570 
572 
573  //NOTE: it is possible to have a Run when all we have stored is lumis
574  if(runLumiRange.m_lumi == 0) {
575  readElements();
576  }
577 
579  jr->reportInputRunNumber(rpCache->id().run());
580 
581  rpCache->fillRunPrincipal();
582  return rpCache;
583 }
void readNextItemType()
std::list< unsigned int >::iterator m_presentIndexItr
unsigned int m_filterOnRun
std::vector< edm::ProcessHistoryID > m_reducedHistoryIDs
Definition: ME.h:11
std::vector< RunLumiToRange > m_runlumiToRange
bool m_justOpenedFileSoNeedToGenerateRunTransition
std::list< unsigned int > m_orderedIndices
void reportInputRunNumber(unsigned int run)
Definition: JobReport.cc:667
edm::ProcessHistoryID m_lastSeenReducedPHID
unsigned int m_lastSeenRun
boost::shared_ptr< edm::RunAuxiliary > DQMRootSource::readRunAuxiliary_ ( )
privatevirtual

Implements edm::InputSource.

Definition at line 497 of file DQMRootSource.cc.

References m_historyIDs, m_nextIndexItr, m_orderedIndices, m_runAux, m_runlumiToRange, and edm::RunAuxiliary::setProcessHistoryID().

498 {
499  //std::cout <<"readRunAuxiliary_"<<std::endl;
500  assert(m_nextIndexItr != m_orderedIndices.end());
501  RunLumiToRange runLumiRange = m_runlumiToRange[*m_nextIndexItr];
502 
503  //NOTE: the setBeginTime and setEndTime functions of RunAuxiliary only work if the previous value was invalid
504  // therefore we must copy
505  m_runAux = edm::RunAuxiliary(runLumiRange.m_run,edm::Timestamp(runLumiRange.m_beginTime),edm::Timestamp(runLumiRange.m_endTime));
506  assert(m_historyIDs.size() > runLumiRange.m_historyIDIndex);
507  //std::cout <<"readRunAuxiliary_ "<<m_historyIDs[runLumiRange.m_historyIDIndex]<<std::endl;
508  m_runAux.setProcessHistoryID(m_historyIDs[runLumiRange.m_historyIDIndex]);
509  return boost::shared_ptr<edm::RunAuxiliary>( new edm::RunAuxiliary(m_runAux) );
510 }
edm::RunAuxiliary m_runAux
std::vector< RunLumiToRange > m_runlumiToRange
std::vector< edm::ProcessHistoryID > m_historyIDs
std::list< unsigned int > m_orderedIndices
std::list< unsigned int >::iterator m_nextIndexItr
void setProcessHistoryID(ProcessHistoryID const &phid)
Definition: RunAuxiliary.h:36
void DQMRootSource::setupFile ( unsigned int  iIndex)
private

Definition at line 752 of file DQMRootSource.cc.

References cms::Exception::addContext(), electronStore::configs, cms::Digest::digest(), edm::detail::ThreadSafeRegistry< KEY, T, E >::extra(), edm::InputFileCatalog::fileNames(), edm::errors::FileOpenError, edm::errors::FileReadError, i, edm::ProcessHistory::id(), getHLTprescales::index, edm::detail::ThreadSafeRegistry< KEY, T, E >::insertMapped(), edm::detail::ThreadSafeRegistry< KEY, T, E >::instance(), kBeginTimeBranch, kEndTimeBranch, kFirstIndex, kIndicesTree, kLastIndex, kLumiBranch, kMetaDataDirectoryAbsolute, kNIndicies, kParameterSetBranch, kParameterSetTree, kPHIndexBranch, kProcessConfigurationParameterSetIDBranch, kProcessConfigurationPassID, kProcessConfigurationProcessNameBranch, kProcessConfigurationReleaseVersion, kProcessHistoryIndexBranch, kProcessHistoryTree, kRunBranch, kTypeBranch, kTypeNames, logFileAction(), m_catalog, m_file, m_historyIDs, m_justOpenedFileSoNeedToGenerateRunTransition, m_nextIndexItr, m_orderedIndices, m_presentIndexItr, m_presentlyOpenFileIndex, m_reducedHistoryIDs, m_runlumiToRange, m_treeReaders, m_trees, AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, and cms::MD5Result::toString().

Referenced by readFile_().

753 {
754  if(m_file.get() != 0 && iIndex > 0) {
755  m_file->Close();
756  logFileAction(" Closed file ", m_catalog.fileNames()[iIndex-1].c_str());
757  }
758  logFileAction(" Initiating request to open file ", m_catalog.fileNames()[iIndex].c_str());
759  m_presentlyOpenFileIndex = iIndex;
760  try {
761  m_file = std::auto_ptr<TFile>(TFile::Open(m_catalog.fileNames()[iIndex].c_str()));
762  } catch(cms::Exception const& e) {
764  ex.addContext("Opening DQM Root file");
765  ex <<"\nInput file " << m_catalog.fileNames()[iIndex] << " was not found, could not be opened, or is corrupted.\n";
766  throw ex;
767  }
768  if(not m_file->IsZombie()) {
769  logFileAction(" Successfully opened file ", m_catalog.fileNames()[iIndex].c_str());
770  } else {
772  ex<<"Input file "<<m_catalog.fileNames()[iIndex].c_str() <<" could not be opened.\n";
773  ex.addContext("Opening DQM Root file");
774  throw ex;
775  }
776  //Check file format version, which is encoded in the Title of the TFile
777  if(0 != strcmp(m_file->GetTitle(),"1")) {
779  ex<<"Input file "<<m_catalog.fileNames()[iIndex].c_str() <<" does not appear to be a DQM Root file.\n";
780  }
781 
782  //Get meta Data
783  TDirectory* metaDir = m_file->GetDirectory(kMetaDataDirectoryAbsolute);
784  if(0==metaDir) {
786  ex<<"Input file "<<m_catalog.fileNames()[iIndex].c_str() <<" appears to be corrupted since it does not have the proper internal structure.\n"
787  " Check to see if the file was closed properly.\n";
788  ex.addContext("Opening DQM Root file");
789  throw ex;
790  }
791  TTree* parameterSetTree = dynamic_cast<TTree*>(metaDir->Get(kParameterSetTree));
792  assert(0!=parameterSetTree);
793 
795  assert(0!=psr);
796  {
797  std::string blob;
798  std::string* pBlob = &blob;
799  parameterSetTree->SetBranchAddress(kParameterSetBranch,&pBlob);
800  for(unsigned int index = 0; index != parameterSetTree->GetEntries();++index)
801  {
802  parameterSetTree->GetEntry(index);
803  cms::Digest dg(blob);
804  edm::ParameterSetID psID(dg.digest().toString());
805  edm::ParameterSet temp(blob,psID);
806  }
807  }
808 
809  {
810  TTree* processHistoryTree = dynamic_cast<TTree*>(metaDir->Get(kProcessHistoryTree));
811  assert(0!=processHistoryTree);
812  unsigned int phIndex = 0;
813  processHistoryTree->SetBranchAddress(kPHIndexBranch,&phIndex);
814  std::string processName;
815  std::string* pProcessName = &processName;
816  processHistoryTree->SetBranchAddress(kProcessConfigurationProcessNameBranch,&pProcessName);
817  std::string parameterSetIDBlob;
818  std::string* pParameterSetIDBlob = &parameterSetIDBlob;
819  processHistoryTree->SetBranchAddress(kProcessConfigurationParameterSetIDBranch,&pParameterSetIDBlob);
820  std::string releaseVersion;
821  std::string* pReleaseVersion = &releaseVersion;
822  processHistoryTree->SetBranchAddress(kProcessConfigurationReleaseVersion,&pReleaseVersion);
823  std::string passID;
824  std::string* pPassID = &passID;
825  processHistoryTree->SetBranchAddress(kProcessConfigurationPassID,&pPassID);
826 
828  assert(0!=pcr);
830  assert(0!=phr);
831  std::vector<edm::ProcessConfiguration> configs;
832  configs.reserve(5);
833  m_historyIDs.clear();
834  m_reducedHistoryIDs.clear();
835  for(unsigned int i=0; i != processHistoryTree->GetEntries(); ++i) {
836  processHistoryTree->GetEntry(i);
837  if(phIndex==0) {
838  if(not configs.empty()) {
839  edm::ProcessHistory ph(configs);
840  m_historyIDs.push_back(ph.id());
841  phr->insertMapped(ph);
842  m_reducedHistoryIDs.push_back(phr->extra().reduceProcessHistoryID(ph.id()));
843  }
844  configs.clear();
845  }
846  edm::ParameterSetID psetID(parameterSetIDBlob);
847  edm::ProcessConfiguration pc(processName, psetID,releaseVersion,passID);
848  pcr->insertMapped(pc);
849  configs.push_back(pc);
850  }
851  if(not configs.empty()) {
852  edm::ProcessHistory ph(configs);
853  m_historyIDs.push_back(ph.id());
854  phr->insertMapped( ph);
855  m_reducedHistoryIDs.push_back(phr->extra().reduceProcessHistoryID(ph.id()));
856  //std::cout <<"inserted "<<ph.id()<<std::endl;
857  }
858  }
859 
860  //Setup the indices
861  TTree* indicesTree = dynamic_cast<TTree*>(m_file->Get(kIndicesTree));
862  assert(0!=indicesTree);
863 
864  m_runlumiToRange.clear();
865  m_runlumiToRange.reserve(indicesTree->GetEntries());
866  m_orderedIndices.clear();
867 
868  RunLumiToRange temp;
869  indicesTree->SetBranchAddress(kRunBranch,&temp.m_run);
870  indicesTree->SetBranchAddress(kLumiBranch,&temp.m_lumi);
871  indicesTree->SetBranchAddress(kBeginTimeBranch,&temp.m_beginTime);
872  indicesTree->SetBranchAddress(kEndTimeBranch,&temp.m_endTime);
873  indicesTree->SetBranchAddress(kProcessHistoryIndexBranch,&temp.m_historyIDIndex);
874  indicesTree->SetBranchAddress(kTypeBranch,&temp.m_type);
875  indicesTree->SetBranchAddress(kFirstIndex,&temp.m_firstIndex);
876  indicesTree->SetBranchAddress(kLastIndex,&temp.m_lastIndex);
877 
878  //Need to reorder items since if there was a merge done the same Run
879  //and/or Lumi can appear multiple times but we want to process them
880  //all at once
881 
882  //We use a std::list for m_orderedIndices since inserting into the
883  //middle of a std::list does not disrupt the iterators to already
884  //existing entries
885 
886  //The Map is used to see if a Run/Lumi pair has appeared before
887  typedef std::map<RunLumiPHIDKey, std::list<unsigned int>::iterator > RunLumiToLastEntryMap;
888  RunLumiToLastEntryMap runLumiToLastEntryMap;
889 
890  //Need to group all lumis for the same run together and move the run
891  //entry to the beginning
892  typedef std::map<RunPHIDKey, std::pair< std::list<unsigned int>::iterator, std::list<unsigned int>::iterator> > RunToFirstLastEntryMap;
893  RunToFirstLastEntryMap runToFirstLastEntryMap;
894 
895  for (Long64_t index = 0; index != indicesTree->GetEntries(); ++index)
896  {
897  indicesTree->GetEntry(index);
898 // std::cout <<"read r:"<<temp.m_run
899 // <<" l:"<<temp.m_lumi
900 // <<" b:"<<temp.m_beginTime
901 // <<" e:"<<temp.m_endTime
902 // <<" fi:" << temp.m_firstIndex
903 // <<" li:" << temp.m_lastIndex
904 // <<" type:" << temp.m_type << std::endl;
905  m_runlumiToRange.push_back(temp);
906 
907  RunLumiPHIDKey runLumi(m_reducedHistoryIDs.at(temp.m_historyIDIndex), temp.m_run, temp.m_lumi);
908  RunPHIDKey runKey(m_reducedHistoryIDs.at(temp.m_historyIDIndex), temp.m_run);
909 
910  RunLumiToLastEntryMap::iterator itFind = runLumiToLastEntryMap.find(runLumi);
911  if (itFind == runLumiToLastEntryMap.end())
912  {
913  //does not already exist
914  //does the run for this already exist?
915  std::list<unsigned int>::iterator itLastOfRun = m_orderedIndices.end();
916 
917  RunToFirstLastEntryMap::iterator itRunFirstLastEntryFind = runToFirstLastEntryMap.find(runKey);
918  bool needNewEntryInRunFirstLastEntryMap = true;
919  if (itRunFirstLastEntryFind != runToFirstLastEntryMap.end())
920  {
921  needNewEntryInRunFirstLastEntryMap=false;
922  if (temp.m_lumi!=0)
923  {
924  //lumis go to the end
925  itLastOfRun = itRunFirstLastEntryFind->second.second;
926  //we want to insert after this one so must advance the iterator
927  ++itLastOfRun;
928  }
929  else
930  {
931  //runs go at the beginning
932  itLastOfRun = itRunFirstLastEntryFind->second.first;
933  }
934  }
935  std::list<unsigned int>::iterator iter = m_orderedIndices.insert(itLastOfRun,index);
936  runLumiToLastEntryMap[runLumi]=iter;
937  if (needNewEntryInRunFirstLastEntryMap)
938  runToFirstLastEntryMap[runKey]=std::make_pair(iter,iter);
939  else
940  {
941  if(temp.m_lumi!=0)
942  {
943  //lumis go at end
944  runToFirstLastEntryMap[runKey].second = iter;
945  }
946  else
947  {
948  //since we haven't yet seen this run/lumi combination it means we haven't yet seen
949  // a run so we can put this first
950  runToFirstLastEntryMap[runKey].first = iter;
951  }
952  }
953  }
954  else
955  {
956  //We need to do a merge since the run/lumi already appeared. Put it after the existing entry
957  //std::cout <<" found a second instance of "<<runLumi.first<<" "<<runLumi.second<<" at "<<index<<std::endl;
958  std::list<unsigned int>::iterator itNext = itFind->second;
959  ++itNext;
960  std::list<unsigned int>::iterator iter = m_orderedIndices.insert(itNext,index);
961  RunToFirstLastEntryMap::iterator itRunFirstLastEntryFind = runToFirstLastEntryMap.find(runKey);
962  if (itRunFirstLastEntryFind->second.second == itFind->second)
963  {
964  //if the previous one was the last in the run, we need to update to make this one the last
965  itRunFirstLastEntryFind->second.second = iter;
966  }
967  itFind->second = iter;
968  }
969  }
972 
973  if(m_nextIndexItr != m_orderedIndices.end()) {
974  for( size_t index = 0; index < kNIndicies; ++index) {
975  m_trees[index] = dynamic_cast<TTree*>(m_file->Get(kTypeNames[index]));
976  assert(0!=m_trees[index]);
977  m_treeReaders[index]->setTree(m_trees[index]);
978  }
979  }
980  //After a file open, the framework expects to see a new 'IsRun'
982 }
int i
Definition: DBlmapReader.cc:9
static const char *const kProcessHistoryTree
Definition: format.h:55
static const char *const kRunBranch
Definition: format.h:42
static const char *const kTypeNames[]
Definition: format.h:29
void logFileAction(char const *msg, char const *fileName) const
std::vector< boost::shared_ptr< TreeReaderBase > > m_treeReaders
static ThreadSafeRegistry * instance()
static const char *const kIndicesTree
Definition: format.h:41
static const char *const kFirstIndex
Definition: format.h:48
static const char *const kLumiBranch
Definition: format.h:43
size_t m_presentlyOpenFileIndex
std::list< unsigned int >::iterator m_presentIndexItr
bool insertMapped(value_type const &v)
std::vector< edm::ProcessHistoryID > m_reducedHistoryIDs
static const char *const kPHIndexBranch
Definition: format.h:56
static const char *const kParameterSetBranch
Definition: format.h:63
std::vector< RunLumiToRange > m_runlumiToRange
std::vector< edm::ProcessHistoryID > m_historyIDs
bool m_justOpenedFileSoNeedToGenerateRunTransition
edm::InputFileCatalog m_catalog
static const char *const kParameterSetTree
Definition: format.h:62
std::list< unsigned int > m_orderedIndices
static const char *const kTypeBranch
Definition: format.h:47
std::auto_ptr< TFile > m_file
static const char *const kProcessHistoryIndexBranch
Definition: format.h:44
static const char *const kEndTimeBranch
Definition: format.h:46
std::vector< TTree * > m_trees
static const char *const kProcessConfigurationPassID
Definition: format.h:60
static const char *const kMetaDataDirectoryAbsolute
Definition: format.h:52
std::vector< std::string > const & fileNames() const
static const char *const kLastIndex
Definition: format.h:49
static const char *const kProcessConfigurationReleaseVersion
Definition: format.h:59
static const char *const kProcessConfigurationProcessNameBranch
Definition: format.h:57
static const char *const kBeginTimeBranch
Definition: format.h:45
std::list< unsigned int >::iterator m_nextIndexItr
static const char *const kProcessConfigurationParameterSetIDBranch
Definition: format.h:58

Member Data Documentation

edm::InputFileCatalog DQMRootSource::m_catalog
private
std::auto_ptr<TFile> DQMRootSource::m_file
private

Definition at line 378 of file DQMRootSource.cc.

Referenced by readFile_(), setupFile(), and ~DQMRootSource().

size_t DQMRootSource::m_fileIndex
private

Definition at line 373 of file DQMRootSource.cc.

Referenced by DQMRootSource(), readFile_(), and readNextItemType().

unsigned int DQMRootSource::m_filterOnRun
private

Definition at line 388 of file DQMRootSource.cc.

Referenced by readRun_().

std::vector<edm::ProcessHistoryID> DQMRootSource::m_historyIDs
private

Definition at line 393 of file DQMRootSource.cc.

Referenced by readLuminosityBlockAuxiliary_(), readRunAuxiliary_(), and setupFile().

edm::JobReport::Token DQMRootSource::m_jrToken
private

Definition at line 396 of file DQMRootSource.cc.

Referenced by closeFile_(), and readFile_().

bool DQMRootSource::m_justOpenedFileSoNeedToGenerateRunTransition
private

Definition at line 389 of file DQMRootSource.cc.

Referenced by readNextItemType(), readRun_(), and setupFile().

unsigned int DQMRootSource::m_lastSeenLumi2
private

Definition at line 387 of file DQMRootSource.cc.

Referenced by readLuminosityBlock_().

edm::ProcessHistoryID DQMRootSource::m_lastSeenReducedPHID
private

Definition at line 383 of file DQMRootSource.cc.

Referenced by readNextItemType(), and readRun_().

edm::ProcessHistoryID DQMRootSource::m_lastSeenReducedPHID2
private

Definition at line 385 of file DQMRootSource.cc.

Referenced by readLuminosityBlock_().

unsigned int DQMRootSource::m_lastSeenRun
private

Definition at line 384 of file DQMRootSource.cc.

Referenced by readNextItemType(), and readRun_().

unsigned int DQMRootSource::m_lastSeenRun2
private

Definition at line 386 of file DQMRootSource.cc.

Referenced by readLuminosityBlock_().

edm::LuminosityBlockAuxiliary DQMRootSource::m_lumiAux
private

Definition at line 370 of file DQMRootSource.cc.

Referenced by readLuminosityBlockAuxiliary_().

std::set<MonitorElement*> DQMRootSource::m_lumiElements
private

Definition at line 391 of file DQMRootSource.cc.

std::list<unsigned int>::iterator DQMRootSource::m_nextIndexItr
private
edm::InputSource::ItemType DQMRootSource::m_nextItemType
private

Definition at line 371 of file DQMRootSource.cc.

Referenced by DQMRootSource(), getNextItemType(), and readNextItemType().

std::list<unsigned int> DQMRootSource::m_orderedIndices
private
std::list<unsigned int>::iterator DQMRootSource::m_presentIndexItr
private

Definition at line 376 of file DQMRootSource.cc.

Referenced by readElements(), readLuminosityBlock_(), readRun_(), and setupFile().

size_t DQMRootSource::m_presentlyOpenFileIndex
private

Definition at line 374 of file DQMRootSource.cc.

Referenced by setupFile(), and ~DQMRootSource().

std::vector<edm::ProcessHistoryID> DQMRootSource::m_reducedHistoryIDs
private
edm::RunAuxiliary DQMRootSource::m_runAux
private

Definition at line 369 of file DQMRootSource.cc.

Referenced by readRunAuxiliary_().

std::set<MonitorElement*> DQMRootSource::m_runElements
private

Definition at line 392 of file DQMRootSource.cc.

std::vector<RunLumiToRange> DQMRootSource::m_runlumiToRange
private
bool DQMRootSource::m_shouldReadMEs
private

Definition at line 390 of file DQMRootSource.cc.

Referenced by readElements(), readLuminosityBlock_(), and readRun_().

std::vector<boost::shared_ptr<TreeReaderBase> > DQMRootSource::m_treeReaders
private

Definition at line 380 of file DQMRootSource.cc.

Referenced by DQMRootSource(), readElements(), and setupFile().

std::vector<TTree*> DQMRootSource::m_trees
private

Definition at line 379 of file DQMRootSource.cc.

Referenced by setupFile().