1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
#ifndef GeneratorInterface_LHEInterface_LHESource_h
#define GeneratorInterface_LHEInterface_LHESource_h
#include <memory>
#include <deque>
#include "DataFormats/Provenance/interface/ProcessHistoryID.h"
#include "GeneratorInterface/LHEInterface/plugins/LHEProvenanceHelper.h"
#include "FWCore/Sources/interface/ProducerSourceFromFiles.h"
#include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
#include "SimDataFormats/GeneratorProducts/interface/LesHouches.h"
namespace lhef {
class LHERunInfo;
class LHEEvent;
class LHEReader;
} // namespace lhef
namespace edm {
class EventPrincipal;
class LuminosityBlockAuxiliary;
class LuminosityBlockPrincipal;
class ParameterSet;
class Run;
class RunAuxiliary;
class RunPrincipal;
} // namespace edm
class LHERunInfoProduct;
class LHESource : public edm::ProducerSourceFromFiles {
public:
explicit LHESource(const edm::ParameterSet& params, const edm::InputSourceDescription& desc);
~LHESource() override;
static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
private:
void endJob() override;
bool setRunAndEventInfo(edm::EventID&, edm::TimeValue_t&, edm::EventAuxiliary::ExperimentType&) override;
void readRun_(edm::RunPrincipal& runPrincipal) override;
void readLuminosityBlock_(edm::LuminosityBlockPrincipal& lumiPrincipal) override;
void readEvent_(edm::EventPrincipal& eventPrincipal) override;
void produce(edm::Event&) override {}
std::shared_ptr<edm::RunAuxiliary> readRunAuxiliary_() override;
std::shared_ptr<edm::LuminosityBlockAuxiliary> readLuminosityBlockAuxiliary_() override;
void nextEvent();
void putRunInfoProduct(edm::RunPrincipal&);
void fillRunInfoProduct(lhef::LHERunInfo const&, LHERunInfoProduct&);
std::unique_ptr<lhef::LHEReader> reader_;
std::shared_ptr<lhef::LHERunInfo> runInfoLast_;
std::shared_ptr<lhef::LHEEvent> partonLevel_;
std::unique_ptr<LHERunInfoProduct> runInfoProductLast_;
edm::LHEProvenanceHelper lheProvenanceHelper_;
edm::ProcessHistoryID phid_;
};
#endif // GeneratorInterface_LHEInterface_LHESource_h
|