11 << (
"ObjectResolutionCalc") <<
"=== Constructing a TopObjectResolutionCalc...";
14 edm::LogError(
"ObjectResolutionCalc") <<
"No resolutions fits for this file available: " << resopath <<
"...";
15 TString resObsName[8] = {
"_ares",
"_bres",
"_cres",
"_dres",
"_thres",
"_phres",
"_etres",
"_etares"};
20 while ((key = (TKey*)nextitem())) {
21 TString
name = key->GetName();
23 for (Int_t ro = 0; ro < 8; ro++) {
24 TString obsName = resObsName[ro];
26 if (name.Contains(obsName)) {
31 if (name.Contains(
"etabin") && (!name.Contains(
"etbin"))) {
32 for (
int p = 0;
p < 8;
p++) {
33 if (name.Contains(resObsName[
p])) {
34 TString etabin =
name;
35 etabin.Remove(0, etabin.Index(
"_") + 1);
36 etabin.Remove(0, etabin.Index(
"_") + 7);
37 int etaBin = etabin.Atoi();
46 TH1F* tmpEta = (TH1F*)(
resoFile_->GetKey(
"hEtaBins")->ReadObj());
47 for (
int b = 1;
b <= tmpEta->GetNbinsX();
b++)
48 etaBinVals_.push_back(tmpEta->GetXaxis()->GetBinLowEdge(
b));
49 etaBinVals_.push_back(tmpEta->GetXaxis()->GetBinUpEdge(tmpEta->GetNbinsX()));
64 "TopObjectResolutionCalc::obsRes should never be called when using a NN for resolutions.");
71 int bin = nrEtaBins - 1;
72 for (
int i = 0;
i < nrEtaBins;
i++) {
85 obj.setResolutionA(
network_[0]->Evaluate(0, v));
86 obj.setResolutionB(
network_[1]->Evaluate(0, v));
87 obj.setResolutionC(
network_[2]->Evaluate(0, v));
88 obj.setResolutionD(
network_[3]->Evaluate(0, v));
89 obj.setResolutionTheta(
network_[4]->Evaluate(0, v));
90 obj.setResolutionPhi(
network_[5]->Evaluate(0, v));
91 obj.setResolutionEt(
network_[6]->Evaluate(0, v));
92 obj.setResolutionEta(
network_[7]->Evaluate(0, v));
95 obj.setResolutionA(this->
obsRes(0, bin, obj.
et()));
96 obj.setResolutionB(this->
obsRes(1, bin, obj.
et()));
97 obj.setResolutionC(this->
obsRes(2, bin, obj.
et()));
98 obj.setResolutionD(this->
obsRes(3, bin, obj.
et()));
99 obj.setResolutionTheta(this->
obsRes(4, bin, obj.
et()));
100 obj.setResolutionPhi(this->
obsRes(5, bin, obj.
et()));
101 obj.setResolutionEt(this->
obsRes(6, bin, obj.
et()));
102 obj.setResolutionEta(this->
obsRes(7, bin, obj.
et()));
111 obj.setResolutionA(
network_[0]->Evaluate(0, v));
112 obj.setResolutionB(
network_[1]->Evaluate(0, v));
113 obj.setResolutionC(
network_[2]->Evaluate(0, v));
114 obj.setResolutionD(
network_[3]->Evaluate(0, v));
115 obj.setResolutionTheta(
network_[4]->Evaluate(0, v));
116 obj.setResolutionPhi(
network_[5]->Evaluate(0, v));
117 obj.setResolutionEt(
network_[6]->Evaluate(0, v));
118 obj.setResolutionEta(
network_[7]->Evaluate(0, v));
121 obj.setResolutionA(this->
obsRes(0, bin, obj.
et()));
122 obj.setResolutionB(this->
obsRes(1, bin, obj.
et()));
123 obj.setResolutionC(this->
obsRes(2, bin, obj.
et()));
124 obj.setResolutionD(this->
obsRes(3, bin, obj.
et()));
125 obj.setResolutionTheta(this->
obsRes(4, bin, obj.
et()));
126 obj.setResolutionPhi(this->
obsRes(5, bin, obj.
et()));
127 obj.setResolutionEt(this->
obsRes(6, bin, obj.
et()));
128 obj.setResolutionEta(this->
obsRes(7, bin, obj.
et()));
137 obj.setResolutionA(
network_[0]->Evaluate(0, v));
138 obj.setResolutionB(
network_[1]->Evaluate(0, v));
139 obj.setResolutionC(
network_[2]->Evaluate(0, v));
140 obj.setResolutionD(
network_[3]->Evaluate(0, v));
141 obj.setResolutionTheta(
network_[4]->Evaluate(0, v));
142 obj.setResolutionPhi(
network_[5]->Evaluate(0, v));
143 obj.setResolutionEt(
network_[6]->Evaluate(0, v));
144 obj.setResolutionEta(
network_[7]->Evaluate(0, v));
147 obj.setResolutionA(this->
obsRes(0, bin, obj.
et()));
148 obj.setResolutionB(this->
obsRes(1, bin, obj.
et()));
149 obj.setResolutionC(this->
obsRes(2, bin, obj.
et()));
150 obj.setResolutionD(this->
obsRes(3, bin, obj.
et()));
151 obj.setResolutionTheta(this->
obsRes(4, bin, obj.
et()));
152 obj.setResolutionPhi(this->
obsRes(5, bin, obj.
et()));
153 obj.setResolutionEt(this->
obsRes(6, bin, obj.
et()));
154 obj.setResolutionEta(this->
obsRes(7, bin, obj.
et()));
163 obj.setResolutionA(
network_[0]->Evaluate(0, v));
164 obj.setResolutionB(
network_[1]->Evaluate(0, v));
165 obj.setResolutionC(
network_[2]->Evaluate(0, v));
166 obj.setResolutionD(
network_[3]->Evaluate(0, v));
167 obj.setResolutionTheta(1000000.);
168 obj.setResolutionPhi(
network_[5]->Evaluate(0, v));
169 obj.setResolutionEt(
network_[6]->Evaluate(0, v));
170 obj.setResolutionEta(1000000.);
172 obj.setResolutionA(this->
obsRes(0, 0, obj.
et()));
173 obj.setResolutionC(this->
obsRes(1, 0, obj.
et()));
174 obj.setResolutionB(this->
obsRes(2, 0, obj.
et()));
175 obj.setResolutionD(this->
obsRes(3, 0, obj.
et()));
176 obj.setResolutionTheta(1000000.);
177 obj.setResolutionPhi(this->
obsRes(5, 0, obj.
et()));
178 obj.setResolutionEt(this->
obsRes(6, 0, obj.
et()));
179 obj.setResolutionEta(1000000.);
188 obj.setResolutionA(
network_[0]->Evaluate(0, v));
189 obj.setResolutionB(
network_[1]->Evaluate(0, v));
190 obj.setResolutionC(
network_[2]->Evaluate(0, v));
191 obj.setResolutionD(
network_[3]->Evaluate(0, v));
192 obj.setResolutionTheta(
network_[4]->Evaluate(0, v));
193 obj.setResolutionPhi(
network_[5]->Evaluate(0, v));
194 obj.setResolutionEt(
network_[6]->Evaluate(0, v));
195 obj.setResolutionEta(
network_[7]->Evaluate(0, v));
198 obj.setResolutionA(this->
obsRes(0, bin, obj.
et()));
199 obj.setResolutionB(this->
obsRes(1, bin, obj.
et()));
200 obj.setResolutionC(this->
obsRes(2, bin, obj.
et()));
201 obj.setResolutionD(this->
obsRes(3, bin, obj.
et()));
202 obj.setResolutionTheta(this->
obsRes(4, bin, obj.
et()));
203 obj.setResolutionPhi(this->
obsRes(5, bin, obj.
et()));
204 obj.setResolutionEt(this->
obsRes(6, bin, obj.
et()));
205 obj.setResolutionEta(this->
obsRes(7, bin, obj.
et()));
Analysis-level MET class.
double eta() const final
momentum pseudorapidity
TMultiLayerPerceptron * network_[10]
double et() const final
transverse energy
std::vector< float > etaBinVals_
float obsRes(int obs, int eta, float eT)