-
Notifications
You must be signed in to change notification settings - Fork 4.2k
/
LHESource.h
63 lines (48 loc) · 1.87 KB
/
LHESource.h
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
#ifndef GeneratorInterface_LHEInterface_LHESource_h
#define GeneratorInterface_LHEInterface_LHESource_h
#include <memory>
#include <boost/shared_ptr.hpp>
#include <boost/ptr_container/ptr_deque.hpp>
#include "DataFormats/Provenance/interface/ProcessHistoryID.h"
#include "GeneratorInterface/LHEInterface/plugins/LHEProvenanceHelper.h"
#include "FWCore/Sources/interface/ProducerSourceFromFiles.h"
#include "SimDataFormats/GeneratorProducts/interface/LesHouches.h"
namespace lhef {
class LHERunInfo;
class LHEEvent;
class LHEReader;
}
namespace edm {
class EventPrincipal;
class LuminosityBlockPrincipal;
class ParameterSet;
class Run;
class RunPrincipal;
}
class LHERunInfoProduct;
class LHESource : public edm::ProducerSourceFromFiles {
public:
explicit LHESource(const edm::ParameterSet ¶ms,
const edm::InputSourceDescription &desc);
virtual ~LHESource();
private:
virtual void endJob() override;
virtual void beginRun(edm::Run &run) override;
virtual void endRun(edm::Run &run) override;
virtual bool setRunAndEventInfo(edm::EventID&, edm::TimeValue_t&, edm::EventAuxiliary::ExperimentType&) override;
virtual void readRun_(edm::RunPrincipal& runPrincipal) override;
virtual void readLuminosityBlock_(edm::LuminosityBlockPrincipal& lumiPrincipal) override;
virtual void readEvent_(edm::EventPrincipal& eventPrincipal) override;
virtual void produce(edm::Event&) {}
void nextEvent();
std::auto_ptr<lhef::LHEReader> reader;
boost::shared_ptr<lhef::LHERunInfo> runInfoLast;
boost::shared_ptr<lhef::LHERunInfo> runInfo;
boost::shared_ptr<lhef::LHEEvent> partonLevel;
boost::ptr_deque<LHERunInfoProduct> runInfoProducts;
bool wasMerged;
edm::LHEProvenanceHelper lheProvenanceHelper_;
edm::ProcessHistoryID phid_;
edm::RunPrincipal* runPrincipal_;
};
#endif // GeneratorInterface_LHEInterface_LHESource_h