CMS 3D CMS Logo

LHESource.h
Go to the documentation of this file.
1 #ifndef GeneratorInterface_LHEInterface_LHESource_h
2 #define GeneratorInterface_LHEInterface_LHESource_h
3 
4 #include <memory>
5 
6 #include <deque>
7 
12 
14 
15 namespace lhef {
16  class LHERunInfo;
17  class LHEEvent;
18  class LHEReader;
19 } // namespace lhef
20 
21 namespace edm {
22  class EventPrincipal;
23  class LuminosityBlockAuxiliary;
24  class LuminosityBlockPrincipal;
25  class ParameterSet;
26  class Run;
27  class RunAuxiliary;
28  class RunPrincipal;
29 } // namespace edm
30 
31 class LHERunInfoProduct;
32 
34 public:
35  explicit LHESource(const edm::ParameterSet& params, const edm::InputSourceDescription& desc);
36  ~LHESource() override;
37 
38  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
39 
40 private:
41  void endJob() override;
42  bool setRunAndEventInfo(edm::EventID&, edm::TimeValue_t&, edm::EventAuxiliary::ExperimentType&) override;
43  void readRun_(edm::RunPrincipal& runPrincipal) override;
44  void readLuminosityBlock_(edm::LuminosityBlockPrincipal& lumiPrincipal) override;
45  void readEvent_(edm::EventPrincipal& eventPrincipal) override;
46  void produce(edm::Event&) override {}
47  std::shared_ptr<edm::RunAuxiliary> readRunAuxiliary_() override;
48  std::shared_ptr<edm::LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_() override;
49 
50  void nextEvent();
51 
52  void putRunInfoProduct(edm::RunPrincipal&);
53  void fillRunInfoProduct(lhef::LHERunInfo const&, LHERunInfoProduct&);
54 
55  std::unique_ptr<lhef::LHEReader> reader_;
56 
57  std::shared_ptr<lhef::LHERunInfo> runInfoLast_;
58  std::shared_ptr<lhef::LHEEvent> partonLevel_;
59 
60  std::unique_ptr<LHERunInfoProduct> runInfoProductLast_;
63 };
64 
65 #endif // GeneratorInterface_LHEInterface_LHESource_h
edm::ProcessHistoryID phid_
Definition: LHESource.h:62
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
std::shared_ptr< lhef::LHEEvent > partonLevel_
Definition: LHESource.h:58
unsigned long long TimeValue_t
Definition: Timestamp.h:28
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
std::unique_ptr< lhef::LHEReader > reader_
Definition: LHESource.h:55
HLT enums.
void produce(edm::Event &) override
Definition: LHESource.h:46