-
Notifications
You must be signed in to change notification settings - Fork 1
/
Indices.cc
105 lines (91 loc) · 5.27 KB
/
Indices.cc
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
#include <string>
#include <cp3_llbb/TTWAnalysis/interface/Indices.h>
namespace TTWAnalysis {
// Combination of Lepton ID + Lepton Isolation for a single lepton
uint16_t LepIDIso(const LepID::LepID& id, const LepIso::LepIso& iso){
return LepIso::Count * id + iso;
}
std::string LepIDIsoStr(const LepID::LepID& id, const LepIso::LepIso& iso){
return "ID" + LepID::map.at(id) + "_Iso" + LepIso::map.at(iso);
}
// Combination of Lepton ID for a DiLepton object
uint16_t LepLepID(const LepID::LepID& id1, const LepID::LepID& id2){
return LepID::Count * id1 + id2;
}
std::string LepLepIDStr(const LepID::LepID& id1, const LepID::LepID& id2){
return LepID::map.at(id1) + LepID::map.at(id2);
}
// Combination of Lepton Isolation for a DiLepton object
uint16_t LepLepIso(const LepIso::LepIso& iso1, const LepIso::LepIso& iso2){
return LepIso::Count * iso1 + iso2;
}
std::string LepLepIsoStr(const LepIso::LepIso& iso1, const LepIso::LepIso& iso2){
return LepIso::map.at(iso1) + LepIso::map.at(iso2);
}
// Combination of Lepton ID + Lepton Isolation for a DiLepton object
uint16_t LepLepIDIso(const LepID::LepID& id1, const LepIso::LepIso& iso1, const LepID::LepID& id2, const LepIso::LepIso& iso2){
return LepIso::Count*LepID::Count*LepIso::Count * id1 + LepID::Count*LepIso::Count * iso1 + LepIso::Count * id2 + iso2;
}
std::string LepLepIDIsoStr(const LepID::LepID& id1, const LepIso::LepIso& iso1, const LepID::LepID& id2, const LepIso::LepIso& iso2){
return "ID" + LepID::map.at(id1) + LepID::map.at(id2) + "_Iso" + LepIso::map.at(iso1) + LepIso::map.at(iso2);
}
// Combination of Jet IDs for two jets (NOTE: NOT USED FOR NOW)
uint16_t JetJetID(const JetID::JetID& id1, const JetID::JetID& id2){
return JetID::Count * id1 + id2;
}
std::string JetJetIDStr(const JetID::JetID& id1, const JetID::JetID& id2){
return JetID::map.at(id1) + JetID::map.at(id2);
}
// Combination of Jet ID and B-tagging working point (NOTE: NOT USED FOR NOW)
uint16_t JetIDBWP(const JetID::JetID& id, const BWP::BWP& wp){
return BWP::Count * id + wp;
}
std::string JetIDBWPStr(const JetID::JetID& id, const BWP::BWP& wp){
return "ID" + JetID::map.at(id) + "_B" + BWP::map.at(wp);
}
// Combination of Lepton ID + Lepton Isolation (one lepton) and B-tagging working point for one jet
uint16_t LepIDIsoJetBWP(const LepID::LepID& id, const LepIso::LepIso& iso, const BWP::BWP& wp){
return LepIso::Count*BWP::Count * id + BWP::Count * iso + wp;
}
std::string LepIDIsoJetBWPStr(const LepID::LepID& id, const LepIso::LepIso& iso, const BWP::BWP& wp){
return "ID" + LepID::map.at(id) + "_Iso" + LepIso::map.at(iso) + "_B" + BWP::map.at(wp);
}
// Combination of B-tagging working points for two jets
uint16_t JetJetBWP(const BWP::BWP& wp1, const BWP::BWP& wp2){
return BWP::Count * wp1 + wp2;
}
std::string JetJetBWPStr(const BWP::BWP& wp1, const BWP::BWP& wp2){
return BWP::map.at(wp1) + BWP::map.at(wp2);
}
// Combination of Jet ID and B-tagging working points for two jets (NOTE: NOT USED FOR NOW)
uint16_t JetJetIDBWP(const JetID::JetID& id1, const BWP::BWP& wp1, const JetID::JetID& id2, const BWP::BWP& wp2){
return
BWP::Count*JetID::Count*BWP::Count * id1 +
JetID::Count*BWP::Count * wp1 +
BWP::Count * id2 +
wp2 ;
}
std::string JetJetIDBWPStr(const JetID::JetID& id1, const BWP::BWP wp1, const JetID::JetID& id2, const BWP::BWP wp2){
return "ID" + JetID::map.at(id1) + JetID::map.at(id2) + "_B" + BWP::map.at(wp1) + BWP::map.at(wp2);
}
// Combination of Lepton ID + Lepton Isolation (one lepton) and B-tagging working points for two jets
uint16_t LepIDIsoJetJetBWP(const LepID::LepID& id, const LepIso::LepIso& iso, const BWP::BWP& wp1, const BWP::BWP& wp2){
return LepIso::Count*BWP::Count*BWP::Count * id + BWP::Count*BWP::Count * iso + BWP::Count * wp1 + wp2;
}
std::string LepIDIsoJetJetBWPStr(const LepID::LepID& id, const LepIso::LepIso& iso, const BWP::BWP& wp1, const BWP::BWP& wp2){
return "ID" + LepID::map.at(id) + "_Iso" + LepIso::map.at(iso) + "_B" + BWP::map.at(wp1) + BWP::map.at(wp2);
}
// Combination of Lepton ID, Lepton Isolation, and B-tagging working points for a two-lepton-two-b-jets object
uint16_t LepLepIDIsoJetJetBWP(const LepID::LepID& id1, const LepIso::LepIso& iso1, const LepID::LepID& id2, const LepIso::LepIso& iso2, const BWP::BWP& wp1, const BWP::BWP& wp2){
return
LepIso::Count*LepID::Count*LepIso::Count*BWP::Count*BWP::Count * id1 +
LepID::Count*LepIso::Count*BWP::Count*BWP::Count * iso1 +
LepIso::Count*BWP::Count*BWP::Count * id2 +
BWP::Count*BWP::Count * iso2 +
BWP::Count * wp1 +
wp2 ;
}
std::string LepLepIDIsoJetJetBWPStr(const LepID::LepID& id1, const LepIso::LepIso& iso1, const LepID::LepID& id2, const LepIso::LepIso& iso2, const BWP::BWP& wp1, const BWP::BWP& wp2){
return "Lep_ID" + LepID::map.at(id1) + LepID::map.at(id2) + "_Iso" + LepIso::map.at(iso1) + LepIso::map.at(iso2) + "_B" + BWP::map.at(wp1) + BWP::map.at(wp2);
}
}