1 |
#include <iostream>
|
2 |
#include <vector>
|
3 |
#include <sys/stat.h>
|
4 |
|
5 |
#include <TCut.h>
|
6 |
#include <TROOT.h>
|
7 |
#include <TCanvas.h>
|
8 |
#include <TMath.h>
|
9 |
#include <TColor.h>
|
10 |
#include <TPaveText.h>
|
11 |
#include <TRandom.h>
|
12 |
#include <TH1.h>
|
13 |
#include <TH2.h>
|
14 |
#include <TH3.h>
|
15 |
#include <TF1.h>
|
16 |
#include <TSQLResult.h>
|
17 |
#include <TProfile.h>
|
18 |
#include <TPaveStats.h>
|
19 |
#include <TChain.h>
|
20 |
|
21 |
using namespace std;
|
22 |
|
23 |
using namespace PlottingSetup;
|
24 |
|
25 |
namespace GenLevelStudy {
|
26 |
void X_vs_generation_lm4();
|
27 |
void var_vs_generation_lm4(string var, int nbins, float xmin, float xmax);
|
28 |
void compare_sms_lm4();
|
29 |
void MomentumFraction();
|
30 |
void AngleMETsumLSP();
|
31 |
void AngleMETsumLSPScenario(float massglu, float masslsp);
|
32 |
void RatioMETsumLSP();
|
33 |
void RatioMETsumLSPScenario(float massglu, float masslsp);
|
34 |
void AngleLSPLSP();
|
35 |
void AngleLSPLSPScenario(float massglu, float masslsp);
|
36 |
void AngleLSPZ();
|
37 |
void AngleLSPZScenario(float massglu, float masslsp);
|
38 |
void MomentumFractionScenario(float massglu, float masslsp);
|
39 |
void WidthIllustration();
|
40 |
void ZDecayIllustration();
|
41 |
void ZDecayIllustration(float massglu, float masslsp);
|
42 |
void pStarIllustration(float x);
|
43 |
void DeltaLSPmomentum();
|
44 |
void DeltaLSPmomentumScenario(float massglu, float masslsp);
|
45 |
void DrawJetBand(float massglu, float masslsp);
|
46 |
void DrawJetBand();
|
47 |
void pStarDistributions();
|
48 |
void pStarDistributions(string name, float modelx);
|
49 |
void fill_pstar_histos(string scandir, float x, TH1F* pstarhistos[], int npstarhistos, TLegend *leg, bool addlegentry);
|
50 |
void DrawOnly100to150inJetBand();
|
51 |
void DrawOnly100to150inJetBand(float massglu,float masslsp);
|
52 |
void ImpactOfGluinoChi2MassDifference();
|
53 |
void color_histos(TH1F *a, TH1F *b, TH1F *c, string xlabel);
|
54 |
|
55 |
// string LM4sample="/scratch/buchmann/ntuples/GeneratorInformationInJZB___JZBplusSamples_PrimeTime__SAMPLES__Gen_V11/LM4_SUSY_sftsht_7TeV-pythia6__Summer11-PU_S4_START42_V11-v2__withIndex.root";
|
56 |
string LM4sample="/scratch/buchmann/buchmann/SignalWithLeptonsStartingAt5GeV/LM4_SUSY_sftsht_7TeV-pythia.root";
|
57 |
// string LM4sample="/scratch/buchmann/ntuples/GeneratorInformationInJZB___JZBplusSamples_PrimeTime__SAMPLES__Gen_V16_sumJet_with_LSPsum_LM8only_fixed/LM8_SUSY_sftsht_7TeV-pythia6__Summer11-PU_S4_START42_V11-v2_novtx_fixed3.root";
|
58 |
string SMSsample="/shome/buchmann/JellyfishCBAF/various_assignments/SimPa_LOCAL/Tests/FullSMS.root";
|
59 |
//scratch/buchmann/buchmann/GeneratorInformationInJZB___JZBplusSamples_PrimeTime__SAMPLES__Gen_V12_with_zchi2angle_bf1/SMS-T5zz_x-05_Mgluino-150to1200_mLSP-50to1150_7TeV-Pythia6Z__Summer11-PU_START42_V11_FastSim-v2__AODSIM___inclindex_v2_complet.root";
|
60 |
string histoname(int i);
|
61 |
Color_t histocolor(int i);
|
62 |
Color_t diversehistocolor(int i);
|
63 |
|
64 |
float pstarlow=0;
|
65 |
float pstarhigh=320;
|
66 |
|
67 |
} // end of GenLevelStudy namespace
|
68 |
|
69 |
Color_t GenLevelStudy::histocolor(int i) {
|
70 |
i=i-2;
|
71 |
|
72 |
if(i==0) return kRed;
|
73 |
if(i==1) return kGreen;
|
74 |
if(i==2) return kBlue;
|
75 |
if(i==3) return kOrange-3;
|
76 |
// if(i==4) return kMagenta-3;
|
77 |
if(i==4) return TColor::GetColor("#00AF64");
|
78 |
if(i==5) return kRed-4;
|
79 |
// if(i==6) return kGreen-2;
|
80 |
if(i==6) return TColor::GetColor("#FF4900");
|
81 |
if(i==7) return kMagenta-2;
|
82 |
// if(i==8) return kBlue-2;
|
83 |
if(i==8) return TColor::GetColor("#FF9200");
|
84 |
if(i==9) return kRed-2;
|
85 |
|
86 |
return TColor::GetColor("#0B61A4");
|
87 |
}
|
88 |
Color_t GenLevelStudy::diversehistocolor(int i) {
|
89 |
i+=1;
|
90 |
if(i==0) return TColor::GetColor("#000000"); // Black
|
91 |
if(i==1) return kBlue;
|
92 |
if(i==2) return kRed;
|
93 |
if(i==3) return kGreen+2;
|
94 |
if(i==4) return TColor::GetColor("#FF8000");//Orange
|
95 |
if(i==5) return TColor::GetColor("#DF01D7");//Dark Magenta
|
96 |
if(i==6) return TColor::GetColor("#01A9DB");//Dark Cyan
|
97 |
if(i==7) return TColor::GetColor("#C0C0C0");//Light Gray
|
98 |
if(i==8) return TColor::GetColor("#F7FE2E");//Juicy Lemon
|
99 |
if(i==9) return TColor::GetColor("#F781BE");//Light
|
100 |
if(i==10) return TColor::GetColor("#FFFBF0");//Cream
|
101 |
if(i==11) return TColor::GetColor("#A0A0A4");//Medium Gray
|
102 |
if(i==12) return TColor::GetColor("#808080");//Dark Gray
|
103 |
if(i==13) return TColor::GetColor("#FF0000");//Red
|
104 |
if(i==14) return TColor::GetColor("#00FF00");//Green
|
105 |
if(i==15) return TColor::GetColor("#0000FF");//Blue
|
106 |
if(i==16) return TColor::GetColor("#FFFF00");//Yellow
|
107 |
if(i==17) return TColor::GetColor("#FF00FF");//Magenta
|
108 |
if(i==18) return TColor::GetColor("#00FFFF");//Cyan
|
109 |
if(i==19) return TColor::GetColor("#00AF64");//something else
|
110 |
|
111 |
return TColor::GetColor("#0B61A4");
|
112 |
}
|
113 |
|
114 |
|
115 |
string GenLevelStudy::histoname(int i) {
|
116 |
stringstream histname;
|
117 |
histname << "GenLevelHisto_" << i;
|
118 |
return histname.str();
|
119 |
}
|
120 |
|
121 |
void GenLevelStudy::var_vs_generation_lm4(string var, int nbins, float xmin, float xmax) {
|
122 |
TFile *f = new TFile(GenLevelStudy::LM4sample.c_str());
|
123 |
string promptnessCriterion="LSPPromptnessLevel[0]+LSPPromptnessLevel[1]";
|
124 |
TTree *events = (TTree*)f->Get("events");
|
125 |
TCanvas *can = new TCanvas("can","can");
|
126 |
TH1F *generationdists[20];
|
127 |
TLegend *leg = make_legend();
|
128 |
TLegend *leg2 = make_legend();
|
129 |
leg->SetY1(0.7);
|
130 |
leg->SetX1(0.52);
|
131 |
leg2->SetY1(0.7);
|
132 |
leg2->SetX1(0.52);
|
133 |
int startat=6;
|
134 |
int endat=14;
|
135 |
THStack allstacked;
|
136 |
|
137 |
for(int i=0;i<20;i+=2) {
|
138 |
generationdists[i] = new TH1F((GenLevelStudy::histoname(i)).c_str(),(GenLevelStudy::histoname(i)).c_str(),nbins,xmin,xmax);
|
139 |
stringstream variable;
|
140 |
variable << var << ">>" << GenLevelStudy::histoname(i);
|
141 |
stringstream cut;
|
142 |
cut << "LSPPromptnessLevel[0]>0&&LSPPromptnessLevel[1]>0&&abs(pureGeneratorJZB)>0&&genNjets>2";
|
143 |
if(i==startat) cut << "&&" << promptnessCriterion<<"==" << i;
|
144 |
if(i>startat&&i<endat-1) cut << "&&abs(" << promptnessCriterion<<"-" << i-0.5 << ")<0.6";
|
145 |
if(i==endat-2) cut << "&&" << promptnessCriterion<<">=" << i-1;
|
146 |
events->Draw(variable.str().c_str(),cut.str().c_str());
|
147 |
if(var=="pureGeneratorJZB") generationdists[i]->GetXaxis()->SetTitle("Generator JZB");
|
148 |
if(var=="genMET") generationdists[i]->GetXaxis()->SetTitle("Generator MET");
|
149 |
if(var=="pureGeneratorZpt") generationdists[i]->GetXaxis()->SetTitle("Generator Z p_{T}");
|
150 |
generationdists[i]->GetYaxis()->SetTitle("");
|
151 |
generationdists[i]->GetYaxis()->CenterTitle();
|
152 |
}
|
153 |
for(int i=startat;i<endat;i+=2) {
|
154 |
generationdists[i]->SetLineColor(GenLevelStudy::histocolor(i));
|
155 |
if(i==startat) generationdists[i]->DrawNormalized("histo");
|
156 |
else generationdists[i]->DrawNormalized("histo,same");
|
157 |
stringstream entryname;
|
158 |
if(i==startat) entryname << "Generations = " << i;
|
159 |
if(i>startat&&i<endat-2) entryname << "Generations = " << i-1 << " , " << i;
|
160 |
if(i==endat-2) entryname << "Generations #geq " << i-1;
|
161 |
leg->AddEntry(generationdists[i],entryname.str().c_str(),"l");
|
162 |
leg2->AddEntry(generationdists[i],entryname.str().c_str(),"f");
|
163 |
}
|
164 |
leg->Draw("same");
|
165 |
stringstream saveas;
|
166 |
saveas << "GeneratorStudies/Generations_" << var;
|
167 |
CompleteSave(can,saveas.str());
|
168 |
for(int i=endat-2;i>=startat;i-=2) {
|
169 |
generationdists[i]->SetFillColor(generationdists[i]->GetLineColor());
|
170 |
allstacked.Add(generationdists[i]);
|
171 |
}
|
172 |
allstacked.Draw();
|
173 |
allstacked.GetXaxis()->SetTitle(generationdists[0]->GetXaxis()->GetTitle());
|
174 |
allstacked.GetXaxis()->CenterTitle();
|
175 |
allstacked.GetYaxis()->SetTitle("events");
|
176 |
allstacked.GetYaxis()->CenterTitle();
|
177 |
allstacked.Draw();
|
178 |
leg2->Draw();
|
179 |
saveas << "__stacked";
|
180 |
CompleteSave(can,saveas.str());
|
181 |
delete can;
|
182 |
|
183 |
}
|
184 |
|
185 |
void GenLevelStudy::X_vs_generation_lm4() {
|
186 |
write_warning(__FUNCTION__,"Deactivated this function! Please uncomment the lines below!");
|
187 |
GenLevelStudy::var_vs_generation_lm4("pureGeneratorJZB",50,-200,600);
|
188 |
GenLevelStudy::var_vs_generation_lm4("genMET",30,0,600);
|
189 |
GenLevelStudy::var_vs_generation_lm4("pureGeneratorZpt",30,0,400);
|
190 |
}
|
191 |
|
192 |
void GenLevelStudy::compare_sms_lm4() { cout << __FUNCTION__ << endl; }
|
193 |
|
194 |
void GenLevelStudy::MomentumFractionScenario(float massglu, float masslsp) {
|
195 |
TFile *f = new TFile(GenLevelStudy::SMSsample.c_str());
|
196 |
TTree *events = (TTree*)f->Get("events");
|
197 |
TCanvas *jcan = new TCanvas("jcan","jcan");
|
198 |
stringstream cut;
|
199 |
cut << "genNjets>2&&abs(pureGeneratorJZB)>0";
|
200 |
if(massglu>0&&masslsp>0) cut << "&&abs(MassGlu-" << massglu << ")<5&&abs(MassLSP-" << masslsp << ")";
|
201 |
|
202 |
TProfile *fLSP = new TProfile("fLSP","fLSP",500,-500,1000,0,1.5);
|
203 |
TProfile *fZ = new TProfile("fZ","fZ",500,-500,1000,0,1.5);
|
204 |
events->Draw("(LSP1pt/LSP1Mopt):pureGeneratorJZB>>fLSP",cut.str().c_str(),"PROF");
|
205 |
// TH1F *h = new TH1F("h","h",100,-500,500);
|
206 |
// h->SetLineColor(kBlack);
|
207 |
|
208 |
fLSP->GetXaxis()->SetTitle("Generator JZB");
|
209 |
fLSP->GetXaxis()->CenterTitle();
|
210 |
fLSP->SetMarkerSize(0);
|
211 |
// p->GetYaxis()->SetTitle("( LSP p_{T} ) / ( LSP mother p_{T} )");
|
212 |
fLSP->GetYaxis()->SetTitle("f");
|
213 |
fLSP->GetYaxis()->CenterTitle();
|
214 |
fLSP->SetLineColor(kBlue);
|
215 |
fLSP->GetYaxis()->SetRangeUser(0,1.5);
|
216 |
// p->GetYaxis()->SetRangeUser(0,2);
|
217 |
/* TLegend* leg = make_legend("", 0.20, 1.03, false);
|
218 |
leg->SetNColumns(2);
|
219 |
leg->AddEntry(p,"f_{LSP}","l");
|
220 |
leg->AddEntry(h,"f_{Z}","l");
|
221 |
leg->Draw();*/
|
222 |
// TText *title = write_title("JZB as a function of the first LSP's momentum transfer");
|
223 |
// title->Draw();
|
224 |
events->Draw("(genZPt/LSP1Mopt):pureGeneratorJZB>>fZ","genNjets>2","PROF,same");
|
225 |
fZ->SetMarkerSize(0);
|
226 |
fLSP->Draw();
|
227 |
fZ->Draw("same");
|
228 |
|
229 |
stringstream saveas;
|
230 |
saveas << "GeneratorStudies/MomentumFraction";
|
231 |
if(massglu>0&&masslsp>0) saveas << "__MassGlu" << massglu << "_MassLSP_" << masslsp;
|
232 |
CompleteSave(jcan,saveas.str());
|
233 |
delete jcan;
|
234 |
}
|
235 |
|
236 |
void GenLevelStudy::MomentumFraction() {
|
237 |
GenLevelStudy::MomentumFractionScenario(-1,-1);
|
238 |
GenLevelStudy::MomentumFractionScenario(1175,500);
|
239 |
GenLevelStudy::MomentumFractionScenario(625,425);
|
240 |
}
|
241 |
|
242 |
void GenLevelStudy::AngleMETsumLSPScenario(float massglu, float masslsp) {
|
243 |
TFile *f = new TFile(GenLevelStudy::SMSsample.c_str());
|
244 |
TTree *events = (TTree*)f->Get("events");
|
245 |
TCanvas *jcan = new TCanvas("jcan","jcan");
|
246 |
stringstream cut;
|
247 |
cut << "genNjets>2&&abs(pureGeneratorJZB)>0";
|
248 |
if(massglu>0&&masslsp>0) cut << "&&abs(MassGlu-" << massglu << ")<5&&abs(MassLSP-" << masslsp << ")";
|
249 |
events->Draw("(dphiSumLSPgenMET):pureGeneratorJZB",cut.str().c_str(),"PROF");
|
250 |
TProfile *p = (TProfile*)jcan->GetPrimitive("htemp");
|
251 |
p->GetXaxis()->SetTitle("Generator JZB");
|
252 |
p->GetXaxis()->CenterTitle();
|
253 |
p->GetXaxis()->SetRangeUser(-500,1000);
|
254 |
p->GetYaxis()->SetRangeUser(-0.5,0.5);
|
255 |
p->GetYaxis()->SetTitle("#Delta#Phi(#Sigma LSP,MET)");
|
256 |
p->GetYaxis()->CenterTitle();
|
257 |
p->SetLineColor(kBlue);
|
258 |
stringstream saveas;
|
259 |
saveas << "GeneratorStudies/DPhi_METsumLSP";
|
260 |
if(massglu>0&&masslsp>0) saveas << "__MassGlu" << massglu << "_MassLSP_" << masslsp;
|
261 |
CompleteSave(jcan,saveas.str());
|
262 |
|
263 |
}
|
264 |
|
265 |
void GenLevelStudy::AngleMETsumLSP() {
|
266 |
AngleMETsumLSPScenario(-1,-1);
|
267 |
AngleMETsumLSPScenario(1175,500.0);
|
268 |
AngleMETsumLSPScenario(625,425);
|
269 |
}
|
270 |
|
271 |
void GenLevelStudy::RatioMETsumLSPScenario(float massglu, float masslsp) {
|
272 |
TFile *f = new TFile(GenLevelStudy::SMSsample.c_str());
|
273 |
TTree *events = (TTree*)f->Get("events");
|
274 |
TCanvas *jcan = new TCanvas("jcan","jcan");
|
275 |
stringstream cut;
|
276 |
cut << "genNjets>2&&abs(pureGeneratorJZB)>0";
|
277 |
if(massglu>0&&masslsp>0) cut << "&&abs(MassGlu-" << massglu << ")<5&&abs(MassLSP-" << masslsp << ")";
|
278 |
events->Draw("(absvalSumLSP/genMET):pureGeneratorJZB",cut.str().c_str(),"PROF");
|
279 |
TProfile *p = (TProfile*)jcan->GetPrimitive("htemp");
|
280 |
p->GetXaxis()->SetTitle("Generator JZB");
|
281 |
p->GetXaxis()->CenterTitle();
|
282 |
p->GetYaxis()->SetTitle("#Sigma LSP p_{T} / MET");
|
283 |
p->GetYaxis()->CenterTitle();
|
284 |
p->SetLineColor(kBlue);
|
285 |
p->GetXaxis()->SetRangeUser(-500,1000);
|
286 |
p->GetYaxis()->SetRangeUser(0,2);
|
287 |
stringstream saveas;
|
288 |
saveas << "GeneratorStudies/absvalSumLSP_over_MET";
|
289 |
if(massglu>0&&masslsp>0) saveas << "__MassGlu" << massglu << "_MassLSP_" << masslsp;
|
290 |
CompleteSave(jcan,saveas.str());
|
291 |
}
|
292 |
|
293 |
void GenLevelStudy::RatioMETsumLSP() {
|
294 |
RatioMETsumLSPScenario(-1,-1);
|
295 |
RatioMETsumLSPScenario(1175,500.0);
|
296 |
RatioMETsumLSPScenario(625,425);
|
297 |
}
|
298 |
|
299 |
void GenLevelStudy::AngleLSPLSPScenario(float massglu, float masslsp) {
|
300 |
TFile *f = new TFile(GenLevelStudy::SMSsample.c_str());
|
301 |
TTree *events = (TTree*)f->Get("events");
|
302 |
TCanvas *jcan = new TCanvas("jcan","jcan");
|
303 |
stringstream cut;
|
304 |
cut << "genNjets>2&&abs(pureGeneratorJZB)>0";
|
305 |
if(massglu>0&&masslsp>0) cut << "&&abs(MassGlu-" << massglu << ")<5&&abs(MassLSP-" << masslsp << ")";
|
306 |
TProfile *angLSP = new TProfile("angLSP","angLSP",500,-500,1000,0,3.2);
|
307 |
events->Draw("angleLSPLSP:pureGeneratorJZB>>angLSP",cut.str().c_str(),"PROF");
|
308 |
// TProfile *p = (TProfile*)jcan->GetPrimitive("htemp");
|
309 |
angLSP->GetXaxis()->SetTitle("Generator JZB");
|
310 |
angLSP->GetXaxis()->CenterTitle();
|
311 |
angLSP->GetYaxis()->SetTitle("#angle (LSP,LSP)");
|
312 |
angLSP->GetYaxis()->CenterTitle();
|
313 |
angLSP->SetLineColor(kBlue);
|
314 |
angLSP->SetMarkerSize(0);
|
315 |
// p->GetXaxis()->SetRangeUser(-500,1000);
|
316 |
angLSP->GetYaxis()->SetRangeUser(0,3.1415);
|
317 |
|
318 |
stringstream saveas;
|
319 |
saveas << "GeneratorStudies/AngleLSPLSP";
|
320 |
if(massglu>0&&masslsp>0) saveas << "__MassGlu" << massglu << "_MassLSP_" << masslsp;
|
321 |
CompleteSave(jcan,saveas.str());
|
322 |
|
323 |
TH1F *lsplsp= new TH1F("lsplsp","lsplsp",50,0,1.0);
|
324 |
events->Draw("angleLSPLSP/TMath::Pi()>>lsplsp",cut.str().c_str());
|
325 |
stringstream saveas2;
|
326 |
lsplsp->GetXaxis()->SetTitle("#angle(LSP,LSP) / #pi");
|
327 |
lsplsp->GetXaxis()->CenterTitle();
|
328 |
lsplsp->SetLineColor(kBlue);
|
329 |
saveas2 << "GeneratorStudies/AngleLSPLSPdistribution";
|
330 |
if(massglu>0&&masslsp>0) saveas2 << "__MassGlu" << massglu << "_MassLSP_" << masslsp;
|
331 |
CompleteSave(jcan,saveas2.str());
|
332 |
delete jcan;
|
333 |
delete lsplsp;
|
334 |
|
335 |
|
336 |
}
|
337 |
|
338 |
void GenLevelStudy::AngleLSPLSP() {
|
339 |
AngleLSPLSPScenario(-1,-1);
|
340 |
AngleLSPLSPScenario(1175,500);
|
341 |
AngleLSPLSPScenario(625,425);
|
342 |
}
|
343 |
|
344 |
void GenLevelStudy::AngleLSPZScenario(float massglu, float masslsp) {
|
345 |
TFile *f = new TFile(GenLevelStudy::SMSsample.c_str());
|
346 |
TTree *events = (TTree*)f->Get("events");
|
347 |
TCanvas *jcan = new TCanvas("jcan","jcan");
|
348 |
stringstream cut;
|
349 |
cut << "genNjets>2&&abs(pureGeneratorJZB)>0";
|
350 |
if(massglu>0&&masslsp>0) cut << "&&abs(MassGlu-" << massglu << ")<5&&abs(MassLSP-" << masslsp << ")";
|
351 |
events->Draw("angleLSPLSP:pureGeneratorJZB",cut.str().c_str(),"PROF");
|
352 |
TProfile *p = (TProfile*)jcan->GetPrimitive("htemp");
|
353 |
p->GetXaxis()->SetTitle("Generator JZB");
|
354 |
p->GetXaxis()->CenterTitle();
|
355 |
p->GetYaxis()->SetTitle("#ANGLE (LSP,Z)");
|
356 |
p->GetYaxis()->CenterTitle();
|
357 |
p->SetLineColor(kBlue);
|
358 |
stringstream saveas;
|
359 |
saveas << "GeneratorStudies/AngleLSPZ";
|
360 |
if(massglu>0&&masslsp>0) saveas << "__MassGlu" << massglu << "_MassLSP_" << masslsp;
|
361 |
CompleteSave(jcan,saveas.str());
|
362 |
}
|
363 |
|
364 |
void GenLevelStudy::AngleLSPZ() {
|
365 |
AngleLSPZScenario(-1,-1);
|
366 |
AngleLSPZScenario(1175,500.0);
|
367 |
AngleLSPZScenario(625,425);
|
368 |
}
|
369 |
|
370 |
void GenLevelStudy::WidthIllustration() {
|
371 |
TCanvas *can = new TCanvas("can","can");
|
372 |
TH1F *h = new TH1F("h","h",1,0,2);
|
373 |
h->SetStats(0);
|
374 |
h->GetYaxis()->SetRangeUser(-1,1);
|
375 |
h->GetXaxis()->SetTitle("#angle(Z,MET) / #pi");
|
376 |
h->GetXaxis()->CenterTitle();
|
377 |
h->GetYaxis()->SetTitle("JZB/MET");
|
378 |
h->GetYaxis()->CenterTitle();
|
379 |
h->SetTitle("");
|
380 |
h->Draw();
|
381 |
|
382 |
|
383 |
TF1 *f1 = new TF1("f1","(TMath::Sqrt((0.001+10*cos(x*TMath::Pi()))*(0.001+10*cos(x*TMath::Pi()))+10*10*sin(x*TMath::Pi())*sin(x*TMath::Pi()))-10)/0.001",0,2);///
|
384 |
f1->SetLineColor(kBlue);///
|
385 |
TF1 *f2 = new TF1("f2","(TMath::Sqrt((10+10*cos(x*TMath::Pi()))*(10+10*cos(x*TMath::Pi()))+10*10*sin(x*TMath::Pi())*sin(x*TMath::Pi()))-10)/10",0,2);
|
386 |
f2->SetLineColor(kGreen);
|
387 |
TF1 *f3 = new TF1("f3","(TMath::Sqrt((20+10*cos(x*TMath::Pi()))*(20+10*cos(x*TMath::Pi()))+10*10*sin(x*TMath::Pi())*sin(x*TMath::Pi()))-10)/20",0,2);
|
388 |
f3->SetLineColor(kRed);
|
389 |
TF1 *f4 = new TF1("f4","(TMath::Sqrt((40+10*cos(x*TMath::Pi()))*(40+10*cos(x*TMath::Pi()))+10*10*sin(x*TMath::Pi())*sin(x*TMath::Pi()))-10)/40",0,2);///
|
390 |
f4->SetLineColor(kMagenta-2);///
|
391 |
|
392 |
f1->SetNpx(100000);
|
393 |
f2->SetNpx(100000);
|
394 |
f3->SetNpx(100000);
|
395 |
f4->SetNpx(100000);
|
396 |
|
397 |
f1->Draw("same");//Blue
|
398 |
f2->Draw("same");//Green
|
399 |
f3->Draw("same");//Red
|
400 |
f4->Draw("same");//weird magenta (supposedly)
|
401 |
|
402 |
CompleteSave(can,"GeneratorStudies/JZB_over_MET__as_a_function_of_the_angle_between_Z_and_MET");
|
403 |
}
|
404 |
|
405 |
void GenLevelStudy::ZDecayIllustration(float massglu, float masslsp) {
|
406 |
TFile *f = new TFile(GenLevelStudy::SMSsample.c_str());
|
407 |
TTree *events = (TTree*)f->Get("events");
|
408 |
TCanvas *jcan = new TCanvas("jcan","jcan");
|
409 |
|
410 |
stringstream cut;
|
411 |
if(massglu>0&&masslsp>0) cut << "&&abs(MassGlu-" << massglu << ")<5&&abs(MassLSP-" << masslsp << ")";
|
412 |
|
413 |
string cutdileptonic="genNjets>2&&abs(pureGeneratorJZB)>0&&DecayCode==2"+cut.str();
|
414 |
string cutsemihadronic="genNjets>2&&abs(pureGeneratorJZB)>0&&DecayCode==11"+cut.str();
|
415 |
string cutsemineutrino="genNjets>2&&abs(pureGeneratorJZB)>0&&DecayCode==101"+cut.str();
|
416 |
|
417 |
int nbins=100;
|
418 |
float xmin=-300;
|
419 |
float xmax=500;
|
420 |
TH1F *hdileptonic = new TH1F("hdileptonic","hdileptonic",nbins,xmin,xmax);
|
421 |
TH1F *hsemihadronic = new TH1F("hsemihadronic","hsemihadronic",nbins,xmin,xmax);
|
422 |
TH1F *hsemineutrino = new TH1F("hsemineutrino","hsemineutrino",nbins,xmin,xmax);
|
423 |
events->Draw("pureGeneratorJZB>>hdileptonic",cutdileptonic.c_str());
|
424 |
events->Draw("pureGeneratorJZB>>hsemihadronic",cutsemihadronic.c_str());
|
425 |
events->Draw("pureGeneratorJZB>>hsemineutrino",cutsemineutrino.c_str());
|
426 |
|
427 |
hdileptonic->GetXaxis()->SetTitle("Generator JZB");
|
428 |
hdileptonic->GetXaxis()->CenterTitle();
|
429 |
hdileptonic->GetYaxis()->SetTitle("");
|
430 |
hdileptonic->GetYaxis()->CenterTitle();
|
431 |
hdileptonic->SetLineColor(kBlue);
|
432 |
hsemihadronic->SetLineColor(kRed);
|
433 |
hsemineutrino->SetLineColor(kGreen+2);
|
434 |
|
435 |
hdileptonic->DrawNormalized("histo");
|
436 |
hsemineutrino->DrawNormalized("histo,same");
|
437 |
hsemihadronic->DrawNormalized("histo,same");
|
438 |
|
439 |
TLegend *leg = make_legend("", 0.60, 0.7, false);
|
440 |
leg->AddEntry(hdileptonic,"Z#rightarrow ll","l");
|
441 |
leg->AddEntry(hsemihadronic,"Z#rightarrow jj","l");
|
442 |
leg->AddEntry(hsemineutrino,"Z#rightarrow #nu#nu","l");
|
443 |
leg->Draw();
|
444 |
|
445 |
stringstream saveas;
|
446 |
saveas << "GeneratorStudies/ZDecayIllustration";
|
447 |
if(massglu>0&&masslsp>0) saveas << "__MassGlu" << massglu << "_MassLSP_" << masslsp;
|
448 |
CompleteSave(jcan,saveas.str());
|
449 |
|
450 |
}
|
451 |
|
452 |
void GenLevelStudy::ZDecayIllustration() {
|
453 |
ZDecayIllustration(-1,-1);
|
454 |
ZDecayIllustration(1175,500);
|
455 |
ZDecayIllustration(625,425);
|
456 |
}
|
457 |
|
458 |
|
459 |
void GenLevelStudy::pStarIllustration(float x) {
|
460 |
TH2F *pstarlspmap = new TH2F("pstarlspmap", "",(int)((mgluend-mglustart)/mglustep+1),mglustart-0.5*mglustep,mgluend+0.5*mglustep,(int)((mLSPend-mLSPstart)/mLSPstep+1),mLSPstart-0.5*mLSPstep,mLSPend+0.5*mLSPstep);
|
461 |
TH2F *pstarchimap = new TH2F("pstarchimap", "",(int)((mgluend-mglustart)/mglustep+1),mglustart-0.5*mglustep,mgluend+0.5*mglustep,(int)((mLSPend-mLSPstart)/mLSPstep+1),mLSPstart-0.5*mLSPstep,mLSPend+0.5*mLSPstep);
|
462 |
TH2F *pstardiffmap = new TH2F("pstardiffmap", "",(int)((mgluend-mglustart)/mglustep+1),mglustart-0.5*mglustep,mgluend+0.5*mglustep,(int)((mLSPend-mLSPstart)/mLSPstep+1),mLSPstart-0.5*mLSPstep,mLSPend+0.5*mLSPstep);
|
463 |
|
464 |
for(int mglu=(int)mglustart;mglu<=mgluend;mglu+=(int)mglustep) {
|
465 |
for (int mlsp=(int)mLSPstart;mlsp<=mLSPend&&mlsp<=mglu;mlsp+=(int)mLSPstep)
|
466 |
{
|
467 |
float pstarlsp = pSTAR(mglu,mlsp,mlsp+x*(mglu-mlsp));
|
468 |
pstarlspmap->Fill(mglu,mlsp,pstarlsp);
|
469 |
float pstarchi = generalizedpSTAR(mglu,mlsp+x*(mglu-mlsp),1.0);//the second daughter is a jet; we're using 1 GeV here.
|
470 |
pstarchimap->Fill(mglu,mlsp,pstarchi);
|
471 |
pstardiffmap->Fill(mglu,mlsp,pstarchi-pstarlsp);
|
472 |
}
|
473 |
}
|
474 |
|
475 |
stringstream pstartitle;
|
476 |
pstartitle << "pstar_histo_x_equal_0p" << 100*x << "____NOT_efficiencymap";
|
477 |
pstarlspmap->SetTitle(pstartitle.str().c_str());
|
478 |
pstarlspmap->SetName(pstartitle.str().c_str());
|
479 |
pstarlspmap->GetXaxis()->SetTitle("m_{#tilde{g}} (GeV/c^{2})");
|
480 |
pstarlspmap->GetXaxis()->CenterTitle();
|
481 |
pstarlspmap->GetYaxis()->SetTitle("m_{LSP} (GeV/c^{2})");
|
482 |
pstarlspmap->GetYaxis()->CenterTitle();
|
483 |
pstarlspmap->GetZaxis()->SetTitle("p^{*}(LSP) (GeV/c)");
|
484 |
pstarlspmap->GetZaxis()->CenterTitle();
|
485 |
|
486 |
float corr=91/x;
|
487 |
TLine *l = new TLine(corr,0,1200,1200-corr);
|
488 |
l->SetLineWidth(3);
|
489 |
l->SetLineColor(kWhite);
|
490 |
TLine *l2 = (TLine*)l->Clone();
|
491 |
l2->SetLineWidth(1);
|
492 |
l2->SetLineColor(kRed);
|
493 |
|
494 |
TCanvas *can = new TCanvas("can","can");
|
495 |
can->SetRightMargin(0.16);
|
496 |
pstarlspmap->Draw("COLZ");
|
497 |
l->Draw("same");
|
498 |
l2->Draw("same");
|
499 |
stringstream saveas;
|
500 |
saveas << "GeneratorStudies/PStarLSP_x_0p" << x*100;
|
501 |
CompleteSave(can,saveas.str());
|
502 |
|
503 |
stringstream pstartitle2;
|
504 |
pstartitle2 << "pstar_histo_x_equal_0p" << 100*x << "____NOT_efficiencymap";
|
505 |
pstarchimap->SetTitle(pstartitle2.str().c_str());
|
506 |
pstarchimap->SetName(pstartitle2.str().c_str());
|
507 |
pstarchimap->GetXaxis()->SetTitle("m_{#tilde{g}} (GeV/c^{2})");
|
508 |
pstarchimap->GetXaxis()->CenterTitle();
|
509 |
pstarchimap->GetYaxis()->SetTitle("m_{LSP} (GeV/c^{2})");
|
510 |
pstarchimap->GetYaxis()->CenterTitle();
|
511 |
pstarchimap->GetZaxis()->SetTitle("p^{*}(#chi_{2}^{0}) (GeV/c)");
|
512 |
pstarchimap->GetZaxis()->CenterTitle();
|
513 |
pstarchimap->Draw("COLZ");
|
514 |
l->Draw("same");
|
515 |
l2->Draw("same");
|
516 |
stringstream saveas2;
|
517 |
saveas2 << "GeneratorStudies/PStarCHI_x_0p" << x*100;
|
518 |
CompleteSave(can,saveas2.str());
|
519 |
|
520 |
stringstream pstartitle3;
|
521 |
pstartitle3 << "pstar_histo_x_equal_0p" << 100*x << "____NOT_efficiencymap";
|
522 |
pstardiffmap->SetTitle(pstartitle3.str().c_str());
|
523 |
pstardiffmap->SetName(pstartitle3.str().c_str());
|
524 |
pstardiffmap->GetXaxis()->SetTitle("m_{#tilde{g}} (GeV/c^{2})");
|
525 |
pstardiffmap->GetXaxis()->CenterTitle();
|
526 |
pstardiffmap->GetYaxis()->SetTitle("m_{LSP} (GeV/c^{2})");
|
527 |
pstardiffmap->GetYaxis()->CenterTitle();
|
528 |
pstardiffmap->GetZaxis()->SetTitle("p^{*}(#chi_{2}^{0}) -p^{*}(LSP) (GeV/c)");
|
529 |
pstardiffmap->GetZaxis()->CenterTitle();
|
530 |
// pstardiffmap->GetZaxis()->SetRangeUser(0,250);
|
531 |
pstardiffmap->Draw("COLZ");
|
532 |
l->Draw("same");
|
533 |
l2->Draw("same");
|
534 |
stringstream saveas3;
|
535 |
saveas3 << "GeneratorStudies/PStar_CHI_minus_LSP__x_0p" << x*100;
|
536 |
CompleteSave(can,saveas3.str());
|
537 |
|
538 |
|
539 |
TFile *g = new TFile("pstarshapes.root","UPDATE");
|
540 |
pstarlspmap->Write();
|
541 |
pstarchimap->Write();
|
542 |
pstardiffmap->Write();
|
543 |
g->Close();
|
544 |
delete can;
|
545 |
delete pstarlspmap;
|
546 |
delete pstarchimap;
|
547 |
delete pstardiffmap;
|
548 |
}
|
549 |
|
550 |
void GenLevelStudy::DeltaLSPmomentumScenario(float massglu, float masslsp) {
|
551 |
TFile *f = new TFile(GenLevelStudy::SMSsample.c_str());
|
552 |
TTree *events = (TTree*)f->Get("events");
|
553 |
TCanvas *jcan = new TCanvas("jcan","jcan");
|
554 |
stringstream cut;
|
555 |
cut << "genNjets>2&&abs(pureGeneratorJZB)>0";
|
556 |
if(massglu>0&&masslsp>0) cut << "&&abs(MassGlu-" << massglu << ")<5&&abs(MassLSP-" << masslsp << ")";
|
557 |
TProfile *DeltaLSP = new TProfile("DeltaLSP","DeltaLSP",500,-500,1000,-800,800);
|
558 |
events->Draw("(LSP1pt-LSP2pt):pureGeneratorJZB>>DeltaLSP",cut.str().c_str(),"PROF");
|
559 |
// TProfile *p = (TProfile*)jcan->GetPrimitive("htemp");
|
560 |
DeltaLSP->GetXaxis()->SetTitle("Generator JZB");
|
561 |
DeltaLSP->GetXaxis()->CenterTitle();
|
562 |
DeltaLSP->GetYaxis()->SetTitle("p_{T}(LSP1)-p_{T}(LSP2)");
|
563 |
DeltaLSP->GetYaxis()->CenterTitle();
|
564 |
DeltaLSP->GetXaxis()->SetRangeUser(-500,1000);
|
565 |
DeltaLSP->GetYaxis()->SetRangeUser(-800,800);
|
566 |
DeltaLSP->SetLineColor(kBlue);
|
567 |
DeltaLSP->SetMarkerSize(0);
|
568 |
|
569 |
stringstream saveas;
|
570 |
saveas << "GeneratorStudies/DeltaLSPPt";
|
571 |
if(massglu>0&&masslsp>0) saveas << "__MassGlu" << massglu << "_MassLSP_" << masslsp;
|
572 |
CompleteSave(jcan,saveas.str());
|
573 |
delete jcan;
|
574 |
}
|
575 |
|
576 |
|
577 |
void GenLevelStudy::DeltaLSPmomentum() {
|
578 |
GenLevelStudy::DeltaLSPmomentumScenario(-1,-1);
|
579 |
GenLevelStudy::DeltaLSPmomentumScenario(1175,500);
|
580 |
GenLevelStudy::DeltaLSPmomentumScenario(625,425);
|
581 |
|
582 |
}
|
583 |
|
584 |
void GenLevelStudy::fill_pstar_histos(string scandir, float x, TH1F* pstarhistos[], int npstarhistos, TLegend *leg, bool addlegentry=false) {
|
585 |
cout << "Preparing SMS file" << endl;
|
586 |
TFile *f = new TFile(GenLevelStudy::SMSsample.c_str());
|
587 |
TTree *events = (TTree*)f->Get("events");
|
588 |
/*
|
589 |
for(int i=0;i<15;i++) {
|
590 |
for(int j=0;j<15;j++) {
|
591 |
stringstream filename;
|
592 |
filename << "/shome/buchmann/ntuples/"<<scandir<<"/SMS_clean_splitup_" << i << "_" << j << ".root";
|
593 |
chain.Add(filename.str().c_str());
|
594 |
}
|
595 |
}
|
596 |
*/
|
597 |
|
598 |
//Draw two very different distributions ... for illustration purposes.
|
599 |
if(TMath::Abs((float)(x-0.5))<0.1) {
|
600 |
TCanvas *cannie = new TCanvas("cannie","cannie");
|
601 |
TH1F *h1 = new TH1F("h1","h1",100,-400,600);
|
602 |
TH1F *h2 = new TH1F("h2","h2",100,-400,600);
|
603 |
events->Draw("jzb[1]>>h1","(MassLSP==150&&MassGlu==400&&abs(jzb[1])>0)");
|
604 |
events->Draw("jzb[1]>>h2","(MassLSP==150&&MassGlu==1200&&abs(jzb[1])>0)","sames");
|
605 |
h1->SetLineColor(histocolor(4));
|
606 |
h2->SetLineColor(histocolor(6));
|
607 |
h1->GetXaxis()->SetTitle("JZB (GeV/c)");
|
608 |
h1->GetXaxis()->CenterTitle();
|
609 |
h1->GetYaxis()->SetTitle("events (norm. to unit area)");
|
610 |
h1->GetYaxis()->CenterTitle();
|
611 |
h1->DrawNormalized("histo");
|
612 |
h2->DrawNormalized("histo,same");
|
613 |
TLegend *tleg = make_legend("",0.52,0.75,false);
|
614 |
tleg->AddEntry(h1,"(m_{#tilde{g}},m_{LSP})=(400,150)","l");
|
615 |
tleg->AddEntry(h2,"(m_{#tilde{g}},m_{LSP})=(1200,150)","l");
|
616 |
tleg->Draw("same");
|
617 |
CompleteSave(cannie,"GeneratorStudies/TwoVeryDifferentMassPoints");
|
618 |
}
|
619 |
|
620 |
float stepsize=(pstarhigh-pstarlow)/(float)npstarhistos;
|
621 |
|
622 |
stringstream accdrawcommand;
|
623 |
accdrawcommand << "1+((" << x << "*(MassGlu+MassLSP)-MassLSP)>91)";
|
624 |
|
625 |
TCanvas *ca = new TCanvas("ca","ca");
|
626 |
events->Draw(accdrawcommand.str().c_str(),"","COLZ");
|
627 |
stringstream saveACCas;
|
628 |
saveACCas << "GeneratorStudies/AcceptedRegion__x_0p" << 100*x;
|
629 |
CompleteSave(ca,saveACCas.str());
|
630 |
|
631 |
for(int i=0;i<npstarhistos;i++) {
|
632 |
float curr=(i+1)*stepsize;
|
633 |
stringstream cut;
|
634 |
cut << "pfJetGoodNum>=3&&TMath::Abs(mll-91)<10&&id1==id2&&";
|
635 |
cut << "(abs(TMath::Sqrt((("<< x*x << ")*(MassGlu+MassLSP)*(MassGlu+MassLSP)-(MassLSP+91)*(MassLSP+91))*((" << x*x << ")*(MassGlu+MassLSP)*(MassGlu+MassLSP)-(MassLSP-91)*(MassLSP-91)))/(2*(" << x << ")*(MassGlu+MassLSP))-" << curr-stepsize/2.0 << ")<" << stepsize/2.0 << ")";
|
636 |
cut << "&&((" << x << "*(MassGlu+MassLSP)-MassLSP)>91)"; // cleaning all events out that dont' have the imposed x
|
637 |
stringstream drawcommand;
|
638 |
drawcommand << "jzb[1]>>tempie";
|
639 |
TH1F *temp = (TH1F*)pstarhistos[i]->Clone("tempie");
|
640 |
events->Draw(drawcommand.str().c_str(),cut.str().c_str());
|
641 |
for(int ibi=1;ibi<=temp->GetNbinsX();ibi++) pstarhistos[i]->SetBinContent(ibi,temp->GetBinContent(ibi));
|
642 |
delete temp;
|
643 |
stringstream histotext;
|
644 |
histotext << curr-stepsize << " < p^{*} < " << curr;
|
645 |
if(addlegentry&&pstarhistos[i]->Integral()>0) leg->AddEntry(pstarhistos[i],histotext.str().c_str(),"l");
|
646 |
cout << "Finished working on " << scandir << " with a p* value in [" << curr - stepsize << "," << curr << "] (now contains: " << pstarhistos[i]->Integral() << " events)" << endl;
|
647 |
}
|
648 |
delete ca;
|
649 |
|
650 |
}
|
651 |
|
652 |
void GenLevelStudy::pStarDistributions(string name, float modelx) {
|
653 |
const int nhistos=8;
|
654 |
TH1F *pstarhistos[nhistos];
|
655 |
TCanvas *can = new TCanvas("can","can");
|
656 |
for(int i=0;i<nhistos;i++) pstarhistos[i] = new TH1F(histoname(i).c_str(),histoname(i).c_str(),100,-400,600);
|
657 |
TLegend *leg = make_legend("",0.6,0.3,false);
|
658 |
|
659 |
fill_pstar_histos(name,modelx,pstarhistos,nhistos,leg,true);
|
660 |
|
661 |
float x[nhistos],y[nhistos],ex[nhistos],ey[nhistos];
|
662 |
stringstream rootfilename;
|
663 |
rootfilename << "pstarhistos__x0p" << 100*modelx << ".root";
|
664 |
TFile *f = new TFile(rootfilename.str().c_str(),"RECREATE");
|
665 |
pstarhistos[0]->GetXaxis()->SetTitle("Generator JZB");
|
666 |
pstarhistos[0]->GetXaxis()->CenterTitle();
|
667 |
pstarhistos[0]->GetYaxis()->SetTitle("events (normalized to unity)");
|
668 |
pstarhistos[0]->GetYaxis()->CenterTitle();
|
669 |
for(int i=0;i<nhistos;i++) {
|
670 |
pstarhistos[i]->SetLineColor(diversehistocolor(i));
|
671 |
if(i==0) pstarhistos[i]->DrawNormalized();
|
672 |
else pstarhistos[i]->DrawNormalized("same");
|
673 |
pstarhistos[i]->Write();
|
674 |
float stepsize=(pstarhigh-pstarlow)/(float)nhistos;
|
675 |
x[i]=(i+0.5)*stepsize;
|
676 |
ex[i]=(0.5)*stepsize;
|
677 |
y[i]=pstarhistos[i]->GetMean();
|
678 |
ey[i]=pstarhistos[i]->GetRMS();
|
679 |
}
|
680 |
leg->Draw();
|
681 |
stringstream saveas;
|
682 |
saveas << "GeneratorStudies/pStarStudy__x_0p" << 100*modelx;
|
683 |
TText *ta = write_title("JZB distribution for different p^{*}");
|
684 |
ta->Draw();
|
685 |
CompleteSave(can,saveas.str());
|
686 |
|
687 |
TGraphErrors *gr = new TGraphErrors(nhistos,x,y,ex,ey);
|
688 |
gr->Draw("AP");
|
689 |
gr->GetXaxis()->SetTitle("p^{*}");
|
690 |
gr->GetXaxis()->CenterTitle();
|
691 |
gr->GetYaxis()->SetTitle("Generator JZB");
|
692 |
gr->GetYaxis()->CenterTitle();
|
693 |
gr->Draw("AP");
|
694 |
stringstream saveas2;
|
695 |
saveas2 << "GeneratorStudies/pStarVsJZB__x_0p" << 100*modelx;
|
696 |
TText *tb = write_title("JZB distribution width for different p^{*}");
|
697 |
tb->Draw();
|
698 |
CompleteSave(can,saveas2.str());
|
699 |
f->cd();
|
700 |
gr->Write();
|
701 |
f->Close();
|
702 |
for(int i=0;i<nhistos;i++) delete pstarhistos[i];
|
703 |
|
704 |
}
|
705 |
void GenLevelStudy::pStarDistributions() {
|
706 |
// pStarDistributions("SMS_T5zzh_newslots",0.25);
|
707 |
pStarDistributions("SMS_T5zz",0.5);
|
708 |
// pStarDistributions("SMS_T5zzl",0.75);
|
709 |
}
|
710 |
|
711 |
void GenLevelStudy::DrawJetBand(float massglu, float masslsp) {
|
712 |
TFile *f = new TFile(GenLevelStudy::SMSsample.c_str());
|
713 |
TTree *events = (TTree*)f->Get("events");
|
714 |
TCanvas *jcan = new TCanvas("jcan","jcan");
|
715 |
jcan->SetRightMargin(0.16);
|
716 |
stringstream cut;
|
717 |
cut << "genNjets>2&&abs(pureGeneratorJZB)>0";
|
718 |
if(massglu>0&&masslsp>0) cut << "&&abs(MassGlu-" << massglu << ")<5&&abs(MassLSP-" << masslsp << ")";
|
719 |
TH2F *histo = new TH2F("histo","histo",100,-600,600,100,0,800);
|
720 |
// events->Draw("sumJetPt[1]:pureGeneratorJZB:cos(angleChi2Z)>>histo",cut.str().c_str(),"");
|
721 |
events->Project("histo", "pureGeneratorJZB:pureGeneratorSumJetPt:acos(cos(angleChi2Z2d))", cut.str().c_str(), "COLZ");
|
722 |
|
723 |
// TH1F *h = new TH1F("h","h",100,-500,500);
|
724 |
// h->SetLineColor(kBlack);
|
725 |
//TProfile *p = (TProfile*)jcan->GetPrimitive("htemp");
|
726 |
histo->GetXaxis()->SetTitle("Sum Jet Pt");
|
727 |
histo->GetXaxis()->CenterTitle();
|
728 |
histo->GetYaxis()->SetTitle("Generator JZB");
|
729 |
histo->GetYaxis()->CenterTitle();
|
730 |
histo->GetZaxis()->SetTitle("|#angle(Z,#tilde{#Chi_{2}^{0}})|");
|
731 |
histo->GetZaxis()->CenterTitle();
|
732 |
|
733 |
histo->Draw("COLZ");
|
734 |
stringstream saveas;
|
735 |
saveas << "GeneratorStudies/JetPtBand";
|
736 |
if(massglu>0&&masslsp>0) saveas << "__MassGlu" << massglu << "_MassLSP_" << masslsp;
|
737 |
CompleteSave(jcan,saveas.str());
|
738 |
delete jcan;
|
739 |
delete histo;
|
740 |
}
|
741 |
|
742 |
void GenLevelStudy::DrawOnly100to150inJetBand(float massglu, float masslsp) {
|
743 |
TFile *f = new TFile(GenLevelStudy::SMSsample.c_str());
|
744 |
TTree *events = (TTree*)f->Get("events");
|
745 |
TCanvas *jcan = new TCanvas("jcan","jcan");
|
746 |
jcan->SetRightMargin(0.16);
|
747 |
stringstream cut;
|
748 |
cut << "genNjets>2&&abs(pureGeneratorJZB)>0";
|
749 |
if(massglu>0&&masslsp>0) cut << "&&abs(MassGlu-" << massglu << ")<5&&abs(MassLSP-" << masslsp << ")&&abs(pureGeneratorSumJetPt-125)<25";
|
750 |
TH2F *p = new TH2F("histo","histo",100,-500,1000,100,0,800);
|
751 |
events->Draw("cos(angleChi2Z)",cut.str().c_str(),"");
|
752 |
// TH1F *h = new TH1F("h","h",100,-500,500);
|
753 |
// h->SetLineColor(kBlack);
|
754 |
/*TProfile *p = (TProfile*)jcan->GetPrimitive("htemp");
|
755 |
p->GetXaxis()->SetTitle("Generator JZB");
|
756 |
p->GetXaxis()->CenterTitle();
|
757 |
p->GetYaxis()->SetTitle("Sum Jet Pt");
|
758 |
p->GetYaxis()->CenterTitle();
|
759 |
p->GetZaxis()->SetTitle("cos(#angle(Z,#tilde{#Chi_{2}^{0}}))");
|
760 |
p->GetZaxis()->CenterTitle();
|
761 |
p->SetLineColor(kBlue);
|
762 |
p->GetXaxis()->SetRangeUser(-500,1000);
|
763 |
p->GetYaxis()->SetRangeUser(0,800);
|
764 |
*/
|
765 |
// p->Draw("COLZ");
|
766 |
stringstream saveas;
|
767 |
saveas << "GeneratorStudies/Sliver_of_the_JetPtBand";
|
768 |
if(massglu>0&&masslsp>0) saveas << "__MassGlu" << massglu << "_MassLSP_" << masslsp;
|
769 |
CompleteSave(jcan,saveas.str());
|
770 |
delete jcan;
|
771 |
delete p;
|
772 |
}
|
773 |
|
774 |
void GenLevelStudy::DrawOnly100to150inJetBand() {
|
775 |
GenLevelStudy::DrawOnly100to150inJetBand(-1,-1);
|
776 |
GenLevelStudy::DrawOnly100to150inJetBand(1175,500);
|
777 |
GenLevelStudy::DrawOnly100to150inJetBand(625,425);
|
778 |
}
|
779 |
|
780 |
|
781 |
void GenLevelStudy::DrawJetBand() {
|
782 |
GenLevelStudy::DrawJetBand(-1,-1);
|
783 |
GenLevelStudy::DrawJetBand(1175,500);
|
784 |
GenLevelStudy::DrawJetBand(625,425);
|
785 |
}
|
786 |
|
787 |
void GenLevelStudy::color_histos(TH1F *a, TH1F *b, TH1F *c, string xlabel) {
|
788 |
a->GetXaxis()->SetTitle(xlabel.c_str());
|
789 |
a->GetYaxis()->SetTitle("events");
|
790 |
a->GetXaxis()->CenterTitle();
|
791 |
a->GetYaxis()->CenterTitle();
|
792 |
b->SetLineColor(diversehistocolor(1));
|
793 |
|
794 |
if(!Contains(((string)(a->GetName())),"LSP")) {
|
795 |
a->SetLineColor(diversehistocolor(0));
|
796 |
c->SetLineColor(diversehistocolor(2));
|
797 |
} else {
|
798 |
a->SetLineColor(diversehistocolor(2));
|
799 |
c->SetLineColor(diversehistocolor(0));
|
800 |
}
|
801 |
}
|
802 |
|
803 |
|
804 |
void GenLevelStudy::ImpactOfGluinoChi2MassDifference() {
|
805 |
|
806 |
// STEP 1 : Loading everything
|
807 |
TCanvas *can = new TCanvas("can","can");
|
808 |
can->SetLogy(1);
|
809 |
TChain smsp025events("events");
|
810 |
TChain smsp050events("events");
|
811 |
TChain smsp075events("events");
|
812 |
|
813 |
for(int i=0;i<15;i++) {
|
814 |
for(int j=0;j<15;j++) {
|
815 |
stringstream filenamep25;
|
816 |
stringstream filenamep50;
|
817 |
stringstream filenamep75;
|
818 |
filenamep25 << "/shome/lbaeni/jzb/SMS_T5zzh_newslots/SMS_clean_splitup_" << i << "_" << j << ".root";
|
819 |
filenamep50 << "/shome/buchmann/ntuples/SMS_T5zz/SMS_clean_splitup_" << i << "_" << j << ".root";
|
820 |
filenamep75 << "/shome/buchmann/ntuples/SMS_T5zzl/SMS_clean_splitup_" << i << "_" << j << ".root";
|
821 |
smsp025events.Add(filenamep25.str().c_str());
|
822 |
smsp050events.Add(filenamep50.str().c_str());
|
823 |
smsp075events.Add(filenamep75.str().c_str());
|
824 |
}
|
825 |
}
|
826 |
|
827 |
|
828 |
// STEP 2: Define cuts
|
829 |
|
830 |
stringstream cut_VaryingGluiChi2_MDiff_x25;
|
831 |
cut_VaryingGluiChi2_MDiff_x25 << "abs(MassGlu-700)<5&&abs(MassLSP-100)&&pfJetGoodNum>0"; // config: (700,250,100)
|
832 |
stringstream cut_VaryingGluiChi2_MDiff_x50;
|
833 |
cut_VaryingGluiChi2_MDiff_x50 << "abs(MassGlu-400)<5&&abs(MassLSP-100)&&pfJetGoodNum>0"; // config: (400,250,100)
|
834 |
stringstream cut_VaryingGluiChi2_MDiff_x75;
|
835 |
cut_VaryingGluiChi2_MDiff_x75 << "abs(MassGlu-300)<5&&abs(MassLSP-100)&&pfJetGoodNum>0"; // config: (300,250,100)
|
836 |
|
837 |
|
838 |
stringstream cut_VaryingChi2LSP_MDiff_x25;
|
839 |
cut_VaryingChi2LSP_MDiff_x25 << "abs(MassGlu-700)<5&&abs(MassLSP-500)&&pfJetGoodNum>0"; // config: (700,550,500)
|
840 |
stringstream cut_VaryingChi2LSP_MDiff_x50;
|
841 |
cut_VaryingChi2LSP_MDiff_x50 << "abs(MassGlu-700)<5&&abs(MassLSP-550)&&pfJetGoodNum>0"; // config: (700,550,400)
|
842 |
stringstream cut_VaryingChi2LSP_MDiff_x75;
|
843 |
cut_VaryingChi2LSP_MDiff_x75 << "abs(MassGlu-700)<5&&abs(MassLSP-100)&&pfJetGoodNum>0"; // config: (700,550,100)
|
844 |
|
845 |
|
846 |
// STEP 3: Define histos
|
847 |
TH1F *nJets25GluChi2 = new TH1F("nJets25GluChi2","nJets25GluChi2",20,-0.5,19.5);
|
848 |
TH1F *nJets50GluChi2 = new TH1F("nJets50GluChi2","nJets50GluChi2",20,-0.5,19.5);
|
849 |
TH1F *nJets75GluChi2 = new TH1F("nJets75GluChi2","nJets75GluChi2",20,-0.5,19.5);
|
850 |
|
851 |
TH1F *sumJetpt25GluChi2 = new TH1F("sumJetpt25GluChi2","sumJetpt25GluChi2",100,0,300);
|
852 |
TH1F *sumJetpt50GluChi2 = new TH1F("sumJetpt50GluChi2","sumJetpt50GluChi2",100,0,300);
|
853 |
TH1F *sumJetpt75GluChi2 = new TH1F("sumJetpt75GluChi2","sumJetpt75GluChi2",100,0,300);
|
854 |
|
855 |
TH1F *Zpt25GluChi2 = new TH1F("Zpt25GluChi2","Zpt25GluChi2",100,0,200);
|
856 |
TH1F *Zpt50GluChi2 = new TH1F("Zpt50GluChi2","Zpt50GluChi2",100,0,200);
|
857 |
TH1F *Zpt75GluChi2 = new TH1F("Zpt75GluChi2","Zpt75GluChi2",100,0,200);
|
858 |
|
859 |
TH1F *MET25GluChi2 = new TH1F("MET25GluChi2","MET25GluChi2",100,0,500);
|
860 |
TH1F *MET50GluChi2 = new TH1F("MET50GluChi2","MET50GluChi2",100,0,500);
|
861 |
TH1F *MET75GluChi2 = new TH1F("MET75GluChi2","MET75GluChi2",100,0,500);
|
862 |
|
863 |
TH1F *JZB25GluChi2 = new TH1F("JZB25GluChi2","JZB25GluChi2",100,-400,800);
|
864 |
TH1F *JZB50GluChi2 = new TH1F("JZB50GluChi2","JZB50GluChi2",100,-400,800);
|
865 |
TH1F *JZB75GluChi2 = new TH1F("JZB75GluChi2","JZB75GluChi2",100,-400,800);
|
866 |
|
867 |
TH1F *nJets25Chi2LSP = new TH1F("nJets25Chi2LSP","nJets25Chi2LSP",20,-0.5,19.5);
|
868 |
TH1F *nJets50Chi2LSP = new TH1F("nJets50Chi2LSP","nJets50Chi2LSP",20,-0.5,19.5);
|
869 |
TH1F *nJets75Chi2LSP = new TH1F("nJets75Chi2LSP","nJets75Chi2LSP",20,-0.5,19.5);
|
870 |
|
871 |
TH1F *sumJetpt25Chi2LSP = new TH1F("sumJetpt25Chi2LSP","sumJetpt25Chi2LSP",100,0,300);
|
872 |
TH1F *sumJetpt50Chi2LSP = new TH1F("sumJetpt50Chi2LSP","sumJetpt50Chi2LSP",100,0,300);
|
873 |
TH1F *sumJetpt75Chi2LSP = new TH1F("sumJetpt75Chi2LSP","sumJetpt75Chi2LSP",100,0,300);
|
874 |
|
875 |
TH1F *Zpt25Chi2LSP = new TH1F("Zpt25Chi2LSP","Zpt25Chi2LSP",100,0,200);
|
876 |
TH1F *Zpt50Chi2LSP = new TH1F("Zpt50Chi2LSP","Zpt50Chi2LSP",100,0,200);
|
877 |
TH1F *Zpt75Chi2LSP = new TH1F("Zpt75Chi2LSP","Zpt75Chi2LSP",100,0,200);
|
878 |
|
879 |
TH1F *MET25Chi2LSP = new TH1F("MET25Chi2LSP","MET25Chi2LSP",100,0,500);
|
880 |
TH1F *MET50Chi2LSP = new TH1F("MET50Chi2LSP","MET50Chi2LSP",100,0,500);
|
881 |
TH1F *MET75Chi2LSP = new TH1F("MET75Chi2LSP","MET75Chi2LSP",100,0,500);
|
882 |
|
883 |
TH1F *JZB25Chi2LSP = new TH1F("JZB25Chi2LSP","JZB25Chi2LSP",100,-400,800);
|
884 |
TH1F *JZB50Chi2LSP = new TH1F("JZB50Chi2LSP","JZB50Chi2LSP",100,-400,800);
|
885 |
TH1F *JZB75Chi2LSP = new TH1F("JZB75Chi2LSP","JZB75Chi2LSP",100,-400,800);
|
886 |
|
887 |
// STEP 4: Filling the histos
|
888 |
smsp025events.Draw("pfJetGoodNum>>nJets25GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x25.str()).c_str());
|
889 |
smsp050events.Draw("pfJetGoodNum>>nJets50GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x50.str()).c_str());
|
890 |
smsp075events.Draw("pfJetGoodNum>>nJets75GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x75.str()).c_str());
|
891 |
|
892 |
smsp025events.Draw("pfJetGoodNum>>nJets25Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x25.str()).c_str());
|
893 |
smsp050events.Draw("pfJetGoodNum>>nJets50Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x50.str()).c_str());
|
894 |
smsp075events.Draw("pfJetGoodNum>>nJets75Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x75.str()).c_str());
|
895 |
|
896 |
smsp025events.Draw("sumJetPt[1]>>sumJetpt25GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x25.str()).c_str());
|
897 |
smsp050events.Draw("sumJetPt[1]>>sumJetpt50GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x50.str()).c_str());
|
898 |
smsp075events.Draw("sumJetPt[1]>>sumJetpt75GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x75.str()).c_str());
|
899 |
|
900 |
smsp025events.Draw("sumJetPt[1]>>sumJetpt25Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x25.str()).c_str());
|
901 |
smsp050events.Draw("sumJetPt[1]>>sumJetpt50Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x50.str()).c_str());
|
902 |
smsp075events.Draw("sumJetPt[1]>>sumJetpt75Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x75.str()).c_str());
|
903 |
|
904 |
smsp025events.Draw("pt>>Zpt25GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x25.str()).c_str());
|
905 |
smsp050events.Draw("pt>>Zpt50GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x50.str()).c_str());
|
906 |
smsp075events.Draw("pt>>Zpt75GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x75.str()).c_str());
|
907 |
|
908 |
smsp025events.Draw("pt>>Zpt25Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x25.str()).c_str());
|
909 |
smsp050events.Draw("pt>>Zpt50Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x50.str()).c_str());
|
910 |
smsp075events.Draw("pt>>Zpt75Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x75.str()).c_str());
|
911 |
|
912 |
smsp025events.Draw("met[4]>>MET25GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x25.str()).c_str());
|
913 |
smsp050events.Draw("met[4]>>MET50GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x50.str()).c_str());
|
914 |
smsp075events.Draw("met[4]>>MET75GluChi2",("id1==id2&&"+cut_VaryingGluiChi2_MDiff_x75.str()).c_str());
|
915 |
|
916 |
smsp025events.Draw("met[4]>>MET25Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x25.str()).c_str());
|
917 |
smsp050events.Draw("met[4]>>MET50Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x50.str()).c_str());
|
918 |
smsp075events.Draw("met[4]>>MET75Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x75.str()).c_str());
|
919 |
|
920 |
smsp025events.Draw("(((jzb[1]+0.043*pt)-3.05933))>>JZB25GluChi2",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x25.str()).c_str());
|
921 |
smsp050events.Draw("(((jzb[1]+0.043*pt)-3.05933))>>JZB50GluChi2",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x50.str()).c_str());
|
922 |
smsp075events.Draw("(((jzb[1]+0.043*pt)-3.05933))>>JZB75GluChi2",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x75.str()).c_str());
|
923 |
|
924 |
smsp025events.Draw("(((jzb[1]+0.043*pt)-3.05933))>>JZB25Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x25.str()).c_str());
|
925 |
smsp050events.Draw("(((jzb[1]+0.043*pt)-3.05933))>>JZB50Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x50.str()).c_str());
|
926 |
smsp075events.Draw("(((jzb[1]+0.043*pt)-3.05933))>>JZB75Chi2LSP",("id1==id2&&"+cut_VaryingChi2LSP_MDiff_x75.str()).c_str());
|
927 |
|
928 |
// STEP 4: Cosmetics
|
929 |
color_histos(nJets25GluChi2,nJets50GluChi2,nJets75GluChi2,"N(jets)");
|
930 |
color_histos(nJets25Chi2LSP,nJets50Chi2LSP,nJets75Chi2LSP,"N(jets)");
|
931 |
color_histos(sumJetpt25GluChi2,sumJetpt50GluChi2,sumJetpt75GluChi2,"Sum of Jet Pt (GeV)");
|
932 |
color_histos(sumJetpt25Chi2LSP,sumJetpt50Chi2LSP,sumJetpt75Chi2LSP,"Sum of Jet Pt (GeV)");
|
933 |
color_histos(Zpt25GluChi2,Zpt50GluChi2,Zpt75GluChi2,"Z p_{T} (GeV)");
|
934 |
color_histos(Zpt25Chi2LSP,Zpt50Chi2LSP,Zpt75Chi2LSP,"Z p_{T} (GeV)");
|
935 |
color_histos(MET25GluChi2,MET50GluChi2,MET75GluChi2,"Missing E_{T} (GeV)");
|
936 |
color_histos(MET25Chi2LSP,MET50Chi2LSP,MET75Chi2LSP,"Missing E_{T} (GeV)");
|
937 |
color_histos(JZB25GluChi2,JZB50GluChi2,JZB75GluChi2,"JZB (GeV)");
|
938 |
color_histos(JZB25Chi2LSP,JZB50Chi2LSP,JZB75Chi2LSP,"JZB (GeV)");
|
939 |
|
940 |
TLegend *legGluChi2 = make_legend("",0.55,0.6,false);
|
941 |
legGluChi2->AddEntry(nJets75GluChi2,"m_{#tilde{g}}-m_{#chi_{2}} = 50 GeV","l");
|
942 |
legGluChi2->AddEntry(nJets50GluChi2,"m_{#tilde{g}}-m_{#chi_{2}} = 150 GeV","l");
|
943 |
legGluChi2->AddEntry(nJets25GluChi2,"m_{#tilde{g}}-m_{#chi_{2}} = 450 GeV","l");
|
944 |
|
945 |
TLegend *legChi2LSP = make_legend("",0.55,0.6,false);
|
946 |
legChi2LSP->AddEntry(nJets25Chi2LSP,"m_{#chi_{2}}-m_{LSP} = 50 GeV","l");
|
947 |
legChi2LSP->AddEntry(nJets50Chi2LSP,"m_{#chi_{2}}-m_{LSP} = 150 GeV","l");
|
948 |
legChi2LSP->AddEntry(nJets75Chi2LSP,"m_{#chi_{2}}-m_{LSP} = 450 GeV","l");
|
949 |
|
950 |
// STEP 4: Draw!
|
951 |
|
952 |
nJets25GluChi2->DrawNormalized("histo");
|
953 |
nJets50GluChi2->DrawNormalized("histo,same");
|
954 |
nJets75GluChi2->DrawNormalized("histo,same");
|
955 |
legGluChi2->Draw("same");
|
956 |
CompleteSave(can,"GeneratorStudies/MassDifferences/ComparingNJets_Of_Three_Different_Gluino_Chi2_MassDifferences");
|
957 |
|
958 |
sumJetpt25GluChi2->SetMaximum(sumJetpt25GluChi2->GetMaximum()*15);
|
959 |
sumJetpt25GluChi2->DrawNormalized("histo");
|
960 |
sumJetpt50GluChi2->DrawNormalized("histo,same");
|
961 |
sumJetpt75GluChi2->DrawNormalized("histo,same");
|
962 |
legGluChi2->Draw("same");
|
963 |
CompleteSave(can,"GeneratorStudies/MassDifferences/ComparingSumJetPt_Of_Three_Different_Gluino_Chi2_MassDifferences");
|
964 |
|
965 |
Zpt25GluChi2->SetMaximum(Zpt25GluChi2->GetMaximum()*15);
|
966 |
Zpt25GluChi2->DrawNormalized("histo");
|
967 |
Zpt50GluChi2->DrawNormalized("histo,same");
|
968 |
Zpt75GluChi2->DrawNormalized("histo,same");
|
969 |
legGluChi2->Draw("same");
|
970 |
CompleteSave(can,"GeneratorStudies/MassDifferences/ComparingZPt_Of_Three_Different_Gluino_Chi2_MassDifferences");
|
971 |
|
972 |
MET25GluChi2->SetMaximum(MET25GluChi2->GetMaximum()*15);
|
973 |
MET25GluChi2->DrawNormalized("histo");
|
974 |
MET50GluChi2->DrawNormalized("histo,same");
|
975 |
MET75GluChi2->DrawNormalized("histo,same");
|
976 |
legGluChi2->Draw("same");
|
977 |
CompleteSave(can,"GeneratorStudies/MassDifferences/ComparingMET_Of_Three_Different_Gluino_Chi2_MassDifferences");
|
978 |
|
979 |
JZB25GluChi2->SetMaximum(JZB25GluChi2->GetMaximum()*10);
|
980 |
JZB25GluChi2->DrawNormalized("histo");
|
981 |
JZB50GluChi2->DrawNormalized("histo,same");
|
982 |
JZB75GluChi2->DrawNormalized("histo,same");
|
983 |
// legGluChi2->Draw("same");
|
984 |
CompleteSave(can,"GeneratorStudies/MassDifferences/ComparingJZB_Of_Three_Different_Gluino_Chi2_MassDifferences");
|
985 |
|
986 |
//----------------------
|
987 |
|
988 |
|
989 |
sumJetpt25Chi2LSP->SetMaximum(sumJetpt25Chi2LSP->GetMaximum()*15);
|
990 |
sumJetpt25Chi2LSP->DrawNormalized("histo");
|
991 |
sumJetpt50Chi2LSP->DrawNormalized("histo,same");
|
992 |
sumJetpt75Chi2LSP->DrawNormalized("histo,same");
|
993 |
legChi2LSP->Draw("same");
|
994 |
CompleteSave(can,"GeneratorStudies/MassDifferences/ComparingSumJetPt_Of_Three_Different_Chi1_Chi2_MassDifferences");
|
995 |
|
996 |
nJets25Chi2LSP->DrawNormalized("histo");
|
997 |
nJets50Chi2LSP->DrawNormalized("histo,same");
|
998 |
nJets75Chi2LSP->DrawNormalized("histo,same");
|
999 |
legChi2LSP->Draw("same");
|
1000 |
CompleteSave(can,"GeneratorStudies/MassDifferences/ComparingNJets_Of_Three_Different_Chi1_Chi2_MassDifferences");
|
1001 |
|
1002 |
Zpt25Chi2LSP->SetMaximum(Zpt25Chi2LSP->GetMaximum()*30);
|
1003 |
Zpt25Chi2LSP->DrawNormalized("histo");
|
1004 |
Zpt50Chi2LSP->DrawNormalized("histo,same");
|
1005 |
Zpt75Chi2LSP->DrawNormalized("histo,same");
|
1006 |
legChi2LSP->Draw("same");
|
1007 |
CompleteSave(can,"GeneratorStudies/MassDifferences/ComparingZPt_Of_Three_Different_Chi1_Chi2_MassDifferences");
|
1008 |
|
1009 |
MET25Chi2LSP->SetMaximum(MET25Chi2LSP->GetMaximum()*30);
|
1010 |
MET25Chi2LSP->DrawNormalized("histo");
|
1011 |
MET50Chi2LSP->DrawNormalized("histo,same");
|
1012 |
MET75Chi2LSP->DrawNormalized("histo,same");
|
1013 |
legChi2LSP->Draw("same");
|
1014 |
CompleteSave(can,"GeneratorStudies/MassDifferences/ComparingMET_Of_Three_Different_Chi1_Chi2_MassDifferences");
|
1015 |
|
1016 |
JZB25Chi2LSP->SetMaximum(JZB25Chi2LSP->GetMaximum()*30);
|
1017 |
JZB25Chi2LSP->DrawNormalized("histo");
|
1018 |
JZB50Chi2LSP->DrawNormalized("histo,same");
|
1019 |
JZB75Chi2LSP->DrawNormalized("histo,same");
|
1020 |
// legChi2LSP->Draw("same");
|
1021 |
CompleteSave(can,"GeneratorStudies/MassDifferences/ComparingJZB_Of_Three_Different_Chi1_Chi2_MassDifferences");
|
1022 |
}
|