CMS 3D CMS Logo

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

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...
 
void closeFile (boost::shared_ptr< 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...
 
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 markLumi ()
 Mark lumi as read. More...
 
int markRun ()
 Mark run as read. More...
 
int maxEvents () const
 
int maxLuminosityBlocks () const
 
ModuleDescription const & moduleDescription () const
 Accessor for 'module' description. More...
 
ItemType nextItemType ()
 
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
 
void readAndCacheLumi (bool merge, HistoryAppender &historyAppender)
 Read next luminosity block. More...
 
void readAndCacheRun (bool merge, HistoryAppender &historyAppender)
 Read next run. More...
 
EventPrincipalreadEvent (boost::shared_ptr< LuminosityBlockPrincipal > lbCache)
 
EventPrincipalreadEvent (EventID const &)
 Read a specific event. More...
 
boost::shared_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)
 
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 &)
 

Protected Member Functions

virtual void endLuminosityBlock (edm::LuminosityBlock &)
 
virtual void endRun (edm::Run &)
 
- Protected Member Functions inherited from edm::InputSource
void decreaseRemainingEventsBy (int iSkipped)
 
EventPrincipaleventPrincipalCache ()
 
boost::shared_ptr
< LuminosityBlockPrincipal >
const 
luminosityBlockPrincipal () const
 
PrincipalCache const & principalCache () const
 
PrincipalCacheprincipalCache ()
 
ProductRegistryproductRegistryUpdate () const
 
void reset () const
 
void resetLuminosityBlockAuxiliary () const
 
void resetRunAuxiliary () const
 
boost::shared_ptr
< RunPrincipal > const 
runPrincipal () const
 
void setLuminosityBlockAuxiliary (LuminosityBlockAuxiliary *lbp)
 
void setRunAuxiliary (RunAuxiliary *rp)
 
void setTimestamp (Timestamp const &theTime)
 To set the current time, as seen by the input source. More...
 
ItemType state () const
 

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_ ()
 
virtual boost::shared_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
 
bool m_doNotReadRemainingPartsOfFileSinceFrameworkTerminating
 
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_lastSeenRun
 
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
 
edm::RunAuxiliary m_runAux
 
std::set< MonitorElement * > m_runElements
 
std::vector< RunLumiToRange > m_runlumiToRange
 
bool m_shouldReadMEs
 
bool m_shouldResetLumiMEs
 
bool m_shouldResetRunMEs
 
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
 

Detailed Description

Definition at line 289 of file DQMRootSource.cc.

Constructor & Destructor Documentation

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

Definition at line 380 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.

380  :
381  edm::InputSource(iPSet,iDesc),
382  m_catalog(iPSet.getUntrackedParameter<std::vector<std::string> >("fileNames"),
383  iPSet.getUntrackedParameter<std::string>("overrideCatalog")),
385  m_fileIndex(0),
387  m_trees(kNIndicies,static_cast<TTree*>(0)),
388  m_treeReaders(kNIndicies,boost::shared_ptr<TreeReaderBase>()),
389  m_lastSeenRun(0),
390  m_filterOnRun(iPSet.getUntrackedParameter<unsigned int>("filterOnRun", 0)),
393  m_shouldReadMEs(true),
394  m_shouldResetRunMEs(true),
396 {
397  if(m_fileIndex ==m_catalog.fileNames().size()) {
399  } else{
400  m_treeReaders[kIntIndex].reset(new TreeSimpleReader<Long64_t>());
401  m_treeReaders[kFloatIndex].reset(new TreeSimpleReader<double>());
402  m_treeReaders[kStringIndex].reset(new TreeObjectReader<std::string>());
403  m_treeReaders[kTH1FIndex].reset(new TreeObjectReader<TH1F>());
404  m_treeReaders[kTH1SIndex].reset(new TreeObjectReader<TH1S>());
405  m_treeReaders[kTH1DIndex].reset(new TreeObjectReader<TH1D>());
406  m_treeReaders[kTH2FIndex].reset(new TreeObjectReader<TH2F>());
407  m_treeReaders[kTH2SIndex].reset(new TreeObjectReader<TH2S>());
408  m_treeReaders[kTH2DIndex].reset(new TreeObjectReader<TH2D>());
409  m_treeReaders[kTH3FIndex].reset(new TreeObjectReader<TH3F>());
410  m_treeReaders[kTProfileIndex].reset(new TreeObjectReader<TProfile>());
411  m_treeReaders[kTProfile2DIndex].reset(new TreeObjectReader<TProfile2D>());
412  }
413 
414 }
edm::InputSource::ItemType m_nextItemType
bool m_doNotReadRemainingPartsOfFileSinceFrameworkTerminating
std::vector< boost::shared_ptr< TreeReaderBase > > m_treeReaders
size_t m_presentlyOpenFileIndex
unsigned int m_filterOnRun
bool m_shouldResetLumiMEs
bool m_justOpenedFileSoNeedToGenerateRunTransition
edm::InputFileCatalog m_catalog
bool m_shouldResetRunMEs
std::vector< TTree * > m_trees
std::vector< std::string > const & fileNames() const
unsigned int m_lastSeenRun
DQMRootSource::~DQMRootSource ( )
virtual

Definition at line 421 of file DQMRootSource.cc.

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

422 {
423  if(m_file.get() != 0 && m_file->IsOpen()) {
424  m_file->Close();
425  logFileAction(" Closed file ", m_catalog.fileNames()[m_presentlyOpenFileIndex].c_str());
426  }
427 }
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 633 of file DQMRootSource.cc.

References edm::JobReport::inputFileClosed(), m_doNotReadRemainingPartsOfFileSinceFrameworkTerminating, m_jrToken, m_orderedIndices, m_presentIndexItr, and readElements().

633  {
634  //std::cout <<"closeFile_"<<std::endl;
635  //when going from one file to the next the framework does not call
636  // 'endRun' or 'endLumi' until it looks to see if the other file contains
637  // a new run or lumi. If the other file doesn't then
639  std::list<unsigned int>::iterator lastItr;
640  while(m_presentIndexItr != m_orderedIndices.end()) {
641  //if the last item in the file has no entries then readElement
642  // will not advance so we have to do it ourselves
643  lastItr = m_presentIndexItr;
644  readElements();
645  if(lastItr == m_presentIndexItr) {
647  }
648  }
649  }
652 }
bool m_doNotReadRemainingPartsOfFileSinceFrameworkTerminating
edm::JobReport::Token m_jrToken
std::list< unsigned int >::iterator m_presentIndexItr
void inputFileClosed(Token fileToken)
Definition: JobReport.cc:550
std::list< unsigned int > m_orderedIndices
void DQMRootSource::endLuminosityBlock ( edm::LuminosityBlock iLumi)
protectedvirtual

Reimplemented from edm::InputSource.

Definition at line 620 of file DQMRootSource.cc.

620  {
621  //std::cout <<"DQMRootSource::endLumi"<<std::endl;
622 }
void DQMRootSource::endRun ( edm::Run iRun)
protectedvirtual

Reimplemented from edm::InputSource.

Definition at line 624 of file DQMRootSource.cc.

References m_doNotReadRemainingPartsOfFileSinceFrameworkTerminating.

624  {
625  //std::cout <<"DQMRootSource::endRun"<<std::endl;
626  //NOTE: the framework will call endRun before closeFile in the case
627  //where the frameworks is terminating
629 }
bool m_doNotReadRemainingPartsOfFileSinceFrameworkTerminating
void DQMRootSource::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 367 of file DQMRootSource.cc.

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

367  {
369  desc.addUntracked<std::vector<std::string> >("fileNames")
370  ->setComment("Names of files to be processed.");
371  desc.addUntracked<unsigned int>("filterOnRun",0)
372  ->setComment("Just limit the process to the selected run.");
373  desc.addUntracked<std::string>("overrideCatalog",std::string())
374  ->setComment("An alternate file catalog to use instead of the standard site one.");
375  descriptions.addDefault(desc);
376 }
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 455 of file DQMRootSource.cc.

References m_nextItemType.

456 {
457  //std::cout <<"getNextItemType "<<m_nextItemType<<std::endl;
458  return m_nextItemType;
459 }
edm::InputSource::ItemType m_nextItemType
void DQMRootSource::logFileAction ( char const *  msg,
char const *  fileName 
) const
private

Definition at line 1003 of file DQMRootSource.cc.

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

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

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

Definition at line 654 of file DQMRootSource.cc.

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

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

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

Implements edm::InputSource.

Definition at line 450 of file DQMRootSource.cc.

451 {
452  return 0;
453 }
boost::shared_ptr< edm::FileBlock > DQMRootSource::readFile_ ( )
privatevirtual

Reimplemented from edm::InputSource.

Definition at line 597 of file DQMRootSource.cc.

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

597  {
598  //std::cout <<"readFile_"<<std::endl;
600  ++m_fileIndex;
602 
606  std::string(),
607  std::string(),
608  "DQMRootSource",
609  "source",
610  m_file->GetUUID().AsString(),//edm::createGlobalIdentifier(),
611  std::vector<std::string>()
612  );
613 
615  return boost::shared_ptr<edm::FileBlock>(new edm::FileBlock);
616 }
bool m_doNotReadRemainingPartsOfFileSinceFrameworkTerminating
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 564 of file DQMRootSource.cc.

References m_presentIndexItr, m_runlumiToRange, m_shouldResetLumiMEs, readElements(), readNextItemType(), and edm::JobReport::reportInputLumiSection().

565 {
566  //NOTE: need to reset all lumi block elements at this point
568  std::vector<MonitorElement*> allMEs = (*store).getAllContents("");
569  std::vector<MonitorElement*>::iterator it = allMEs.begin();
570  std::vector<MonitorElement*>::iterator itEnd = allMEs.end();
572  for( ; it != itEnd; ++it)
573  {
574  // We do not want to reset Run Products here!
575  if ((*it)->getLumiFlag())
576  {
577 // std::cout <<"RESETTING "<<(*it)->getName()<<std::endl;
578  (*it)->Reset();
579  }
580  }
581 
583  //std::cout <<"readLuminosityBlock_"<<std::endl;
584  RunLumiToRange runLumiRange = m_runlumiToRange[*m_presentIndexItr];
585  if (runLumiRange.m_run == lbCache->id().run() &&
586  runLumiRange.m_lumi == lbCache->id().luminosityBlock())
587  readElements();
588 
590  jr->reportInputLumiSection(lbCache->id().run(),lbCache->id().luminosityBlock());
591 
592  lbCache->fillLuminosityBlockPrincipal();
593  return lbCache;
594 }
void readNextItemType()
std::list< unsigned int >::iterator m_presentIndexItr
bool m_shouldResetLumiMEs
std::vector< RunLumiToRange > m_runlumiToRange
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 488 of file DQMRootSource.cc.

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

489 {
490  //std::cout <<"readLuminosityBlockAuxiliary_"<<std::endl;
491  assert(m_nextIndexItr != m_orderedIndices.end());
492  const RunLumiToRange runLumiRange = m_runlumiToRange[*m_nextIndexItr];
493  m_lumiAux = edm::LuminosityBlockAuxiliary(edm::LuminosityBlockID(runLumiRange.m_run,runLumiRange.m_lumi),
494  edm::Timestamp(runLumiRange.m_beginTime),
495  edm::Timestamp(runLumiRange.m_endTime));
496  assert(m_historyIDs.size() > runLumiRange.m_historyIDIndex);
497  //std::cout <<"lumi "<<m_lumiAux.beginTime().value()<<" "<<runLumiRange.m_beginTime<<std::endl;
498  m_lumiAux.setProcessHistoryID(m_historyIDs[runLumiRange.m_historyIDIndex]);
499 
500  return boost::shared_ptr<edm::LuminosityBlockAuxiliary>(new edm::LuminosityBlockAuxiliary(m_lumiAux));
501 }
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 697 of file DQMRootSource.cc.

References edm::InputFileCatalog::fileNames(), edm::RunAuxiliary::id(), edm::LuminosityBlockAuxiliary::id(), edm::InputSource::IsFile, edm::InputSource::IsLumi, edm::InputSource::IsRun, edm::InputSource::IsStop, m_catalog, m_fileIndex, m_justOpenedFileSoNeedToGenerateRunTransition, m_lastSeenRun, m_lumiAux, m_nextIndexItr, m_nextItemType, m_orderedIndices, m_runAux, and m_runlumiToRange.

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

698 {
699  //Do the work of actually figuring out where next to go
700  RunLumiToRange runLumiRange = m_runlumiToRange[*m_nextIndexItr];
702  {
703  assert (m_nextIndexItr != m_orderedIndices.end());
704 
705  if(runLumiRange.m_lumi ==0) {
706  //std::cout <<"reading run "<<runLumiRange.m_run<<std::endl;
707  m_runAux.id() = edm::RunID(runLumiRange.m_run);
708  } else {
710  //std::cout <<" proceeding with dummy run";
712  return;
713  }
714  //std::cout <<"reading lumi "<<runLumiRange.m_run<<","<<runLumiRange.m_lumi<<std::endl;
715  m_lumiAux.id() = edm::LuminosityBlockID(runLumiRange.m_run,runLumiRange.m_lumi);
716  }
717  ++m_nextIndexItr;
718  }
719  else
720  {
721  //NOTE: the following causes the iterator to move to before
722  //'begin' but that is OK since the first thing in the 'do while'
723  //loop is to advance the iterator which puts us at the first entry
724  //in the file
725  runLumiRange.m_run=0;
726  }
727 
728  bool shouldContinue = false;
729  do
730  {
731  shouldContinue = false;
732  if (m_nextIndexItr == m_orderedIndices.end())
733  {
734  //go to next file
736  //std::cout <<"going to next file"<<std::endl;
737  if(m_fileIndex == m_catalog.fileNames().size()) {
739  }
740  break;
741  }
742  const RunLumiToRange nextRunLumiRange = m_runlumiToRange[*m_nextIndexItr];
743  //continue to the next item if that item is the same run or lumi as we just did
744  if( (nextRunLumiRange.m_run == runLumiRange.m_run) && (
745  nextRunLumiRange.m_lumi == runLumiRange.m_lumi) ) {
746  shouldContinue= true;
747  runLumiRange = nextRunLumiRange;
748  ++m_nextIndexItr;
749  //std::cout <<" advancing " <<nextRunLumiRange.m_run<<" "<<nextRunLumiRange.m_lumi<<std::endl;
750  }
751 
752  } while(shouldContinue);
753 
754  if(m_nextIndexItr != m_orderedIndices.end()) {
757  //std::cout <<" next is run"<<std::endl;
758  } else {
760  //we have to create a dummy Run since we switched to a lumi in a new run
761  //std::cout <<" next is dummy run "<<m_justOpenedFileSoNeedToGenerateRunTransition<<std::endl;
763  } else {
765  }
766  }
767  }
768 }
edm::InputSource::ItemType m_nextItemType
edm::RunAuxiliary m_runAux
RunID const & id() const
Definition: RunAuxiliary.h:37
std::vector< RunLumiToRange > m_runlumiToRange
edm::LuminosityBlockAuxiliary m_lumiAux
bool m_justOpenedFileSoNeedToGenerateRunTransition
edm::InputFileCatalog m_catalog
std::list< unsigned int > m_orderedIndices
std::vector< std::string > const & fileNames() const
std::list< unsigned int >::iterator m_nextIndexItr
unsigned int m_lastSeenRun
LuminosityBlockID const & id() const
boost::shared_ptr< edm::RunPrincipal > DQMRootSource::readRun_ ( boost::shared_ptr< edm::RunPrincipal rpCache)
privatevirtual

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 504 of file DQMRootSource.cc.

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

505 {
507  unsigned int runID =rpCache->id().run();
508  unsigned int lastRunID = m_lastSeenRun;
509  m_shouldReadMEs = (m_filterOnRun == 0 ||
510  (m_filterOnRun != 0 && m_filterOnRun == runID));
513  // std::cout <<"readRun_"<<std::endl;
514  // std::cout <<"m_shouldReadMEs " << m_shouldReadMEs <<std::endl;
515  // std::cout <<"m_shouldResetRunMEs " << m_shouldResetRunMEs <<std::endl;
516  // std::cout <<"m_shouldResetLumiMEs " << m_shouldResetLumiMEs <<std::endl;
517  m_lastSeenRun = runID;
519 
529  //NOTE: need to reset all run elements at this point
530  if(lastRunID != runID && m_shouldResetRunMEs)
531  {
533  std::vector<MonitorElement*> allMEs = (*store).getAllContents("");
534  std::vector<MonitorElement*>::iterator it = allMEs.begin();
535  std::vector<MonitorElement*>::iterator itEnd = allMEs.end();
536  for(; it != itEnd; ++it)
537  {
538  // We do not want to reset here Lumi products, since a dedicated
539  // resetting is done at every lumi transition.
540  if ((*it)->getLumiFlag())
541  continue;
542 // std::cout <<"RESETTING "<<(*it)->getFullname()<<std::endl;
543  (*it)->Reset();
544  }
545  }
546 
547  if(m_presentIndexItr != m_orderedIndices.end()) {
548  RunLumiToRange runLumiRange = m_runlumiToRange[*m_presentIndexItr];
549  //NOTE: it is possible to have an Run when all we have stored is lumis
550  if(runLumiRange.m_lumi == 0 &&
551  runLumiRange.m_run == rpCache->id().run()) {
552  readElements();
553  }
554  }
555 
557  jr->reportInputRunNumber(rpCache->id().run());
558 
559  rpCache->fillRunPrincipal();
560  return rpCache;
561 }
void readNextItemType()
std::list< unsigned int >::iterator m_presentIndexItr
unsigned int m_filterOnRun
bool m_shouldResetLumiMEs
std::vector< RunLumiToRange > m_runlumiToRange
bool m_justOpenedFileSoNeedToGenerateRunTransition
std::list< unsigned int > m_orderedIndices
bool m_shouldResetRunMEs
void reportInputRunNumber(unsigned int run)
Definition: JobReport.cc:667
unsigned int m_lastSeenRun
boost::shared_ptr< edm::RunAuxiliary > DQMRootSource::readRunAuxiliary_ ( )
privatevirtual

Implements edm::InputSource.

Definition at line 461 of file DQMRootSource.cc.

References getHLTprescales::index, m_historyIDs, m_nextIndexItr, m_orderedIndices, m_runAux, m_runlumiToRange, GetRecoTauVFromDQM_MC_cff::next, and edm::RunAuxiliary::setProcessHistoryID().

462 {
463  //std::cout <<"readRunAuxiliary_"<<std::endl;
464  assert(m_nextIndexItr != m_orderedIndices.end());
465  unsigned int index = *m_nextIndexItr;
466  RunLumiToRange runLumiRange = m_runlumiToRange[index];
467  //NOTE: this could be a lumi instead of the actual run. We need to find the time for the run
468  // so we will scan forward
469  while (runLumiRange.m_lumi !=0 && ++index<m_runlumiToRange.size())
470  {
471  const RunLumiToRange& next = m_runlumiToRange[index];
472  if (runLumiRange.m_run == next.m_run)
473  runLumiRange = next;
474  else
475  break;
476  }
477 
478  //NOTE: the setBeginTime and setEndTime functions of RunAuxiliary only work if the previous value was invalid
479  // therefore we must copy
480  m_runAux = edm::RunAuxiliary(runLumiRange.m_run,edm::Timestamp(runLumiRange.m_beginTime),edm::Timestamp(runLumiRange.m_endTime));
481  assert(m_historyIDs.size() > runLumiRange.m_historyIDIndex);
482  //std::cout <<"readRunAuxiliary_ "<<m_historyIDs[runLumiRange.m_historyIDIndex]<<std::endl;
483  m_runAux.setProcessHistoryID(m_historyIDs[runLumiRange.m_historyIDIndex]);
484  return boost::shared_ptr<edm::RunAuxiliary>( new edm::RunAuxiliary(m_runAux) );
485 }
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 775 of file DQMRootSource.cc.

References cms::Exception::addContext(), cmsPerfCommons::configs, cms::Digest::digest(), 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_runlumiToRange, m_treeReaders, m_trees, groupFilesInBlocks::temp, and cms::MD5Result::toString().

Referenced by readFile_().

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

Member Data Documentation

edm::InputFileCatalog DQMRootSource::m_catalog
private
bool DQMRootSource::m_doNotReadRemainingPartsOfFileSinceFrameworkTerminating
private

Definition at line 347 of file DQMRootSource.cc.

Referenced by closeFile_(), endRun(), and readFile_().

std::auto_ptr<TFile> DQMRootSource::m_file
private

Definition at line 339 of file DQMRootSource.cc.

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

size_t DQMRootSource::m_fileIndex
private

Definition at line 334 of file DQMRootSource.cc.

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

unsigned int DQMRootSource::m_filterOnRun
private

Definition at line 345 of file DQMRootSource.cc.

Referenced by readRun_().

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

Definition at line 353 of file DQMRootSource.cc.

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

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

Definition at line 355 of file DQMRootSource.cc.

Referenced by closeFile_(), and readFile_().

bool DQMRootSource::m_justOpenedFileSoNeedToGenerateRunTransition
private

Definition at line 346 of file DQMRootSource.cc.

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

unsigned int DQMRootSource::m_lastSeenRun
private

Definition at line 344 of file DQMRootSource.cc.

Referenced by readNextItemType(), and readRun_().

edm::LuminosityBlockAuxiliary DQMRootSource::m_lumiAux
private

Definition at line 331 of file DQMRootSource.cc.

Referenced by readLuminosityBlockAuxiliary_(), and readNextItemType().

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

Definition at line 351 of file DQMRootSource.cc.

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

Definition at line 332 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 337 of file DQMRootSource.cc.

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

size_t DQMRootSource::m_presentlyOpenFileIndex
private

Definition at line 335 of file DQMRootSource.cc.

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

edm::RunAuxiliary DQMRootSource::m_runAux
private

Definition at line 330 of file DQMRootSource.cc.

Referenced by readNextItemType(), and readRunAuxiliary_().

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

Definition at line 352 of file DQMRootSource.cc.

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

Definition at line 348 of file DQMRootSource.cc.

Referenced by readElements(), and readRun_().

bool DQMRootSource::m_shouldResetLumiMEs
private

Definition at line 350 of file DQMRootSource.cc.

Referenced by readLuminosityBlock_(), and readRun_().

bool DQMRootSource::m_shouldResetRunMEs
private

Definition at line 349 of file DQMRootSource.cc.

Referenced by readRun_().

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

Definition at line 341 of file DQMRootSource.cc.

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

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

Definition at line 340 of file DQMRootSource.cc.

Referenced by setupFile().