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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
|
// Test reading of values from the config file into
// an analyzer. Especially useful for some of the more
// complex data types
//
// Original Author: Eric Vaandering
// Created: Mon Dec 22 13:43:10 CST 2008
//
//
// user include files
#include "DataFormats/Provenance/interface/EventRange.h"
#include "DataFormats/Provenance/interface/LuminosityBlockRange.h"
#include "FWCore/Framework/interface/global/EDAnalyzer.h"
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
// system include files
#include <iostream>
#include <memory>
//
// class decleration
//
class TestPSetAnalyzer : public edm::global::EDAnalyzer<> {
public:
explicit TestPSetAnalyzer(edm::ParameterSet const&);
private:
void analyze(edm::StreamID, edm::Event const&, edm::EventSetup const&) const final;
edm::LuminosityBlockID testLumi_;
edm::LuminosityBlockRange testLRange_;
edm::EventRange testERange_;
std::vector<edm::LuminosityBlockID> testVLumi_;
std::vector<edm::LuminosityBlockRange> testVLRange_;
std::vector<edm::EventRange> testVERange_;
edm::EventID testEventID1_;
edm::EventID testEventID2_;
edm::EventID testEventID3_;
edm::EventID testEventID4_;
std::vector<edm::EventID> testVEventID_;
edm::EventRange testERange1_;
edm::EventRange testERange2_;
edm::EventRange testERange3_;
edm::EventRange testERange4_;
edm::EventRange testERange5_;
std::vector<edm::EventRange> testVERange2_;
// ----------member data ---------------------------
};
//
// constants, enums and typedefs
//
//
// static data member definitions
//
//
// constructors and destructor
//
TestPSetAnalyzer::TestPSetAnalyzer(edm::ParameterSet const& iConfig) {
testLumi_ = iConfig.getParameter<edm::LuminosityBlockID>("testLumi");
testVLumi_ = iConfig.getParameter<std::vector<edm::LuminosityBlockID> >("testVLumi");
testLRange_ = iConfig.getParameter<edm::LuminosityBlockRange>("testRange");
testVLRange_ = iConfig.getParameter<std::vector<edm::LuminosityBlockRange> >("testVRange");
testERange_ = iConfig.getParameter<edm::EventRange>("testERange");
testVERange_ = iConfig.getParameter<std::vector<edm::EventRange> >("testVERange");
testEventID1_ = iConfig.getParameter<edm::EventID>("testEventID1");
testEventID2_ = iConfig.getParameter<edm::EventID>("testEventID2");
testEventID3_ = iConfig.getParameter<edm::EventID>("testEventID3");
testEventID4_ = iConfig.getParameter<edm::EventID>("testEventID4");
testVEventID_ = iConfig.getParameter<std::vector<edm::EventID> >("testVEventID");
testERange1_ = iConfig.getParameter<edm::EventRange>("testERange1");
testERange2_ = iConfig.getParameter<edm::EventRange>("testERange2");
testERange3_ = iConfig.getParameter<edm::EventRange>("testERange3");
testERange4_ = iConfig.getParameter<edm::EventRange>("testERange4");
testERange5_ = iConfig.getParameter<edm::EventRange>("testERange5");
testVERange2_ = iConfig.getParameter<std::vector<edm::EventRange> >("testVERange2");
std::cout << "Lumi PSet test " << testLumi_ << std::endl;
std::cout << "LRange PSet test " << testLRange_ << std::endl;
std::cout << "ERange PSet test " << testERange_ << std::endl;
for (auto const& i : testVLumi_) {
std::cout << "VLumi PSet test " << i << std::endl;
}
for (auto const& i : testVLRange_) {
std::cout << "VLRange PSet test " << i << std::endl;
}
for (auto const& i : testVERange_) {
std::cout << "VERange PSet test " << i << std::endl;
}
std::cout << "EventID1 PSet test " << testEventID1_ << std::endl;
std::cout << "EventID2 PSet test " << testEventID2_ << std::endl;
std::cout << "EventID3 PSet test " << testEventID3_ << std::endl;
std::cout << "EventID4 PSet test " << testEventID4_ << std::endl;
std::cout << "ERange1 PSet test " << testERange1_ << std::endl;
std::cout << "ERange2 PSet test " << testERange2_ << std::endl;
std::cout << "ERange3 PSet test " << testERange3_ << std::endl;
std::cout << "ERange4 PSet test " << testERange4_ << std::endl;
std::cout << "ERange5 PSet test " << testERange5_ << std::endl;
for (auto const& i : testVEventID_) {
std::cout << "VEventID PSet test " << i << std::endl;
}
for (auto const& i : testVERange2_) {
std::cout << "VERange2 PSet test " << i << std::endl;
}
}
//
// member functions
//
// ------------ method called to for each event ------------
void TestPSetAnalyzer::analyze(edm::StreamID, edm::Event const&, edm::EventSetup const&) const {}
//define this as a plug-in
DEFINE_FWK_MODULE(TestPSetAnalyzer);
|