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
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
 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::LHEReaderreader_
 
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 LHESource.h.

Constructor & Destructor Documentation

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

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

Definition at line 49 of file LHESource.cc.

49 {}

Member Function Documentation

void LHESource::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 51 of file LHESource.cc.

References reader_.

51 { reader_.reset(); }
std::unique_ptr< lhef::LHEReader > reader_
Definition: LHESource.h:55
void LHESource::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 185 of file LHESource.cc.

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

185  {
187  desc.setComment("A source which reads LHE files.");
189  desc.addUntracked<unsigned int>("skipEvents", 0U)->setComment("Skip the first 'skipEvents' events.");
190  descriptions.add("source", desc);
191 }
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 LHESource::fillRunInfoProduct ( lhef::LHERunInfo const &  iInfo,
LHERunInfoProduct oProduct 
)
private

Definition at line 92 of file LHESource.cc.

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

Referenced by nextEvent().

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

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

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

Implements edm::ProducerSourceBase.

Definition at line 46 of file LHESource.h.

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

Definition at line 114 of file LHESource.cc.

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

Referenced by readRun_().

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

Reimplemented from edm::ProducerSourceBase.

Definition at line 135 of file LHESource.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().

135  {
138  aux.setProcessHistoryID(phid_);
139  eventPrincipal.fillEventPrincipal(aux, processHistoryRegistry().getMapped(aux.processHistoryID()));
140 
141  std::unique_ptr<LHEEventProduct> product(
142  new LHEEventProduct(*partonLevel_->getHEPEUP(), partonLevel_->originalXWGTUP()));
143  if (partonLevel_->getPDF()) {
144  product->setPDF(*partonLevel_->getPDF());
145  }
146  std::for_each(partonLevel_->weights().begin(),
147  partonLevel_->weights().end(),
148  std::bind(&LHEEventProduct::addWeight, product.get(), std::placeholders::_1));
149  product->setScales(partonLevel_->scales());
150  product->setNpLO(partonLevel_->npLO());
151  product->setNpNLO(partonLevel_->npNLO());
152  std::for_each(partonLevel_->getComments().begin(),
153  partonLevel_->getComments().end(),
154  std::bind(&LHEEventProduct::addComment, product.get(), std::placeholders::_1));
155 
156  std::unique_ptr<edm::WrapperBase> edp(new edm::Wrapper<LHEEventProduct>(std::move(product)));
158  std::move(edp),
160 
161  partonLevel_.reset();
162 
164 }
ProcessHistoryRegistry const & processHistoryRegistry() const
Accessors for process history registry.
Definition: InputSource.h:140
void addComment(const std::string &line)
edm::ProcessHistoryID phid_
Definition: LHESource.h:62
edm::LHEProvenanceHelper lheProvenanceHelper_
Definition: LHESource.h:61
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: LHESource.h:58
def move
Definition: eostools.py:511
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 LHESource::readLuminosityBlock_ ( edm::LuminosityBlockPrincipal lumiPrincipal)
overrideprivatevirtual

Reimplemented from edm::InputSource.

Definition at line 108 of file LHESource.cc.

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

108  {
109  luminosityBlockAuxiliary()->setProcessHistoryID(phid_);
110  lumiPrincipal.fillLuminosityBlockPrincipal(
111  processHistoryRegistry().getMapped(lumiPrincipal.aux().processHistoryID()));
112 }
ProcessHistoryRegistry const & processHistoryRegistry() const
Accessors for process history registry.
Definition: InputSource.h:140
edm::ProcessHistoryID phid_
Definition: LHESource.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 > LHESource::readLuminosityBlockAuxiliary_ ( )
overrideprivatevirtual

Implements edm::InputSource.

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

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

Reimplemented from edm::InputSource.

Definition at line 101 of file LHESource.cc.

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

101  {
102  runAuxiliary()->setProcessHistoryID(phid_);
104 
105  putRunInfoProduct(runPrincipal);
106 }
edm::ProcessHistoryID phid_
Definition: LHESource.h:62
void putRunInfoProduct(edm::RunPrincipal &)
Definition: LHESource.cc:114
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 > LHESource::readRunAuxiliary_ ( )
overrideprivatevirtual
bool LHESource::setRunAndEventInfo ( edm::EventID ,
edm::TimeValue_t ,
edm::EventAuxiliary::ExperimentType  
)
overrideprivatevirtual

Implements edm::IDGeneratorSourceBase< PuttableSourceBase >.

Definition at line 122 of file LHESource.cc.

References nextEvent(), and partonLevel_.

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

Member Data Documentation

edm::LHEProvenanceHelper LHESource::lheProvenanceHelper_
private

Definition at line 61 of file LHESource.h.

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

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

Definition at line 58 of file LHESource.h.

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

edm::ProcessHistoryID LHESource::phid_
private
std::unique_ptr<lhef::LHEReader> LHESource::reader_
private

Definition at line 55 of file LHESource.h.

Referenced by endJob(), and nextEvent().

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

Definition at line 57 of file LHESource.h.

Referenced by nextEvent().

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

Definition at line 60 of file LHESource.h.

Referenced by nextEvent(), and putRunInfoProduct().