Public Member Functions | |
EmptyESSource (ParameterSet const &) | |
void | setIntervalFor (eventsetup::EventSetupRecordKey const &, IOVSyncValue const &iTime, ValidityInterval &oInterval) |
Private Member Functions | |
void | delaySettingRecords () |
EmptyESSource (EmptyESSource const &) | |
EmptyESSource const & | operator= (EmptyESSource const &) |
Private Attributes | |
bool | iovIsTime_ |
std::string | recordName_ |
std::set< IOVSyncValue > | setOfIOV_ |
Definition at line 11 of file EmptyESSource.cc.
edm::EmptyESSource::EmptyESSource | ( | ParameterSet const & | pset | ) |
Definition at line 38 of file EmptyESSource.cc.
References edm::ParameterSet::getParameter(), iovIsTime_, setOfIOV_, and groupFilesInBlocks::temp.
: recordName_(pset.getParameter<std::string>("recordName")), iovIsTime_(!pset.getParameter<bool>("iovIsRunNotTime")) { std::vector<unsigned int> temp(pset.getParameter< std::vector<unsigned int> >("firstValid")); for(std::vector<unsigned int>::iterator itValue = temp.begin(), itValueEnd = temp.end(); itValue != itValueEnd; ++itValue) { if(iovIsTime_) { setOfIOV_.insert(IOVSyncValue(Timestamp(*itValue))); } else { setOfIOV_.insert(IOVSyncValue(EventID(*itValue, 0, 0))); } } //copy_all(temp, inserter(setOfIOV_ , setOfIOV_.end())); }
edm::EmptyESSource::EmptyESSource | ( | EmptyESSource const & | ) | [private] |
void edm::EmptyESSource::delaySettingRecords | ( | ) | [private, virtual] |
override this method if you need to delay setting what records you will be using until after all modules are loaded
Reimplemented from edm::EventSetupRecordIntervalFinder.
Definition at line 56 of file EmptyESSource.cc.
References edm::errors::Configuration, edm::EventSetupRecordIntervalFinder::descriptionForFinder(), Exception, edm::EventSetupRecordIntervalFinder::findingRecordWithKey(), edm::typelookup::findType(), edm::eventsetup::ComponentDescription::label_, and recordName_.
{ eventsetup::EventSetupRecordKey recordKey = eventsetup::EventSetupRecordKey::TypeTag::findType(recordName_); if (recordKey == eventsetup::EventSetupRecordKey()) { throw edm::Exception(errors::Configuration) << " The Record type named \"" << recordName_ << "\" could not be found. Please check the spelling. \n" << "If the spelling is fine, then no module in the job requires this Record and therefore EmptyESSource can not function.\n" "In such a case please either remove the EmptyESSource with label'" << descriptionForFinder().label_ << "' from your job or add a module which needs the Record to your job."; } findingRecordWithKey(recordKey); }
EmptyESSource const& edm::EmptyESSource::operator= | ( | EmptyESSource const & | ) | [private] |
void edm::EmptyESSource::setIntervalFor | ( | eventsetup::EventSetupRecordKey const & | , |
IOVSyncValue const & | iTime, | ||
ValidityInterval & | oInterval | ||
) | [virtual] |
Implements edm::EventSetupRecordIntervalFinder.
Definition at line 69 of file EmptyESSource.cc.
References edm::IOVSyncValue::endOfTime(), edm::ValidityInterval::invalidInterval(), iovIsTime_, and setOfIOV_.
{ oInterval = ValidityInterval::invalidInterval(); //if no intervals given, fail immediately if (setOfIOV_.size() == 0) { return; } std::pair< std::set<IOVSyncValue>::iterator, std::set<IOVSyncValue>::iterator > itFound = setOfIOV_.equal_range(iTime); //we have overshot if(itFound.first == itFound.second) { if(itFound.first == setOfIOV_.begin()) { //request is before first valid interval, so fail return; } //go back one step --itFound.first; } if (itFound.first == setOfIOV_.end()) { return; } IOVSyncValue endOfInterval = IOVSyncValue::endOfTime(); if(itFound.second != setOfIOV_.end()) { if(iovIsTime_) { endOfInterval = IOVSyncValue(Timestamp(itFound.second->time().value() - 1)); } else { endOfInterval = IOVSyncValue(itFound.second->eventID().previousRunLastEvent(0)); } } oInterval = ValidityInterval(*(itFound.first), endOfInterval); }
bool edm::EmptyESSource::iovIsTime_ [private] |
Definition at line 35 of file EmptyESSource.cc.
Referenced by EmptyESSource(), and setIntervalFor().
std::string edm::EmptyESSource::recordName_ [private] |
Definition at line 33 of file EmptyESSource.cc.
Referenced by delaySettingRecords().
std::set<IOVSyncValue> edm::EmptyESSource::setOfIOV_ [private] |
Definition at line 34 of file EmptyESSource.cc.
Referenced by EmptyESSource(), and setIntervalFor().