CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
LH5Source Class Reference

#include <LH5Source.h>

Inheritance diagram for LH5Source:
edm::ProducerSourceFromFiles edm::ProducerSourceBase edm::FromFiles edm::IDGeneratorSourceBase< PuttableSourceBase > edm::PuttableSourceBase edm::InputSource edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 LH5Source (const edm::ParameterSet &params, const edm::InputSourceDescription &desc)
 
 ~LH5Source () override
 
- Public Member Functions inherited from edm::ProducerSourceFromFiles
 ProducerSourceFromFiles (ParameterSet const &pset, InputSourceDescription const &desc, bool realData)
 
 ~ProducerSourceFromFiles () override
 
- Public Member Functions inherited from edm::ProducerSourceBase
 ProducerSourceBase (ParameterSet const &pset, InputSourceDescription const &desc, bool realData)
 
 ~ProducerSourceBase () noexcept(false) override
 
- Public Member Functions inherited from edm::IDGeneratorSourceBase< PuttableSourceBase >
EventNumber_t event () const
 
unsigned int eventCreationDelay () const
 
EventID const & eventID () const
 
 IDGeneratorSourceBase (ParameterSet const &pset, InputSourceDescription const &desc, bool realData)
 
LuminosityBlockNumber_t luminosityBlock () const
 
unsigned int numberEventsInLumi () const
 
unsigned int numberEventsInRun () const
 
unsigned int numberEventsInThisLumi () const
 
unsigned int numberEventsInThisRun () const
 
TimeValue_t presentTime () const
 
RunNumber_t run () const
 
unsigned int timeBetweenEvents () const
 
 ~IDGeneratorSourceBase () noexcept(false) override
 
- Public Member Functions inherited from edm::PuttableSourceBase
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
PuttableSourceBaseoperator= (const PuttableSourceBase &)=delete
 
 PuttableSourceBase (ParameterSet const &, InputSourceDescription const &)
 
 PuttableSourceBase (const PuttableSourceBase &)=delete
 
void registerProducts () final
 Register any produced products. More...
 
- Public Member Functions inherited from edm::InputSource
std::shared_ptr< ActivityRegistryactReg () const
 Accessor for Activity Registry. More...
 
std::shared_ptr
< BranchIDListHelper const > 
branchIDListHelper () const
 Accessors for branchIDListHelper. More...
 
std::shared_ptr
< BranchIDListHelper > & 
branchIDListHelper ()
 
void closeFile (FileBlock *, bool cleaningUpAfterException)
 close current file More...
 
void doBeginJob ()
 Called by framework at beginning of job. More...
 
void doEndJob ()
 Called by framework at end of job. More...
 
void fillProcessBlockHelper ()
 Fill the ProcessBlockHelper with info for the current file. More...
 
ProcessingController::ForwardState forwardState () const
 
bool goToEvent (EventID const &eventID)
 
 InputSource (ParameterSet const &, InputSourceDescription const &)
 Constructor. More...
 
 InputSource (InputSource const &)=delete
 
void issueReports (EventID const &eventID, StreamID streamID)
 issue an event report More...
 
LuminosityBlockNumber_t luminosityBlock () const
 Accessor for current luminosity block number. More...
 
std::shared_ptr
< LuminosityBlockAuxiliary
luminosityBlockAuxiliary () const
 Called by the framework to merge or insert lumi in principal cache. More...
 
int maxEvents () const
 
int maxLuminosityBlocks () const
 
ModuleDescription const & moduleDescription () const
 Accessor for 'module' description. More...
 
ItemType nextItemType ()
 Advances the source to the next item. More...
 
bool nextProcessBlock (ProcessBlockPrincipal &)
 Next process block, return false if there is none, sets the processName in the principal. More...
 
InputSourceoperator= (InputSource const &)=delete
 
std::shared_ptr
< ProcessBlockHelper const > 
processBlockHelper () const
 Accessors for processBlockHelper. More...
 
std::shared_ptr
< ProcessBlockHelper > & 
processBlockHelper ()
 
ProcessConfiguration const & processConfiguration () const
 Accessor for Process Configuration. More...
 
std::string const & processGUID () const
 Accessor for global process identifier. More...
 
ProcessHistoryRegistry const & processHistoryRegistry () const
 Accessors for process history registry. More...
 
ProcessHistoryRegistryprocessHistoryRegistry ()
 
ProcessingMode processingMode () const
 RunsLumisAndEvents (default), RunsAndLumis, or Runs. More...
 
std::shared_ptr
< ProductRegistry const > 
productRegistry () const
 Accessors for product registry. More...
 
std::shared_ptr
< ProductRegistry > & 
productRegistry ()
 
bool randomAccess () const
 
void readAndMergeLumi (LuminosityBlockPrincipal &lbp)
 Read next luminosity block (same as a prior lumi) More...
 
void readAndMergeRun (RunPrincipal &rp)
 Read next run (same as a prior run) More...
 
void readEvent (EventPrincipal &ep, StreamContext &)
 Read next event. More...
 
bool readEvent (EventPrincipal &ep, EventID const &, StreamContext &)
 Read a specific event. More...
 
std::shared_ptr< FileBlockreadFile ()
 Read next file. More...
 
void readLuminosityBlock (LuminosityBlockPrincipal &lumiPrincipal, HistoryAppender &historyAppender)
 Read next luminosity block (new lumi) More...
 
std::shared_ptr
< LuminosityBlockAuxiliary
readLuminosityBlockAuxiliary ()
 Read next luminosity block Auxilary. More...
 
void readProcessBlock (ProcessBlockPrincipal &)
 Read next process block. More...
 
void readRun (RunPrincipal &runPrincipal, HistoryAppender &historyAppender)
 Read next run (new run) More...
 
std::shared_ptr< RunAuxiliaryreadRunAuxiliary ()
 Read next run Auxiliary. More...
 
ProcessHistoryID const & reducedProcessHistoryID () const
 
int remainingEvents () const
 
int remainingLuminosityBlocks () const
 
void repeat ()
 Reset the remaining number of events/lumis to the maximum number. More...
 
std::pair
< SharedResourcesAcquirer
*, std::recursive_mutex * > 
resourceSharedWithDelayedReader ()
 Returns nullptr if no resource shared between the Source and a DelayedReader. More...
 
ProcessingController::ReverseState reverseState () const
 
void rewind ()
 Begin again at the first event. More...
 
RunNumber_t run () const
 Accessor for current run number. More...
 
std::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)
 
std::shared_ptr
< ThinnedAssociationsHelper
const > 
thinnedAssociationsHelper () const
 Accessors for thinnedAssociationsHelper. More...
 
std::shared_ptr
< ThinnedAssociationsHelper > & 
thinnedAssociationsHelper ()
 
Timestamp const & timestamp () const
 Accessor for the current time, as seen by the input source. More...
 
virtual ~InputSource () noexcept(false)
 Destructor. More...
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector
< edm::ProductResolverIndex >
const & 
indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector
< edm::ProductResolverIndex >
const & 
putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::ProducerSourceFromFiles
static void fillDescription (ParameterSetDescription &desc)
 
- Static Public Member Functions inherited from edm::IDGeneratorSourceBase< PuttableSourceBase >
static void fillDescription (ParameterSetDescription &desc)
 
- 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 &)
 

Private Member Functions

void endJob () override
 
void fillRunInfoProduct (lhef::LHERunInfo const &, LHERunInfoProduct &)
 
void nextEvent ()
 
void produce (edm::Event &) override
 
void putRunInfoProduct (edm::RunPrincipal &)
 
void readEvent_ (edm::EventPrincipal &eventPrincipal) override
 
void readLuminosityBlock_ (edm::LuminosityBlockPrincipal &lumiPrincipal) override
 
std::shared_ptr
< edm::LuminosityBlockAuxiliary
readLuminosityBlockAuxiliary_ () override
 
void readRun_ (edm::RunPrincipal &runPrincipal) override
 
std::shared_ptr
< edm::RunAuxiliary
readRunAuxiliary_ () override
 
bool setRunAndEventInfo (edm::EventID &, edm::TimeValue_t &, edm::EventAuxiliary::ExperimentType &) override
 

Private Attributes

edm::LHEProvenanceHelper lheProvenanceHelper_
 
std::shared_ptr< lhef::LHEEventpartonLevel_
 
edm::ProcessHistoryID phid_
 
std::unique_ptr< lhef::LH5Readerreader_
 
std::shared_ptr< lhef::LHERunInforunInfoLast_
 
std::unique_ptr
< LHERunInfoProduct
runInfoProductLast_
 

Additional Inherited Members

- Public Types inherited from edm::InputSource
enum  ItemType {
  IsInvalid, IsStop, IsFile, IsRun,
  IsLumi, IsEvent, IsRepeat, IsSynchronize
}
 
enum  ProcessingMode { Runs, RunsAndLumis, RunsLumisAndEvents }
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Attributes inherited from edm::InputSource
signalslot::Signal< void(StreamContext
const &, ModuleCallingContext
const &)> 
postEventReadFromSourceSignal_
 
signalslot::Signal< void(StreamContext
const &, ModuleCallingContext
const &)> 
preEventReadFromSourceSignal_
 
- Protected Member Functions inherited from edm::IDGeneratorSourceBase< PuttableSourceBase >
void doReadEvent (EventPrincipal &eventPrincipal, F &&f)
 
void doReadEventWithDelayedReader (EventPrincipal &eventPrincipal, ProcessHistoryID const &historyID, EventSelectionIDVector eventSelectionIDs, BranchListIndexes branchListIndexes, DelayedReader *reader)
 
- Protected Member Functions inherited from edm::InputSource
void decreaseRemainingEventsBy (int iSkipped)
 
bool eventCached () const
 
bool newLumi () const
 
bool newRun () const
 
ProcessHistoryRegistryprocessHistoryRegistryForUpdate ()
 
ProductRegistryproductRegistryUpdate ()
 
void reset () const
 
void resetEventCached ()
 
void resetLuminosityBlockAuxiliary (bool isNewLumi=true) const
 
void resetNewLumi ()
 
void resetNewRun ()
 
void resetRunAuxiliary (bool isNewRun=true) const
 
void setEventCached ()
 Called by the framework to merge or ached() const {return eventCached_;}. More...
 
void setLuminosityBlockAuxiliary (LuminosityBlockAuxiliary *lbp)
 
void setNewLumi ()
 
void setNewRun ()
 
void setRunAuxiliary (RunAuxiliary *rp)
 
void setTimestamp (Timestamp const &theTime)
 To set the current time, as seen by the input source. More...
 
ItemType state () const
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 

Detailed Description

Definition at line 33 of file LH5Source.h.

Constructor & Destructor Documentation

LH5Source::LH5Source ( const edm::ParameterSet params,
const edm::InputSourceDescription desc 
)
explicit

Definition at line 33 of file LH5Source.cc.

References edm::LHEProvenanceHelper::lheAugment(), edm::LHEProvenanceHelper::lheInit(), lheProvenanceHelper_, nextEvent(), phid_, and edm::InputSource::processHistoryRegistryForUpdate().

34  : ProducerSourceFromFiles(params, desc, false),
35  // reader_(new LH5Reader(params)),
36  reader_(new LH5Reader(fileNames(0), params.getUntrackedParameter<unsigned int>("skipEvents", 0))),
39  phid_() {
40  nextEvent();
42  // Initialize metadata, and save the process history ID for use every event.
44 
45  // These calls are not wanted, because the principals are used for putting the products.
46  //produces<LHEEventProduct>();
47  //produces<LHERunInfoProduct, edm::InRun>();
48 }
T getUntrackedParameter(std::string const &, T const &) const
edm::ProcessHistoryID phid_
Definition: LH5Source.h:62
ProductRegistry & productRegistryUpdate()
Definition: InputSource.h:328
ProducerSourceFromFiles(ParameterSet const &pset, InputSourceDescription const &desc, bool realData)
void nextEvent()
Definition: LH5Source.cc:54
edm::LHEProvenanceHelper lheProvenanceHelper_
Definition: LH5Source.h:61
ProcessHistoryID lheInit(ProcessHistoryRegistry &processHistoryRegistry)
ProcessHistoryRegistry & processHistoryRegistryForUpdate()
Definition: InputSource.h:329
void lheAugment(lhef::LHERunInfo const *runInfo)
std::unique_ptr< lhef::LH5Reader > reader_
Definition: LH5Source.h:55
std::vector< std::string > fileNames(unsigned iCatalog) const
Definition: FromFiles.h:22
LH5Source::~LH5Source ( )
override

Definition at line 50 of file LH5Source.cc.

50 {}

Member Function Documentation

void LH5Source::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 52 of file LH5Source.cc.

References reader_.

52 { reader_.reset(); }
std::unique_ptr< lhef::LH5Reader > reader_
Definition: LH5Source.h:55
void LH5Source::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 186 of file LH5Source.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::addUntracked(), submitPVResolutionJobs::desc, edm::ProducerSourceFromFiles::fillDescription(), and edm::ParameterSetDescription::setComment().

186  {
188  desc.setComment("A source which reads LHE files.");
190  desc.addUntracked<unsigned int>("skipEvents", 0U)->setComment("Skip the first 'skipEvents' events.");
191  // desc.addUntracked<int>("limitEvents", -1)->setComment("Limit the number of read events.");
192  descriptions.add("source", desc);
193 }
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
static void fillDescription(ParameterSetDescription &desc)
void setComment(std::string const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void LH5Source::fillRunInfoProduct ( lhef::LHERunInfo const &  iInfo,
LHERunInfoProduct oProduct 
)
private

Definition at line 93 of file LH5Source.cc.

References LHERunInfoProduct::addComment(), LHERunInfoProduct::addHeader(), c, lhef::LHERunInfo::getComments(), lhef::LHERunInfo::getHeaders(), and h.

Referenced by nextEvent().

93  {
94  for (auto const& h : iInfo.getHeaders()) {
95  oProduct.addHeader(h);
96  }
97  for (auto const& c : iInfo.getComments()) {
98  oProduct.addComment(c);
99  }
100 }
const edm::EventSetup & c
void addHeader(const Header &header)
void addComment(const std::string &line)
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
void LH5Source::nextEvent ( )
private

Definition at line 54 of file LH5Source.cc.

References fillRunInfoProduct(), edm::FromFiles::incrementFileIndex(), edm::LHEProvenanceHelper::lheAugment(), edm::LHEProvenanceHelper::lheInit(), lheProvenanceHelper_, eostools::move(), partonLevel_, phid_, edm::InputSource::processHistoryRegistryForUpdate(), reader_, edm::InputSource::resetRunAuxiliary(), runInfoLast_, and runInfoProductLast_.

Referenced by LH5Source(), and setRunAndEventInfo().

54  {
55  if (partonLevel_) {
56  return;
57  }
58 
59  bool newFileOpened;
60  do {
61  newFileOpened = false;
62  partonLevel_ = reader_->next(&newFileOpened);
63  if (newFileOpened) {
65  }
66  } while (newFileOpened && !partonLevel_);
67 
68  if (!partonLevel_) {
69  return;
70  }
71 
72  auto runInfoThis = partonLevel_->getRunInfo();
73  if (runInfoThis != runInfoLast_) {
74  runInfoLast_ = runInfoThis;
75  std::unique_ptr<LHERunInfoProduct> product(new LHERunInfoProduct(*runInfoThis->getHEPRUP()));
76  fillRunInfoProduct(*runInfoThis, *product);
77 
78  if (runInfoProductLast_) {
79  if (!runInfoProductLast_->mergeProduct(*product)) {
80  //cannot be merged so must start new Run
81  runInfoProductLast_ = std::move(product);
82  lheProvenanceHelper_.lheAugment(runInfoThis.get());
83  // Initialize metadata, and save the process history ID for use every event.
86  }
87  } else {
88  runInfoProductLast_ = std::move(product);
89  }
90  }
91 }
std::unique_ptr< LHERunInfoProduct > runInfoProductLast_
Definition: LH5Source.h:60
edm::ProcessHistoryID phid_
Definition: LH5Source.h:62
void incrementFileIndex()
Definition: FromFiles.h:27
void resetRunAuxiliary(bool isNewRun=true) const
Definition: InputSource.h:339
std::shared_ptr< lhef::LHERunInfo > runInfoLast_
Definition: LH5Source.h:57
std::shared_ptr< lhef::LHEEvent > partonLevel_
Definition: LH5Source.h:58
def move
Definition: eostools.py:511
edm::LHEProvenanceHelper lheProvenanceHelper_
Definition: LH5Source.h:61
ProcessHistoryID lheInit(ProcessHistoryRegistry &processHistoryRegistry)
ProcessHistoryRegistry & processHistoryRegistryForUpdate()
Definition: InputSource.h:329
void fillRunInfoProduct(lhef::LHERunInfo const &, LHERunInfoProduct &)
Definition: LH5Source.cc:93
void lheAugment(lhef::LHERunInfo const *runInfo)
std::unique_ptr< lhef::LH5Reader > reader_
Definition: LH5Source.h:55
void LH5Source::produce ( edm::Event )
inlineoverrideprivatevirtual

Implements edm::ProducerSourceBase.

Definition at line 46 of file LH5Source.h.

46 {}
void LH5Source::putRunInfoProduct ( edm::RunPrincipal iRunPrincipal)
private

Definition at line 115 of file LH5Source.cc.

References lheProvenanceHelper_, eostools::move(), edm::RunPrincipal::put(), runInfoProductLast_, and edm::LHEProvenanceHelper::runProductBranchDescription_.

Referenced by readRun_().

115  {
116  if (runInfoProductLast_) {
117  auto product = std::make_unique<LHERunInfoProduct>(*runInfoProductLast_);
118  std::unique_ptr<edm::WrapperBase> rdp(new edm::Wrapper<LHERunInfoProduct>(std::move(product)));
120  }
121 }
std::unique_ptr< LHERunInfoProduct > runInfoProductLast_
Definition: LH5Source.h:60
void put(BranchDescription const &bd, std::unique_ptr< WrapperBase > edp) const
Definition: RunPrincipal.cc:38
BranchDescription const runProductBranchDescription_
def move
Definition: eostools.py:511
edm::LHEProvenanceHelper lheProvenanceHelper_
Definition: LH5Source.h:61
void LH5Source::readEvent_ ( edm::EventPrincipal eventPrincipal)
overrideprivatevirtual

Reimplemented from edm::ProducerSourceBase.

Definition at line 136 of file LH5Source.cc.

References LHEEventProduct::addComment(), LHEEventProduct::addWeight(), cms::cuda::assert(), printConversionInfo::aux, edm::InputSource::eventCached(), edm::IDGeneratorSourceBase< PuttableSourceBase >::eventID(), edm::LHEProvenanceHelper::eventProductBranchDescription_, edm::LHEProvenanceHelper::eventProductProvenance_, edm::EventPrincipal::fillEventPrincipal(), lheProvenanceHelper_, eostools::move(), partonLevel_, phid_, edm::IDGeneratorSourceBase< PuttableSourceBase >::presentTime(), edm::InputSource::processGUID(), edm::EventAuxiliary::processHistoryID(), edm::InputSource::processHistoryRegistry(), edm::InputSource::processingMode(), edm::EventPrincipal::put(), edm::InputSource::resetEventCached(), edm::InputSource::RunsLumisAndEvents, and edm::EventAuxiliary::setProcessHistoryID().

136  {
139  aux.setProcessHistoryID(phid_);
140  eventPrincipal.fillEventPrincipal(aux, processHistoryRegistry().getMapped(aux.processHistoryID()));
141 
142  std::unique_ptr<LHEEventProduct> product(
143  new LHEEventProduct(*partonLevel_->getHEPEUP(), partonLevel_->originalXWGTUP()));
144  if (partonLevel_->getPDF()) {
145  product->setPDF(*partonLevel_->getPDF());
146  }
147  std::for_each(partonLevel_->weights().begin(),
148  partonLevel_->weights().end(),
149  std::bind(&LHEEventProduct::addWeight, product.get(), std::placeholders::_1));
150  product->setScales(partonLevel_->scales());
151  product->setNpLO(partonLevel_->npLO());
152  product->setNpNLO(partonLevel_->npNLO());
153  std::for_each(partonLevel_->getComments().begin(),
154  partonLevel_->getComments().end(),
155  std::bind(&LHEEventProduct::addComment, product.get(), std::placeholders::_1));
156 
157  std::unique_ptr<edm::WrapperBase> edp(new edm::Wrapper<LHEEventProduct>(std::move(product)));
159  std::move(edp),
161 
162  partonLevel_.reset();
163 
165 }
ProcessHistoryRegistry const & processHistoryRegistry() const
Accessors for process history registry.
Definition: InputSource.h:140
edm::ProcessHistoryID phid_
Definition: LH5Source.h:62
void addComment(const std::string &line)
void addWeight(const WGT &wgt)
ProcessingMode processingMode() const
RunsLumisAndEvents (default), RunsAndLumis, or Runs.
Definition: InputSource.h:224
assert(be >=bs)
std::string const & processGUID() const
Accessor for global process identifier.
Definition: InputSource.h:195
std::shared_ptr< lhef::LHEEvent > partonLevel_
Definition: LH5Source.h:58
def move
Definition: eostools.py:511
edm::LHEProvenanceHelper lheProvenanceHelper_
Definition: LH5Source.h:61
void put(BranchDescription const &bd, std::unique_ptr< WrapperBase > edp, ProductProvenance const &productProvenance) const
void resetEventCached()
Definition: InputSource.h:361
void fillEventPrincipal(EventAuxiliary const &aux, ProcessHistory const *processHistory, DelayedReader *reader=nullptr)
ProductProvenance eventProductProvenance_
BranchDescription const eventProductBranchDescription_
bool eventCached() const
Definition: InputSource.h:358
void LH5Source::readLuminosityBlock_ ( edm::LuminosityBlockPrincipal lumiPrincipal)
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 109 of file LH5Source.cc.

References edm::LuminosityBlockPrincipal::aux(), edm::LuminosityBlockPrincipal::fillLuminosityBlockPrincipal(), edm::InputSource::luminosityBlockAuxiliary(), phid_, edm::LuminosityBlockAuxiliary::processHistoryID(), and edm::InputSource::processHistoryRegistry().

109  {
110  luminosityBlockAuxiliary()->setProcessHistoryID(phid_);
111  lumiPrincipal.fillLuminosityBlockPrincipal(
112  processHistoryRegistry().getMapped(lumiPrincipal.aux().processHistoryID()));
113 }
ProcessHistoryRegistry const & processHistoryRegistry() const
Accessors for process history registry.
Definition: InputSource.h:140
edm::ProcessHistoryID phid_
Definition: LH5Source.h:62
void fillLuminosityBlockPrincipal(ProcessHistory const *processHistory, DelayedReader *reader=nullptr)
ProcessHistoryID const & processHistoryID() const
LuminosityBlockAuxiliary const & aux() const
std::shared_ptr< LuminosityBlockAuxiliary > luminosityBlockAuxiliary() const
Called by the framework to merge or insert lumi in principal cache.
Definition: InputSource.h:233
std::shared_ptr< edm::LuminosityBlockAuxiliary > LH5Source::readLuminosityBlockAuxiliary_ ( )
overrideprivatevirtual

Implements edm::InputSource.

Definition at line 175 of file LH5Source.cc.

References printConversionInfo::aux, edm::IDGeneratorSourceBase< PuttableSourceBase >::eventID(), edm::Timestamp::invalidTimestamp(), edm::EventID::luminosityBlock(), phid_, edm::IDGeneratorSourceBase< PuttableSourceBase >::presentTime(), edm::InputSource::processingMode(), edm::InputSource::resetNewLumi(), edm::EventID::run(), and edm::InputSource::Runs.

175  {
176  if (processingMode() == Runs)
177  return std::shared_ptr<edm::LuminosityBlockAuxiliary>();
179  resetNewLumi();
180  auto aux = std::make_shared<edm::LuminosityBlockAuxiliary>(
182  aux->setProcessHistoryID(phid_);
183  return aux;
184 }
RunNumber_t run() const
Definition: EventID.h:38
edm::ProcessHistoryID phid_
Definition: LH5Source.h:62
static Timestamp invalidTimestamp()
Definition: Timestamp.h:82
ProcessingMode processingMode() const
RunsLumisAndEvents (default), RunsAndLumis, or Runs.
Definition: InputSource.h:224
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:39
void LH5Source::readRun_ ( edm::RunPrincipal runPrincipal)
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 102 of file LH5Source.cc.

References edm::RunPrincipal::fillRunPrincipal(), phid_, edm::InputSource::processHistoryRegistryForUpdate(), putRunInfoProduct(), and edm::InputSource::runAuxiliary().

102  {
103  runAuxiliary()->setProcessHistoryID(phid_);
105 
106  putRunInfoProduct(runPrincipal);
107 }
edm::ProcessHistoryID phid_
Definition: LH5Source.h:62
void putRunInfoProduct(edm::RunPrincipal &)
Definition: LH5Source.cc:115
std::shared_ptr< RunAuxiliary > runAuxiliary() const
Called by the framework to merge or insert run in principal cache.
Definition: InputSource.h:230
ProcessHistoryRegistry & processHistoryRegistryForUpdate()
Definition: InputSource.h:329
void fillRunPrincipal(ProcessHistoryRegistry const &processHistoryRegistry, DelayedReader *reader=nullptr)
Definition: RunPrincipal.cc:28
std::shared_ptr< edm::RunAuxiliary > LH5Source::readRunAuxiliary_ ( )
overrideprivatevirtual
bool LH5Source::setRunAndEventInfo ( edm::EventID ,
edm::TimeValue_t ,
edm::EventAuxiliary::ExperimentType  
)
overrideprivatevirtual

Implements edm::IDGeneratorSourceBase< PuttableSourceBase >.

Definition at line 123 of file LH5Source.cc.

References nextEvent(), and partonLevel_.

123  {
124  nextEvent();
125  if (!partonLevel_) {
126  // We just finished an input file. See if there is another.
127  nextEvent();
128  if (!partonLevel_) {
129  // No more input files.
130  return false;
131  }
132  }
133  return true;
134 }
std::shared_ptr< lhef::LHEEvent > partonLevel_
Definition: LH5Source.h:58
void nextEvent()
Definition: LH5Source.cc:54

Member Data Documentation

edm::LHEProvenanceHelper LH5Source::lheProvenanceHelper_
private

Definition at line 61 of file LH5Source.h.

Referenced by LH5Source(), nextEvent(), putRunInfoProduct(), and readEvent_().

std::shared_ptr<lhef::LHEEvent> LH5Source::partonLevel_
private

Definition at line 58 of file LH5Source.h.

Referenced by nextEvent(), readEvent_(), and setRunAndEventInfo().

edm::ProcessHistoryID LH5Source::phid_
private
std::unique_ptr<lhef::LH5Reader> LH5Source::reader_
private

Definition at line 55 of file LH5Source.h.

Referenced by endJob(), and nextEvent().

std::shared_ptr<lhef::LHERunInfo> LH5Source::runInfoLast_
private

Definition at line 57 of file LH5Source.h.

Referenced by nextEvent().

std::unique_ptr<LHERunInfoProduct> LH5Source::runInfoProductLast_
private

Definition at line 60 of file LH5Source.h.

Referenced by nextEvent(), and putRunInfoProduct().