CMS 3D CMS Logo

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
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::LH5Readerreader_
 
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 LH5Source.h.

Constructor & Destructor Documentation

◆ LH5Source()

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().

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

◆ ~LH5Source()

LH5Source::~LH5Source ( )
override

Definition at line 52 of file LH5Source.cc.

52 {}

Member Function Documentation

◆ endJob()

void LH5Source::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 54 of file LH5Source.cc.

References reader_.

54 { reader_.reset(); }
std::unique_ptr< lhef::LH5Reader > reader_
Definition: LH5Source.h:55

◆ fillDescriptions()

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

Definition at line 191 of file LH5Source.cc.

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

191  {
193  desc.setComment("A source which reads LHE files.");
195  desc.addUntracked<unsigned int>("skipEvents", 0U)->setComment("Skip the first 'skipEvents' events.");
196  // desc.addUntracked<int>("limitEvents", -1)->setComment("Limit the number of read events.");
197  descriptions.add("source", desc);
198 }
static void fillDescription(ParameterSetDescription &desc)
void add(std::string const &label, ParameterSetDescription const &psetDescription)

◆ fillRunInfoProduct()

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

Definition at line 95 of file LH5Source.cc.

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

Referenced by nextEvent().

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

Definition at line 56 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().

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

◆ produce()

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

Implements edm::ProducerSourceBase.

Definition at line 46 of file LH5Source.h.

46 {}

◆ putRunInfoProduct()

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

Definition at line 117 of file LH5Source.cc.

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

Referenced by readRun_().

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

◆ readEvent_()

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

Reimplemented from edm::ProducerSourceBase.

Definition at line 138 of file LH5Source.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.

138  {
141  aux.setProcessHistoryID(phid_);
142  eventPrincipal.fillEventPrincipal(aux,
143  processHistoryRegistry().getMapped(aux.processHistoryID()),
146 
147  std::unique_ptr<LHEEventProduct> product =
148  std::make_unique<LHEEventProduct>(*partonLevel_->getHEPEUP(), partonLevel_->originalXWGTUP());
149  if (partonLevel_->getPDF()) {
150  product->setPDF(*partonLevel_->getPDF());
151  }
152  std::for_each(partonLevel_->weights().begin(),
153  partonLevel_->weights().end(),
154  std::bind(&LHEEventProduct::addWeight, product.get(), std::placeholders::_1));
155  product->setScales(partonLevel_->scales());
156  product->setNpLO(partonLevel_->npLO());
157  product->setNpNLO(partonLevel_->npNLO());
158  std::for_each(partonLevel_->getComments().begin(),
159  partonLevel_->getComments().end(),
160  std::bind(&LHEEventProduct::addComment, product.get(), std::placeholders::_1));
161 
162  std::unique_ptr<edm::WrapperBase> edp = std::make_unique<edm::Wrapper<LHEEventProduct>>(std::move(product));
164  std::move(edp),
166 
167  partonLevel_.reset();
168 
170 }
edm::ProcessHistoryID phid_
Definition: LH5Source.h:62
void addComment(const std::string &line)
BranchListIndexes branchListIndexes_
void addWeight(const WGT &wgt)
assert(be >=bs)
std::vector< EventSelectionID > EventSelectionIDVector
std::shared_ptr< lhef::LHEEvent > partonLevel_
Definition: LH5Source.h:58
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
edm::LHEProvenanceHelper lheProvenanceHelper_
Definition: LH5Source.h:61
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 LH5Source::readLuminosityBlock_ ( edm::LuminosityBlockPrincipal lumiPrincipal)
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 111 of file LH5Source.cc.

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

111  {
112  luminosityBlockAuxiliary()->setProcessHistoryID(phid_);
113  lumiPrincipal.fillLuminosityBlockPrincipal(
114  processHistoryRegistry().getMapped(lumiPrincipal.aux().processHistoryID()));
115 }
edm::ProcessHistoryID phid_
Definition: LH5Source.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 > LH5Source::readLuminosityBlockAuxiliary_ ( )
overrideprivatevirtual

Implements edm::InputSource.

Definition at line 180 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.

180  {
181  if (processingMode() == Runs)
182  return std::shared_ptr<edm::LuminosityBlockAuxiliary>();
184  resetNewLumi();
185  auto aux = std::make_shared<edm::LuminosityBlockAuxiliary>(
187  aux->setProcessHistoryID(phid_);
188  return aux;
189 }
edm::ProcessHistoryID phid_
Definition: LH5Source.h:62
static Timestamp invalidTimestamp()
Definition: Timestamp.h:75
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 LH5Source::readRun_ ( edm::RunPrincipal runPrincipal)
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 104 of file LH5Source.cc.

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

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

◆ readRunAuxiliary_()

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

◆ setRunAndEventInfo()

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

Implements edm::IDGeneratorSourceBase< PuttableSourceBase >.

Definition at line 125 of file LH5Source.cc.

References nextEvent(), and partonLevel_.

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

Member Data Documentation

◆ lheProvenanceHelper_

edm::LHEProvenanceHelper LH5Source::lheProvenanceHelper_
private

Definition at line 61 of file LH5Source.h.

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

◆ partonLevel_

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

Definition at line 58 of file LH5Source.h.

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

◆ phid_

edm::ProcessHistoryID LH5Source::phid_
private

◆ reader_

std::unique_ptr<lhef::LH5Reader> LH5Source::reader_
private

Definition at line 55 of file LH5Source.h.

Referenced by endJob(), and nextEvent().

◆ runInfoLast_

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

Definition at line 57 of file LH5Source.h.

Referenced by nextEvent().

◆ runInfoProductLast_

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

Definition at line 60 of file LH5Source.h.

Referenced by nextEvent(), and putRunInfoProduct().