#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 55 of file MergeableRunProductMetadata.h.
edm::MergeableRunProductMetadata::MergeableRunProductMetadata | ( | MergeableRunProductProcesses const & | mergeableRunProductProcesses | ) |
Definition at line 15 of file MergeableRunProductMetadata.cc.
|
override |
Definition at line 20 of file MergeableRunProductMetadata.cc.
void edm::MergeableRunProductMetadata::addEntryToStoredMetadata | ( | StoredMergeableRunProductMetadata & | storedMetadata | ) | const |
Definition at line 180 of file MergeableRunProductMetadata.cc.
References addProcess(), mergeableRunProductProcesses_, metadataForProcesses_, edm::MergeableRunProductProcesses::processesWithMergeableRunProducts(), edm::StoredMergeableRunProductMetadata::processesWithMergeableRunProducts(), edm::StoredMergeableRunProductMetadata::singleRunEntries(), and edm::StoredMergeableRunProductMetadata::singleRunEntryAndProcesses().
Referenced by postWriteRun(), and edm::RootOutputFile::writeRun().
|
private |
Definition at line 235 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 297 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 89 of file MergeableRunProductMetadata.h.
References edm::MergeableRunProductProcesses::getProcessName(), and mergeableRunProductProcesses_.
Referenced by Types.InputTag::cppTag(), and metadataForOneProcess().
|
inline |
Definition at line 133 of file MergeableRunProductMetadata.h.
References gotLumisFromIndexIntoFile_.
|
overridevirtual |
Implements edm::MergeableRunProductMetadataBase.
Definition at line 311 of file MergeableRunProductMetadata.cc.
References metadataForOneProcess(), and edm::MergeableRunProductMetadata::MetadataForProcess::valid().
|
inline |
Definition at line 131 of file MergeableRunProductMetadata.h.
References lumisFromIndexIntoFile_.
|
inline |
Definition at line 136 of file MergeableRunProductMetadata.h.
References addProcess(), lumisProcessed_, and mergeLumisFromIndexIntoFile().
Referenced by preWriteRun().
|
private |
Definition at line 342 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 329 of file MergeableRunProductMetadata.cc.
References getProcessName(), and metadataForProcesses_.
Referenced by getMergeDecision(), and knownImproperlyMerged().
|
inline |
Definition at line 128 of file MergeableRunProductMetadata.h.
References metadataForProcesses_.
void edm::MergeableRunProductMetadata::postWriteRun | ( | ) |
Definition at line 171 of file MergeableRunProductMetadata.cc.
References addEntryToStoredMetadata(), lumisProcessed_, and metadataForProcesses_.
Referenced by edm::EventProcessor::endUnfinishedRun().
void edm::MergeableRunProductMetadata::preReadFile | ( | ) |
Definition at line 23 of file MergeableRunProductMetadata.cc.
References mergeLumisFromIndexIntoFile().
void edm::MergeableRunProductMetadata::preWriteRun | ( | ) |
Definition at line 137 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 27 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 129 of file MergeableRunProductMetadata.cc.
References lumisProcessed_, and metadataForProcesses_.
|
private |
Definition at line 157 of file MergeableRunProductMetadata.h.
Referenced by gotLumisFromIndexIntoFile(), mergeLumisFromIndexIntoFile(), and readRun().
|
private |
Definition at line 156 of file MergeableRunProductMetadata.h.
Referenced by lumisFromIndexIntoFile(), mergeLumisFromIndexIntoFile(), and readRun().
|
private |
Definition at line 159 of file MergeableRunProductMetadata.h.
Referenced by lumisProcessed(), postWriteRun(), preWriteRun(), and writeLumi().
|
private |
Definition at line 148 of file MergeableRunProductMetadata.h.
Referenced by addEntryToStoredMetadata(), getProcessName(), and readRun().
|
private |
Definition at line 154 of file MergeableRunProductMetadata.h.
Referenced by addEntryToStoredMetadata(), mergeLumisFromIndexIntoFile(), metadataForOneProcess(), metadataForProcesses(), postWriteRun(), preWriteRun(), readRun(), and writeLumi().