40 |
|
|
41 |
|
using namespace std; |
42 |
|
using namespace RooFit; |
43 |
+ |
using namespace mithep; |
44 |
|
|
45 |
|
TCanvas *can; |
46 |
|
|
68 |
|
SimpleTable xstab(xspath.c_str()); |
69 |
|
|
70 |
|
vector<CSample*> samplev; |
71 |
< |
TString ntupledir(""),label(""),plotLabel(""); |
72 |
< |
readConfigFile(ctrl.config, ntupledir, label, plotLabel, samplev, &ctrl, init_hists); |
71 |
> |
TString ntupledir(""),label(""),plotLabel(""),jsonFile(""); |
72 |
> |
readConfigFile(ctrl.config, ntupledir, label, plotLabel, jsonFile, samplev, &ctrl, init_hists); |
73 |
|
|
74 |
|
RunLumiSet rls; |
75 |
|
UInt_t minRun=999999999,maxRun=0; |
89 |
|
setMinMaxRun(fs->info->run, minRun, maxRun); |
90 |
|
bool dupl = takeCareOfDuplicateEvents(fs->info->run, fs->info->evt, rls, nDuplSkipped); |
91 |
|
if(dupl) continue; |
92 |
+ |
pair<unsigned,unsigned> rl(fs->info->run, fs->info->lumi); |
93 |
+ |
if(!fs->rlrm_.HasRunLumi(rl)) continue; |
94 |
|
} |
95 |
|
|
96 |
|
double wgt=1; |
155 |
|
SimpleLepton ex_lep = ex_leps[iextra]; |
156 |
|
|
157 |
|
if(types[iextra]=="fail" && npass>2) continue; |
158 |
+ |
SimpleLepton lep1=evtdata.Z1leptons[0],lep2=evtdata.Z1leptons[1]; |
159 |
+ |
if( dr(lep1,ex_lep) < 0.3) continue; |
160 |
+ |
if( dr(lep2,ex_lep) < 0.3) continue; |
161 |
|
|
162 |
|
|
163 |
|
TString channel; |
177 |
|
//???????????????????????????????????????????????????????????????????????????????????????? |
178 |
|
KinematicsStruct kine; |
179 |
|
fillKinematics(evtdata,kine); |
174 |
– |
SimpleLepton lep1=evtdata.Z1leptons[0],lep2=evtdata.Z1leptons[1]; |
180 |
|
TLorentzVector l1l3(lep1.vec+ex_lep.vec); |
181 |
|
TLorentzVector l2l3(lep2.vec+ex_lep.vec); |
182 |
|
|
324 |
|
(*((*it_h).second))["eta_l2"] = new TH1D(TString("eta_l2")+"_"+(*it_h).first+str,";#bf{l2 #eta};", 25,-2.5,2.5); (*((*it_h).second))["eta_l2"]->Sumw2(); |
325 |
|
(*((*it_h).second))["eta_l3"] = new TH1D(TString("eta_l3")+"_"+(*it_h).first+str,";#bf{l3 #eta};", 25,-2.5,2.5); (*((*it_h).second))["eta_l3"]->Sumw2(); |
326 |
|
|
327 |
< |
(*((*it_h).second))["ip3ds_l1"] = new TH1D(TString("ip3ds_l1") +"_"+(*it_h).first+str,";#bf{ip3ds l1};",30,0,10); (*((*it_h).second))["ip3ds_l1"]->Sumw2(); |
328 |
< |
(*((*it_h).second))["ip3ds_l2"] = new TH1D(TString("ip3ds_l2") +"_"+(*it_h).first+str,";#bf{ip3ds l2};",30,0,10); (*((*it_h).second))["ip3ds_l2"]->Sumw2(); |
329 |
< |
(*((*it_h).second))["ip3ds_l3"] = new TH1D(TString("ip3ds_l3") +"_"+(*it_h).first+str,";#bf{ip3ds l3};",30,0,8); (*((*it_h).second))["ip3ds_l3"]->Sumw2(); |
327 |
> |
(*((*it_h).second))["ip3ds_l1"] = new TH1D(TString("ip3ds_l1") +"_"+(*it_h).first+str,";#bf{ip3ds l1};",30,-10,10); (*((*it_h).second))["ip3ds_l1"]->Sumw2(); |
328 |
> |
(*((*it_h).second))["ip3ds_l2"] = new TH1D(TString("ip3ds_l2") +"_"+(*it_h).first+str,";#bf{ip3ds l2};",30,-10,10); (*((*it_h).second))["ip3ds_l2"]->Sumw2(); |
329 |
> |
(*((*it_h).second))["ip3ds_l3"] = new TH1D(TString("ip3ds_l3") +"_"+(*it_h).first+str,";#bf{ip3ds l3};",30,-10,10); (*((*it_h).second))["ip3ds_l3"]->Sumw2(); |
330 |
|
|
331 |
|
(*((*it_h).second))["dR_l1l3_lo"] = new TH1D(TString("dR_l1l3_lo") +"_"+(*it_h).first+str,";#bf{#Delta R l3,l4};",75,0,.2); (*((*it_h).second))["dR_l1l3_lo"]->Sumw2(); |
332 |
|
(*((*it_h).second))["dR_l1l3"] = new TH1D(TString("dR_l1l3") +"_"+(*it_h).first+str,";#bf{#Delta R l3,l4};",75,0,6); (*((*it_h).second))["dR_l1l3"]->Sumw2(); |