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
|
#if defined(__CINT__) && !defined(__MAKECINT__)
class loadFWLite {
public:
loadFWLite() {
gSystem->Load("libFWCoreFWLite");
FWLiteEnabler::enable();
}
};
static loadFWLite lfw;
#endif
#include "DataFormats/FWLite/interface/Handle.h"
#include <string>
#include <vector>
#include <iostream>
int triggernames_multi_cint() {
std::vector<std::string> files1;
files1.push_back(std::string("prodmerge.root"));
std::vector<std::string> files2;
files2.push_back(std::string("prod1.root"));
files2.push_back(std::string("prod2.root"));
fwlite::MultiChainEvent ev(files1, files2);
fwlite::Handle<edm::TriggerResults> hTriggerResults;
int iEvent = 0;
for (ev.toBegin(); !ev.atEnd(); ++ev) {
++iEvent;
hTriggerResults.getByLabel(ev, "TriggerResults", "", "TEST");
edm::TriggerNames const& triggerNames = ev.triggerNames(*hTriggerResults);
std::vector<std::string> const& names = triggerNames.triggerNames();
for (unsigned i = 0; i < triggerNames.size(); ++i) {
std::cout << names[i] << " " << triggerNames.triggerName(i) << std::endl;
}
std::cout << "size = " << triggerNames.size() << std::endl;
std::cout << "index for p = " << triggerNames.triggerIndex("p") << std::endl;
std::cout << "index for p1 = " << triggerNames.triggerIndex("p1") << std::endl;
std::cout << "index for p2 = " << triggerNames.triggerIndex("p2") << std::endl;
if (iEvent == 1) {
if (triggerNames.size() != 3U || names[0] != "p" || names[1] != "p1" || names[2] != "p2" ||
triggerNames.triggerName(0) != "p" || triggerNames.triggerName(1) != "p1" ||
triggerNames.triggerName(2) != "p2" || triggerNames.triggerIndex("p") != 0 ||
triggerNames.triggerIndex("p1") != 1 || triggerNames.triggerIndex("p2") != 2) {
std::cout << "Trigger names do match expected values\n";
std::cout << "In script triggernames_multi_cint.C\n";
return 1;
}
}
}
return 0;
}
|