#include <MergeableRunProductMetadata.h>
Classes | |
class | MetadataForProcess |
Public Types | |
enum | MergeDecision { MERGE, REPLACE, IGNORE } |
Public Member Functions | |
void | addEntryToStoredMetadata (StoredMergeableRunProductMetadata &) const |
MergeDecision | getMergeDecision (std::string const &processThatCreatedProduct) const |
std::string const & | getProcessName (unsigned int index) const |
bool | gotLumisFromIndexIntoFile () const |
bool | knownImproperlyMerged (std::string const &processThatCreatedProduct) const override |
std::vector< LuminosityBlockNumber_t > const & | lumisFromIndexIntoFile () const |
tbb::concurrent_vector< LuminosityBlockNumber_t > const & | lumisProcessed () const |
MergeableRunProductMetadata (MergeableRunProductProcesses const &) | |
MetadataForProcess const * | metadataForOneProcess (std::string const &processName) const |
std::vector< MetadataForProcess > const & | metadataForProcesses () const |
void | postWriteRun () |
void | preReadFile () |
void | preWriteRun () |
void | readRun (long long inputRunEntry, StoredMergeableRunProductMetadata const &inputStoredMergeableRunProductMetadata, IndexIntoFileItrHolder const &inputIndexIntoFileItr) |
void | writeLumi (LuminosityBlockNumber_t lumi) |
~MergeableRunProductMetadata () override | |
Public Member Functions inherited from edm::MergeableRunProductMetadataBase | |
virtual | ~MergeableRunProductMetadataBase () |
Private Member Functions | |
bool | addProcess (StoredMergeableRunProductMetadata &storedMetadata, MetadataForProcess const &metadataForProcess, unsigned int storedProcessIndex, unsigned long long beginProcess, unsigned long long endProcess) const |
void | mergeLumisFromIndexIntoFile () |
Private Attributes | |
bool | gotLumisFromIndexIntoFile_ = false |
std::vector< LuminosityBlockNumber_t > | lumisFromIndexIntoFile_ |
tbb::concurrent_vector< LuminosityBlockNumber_t > | lumisProcessed_ |
MergeableRunProductProcesses const * | mergeableRunProductProcesses_ |
std::vector< MetadataForProcess > | metadataForProcesses_ |
This class holds information used to decide how to merge together mergeable run products when multiple run entries with the same run number and ProcessHistoryID are read from input files contiguously.
Most of the information here is associated with the current run being processed. Most of it is cleared when a new run is started. If multiple runs are being processed concurrently, then there will be an object instantiated for each concurrent run. (At the present time concurrent runs are not possible, but there plans to implement that in the future). The primary RunPrincipal for the current run owns the object.
This class gets information from the input file from the StoredMergeableRunProductMetadata object and IndexIntoFile object. It uses that information to make the decision how to merge run products read from data, and puts information into the StoredMergeableRunProductMetadata written into the output file to use in later processing steps.
If there are SubProcesses, they use the same object as the top level process because they share the same input.
There will be a TWIKI page on the Framework page of the Software Guide which explains the details about how this works. There are significant limitations related to what the Framework does and does not do managing mergeable run products.
Definition at line 52 of file MergeableRunProductMetadata.h.
Enumerator | |
---|---|
MERGE | |
REPLACE | |
IGNORE |
Definition at line 54 of file MergeableRunProductMetadata.h.
edm::MergeableRunProductMetadata::MergeableRunProductMetadata | ( | MergeableRunProductProcesses const & | mergeableRunProductProcesses | ) |
Definition at line 14 of file MergeableRunProductMetadata.cc.
|
override |
Definition at line 19 of file MergeableRunProductMetadata.cc.
void edm::MergeableRunProductMetadata::addEntryToStoredMetadata | ( | StoredMergeableRunProductMetadata & | storedMetadata | ) | const |
Definition at line 162 of file MergeableRunProductMetadata.cc.
References addProcess(), mergeableRunProductProcesses_, metadataForProcesses_, edm::MergeableRunProductProcesses::processesWithMergeableRunProducts(), edm::StoredMergeableRunProductMetadata::processesWithMergeableRunProducts(), edm::StoredMergeableRunProductMetadata::singleRunEntries(), and edm::StoredMergeableRunProductMetadata::singleRunEntryAndProcesses().
Referenced by edm::RootOutputFile::writeRun().
|
private |
Definition at line 207 of file MergeableRunProductMetadata.cc.
References edm::MergeableRunProductMetadata::MetadataForProcess::allLumisProcessed(), edm::StoredMergeableRunProductMetadata::allValidAndUseIndexIntoFile(), edm::StoredMergeableRunProductMetadata::SingleRunEntryAndProcess::beginLumi(), edm::StoredMergeableRunProductMetadata::SingleRunEntryAndProcess::endLumi(), runEdmFileComparison::found, edm::MergeableRunProductMetadata::MetadataForProcess::lumis(), edm::StoredMergeableRunProductMetadata::lumis(), edm::StoredMergeableRunProductMetadata::singleRunEntryAndProcesses(), and edm::MergeableRunProductMetadata::MetadataForProcess::valid().
Referenced by addEntryToStoredMetadata(), and lumisProcessed().
MergeableRunProductMetadata::MergeDecision edm::MergeableRunProductMetadata::getMergeDecision | ( | std::string const & | processThatCreatedProduct | ) | const |
Definition at line 260 of file MergeableRunProductMetadata.cc.
References Exception, edm::errors::LogicError, MERGE, edm::MergeableRunProductMetadata::MetadataForProcess::mergeDecision(), and metadataForOneProcess().
Referenced by edm::DataManagingProductResolver::mergeProduct().
|
inline |
Definition at line 87 of file MergeableRunProductMetadata.h.
References edm::MergeableRunProductProcesses::getProcessName(), and mergeableRunProductProcesses_.
Referenced by Types.InputTag::cppTag(), and metadataForOneProcess().
|
inline |
Definition at line 127 of file MergeableRunProductMetadata.h.
References gotLumisFromIndexIntoFile_.
|
overridevirtual |
Implements edm::MergeableRunProductMetadataBase.
Definition at line 272 of file MergeableRunProductMetadata.cc.
References metadataForOneProcess(), and edm::MergeableRunProductMetadata::MetadataForProcess::valid().
|
inline |
Definition at line 125 of file MergeableRunProductMetadata.h.
References lumisFromIndexIntoFile_.
|
inline |
Definition at line 129 of file MergeableRunProductMetadata.h.
References addProcess(), lumisProcessed_, and mergeLumisFromIndexIntoFile().
Referenced by preWriteRun().
|
private |
Definition at line 302 of file MergeableRunProductMetadata.cc.
References gotLumisFromIndexIntoFile_, lumisFromIndexIntoFile_, metadataForProcesses_, and groupFilesInBlocks::temp.
Referenced by lumisProcessed(), preReadFile(), and preWriteRun().
MergeableRunProductMetadata::MetadataForProcess const * edm::MergeableRunProductMetadata::metadataForOneProcess | ( | std::string const & | processName | ) | const |
Definition at line 288 of file MergeableRunProductMetadata.cc.
References getProcessName(), and metadataForProcesses_.
Referenced by getMergeDecision(), and knownImproperlyMerged().
|
inline |
Definition at line 123 of file MergeableRunProductMetadata.h.
References metadataForProcesses_.
void edm::MergeableRunProductMetadata::postWriteRun | ( | ) |
Definition at line 155 of file MergeableRunProductMetadata.cc.
References lumisProcessed_, and metadataForProcesses_.
Referenced by edm::EventProcessor::endUnfinishedRun().
void edm::MergeableRunProductMetadata::preReadFile | ( | ) |
Definition at line 21 of file MergeableRunProductMetadata.cc.
References mergeLumisFromIndexIntoFile().
void edm::MergeableRunProductMetadata::preWriteRun | ( | ) |
Definition at line 125 of file MergeableRunProductMetadata.cc.
References includes, lumisProcessed(), lumisProcessed_, mergeLumisFromIndexIntoFile(), metadataForProcesses_, and tier0::unique().
Referenced by edm::EventProcessor::endUnfinishedRun().
void edm::MergeableRunProductMetadata::readRun | ( | long long | inputRunEntry, |
StoredMergeableRunProductMetadata const & | inputStoredMergeableRunProductMetadata, | ||
IndexIntoFileItrHolder const & | inputIndexIntoFileItr | ||
) |
Definition at line 23 of file MergeableRunProductMetadata.cc.
References edm::StoredMergeableRunProductMetadata::getLumiContent(), edm::IndexIntoFileItrHolder::getLumisInRun(), gotLumisFromIndexIntoFile_, IGNORE, heppy_report::lumis, lumisFromIndexIntoFile_, MERGE, mergeableRunProductProcesses_, metadataForProcesses_, edm::MergeableRunProductProcesses::processesWithMergeableRunProducts(), modifiedElectrons_cfi::processName, REPLACE, AlCaHLTBitMon_QueryRunRegistry::string, and groupFilesInBlocks::temp.
Referenced by edm::RootFile::readRun_().
void edm::MergeableRunProductMetadata::writeLumi | ( | LuminosityBlockNumber_t | lumi | ) |
Definition at line 118 of file MergeableRunProductMetadata.cc.
References lumisProcessed_, and metadataForProcesses_.
Referenced by edm::EventProcessor::writeLumiAsync().
|
private |
Definition at line 149 of file MergeableRunProductMetadata.h.
Referenced by gotLumisFromIndexIntoFile(), mergeLumisFromIndexIntoFile(), and readRun().
|
private |
Definition at line 148 of file MergeableRunProductMetadata.h.
Referenced by lumisFromIndexIntoFile(), mergeLumisFromIndexIntoFile(), and readRun().
|
private |
Definition at line 151 of file MergeableRunProductMetadata.h.
Referenced by lumisProcessed(), postWriteRun(), preWriteRun(), and writeLumi().
|
private |
Definition at line 140 of file MergeableRunProductMetadata.h.
Referenced by addEntryToStoredMetadata(), getProcessName(), and readRun().
|
private |
Definition at line 146 of file MergeableRunProductMetadata.h.
Referenced by addEntryToStoredMetadata(), mergeLumisFromIndexIntoFile(), metadataForOneProcess(), metadataForProcesses(), postWriteRun(), preWriteRun(), readRun(), and writeLumi().