CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
LHESource Class Reference

#include <LHESource.h>

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

Public Member Functions

 LHESource (const edm::ParameterSet &params, const edm::InputSourceDescription &desc)
 
 ~LHESource () override
 
- Public Member Functions inherited from edm::ProducerSourceFromFiles
InputFileCatalogcatalog ()
 
std::vector< std::string > fileNames (unsigned iCatalog) const
 
std::vector< std::string > const & logicalFileNames () const
 
 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 (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
void registerProducts () final
 Register any produced products. More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
- 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< LuminosityBlockAuxiliaryluminosityBlockAuxiliary () 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...
 
ItemTypeInfo 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...
 
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< LuminosityBlockAuxiliaryreadLuminosityBlockAuxiliary ()
 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)
 
void switchTo (std::shared_ptr< ProductRegistry > iOther)
 switch to a different ProductRegistry. More...
 
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
 
std::vector< bool > const & recordProvenanceList () 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)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~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::LuminosityBlockAuxiliaryreadLuminosityBlockAuxiliary_ () override
 
void readRun_ (edm::RunPrincipal &runPrincipal) override
 
std::shared_ptr< edm::RunAuxiliaryreadRunAuxiliary_ () 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::LHEReaderreader_
 
std::shared_ptr< lhef::LHERunInforunInfoLast_
 
std::unique_ptr< LHERunInfoProductrunInfoProductLast_
 

Additional Inherited Members

- Public Types inherited from edm::InputSource
enum  ItemPosition : char { ItemPosition::Invalid, ItemPosition::LastItemToBeMerged, ItemPosition::NotLastItemToBeMerged }
 
enum  ItemType : char {
  ItemType::IsInvalid, ItemType::IsStop, ItemType::IsFile, ItemType::IsRun,
  ItemType::IsLumi, ItemType::IsEvent, ItemType::IsRepeat, ItemType::IsSynchronize
}
 
enum  ProcessingMode { Runs, RunsAndLumis, RunsLumisAndEvents }
 
- Public Types inherited from edm::ProducerBase
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
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::ProducerSourceFromFiles
void incrementFileIndex ()
 
- 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...
 
ItemTypeInfo state () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 

Detailed Description

Definition at line 33 of file LHESource.h.

Constructor & Destructor Documentation

◆ LHESource()

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

Definition at line 33 of file LHESource.cc.

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

35  reader_(new LHEReader(fileNames(0), params.getUntrackedParameter<unsigned int>("skipEvents", 0))),
40  phid_() {
41  nextEvent();
43  // Initialize metadata, and save the process history ID for use every event.
45 
46  // These calls are not wanted, because the principals are used for putting the products.
47  //produces<LHEEventProduct>();
48  //produces<LHERunInfoProduct, edm::InRun>();
49 }
ProductRegistry & productRegistryUpdate()
Definition: InputSource.h:359
edm::ProcessHistoryID phid_
Definition: LHESource.h:62
edm::LHEProvenanceHelper lheProvenanceHelper_
Definition: LHESource.h:61
ProducerSourceFromFiles(ParameterSet const &pset, InputSourceDescription const &desc, bool realData)
std::shared_ptr< BranchIDListHelper const > branchIDListHelper() const
Accessors for branchIDListHelper.
Definition: InputSource.h:172
void nextEvent()
Definition: LHESource.cc:55
ProcessHistoryID lheInit(ProcessHistoryRegistry &processHistoryRegistry)
std::unique_ptr< lhef::LHEReader > reader_
Definition: LHESource.h:55
ProcessHistoryRegistry & processHistoryRegistryForUpdate()
Definition: InputSource.h:360
std::vector< std::string > fileNames(unsigned iCatalog) const
Definition: FromFiles.h:22
void lheAugment(lhef::LHERunInfo const *runInfo)

◆ ~LHESource()

LHESource::~LHESource ( )
override

Definition at line 51 of file LHESource.cc.

51 {}

Member Function Documentation

◆ endJob()

void LHESource::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 53 of file LHESource.cc.

References reader_.

53 { reader_.reset(); }
std::unique_ptr< lhef::LHEReader > reader_
Definition: LHESource.h:55

◆ fillDescriptions()

void LHESource::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 190 of file LHESource.cc.

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::desc, edm::ProducerSourceFromFiles::fillDescription(), and mitigatedMETSequence_cff::U.

190  {
192  desc.setComment("A source which reads LHE files.");
194  desc.addUntracked<unsigned int>("skipEvents", 0U)->setComment("Skip the first 'skipEvents' events.");
195  descriptions.add("source", desc);
196 }
static void fillDescription(ParameterSetDescription &desc)
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ fillRunInfoProduct()

void LHESource::fillRunInfoProduct ( lhef::LHERunInfo const &  iInfo,
LHERunInfoProduct oProduct 
)
private

Definition at line 94 of file LHESource.cc.

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

Referenced by nextEvent().

94  {
95  for (auto const& h : iInfo.getHeaders()) {
96  oProduct.addHeader(h);
97  }
98  for (auto const& c : iInfo.getComments()) {
99  oProduct.addComment(c);
100  }
101 }
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

◆ nextEvent()

void LHESource::nextEvent ( )
private

Definition at line 55 of file LHESource.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 LHESource(), and setRunAndEventInfo().

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

◆ produce()

void LHESource::produce ( edm::Event )
inlineoverrideprivatevirtual

Implements edm::ProducerSourceBase.

Definition at line 46 of file LHESource.h.

46 {}

◆ putRunInfoProduct()

void LHESource::putRunInfoProduct ( edm::RunPrincipal iRunPrincipal)
private

Definition at line 116 of file LHESource.cc.

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

Referenced by readRun_().

116  {
117  if (runInfoProductLast_) {
118  auto product = std::make_unique<LHERunInfoProduct>(*runInfoProductLast_);
119  std::unique_ptr<edm::WrapperBase> rdp = std::make_unique<edm::Wrapper<LHERunInfoProduct>>(std::move(product));
121  }
122 }
void putOrMerge(BranchDescription const &bd, std::unique_ptr< WrapperBase > edp) const
Definition: RunPrincipal.cc:44
edm::LHEProvenanceHelper lheProvenanceHelper_
Definition: LHESource.h:61
std::unique_ptr< LHERunInfoProduct > runInfoProductLast_
Definition: LHESource.h:60
BranchDescription const runProductBranchDescription_
def move(src, dest)
Definition: eostools.py:511

◆ readEvent_()

void LHESource::readEvent_ ( edm::EventPrincipal eventPrincipal)
overrideprivatevirtual

Reimplemented from edm::ProducerSourceBase.

Definition at line 137 of file LHESource.cc.

References LHEEventProduct::addComment(), LHEEventProduct::addWeight(), cms::cuda::assert(), printConversionInfo::aux, edm::LHEProvenanceHelper::branchListIndexes_, 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::InputSource::processHistoryRegistry(), edm::InputSource::processingMode(), edm::EventPrincipal::put(), edm::InputSource::resetEventCached(), and edm::InputSource::RunsLumisAndEvents.

137  {
140  aux.setProcessHistoryID(phid_);
141  eventPrincipal.fillEventPrincipal(aux,
142  processHistoryRegistry().getMapped(aux.processHistoryID()),
145 
146  std::unique_ptr<LHEEventProduct> product =
147  std::make_unique<LHEEventProduct>(*partonLevel_->getHEPEUP(), partonLevel_->originalXWGTUP());
148  if (partonLevel_->getPDF()) {
149  product->setPDF(*partonLevel_->getPDF());
150  }
151  std::for_each(partonLevel_->weights().begin(),
152  partonLevel_->weights().end(),
153  std::bind(&LHEEventProduct::addWeight, product.get(), std::placeholders::_1));
154  product->setScales(partonLevel_->scales());
155  product->setNpLO(partonLevel_->npLO());
156  product->setNpNLO(partonLevel_->npNLO());
157  std::for_each(partonLevel_->getComments().begin(),
158  partonLevel_->getComments().end(),
159  std::bind(&LHEEventProduct::addComment, product.get(), std::placeholders::_1));
160 
161  std::unique_ptr<edm::WrapperBase> edp = std::make_unique<edm::Wrapper<LHEEventProduct>>(std::move(product));
163  std::move(edp),
165 
166  partonLevel_.reset();
167 
169 }
void addComment(const std::string &line)
edm::ProcessHistoryID phid_
Definition: LHESource.h:62
edm::LHEProvenanceHelper lheProvenanceHelper_
Definition: LHESource.h:61
BranchListIndexes branchListIndexes_
void addWeight(const WGT &wgt)
assert(be >=bs)
std::vector< EventSelectionID > EventSelectionIDVector
void put(BranchDescription const &bd, std::unique_ptr< WrapperBase > edp, ProductProvenance const &productProvenance) const
std::string const & processGUID() const
Accessor for global process identifier.
Definition: InputSource.h:226
std::shared_ptr< lhef::LHEEvent > partonLevel_
Definition: LHESource.h:58
bool eventCached() const
Definition: InputSource.h:389
void resetEventCached()
Definition: InputSource.h:392
ProcessHistoryRegistry const & processHistoryRegistry() const
Accessors for process history registry.
Definition: InputSource.h:168
void fillEventPrincipal(EventAuxiliary const &aux, ProcessHistory const *processHistory, DelayedReader *reader=nullptr)
ProductProvenance eventProductProvenance_
def move(src, dest)
Definition: eostools.py:511
BranchDescription const eventProductBranchDescription_
ProcessingMode processingMode() const
RunsLumisAndEvents (default), RunsAndLumis, or Runs.
Definition: InputSource.h:255

◆ readLuminosityBlock_()

void LHESource::readLuminosityBlock_ ( edm::LuminosityBlockPrincipal lumiPrincipal)
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 110 of file LHESource.cc.

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

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

◆ readLuminosityBlockAuxiliary_()

std::shared_ptr< edm::LuminosityBlockAuxiliary > LHESource::readLuminosityBlockAuxiliary_ ( )
overrideprivatevirtual

Implements edm::InputSource.

Definition at line 179 of file LHESource.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.

179  {
180  if (processingMode() == Runs)
181  return std::shared_ptr<edm::LuminosityBlockAuxiliary>();
183  resetNewLumi();
184  auto aux = std::make_shared<edm::LuminosityBlockAuxiliary>(
186  aux->setProcessHistoryID(phid_);
187  return aux;
188 }
static Timestamp invalidTimestamp()
Definition: Timestamp.h:75
edm::ProcessHistoryID phid_
Definition: LHESource.h:62
LuminosityBlockNumber_t luminosityBlock() const
Definition: EventID.h:39
RunNumber_t run() const
Definition: EventID.h:38
ProcessingMode processingMode() const
RunsLumisAndEvents (default), RunsAndLumis, or Runs.
Definition: InputSource.h:255

◆ readRun_()

void LHESource::readRun_ ( edm::RunPrincipal runPrincipal)
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 103 of file LHESource.cc.

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

103  {
104  runAuxiliary()->setProcessHistoryID(phid_);
106 
107  putRunInfoProduct(runPrincipal);
108 }
std::shared_ptr< RunAuxiliary > runAuxiliary() const
Called by the framework to merge or insert run in principal cache.
Definition: InputSource.h:261
edm::ProcessHistoryID phid_
Definition: LHESource.h:62
void putRunInfoProduct(edm::RunPrincipal &)
Definition: LHESource.cc:116
ProcessHistoryRegistry & processHistoryRegistryForUpdate()
Definition: InputSource.h:360
void fillRunPrincipal(ProcessHistoryRegistry const &processHistoryRegistry, DelayedReader *reader=nullptr)
Definition: RunPrincipal.cc:25

◆ readRunAuxiliary_()

std::shared_ptr< edm::RunAuxiliary > LHESource::readRunAuxiliary_ ( )
overrideprivatevirtual

◆ setRunAndEventInfo()

bool LHESource::setRunAndEventInfo ( edm::EventID ,
edm::TimeValue_t ,
edm::EventAuxiliary::ExperimentType  
)
overrideprivatevirtual

Implements edm::IDGeneratorSourceBase< PuttableSourceBase >.

Definition at line 124 of file LHESource.cc.

References nextEvent(), and partonLevel_.

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

Member Data Documentation

◆ lheProvenanceHelper_

edm::LHEProvenanceHelper LHESource::lheProvenanceHelper_
private

Definition at line 61 of file LHESource.h.

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

◆ partonLevel_

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

Definition at line 58 of file LHESource.h.

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

◆ phid_

edm::ProcessHistoryID LHESource::phid_
private

◆ reader_

std::unique_ptr<lhef::LHEReader> LHESource::reader_
private

Definition at line 55 of file LHESource.h.

Referenced by endJob(), and nextEvent().

◆ runInfoLast_

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

Definition at line 57 of file LHESource.h.

Referenced by nextEvent().

◆ runInfoProductLast_

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

Definition at line 60 of file LHESource.h.

Referenced by nextEvent(), and putRunInfoProduct().