diff --git a/FWCore/Sources/interface/ProducerSourceBase.h b/FWCore/Sources/interface/ProducerSourceBase.h index 8a3c4309fa331..898580dbaa2e4 100644 --- a/FWCore/Sources/interface/ProducerSourceBase.h +++ b/FWCore/Sources/interface/ProducerSourceBase.h @@ -19,7 +19,7 @@ namespace edm { class ParameterSetDescription; class ProducerSourceBase : public InputSource { public: - explicit ProducerSourceBase(ParameterSet const& pset, InputSourceDescription const& desc, bool realData); + explicit ProducerSourceBase(ParameterSet const& pset, InputSourceDescription const& desc, bool realData, EventAuxiliary::ExperimentType eType = EventAuxiliary::Undefined); virtual ~ProducerSourceBase(); unsigned int numberEventsInRun() const {return numberEventsInRun_;} @@ -38,6 +38,8 @@ namespace edm { protected: + void setExperimentType(EventAuxiliary::ExperimentType eType); + private: virtual ItemType getNextItemType() override; virtual void initialize(EventID& id, TimeValue_t& time, TimeValue_t& interval); diff --git a/FWCore/Sources/interface/ProducerSourceFromFiles.h b/FWCore/Sources/interface/ProducerSourceFromFiles.h index 117d8586877e2..5ba02c0288450 100644 --- a/FWCore/Sources/interface/ProducerSourceFromFiles.h +++ b/FWCore/Sources/interface/ProducerSourceFromFiles.h @@ -16,7 +16,7 @@ namespace edm { class ProducerSourceFromFiles : public ProducerSourceBase, private FromFiles { public: - ProducerSourceFromFiles(ParameterSet const& pset, InputSourceDescription const& desc, bool realData); + ProducerSourceFromFiles(ParameterSet const& pset, InputSourceDescription const& desc, bool realData, EventAuxiliary::ExperimentType eType = EventAuxiliary::Undefined); virtual ~ProducerSourceFromFiles(); using FromFiles::logicalFileNames; diff --git a/FWCore/Sources/src/ProducerSourceBase.cc b/FWCore/Sources/src/ProducerSourceBase.cc index 8871efd88001e..f557d0e98303b 100644 --- a/FWCore/Sources/src/ProducerSourceBase.cc +++ b/FWCore/Sources/src/ProducerSourceBase.cc @@ -17,7 +17,9 @@ namespace edm { static unsigned long long const kAveEventPerSec = 200ULL; ProducerSourceBase::ProducerSourceBase(ParameterSet const& pset, - InputSourceDescription const& desc, bool realData) : + InputSourceDescription const& desc, + bool realData, + EventAuxiliary::ExperimentType eType) : InputSource(pset, desc), numberEventsInRun_(pset.getUntrackedParameter("numberEventsInRun", remainingEvents())), numberEventsInLumi_(pset.getUntrackedParameter("numberEventsInLuminosityBlock", remainingEvents())), @@ -32,7 +34,7 @@ namespace edm { eventID_(pset.getUntrackedParameter("firstRun", 1), pset.getUntrackedParameter("firstLuminosityBlock", 1), zerothEvent_), origEventID_(eventID_), isRealData_(realData), - eType_(EventAuxiliary::Undefined) { + eType_(eType) { setTimestamp(Timestamp(presentTime_)); // We need to map this string to the EventAuxiliary::ExperimentType enumeration @@ -88,6 +90,11 @@ namespace edm { } } + void + ProducerSourceBase::setExperimentType(EventAuxiliary::ExperimentType eType) { + eType_ = eType; + } + void ProducerSourceBase::beginJob() { // initialize cannot be called from the constructor, because it is a virtual function diff --git a/FWCore/Sources/src/ProducerSourceFromFiles.cc b/FWCore/Sources/src/ProducerSourceFromFiles.cc index 5561e3076be0e..545d01a7f59e3 100644 --- a/FWCore/Sources/src/ProducerSourceFromFiles.cc +++ b/FWCore/Sources/src/ProducerSourceFromFiles.cc @@ -3,8 +3,8 @@ #include "FWCore/ParameterSet/interface/ParameterSetDescription.h" namespace edm { - ProducerSourceFromFiles::ProducerSourceFromFiles(ParameterSet const& pset, InputSourceDescription const& desc, bool realData) : - ProducerSourceBase(pset, desc, realData), + ProducerSourceFromFiles::ProducerSourceFromFiles(ParameterSet const& pset, InputSourceDescription const& desc, bool realData, EventAuxiliary::ExperimentType eType) : + ProducerSourceBase(pset, desc, realData, eType), FromFiles(pset) { }