17 |
|
#include <TEventList.h> |
18 |
|
#include <TH1F.h> |
19 |
|
#include <TF1.h> |
20 |
+ |
#include <TMath.h> |
21 |
|
|
22 |
|
#include <iostream> |
23 |
|
#include <iomanip> |
110 |
|
float weight; |
111 |
|
char njt; |
112 |
|
float jtet[100]; |
112 |
– |
float jtpt[100]; |
113 |
|
float jteta[100]; |
114 |
|
float jtphi[100]; |
115 |
|
float jtemf[100]; |
116 |
|
float jtgenet[100]; |
117 |
– |
float jtgenpt[100]; |
117 |
|
float jtgendr[100]; |
118 |
|
float jtjes[100][3]; |
119 |
|
|
129 |
|
// |
130 |
|
// loop over all input files |
131 |
|
// |
132 |
< |
TFile* plotfile = new TFile(output.c_str(),"RECREATE"); |
132 |
> |
TFile* plotfile = new TFile(output.c_str(),"UPDATE"); |
133 |
|
|
134 |
|
for (unsigned int i=0;i<input.size();++i) { |
135 |
|
TFile* f = new TFile(input[i].c_str(),"UPDATE"); if (!f->IsOpen()) return 0; |
141 |
|
t->SetBranchAddress("weight", &weight); |
142 |
|
t->SetBranchAddress("njt", &njt); |
143 |
|
t->SetBranchAddress("jtet", jtet); |
145 |
– |
t->SetBranchAddress("jtpt", jtpt); |
144 |
|
t->SetBranchAddress("jteta", jteta); |
145 |
|
t->SetBranchAddress("jtphi", jtphi); |
146 |
|
t->SetBranchAddress("jtemf", jtemf); |
147 |
|
t->SetBranchAddress("jtgenet",jtgenet); |
150 |
– |
t->SetBranchAddress("jtgenpt",jtgenpt); |
148 |
|
t->SetBranchAddress("jtgendr",jtgendr); |
149 |
|
|
150 |
|
if (t->FindBranch("jtjes")) t->SetBranchAddress("jtjes", jtjes); |
349 |
|
|
350 |
|
if (jtgendr[ijt]<0.0||jtgendr[ijt]>drmax) continue; |
351 |
|
|
352 |
< |
if (ijt>0) continue; |
352 |
> |
// if (ijt>0) continue; |
353 |
|
|
354 |
|
et = jtet[ijt]; |
355 |
|
genet = jtgenet[ijt]; |
356 |
|
eta = (abseta) ? std::abs(jteta[ijt]) : jteta[ijt]; |
357 |
|
phi = jtphi[ijt]; |
358 |
|
emf = jtemf[ijt]; |
359 |
+ |
|
360 |
|
etcorr = (applyjes==0) ? et : et*jtjes[ijt][applyjes-1]; |
361 |
|
|
362 |
|
absrsp = genet - etcorr; |
363 |
|
relrsp = etcorr/genet; |
364 |
|
|
365 |
+ |
if (TMath::IsNaN(emf)) emf = 0.0; |
366 |
+ |
|
367 |
+ |
|
368 |
|
// genet |
369 |
|
int igenet = hist::get_ibin(genet,etbins); |
370 |
|
tGenEt[igenet]->Fill(); |
421 |
|
|
422 |
|
cout<<jetalgs[i]<<": all histograms replaced, and tree deleted."<<endl; |
423 |
|
|
424 |
< |
TDirectory* d = plotfile->mkdir(jetalgs[i].c_str()); |
424 |
> |
|
425 |
> |
TDirectory* d = plotfile->GetDirectory(jetalgs[i].c_str()); |
426 |
> |
if (0!=d) plotfile->rmdir(jetalgs[i].c_str()); |
427 |
> |
d = plotfile->mkdir(jetalgs[i].c_str()); |
428 |
|
d->cd(); |
429 |
|
|
430 |
|
// fit response histos |