1 |
buchmann |
1.1 |
#include <iostream>
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
samplecollection PhotonSamples("PhotonSamples");
|
5 |
|
|
|
6 |
|
|
namespace GenPhotons {
|
7 |
buchmann |
1.6 |
void CompareZmassToFinalStateLeptons();
|
8 |
|
|
void GenLevelStudies();
|
9 |
|
|
|
10 |
|
|
void NumberOfPhotonsPerEvent();
|
11 |
|
|
void CharacterizingFSRPhotons();
|
12 |
|
|
void MakeCharacterizationPlot(string variable, int nbins, float min, float max, string label, string saveas);
|
13 |
|
|
void dR2DPlots();
|
14 |
|
|
void CompareGenJZBDistributions();
|
15 |
|
|
void EfficiencyPurity();
|
16 |
|
|
|
17 |
|
|
TCut FSRcut;
|
18 |
|
|
TCut NoFSRcut;
|
19 |
|
|
TCut BaseCut;
|
20 |
buchmann |
1.1 |
}
|
21 |
|
|
|
22 |
|
|
namespace RecoPhotons {
|
23 |
buchmann |
1.6 |
void RecoLevelStudies();
|
24 |
|
|
|
25 |
|
|
void NumberOfPhotonsPerEvent();
|
26 |
|
|
void CharacterizingFSRPhotons();
|
27 |
|
|
void MakeCharacterizationPlot(string variable, int nbins, float min, float max, string label, string saveas);
|
28 |
|
|
void dR2DPlots();
|
29 |
|
|
void CompareRecoJZBDistributions();
|
30 |
|
|
void EfficiencyPurity();
|
31 |
|
|
void FSRPhotonVsUnmatchedVsMatchedPhoton();
|
32 |
|
|
void FSRPhotonVsUnmatchedVsMatchedPhoton2D();
|
33 |
|
|
void JZBvsmllClosure();
|
34 |
|
|
|
35 |
|
|
TCut FSRcut;
|
36 |
|
|
TCut NoFSRcut;
|
37 |
|
|
TCut BaseCut;
|
38 |
|
|
}
|
39 |
|
|
|
40 |
|
|
void RecoPhotons::JZBvsmllClosure() {
|
41 |
|
|
TCanvas *can = new TCanvas("can","can",1000,1000);
|
42 |
|
|
can->Divide(2,2);
|
43 |
|
|
can->cd(1);
|
44 |
|
|
|
45 |
|
|
//we only want Z->ee and Z->mm for this (not Z->tautau)
|
46 |
|
|
|
47 |
|
|
TCut em("!EventZToTaus");
|
48 |
|
|
|
49 |
|
|
//no FSR recovery
|
50 |
buchmann |
1.7 |
TH1F *negmll_noFSR = PhotonSamples.Draw("negmll_noFSR", "genFSRmll", 36, 20, 200, "m_{ll}^{gen}", "events",BaseCut && TCut("genFSRjzb<-0.1") && em, mc,PlottingSetup::luminosity);
|
51 |
buchmann |
1.6 |
TH1F *posmll_noFSR = PhotonSamples.Draw("posmll_noFSR", "genFSRmll", 36, 20, 200, "m_{ll}^{gen}", "events",BaseCut && TCut("genFSRjzb>0.1") && em, mc,PlottingSetup::luminosity);
|
52 |
|
|
|
53 |
|
|
|
54 |
|
|
//with FSR recovery
|
55 |
buchmann |
1.7 |
TH1F *negmll_FSR = PhotonSamples.Draw("negmll_FSR", "genFSRmllg", 36, 20, 200, "m_{ll}^{gen}", "events",BaseCut && TCut("genFSRjzbG<-0.1") && em, mc,PlottingSetup::luminosity);
|
56 |
buchmann |
1.6 |
TH1F *posmll_FSR = PhotonSamples.Draw("posmll_FSR", "genFSRmllg", 36, 20, 200, "m_{ll}^{gen}", "events",BaseCut && TCut("genFSRjzbG>0.1") && em, mc,PlottingSetup::luminosity);
|
57 |
|
|
|
58 |
|
|
cout << "Integrals: " << endl;
|
59 |
|
|
cout << " no FSR: JZB<0 : " << negmll_noFSR->Integral() << endl;
|
60 |
|
|
cout << " no FSR: JZB>0 : " << posmll_noFSR->Integral() << endl;
|
61 |
|
|
cout << " with FSR: JZB<0 : " << negmll_FSR->Integral() << endl;
|
62 |
|
|
cout << " with FSR: JZB>0 : " << posmll_FSR->Integral() << endl;
|
63 |
|
|
|
64 |
|
|
can->cd(1)->SetLogy(1);
|
65 |
|
|
can->cd(2)->SetLogy(1);
|
66 |
|
|
// can->cd(3)->SetLogy(1);
|
67 |
|
|
// can->cd(4)->SetLogy(1);
|
68 |
|
|
|
69 |
|
|
negmll_noFSR->SetLineColor(kRed);
|
70 |
|
|
posmll_noFSR->SetLineColor(kBlack);
|
71 |
|
|
|
72 |
|
|
negmll_FSR->SetLineColor(kRed);
|
73 |
|
|
posmll_FSR->SetLineColor(kBlack);
|
74 |
|
|
|
75 |
|
|
TLegend *leg = make_legend();
|
76 |
|
|
leg->AddEntry(negmll_noFSR,"prediction","L");
|
77 |
|
|
leg->AddEntry(posmll_noFSR,"observation","P");
|
78 |
|
|
leg->SetHeader("#splitline{DY MC, gen level}{Only Z#rightarrow ee,mm}");
|
79 |
|
|
|
80 |
|
|
can->cd(1);
|
81 |
|
|
negmll_noFSR->Draw("histo");
|
82 |
|
|
posmll_noFSR->Draw("e1,same");
|
83 |
|
|
TText *noFSR = write_title("No FSR recovery");
|
84 |
|
|
noFSR->Draw();
|
85 |
|
|
leg->Draw();
|
86 |
|
|
|
87 |
|
|
can->cd(2);
|
88 |
|
|
negmll_FSR->Draw("histo");
|
89 |
|
|
posmll_FSR->Draw("e1,same");
|
90 |
|
|
TText *FSR = write_title("With FSR recovery");
|
91 |
|
|
FSR->Draw();
|
92 |
|
|
leg->Draw();
|
93 |
|
|
|
94 |
|
|
can->cd(3);
|
95 |
|
|
TH1F *ratioNoFSR = (TH1F*)posmll_noFSR->Clone("ratioNoFSR");
|
96 |
|
|
ratioNoFSR->Divide(negmll_noFSR);
|
97 |
|
|
ratioNoFSR->GetYaxis()->SetRangeUser(0,2);
|
98 |
|
|
ratioNoFSR->GetYaxis()->SetTitle("obs/pred");
|
99 |
|
|
ratioNoFSR->Draw("e1");
|
100 |
|
|
TLine *oneline = new TLine(ratioNoFSR->GetBinLowEdge(1),1.0,ratioNoFSR->GetBinLowEdge(ratioNoFSR->GetNbinsX())+ratioNoFSR->GetBinWidth(ratioNoFSR->GetNbinsX()),1.0);
|
101 |
|
|
oneline->SetLineColor(kBlue);
|
102 |
|
|
oneline->Draw();
|
103 |
|
|
noFSR->Draw();
|
104 |
|
|
|
105 |
|
|
can->cd(4);
|
106 |
|
|
TH1F *ratioFSR = (TH1F*)posmll_FSR->Clone("ratioFSR");
|
107 |
|
|
ratioFSR->Divide(negmll_FSR);
|
108 |
|
|
ratioFSR->GetYaxis()->SetTitle("obs/pred");
|
109 |
|
|
ratioFSR->GetYaxis()->SetRangeUser(0,2);
|
110 |
|
|
ratioFSR->Draw("e1");
|
111 |
|
|
oneline->Draw();
|
112 |
|
|
FSR->Draw();
|
113 |
|
|
|
114 |
|
|
|
115 |
buchmann |
1.7 |
CompleteSave(can,"PhotonStudies/Recophotons/ComparePredObsZmass_GEN");
|
116 |
buchmann |
1.6 |
|
117 |
|
|
|
118 |
|
|
cout << __FUNCTION__ << " : Still need to delete objects" << endl;
|
119 |
buchmann |
1.7 |
delete FSR;
|
120 |
|
|
delete ratioNoFSR;
|
121 |
|
|
delete ratioFSR;
|
122 |
|
|
delete negmll_noFSR;
|
123 |
|
|
delete negmll_FSR;
|
124 |
|
|
delete posmll_noFSR;
|
125 |
|
|
delete posmll_FSR;
|
126 |
buchmann |
1.6 |
delete can;
|
127 |
buchmann |
1.4 |
}
|
128 |
|
|
|
129 |
buchmann |
1.5 |
void RecoPhotons::FSRPhotonVsUnmatchedVsMatchedPhoton() {
|
130 |
|
|
|
131 |
|
|
TCanvas *can = new TCanvas("can","can");
|
132 |
buchmann |
1.6 |
|
133 |
buchmann |
1.5 |
can->SetLogy(1);
|
134 |
|
|
TH1F *MatchedFSR = PhotonSamples.Draw("MatchedFSR" ,"min(recoPhotonsDR1,recoPhotonsDR2)",20,0,2,"min(#Delta R (#gamma,l_{1}), #Delta R (#gamma,l_{2}))" , "events", "recoPhotonGenIndex>=0 && genPhotonsIsFSR[recoPhotonGenIndex]",mc,PlottingSetup::luminosity);
|
135 |
|
|
TH1F *MatchednoFSR = PhotonSamples.Draw("MatchednoFSR" ,"min(recoPhotonsDR1,recoPhotonsDR2)",20,0,2,"min(#Delta R (#gamma,l_{1}), #Delta R (#gamma,l_{2}))" , "events", "recoPhotonGenIndex>=0 && !genPhotonsIsFSR[recoPhotonGenIndex]",mc,PlottingSetup::luminosity);
|
136 |
|
|
TH1F *UnMatched = PhotonSamples.Draw("UnMatched" ,"min(recoPhotonsDR1,recoPhotonsDR2)",20,0,2,"min(#Delta R (#gamma,l_{1}), #Delta R (#gamma,l_{2}))" , "events", "recoPhotonGenIndex<0",mc,PlottingSetup::luminosity);
|
137 |
buchmann |
1.6 |
|
138 |
buchmann |
1.5 |
MatchedFSR->SetLineColor(TColor::GetColor("#01DF01"));//green
|
139 |
|
|
MatchednoFSR->SetLineColor(TColor::GetColor("#FF4000"));//red
|
140 |
|
|
UnMatched->SetLineColor(TColor::GetColor("#194fff"));//blue
|
141 |
|
|
|
142 |
|
|
TLegend *leg = new TLegend(0.7,0.7,0.89,0.89);
|
143 |
|
|
leg->SetFillColor(kWhite);
|
144 |
|
|
leg->AddEntry(MatchedFSR,"Matched: FSR","l");
|
145 |
|
|
leg->AddEntry(MatchednoFSR,"Matched: no FSR","l");
|
146 |
|
|
leg->AddEntry(UnMatched,"Unmatched #gamma","l");
|
147 |
|
|
|
148 |
|
|
MatchedFSR->DrawNormalized("histo");
|
149 |
|
|
MatchednoFSR->DrawNormalized("same,histo");
|
150 |
|
|
UnMatched->DrawNormalized("same,histo");
|
151 |
|
|
leg->SetHeader("DY MC:");
|
152 |
|
|
leg->Draw("same,histo");
|
153 |
|
|
DrawMCPrelim();
|
154 |
|
|
|
155 |
buchmann |
1.7 |
CompleteSave(can,"PhotonStudies/Recophotons/DeltaR_Comparison_Matched_Unmatched_FSR__Normalized");
|
156 |
|
|
|
157 |
|
|
MatchedFSR->Draw("histo");
|
158 |
|
|
MatchednoFSR->Draw("same,histo");
|
159 |
|
|
UnMatched->Draw("same,histo");
|
160 |
|
|
leg->SetHeader("DY MC:");
|
161 |
|
|
leg->Draw("same,histo");
|
162 |
|
|
DrawMCPrelim();
|
163 |
buchmann |
1.5 |
CompleteSave(can,"PhotonStudies/Recophotons/DeltaR_Comparison_Matched_Unmatched_FSR");
|
164 |
buchmann |
1.6 |
delete can;
|
165 |
|
|
|
166 |
buchmann |
1.5 |
|
167 |
|
|
}
|
168 |
|
|
|
169 |
|
|
void RecoPhotons::FSRPhotonVsUnmatchedVsMatchedPhoton2D() {
|
170 |
|
|
|
171 |
buchmann |
1.6 |
TCanvas *can = new TCanvas("can","can");
|
172 |
|
|
can->SetLogy(1);
|
173 |
|
|
TH1F *MatchedFSR = PhotonSamples.Draw("MatchedFSR" ,"min(recoPhotonsDR1,recoPhotonsDR2)",100,0,2,"min(#Delta R (#gamma,l_{1}), #Delta R (#gamma,l_{2}))" , "events", "recoPhotonGenIndex>=0 && genPhotonsIsFSR[recoPhotonGenIndex]&&recoPhotonsDR1>0&&recoPhotonsDR2>0",mc,PlottingSetup::luminosity);
|
174 |
|
|
TH1F *MatchednoFSR = PhotonSamples.Draw("MatchednoFSR" ,"min(recoPhotonsDR1,recoPhotonsDR2)",100,0,2,"min(#Delta R (#gamma,l_{1}), #Delta R (#gamma,l_{2}))" , "events", "recoPhotonGenIndex>=0 && !genPhotonsIsFSR[recoPhotonGenIndex]&&recoPhotonsDR1>0&&recoPhotonsDR2>0",mc,PlottingSetup::luminosity);
|
175 |
|
|
TH1F *UnMatched = PhotonSamples.Draw("UnMatched" ,"min(recoPhotonsDR1,recoPhotonsDR2)",100,0,2,"min(#Delta R (#gamma,l_{1}), #Delta R (#gamma,l_{2}))" , "events", "recoPhotonGenIndex<0&&recoPhotonsDR1>0&&recoPhotonsDR2>0",mc,PlottingSetup::luminosity);
|
176 |
buchmann |
1.5 |
|
177 |
|
|
MatchedFSR->SetLineColor(TColor::GetColor("#01DF01"));//green
|
178 |
|
|
MatchednoFSR->SetLineColor(TColor::GetColor("#FF4000"));//red
|
179 |
|
|
UnMatched->SetLineColor(TColor::GetColor("#194fff"));//blue
|
180 |
|
|
|
181 |
|
|
TLegend *leg = new TLegend(0.7,0.7,0.89,0.89);
|
182 |
|
|
leg->SetFillColor(kWhite);
|
183 |
|
|
leg->AddEntry(MatchedFSR,"Matched: FSR","l");
|
184 |
|
|
leg->AddEntry(MatchednoFSR,"Matched: no FSR","l");
|
185 |
|
|
leg->AddEntry(UnMatched,"Unmatched #gamma","l");
|
186 |
|
|
|
187 |
|
|
MatchedFSR->DrawNormalized("histo");
|
188 |
|
|
MatchednoFSR->DrawNormalized("same,histo");
|
189 |
|
|
UnMatched->DrawNormalized("same,histo");
|
190 |
|
|
leg->SetHeader("DY MC:");
|
191 |
|
|
leg->Draw("same,histo");
|
192 |
|
|
DrawMCPrelim();
|
193 |
|
|
|
194 |
buchmann |
1.6 |
CompleteSave(can,"PhotonStudies/Recophotons/DeltaR_Comparison_Matched_Unmatched_FSR");
|
195 |
|
|
|
196 |
|
|
|
197 |
|
|
delete can;
|
198 |
|
|
|
199 |
|
|
TCanvas *can2 = new TCanvas("can2","can2",1000,1000);
|
200 |
|
|
can2->Divide(2,2);
|
201 |
|
|
can2->cd(1);
|
202 |
|
|
|
203 |
|
|
|
204 |
|
|
vector<float> binX, binY;
|
205 |
|
|
int nBins=40;
|
206 |
|
|
for(int i=0;i<nBins;i++) {
|
207 |
|
|
binX.push_back(i*(3.0/nBins));
|
208 |
|
|
binY.push_back(i*(3.0/nBins));
|
209 |
|
|
}
|
210 |
|
|
|
211 |
|
|
cout << __LINE__ << endl;
|
212 |
|
|
TH2F *tMatchedFSR = PhotonSamples.Draw("tMatchedFSR", "recoPhotonsDR1:recoPhotonsDR2", binX,binY, "#Delta R (#gamma^{FSR},l_{1})","#Delta R (#gamma^{FSR},l_{2})",BaseCut&&TCut("recoPhotonGenIndex>=0 && genPhotonsIsFSR[recoPhotonGenIndex]&&recoPhotonsDR1>0&&recoPhotonsDR2>0"),mc,PlottingSetup::luminosity, PhotonSamples.FindSample("o"),false);
|
213 |
|
|
cout << __LINE__ << endl;
|
214 |
|
|
TH2F *tMatchednoFSR = PhotonSamples.Draw("tMatchednoFSR", "recoPhotonsDR1:recoPhotonsDR2", binX,binY, "#Delta R (#gamma^{FSR},l_{1})","#Delta R (#gamma^{FSR},l_{2})",BaseCut&&TCut("recoPhotonGenIndex>=0 && !genPhotonsIsFSR[recoPhotonGenIndex]&&recoPhotonsDR1>0&&recoPhotonsDR2>0"),mc,PlottingSetup::luminosity, PhotonSamples.FindSample("o"),false);
|
215 |
|
|
cout << __LINE__ << endl;
|
216 |
|
|
TH2F *tUnMatched = PhotonSamples.Draw("tUnMatched", "recoPhotonsDR1:recoPhotonsDR2", binX,binY, "#Delta R (#gamma^{FSR},l_{1})","#Delta R (#gamma^{FSR},l_{2})",BaseCut&&TCut("recoPhotonGenIndex<0&&recoPhotonsDR1>0&&recoPhotonsDR2>0"),mc,PlottingSetup::luminosity, PhotonSamples.FindSample("o"),false);
|
217 |
|
|
cout << __LINE__ << endl;
|
218 |
buchmann |
1.5 |
|
219 |
|
|
|
220 |
buchmann |
1.6 |
|
221 |
|
|
|
222 |
|
|
can2->cd(1);
|
223 |
|
|
can2->cd(1)->SetRightMargin(0.14);
|
224 |
|
|
tMatchedFSR->Draw("COLZ");
|
225 |
|
|
TText *ma = write_title("Matched FSR photons");
|
226 |
|
|
ma->Draw();
|
227 |
|
|
can2->cd(2);
|
228 |
|
|
can2->cd(2)->SetRightMargin(0.14);
|
229 |
|
|
cout << __LINE__ << endl;
|
230 |
|
|
tMatchednoFSR->Draw("COLZ");
|
231 |
|
|
TText *man = write_title("Matched non-FSR phtons");
|
232 |
|
|
man->Draw();
|
233 |
|
|
can2->cd(3);
|
234 |
|
|
can2->cd(3)->SetRightMargin(0.14);
|
235 |
|
|
cout << __LINE__ << endl;
|
236 |
|
|
TText *unm = write_title("Unmatched photons");
|
237 |
|
|
tUnMatched->Draw("COLZ");
|
238 |
|
|
unm->Draw();
|
239 |
|
|
can2->cd(4);
|
240 |
|
|
can2->cd(4)->SetLogy(1);
|
241 |
|
|
MatchedFSR->DrawNormalized("histo");
|
242 |
|
|
MatchednoFSR->DrawNormalized("same,histo");
|
243 |
|
|
UnMatched->DrawNormalized("same,histo");
|
244 |
|
|
leg->SetHeader("DY MC:");
|
245 |
|
|
leg->Draw("same,histo");
|
246 |
|
|
DrawMCPrelim();
|
247 |
|
|
|
248 |
|
|
cout << __LINE__ << endl;
|
249 |
|
|
CompleteSave(can2,"PhotonStudies/Recophotons/DeltaR_Comparison_Matched_Unmatched_FSR__2D");
|
250 |
|
|
|
251 |
|
|
delete can2;
|
252 |
buchmann |
1.5 |
}
|
253 |
|
|
|
254 |
buchmann |
1.4 |
void RecoPhotons::NumberOfPhotonsPerEvent() {
|
255 |
|
|
cout << __FUNCTION__ << " not implemented." << endl;
|
256 |
|
|
}
|
257 |
|
|
|
258 |
|
|
void RecoPhotons::CharacterizingFSRPhotons() {
|
259 |
|
|
cout << __FUNCTION__ << " not implemented." << endl;
|
260 |
|
|
}
|
261 |
|
|
|
262 |
|
|
void RecoPhotons::dR2DPlots() {
|
263 |
|
|
cout << __FUNCTION__ << " not implemented." << endl;
|
264 |
|
|
}
|
265 |
|
|
|
266 |
|
|
void RecoPhotons::MakeCharacterizationPlot(string variable, int nbins, float min, float max, string label, string saveas) {
|
267 |
|
|
cout << __FUNCTION__ << " not implemented." << endl;
|
268 |
|
|
}
|
269 |
|
|
|
270 |
|
|
void RecoPhotons::CompareRecoJZBDistributions() {
|
271 |
|
|
cout << __FUNCTION__ << " not implemented." << endl;
|
272 |
|
|
}
|
273 |
|
|
|
274 |
|
|
void RecoPhotons::EfficiencyPurity() {
|
275 |
|
|
cout << __FUNCTION__ << " not implemented." << endl;
|
276 |
|
|
}
|
277 |
|
|
|
278 |
|
|
void CompareZmassToFinalStateLeptons() {
|
279 |
buchmann |
1.5 |
|
280 |
|
|
TCanvas *can = new TCanvas("can","can");
|
281 |
|
|
can->SetLogy(1);
|
282 |
|
|
|
283 |
|
|
TH1F *FullZ = PhotonSamples.Draw("FullZ" ,"genFSRmllg",36,20,200,"m_{ll} [GeV]" , "events", "genFSRmllg>20&&genFSRmllg<200",mc,PlottingSetup::luminosity);
|
284 |
|
|
TH1F *RecoLL = PhotonSamples.Draw("RecoLL","mll", 36,20,200,"m_{ll} [GeV]" , "events","mll>20&&mll<200",mc,PlottingSetup::luminosity);
|
285 |
|
|
TH1F *FSRRll = PhotonSamples.Draw("FSRRll","mllg", 36,20,200,"m_{ll#gamma} [GeV]", "events","mllg>20&&mllg<200",mc,PlottingSetup::luminosity);
|
286 |
|
|
|
287 |
|
|
FullZ->SetLineColor(TColor::GetColor("#01DF01"));//green
|
288 |
|
|
RecoLL->SetLineColor(TColor::GetColor("#FF4000"));//red
|
289 |
|
|
FSRRll->SetLineColor(TColor::GetColor("#194fff"));//blue
|
290 |
|
|
|
291 |
|
|
TLegend *leg = new TLegend(0.7,0.7,0.89,0.89);
|
292 |
|
|
leg->SetFillColor(kWhite);
|
293 |
|
|
leg->AddEntry(FullZ,"gen Z mass","l");
|
294 |
|
|
leg->AddEntry(RecoLL,"reco m_{ll}","l");
|
295 |
|
|
leg->AddEntry(FSRRll,"reco m_{ll} w/ FSR recovery","l");
|
296 |
|
|
|
297 |
|
|
FullZ->DrawNormalized("histo");
|
298 |
|
|
RecoLL->DrawNormalized("same,histo");
|
299 |
|
|
FSRRll->DrawNormalized("same,histo");
|
300 |
|
|
leg->SetHeader("DY MC:");
|
301 |
|
|
leg->Draw("same,histo");
|
302 |
|
|
DrawMCPrelim();
|
303 |
|
|
|
304 |
|
|
CompleteSave(can,"PhotonStudies/Recophotons/CompareZmassToFinalStateLeptons");
|
305 |
|
|
|
306 |
|
|
|
307 |
buchmann |
1.7 |
TH1F *RecoLL2 = PhotonSamples.Draw("RecoLL2","mll-genFSRmllg", 40,-100,100,"m_{ll}-m_{Z}^{gen} [GeV]", "events","mll>20&&genFSRmllg>20", mc,PlottingSetup::luminosity);
|
308 |
|
|
TH1F *FSRRll2 = PhotonSamples.Draw("FSRRll2","mllg-genFSRmllg", 40,-100,100,"m_{ll}-m_{Z}^{gen} [GeV]", "events","mllg>20&&genFSRmllg>20",mc,PlottingSetup::luminosity);
|
309 |
buchmann |
1.5 |
|
310 |
|
|
RecoLL2->SetLineColor(TColor::GetColor("#FF4000"));//red
|
311 |
|
|
FSRRll2->SetLineColor(TColor::GetColor("#194fff"));//blue
|
312 |
|
|
|
313 |
|
|
TH1F *phony = new TH1F("phony","",1,0,1);
|
314 |
|
|
phony->SetLineColor(kWhite);
|
315 |
|
|
|
316 |
|
|
stringstream summary;
|
317 |
buchmann |
1.7 |
summary << "#splitline{#splitline{Before: Mean : " << std::setprecision(3) << RecoLL2->GetMean() << "}{ RMS : " << std::setprecision(3) << RecoLL2->GetRMS() << "}";
|
318 |
|
|
summary << "}{#splitline{After: Mean : " << std::setprecision(3) << FSRRll2->GetMean() << "}{ RMS : " << std::setprecision(3) << FSRRll2->GetRMS() << "}}";
|
319 |
buchmann |
1.5 |
|
320 |
|
|
TLegend *leg2 = new TLegend(0.6,0.7,0.89,0.89);
|
321 |
|
|
leg2->SetFillColor(kWhite);
|
322 |
buchmann |
1.7 |
//leg2->AddEntry(FullZ,"gen Z mass","l");
|
323 |
|
|
leg2->AddEntry(RecoLL,"m_{ll}-m_{Z}^{gen}: no FSR recov","l");
|
324 |
|
|
leg2->AddEntry(FSRRll,"m_{ll}-m_{Z}^{gen}: with FSR recov","l");
|
325 |
buchmann |
1.5 |
|
326 |
|
|
RecoLL2->DrawNormalized("histo");
|
327 |
|
|
FSRRll2->DrawNormalized("same,histo");
|
328 |
|
|
leg2->SetHeader("DY MC:");
|
329 |
|
|
leg2->Draw("same,histo");
|
330 |
|
|
DrawMCPrelim();
|
331 |
|
|
|
332 |
buchmann |
1.7 |
TText *text = write_title(summary.str().c_str());
|
333 |
|
|
text->SetX(0.4);
|
334 |
|
|
text->SetY(0.8);
|
335 |
|
|
text->SetTextAlign(31);
|
336 |
|
|
text->SetTextSize(0.025);
|
337 |
|
|
text->Draw();
|
338 |
|
|
|
339 |
buchmann |
1.5 |
cout << "Mean (before recovery) : " << RecoLL2->GetMean() << " , RMS: " << RecoLL2->GetRMS() << endl;
|
340 |
|
|
cout << "Mean (after recovery) : " << FSRRll2->GetMean() << " , RMS: " << FSRRll2->GetRMS() << endl;
|
341 |
|
|
|
342 |
|
|
|
343 |
|
|
CompleteSave(can,"PhotonStudies/Recophotons/CompareZmassToFinalStateLeptons_MassDiff");
|
344 |
|
|
|
345 |
|
|
|
346 |
|
|
|
347 |
|
|
delete RecoLL;
|
348 |
|
|
delete RecoLL2;
|
349 |
|
|
delete FullZ;
|
350 |
|
|
delete FSRRll;
|
351 |
|
|
delete FSRRll2;
|
352 |
|
|
delete phony;
|
353 |
|
|
delete can;
|
354 |
buchmann |
1.1 |
}
|
355 |
|
|
|
356 |
|
|
void RecoPhotons::RecoLevelStudies() {
|
357 |
buchmann |
1.6 |
TCut essential_bkp = essentialcut;
|
358 |
|
|
essentialcut=TCut("");
|
359 |
buchmann |
1.4 |
|
360 |
buchmann |
1.6 |
JZBvsmllClosure();
|
361 |
buchmann |
1.7 |
CompareZmassToFinalStateLeptons();
|
362 |
|
|
FSRPhotonVsUnmatchedVsMatchedPhoton();/*
|
363 |
buchmann |
1.5 |
FSRPhotonVsUnmatchedVsMatchedPhoton2D();
|
364 |
buchmann |
1.6 |
NumberOfPhotonsPerEvent();
|
365 |
|
|
CharacterizingFSRPhotons();
|
366 |
|
|
CompareRecoJZBDistributions();
|
367 |
buchmann |
1.4 |
|
368 |
buchmann |
1.6 |
dR2DPlots();
|
369 |
buchmann |
1.4 |
|
370 |
buchmann |
1.6 |
EfficiencyPurity();*/
|
371 |
buchmann |
1.4 |
|
372 |
buchmann |
1.6 |
essentialcut=essential_bkp;
|
373 |
buchmann |
1.1 |
}
|
374 |
|
|
|
375 |
|
|
|
376 |
|
|
void GenPhotons::CompareZmassToFinalStateLeptons() {
|
377 |
buchmann |
1.6 |
|
378 |
|
|
TCanvas *can = new TCanvas("can","can");
|
379 |
|
|
can->SetLogy(1);
|
380 |
|
|
|
381 |
|
|
TH1F *FullZ = PhotonSamples.Draw("FullZ","genFSRmllg",36,20,200,"m_{Z}^{gen} [GeV]", "events", "genFSRmllg>20&&genFSRmllg<200",mc,PlottingSetup::luminosity);
|
382 |
|
|
TH1F *GenLL = PhotonSamples.Draw("GenLL","genFSRmll", 36,20,200,"m_{ll}^{gen} [GeV]", "events","genFSRmllg>20&&genFSRmllg<200",mc,PlottingSetup::luminosity);
|
383 |
|
|
|
384 |
|
|
FullZ->SetLineColor(TColor::GetColor("#01DF01"));
|
385 |
|
|
GenLL->SetLineColor(TColor::GetColor("#FF4000"));
|
386 |
|
|
|
387 |
|
|
TLegend *leg = new TLegend(0.7,0.7,0.89,0.89);
|
388 |
|
|
leg->SetFillColor(kWhite);
|
389 |
|
|
leg->AddEntry(FullZ,"gen Z mass","l");
|
390 |
|
|
leg->AddEntry(GenLL,"gen m_{ll}","l");
|
391 |
|
|
|
392 |
|
|
FullZ->Draw("histo");
|
393 |
|
|
GenLL->Draw("same,histo");
|
394 |
|
|
leg->SetHeader("DY MC:");
|
395 |
|
|
leg->Draw("same,histo");
|
396 |
|
|
DrawMCPrelim();
|
397 |
|
|
|
398 |
|
|
CompleteSave(can,"PhotonStudies/GenPhotons/CompareZmassToFinalStateLeptons");
|
399 |
|
|
delete can;
|
400 |
|
|
}
|
401 |
buchmann |
1.2 |
|
402 |
|
|
|
403 |
|
|
void GenPhotons::NumberOfPhotonsPerEvent() {
|
404 |
|
|
TCanvas *can = new TCanvas("can","can");
|
405 |
|
|
can->SetLogy(1);
|
406 |
|
|
|
407 |
|
|
TH1F *FSR = PhotonSamples.Draw("FSR","genFSRNparticles" ,11,-0.5,10.5,"N(#gamma)", "events", BaseCut,mc,PlottingSetup::luminosity);
|
408 |
|
|
TH1F *all = PhotonSamples.Draw("all","genPhotonsNPhotons",11,-0.5,10.5,"N(#gamma)", "events", BaseCut,mc,PlottingSetup::luminosity);
|
409 |
|
|
|
410 |
|
|
FSR->SetLineColor(TColor::GetColor("#01DF01"));
|
411 |
|
|
all->SetLineColor(TColor::GetColor("#FF4000"));
|
412 |
|
|
|
413 |
|
|
TLegend *leg = new TLegend(0.7,0.7,0.89,0.89);
|
414 |
|
|
leg->SetFillColor(kWhite);
|
415 |
|
|
leg->AddEntry(FSR,"FSR photons","l");
|
416 |
|
|
leg->AddEntry(all,"all photons","l");
|
417 |
|
|
|
418 |
|
|
FSR->Draw("histo");
|
419 |
|
|
all->Draw("same,histo");
|
420 |
|
|
leg->SetHeader("DY MC:");
|
421 |
|
|
leg->Draw("same,histo");
|
422 |
|
|
DrawMCPrelim();
|
423 |
|
|
|
424 |
buchmann |
1.4 |
CompleteSave(can,"PhotonStudies/GenPhotons/NPhotons");
|
425 |
buchmann |
1.2 |
|
426 |
|
|
|
427 |
|
|
TH1F *PhotonPt[10];
|
428 |
|
|
for(int i=0;i<10;i++) {
|
429 |
|
|
PhotonPt[i] = PhotonSamples.Draw("FSR","genPhotonsPt",25,0,100,"N(#gamma)", "events", FSRcut && TCut(("genFSRNparticles=="+any2string(i)).c_str()),mc,PlottingSetup::luminosity);
|
430 |
|
|
}
|
431 |
|
|
|
432 |
|
|
int DrawCounter=0;
|
433 |
|
|
|
434 |
|
|
TLegend *leg2 = make_legend();
|
435 |
|
|
for(int i=0;i<10;i++) {
|
436 |
|
|
if(PhotonPt[i]->Integral()>50) {
|
437 |
|
|
PhotonPt[i]->SetLineColor(DrawCounter+1);
|
438 |
|
|
leg2->AddEntry(PhotonPt[i],(any2string(i)+" FSR Photons").c_str(),"l");
|
439 |
|
|
if(DrawCounter) PhotonPt[i]->DrawNormalized("same,hist");
|
440 |
|
|
else PhotonPt[i]->DrawNormalized("hist");
|
441 |
|
|
DrawCounter++;
|
442 |
|
|
}
|
443 |
|
|
}
|
444 |
|
|
|
445 |
|
|
leg2->Draw();
|
446 |
|
|
|
447 |
|
|
leg2->SetHeader("DY MC (N_{jets} #geq 0):");
|
448 |
|
|
DrawMCPrelim();
|
449 |
|
|
|
450 |
buchmann |
1.4 |
CompleteSave(can,"PhotonStudies/GenPhotons/PhotonPtvsNPhotons");
|
451 |
buchmann |
1.2 |
|
452 |
|
|
delete can;
|
453 |
|
|
}
|
454 |
|
|
|
455 |
|
|
void GenPhotons::MakeCharacterizationPlot(string variable, int nbins, float min, float max, string label, string saveas) {
|
456 |
buchmann |
1.6 |
TCanvas *can = new TCanvas("can","can");
|
457 |
|
|
can->SetLogy(1);
|
458 |
|
|
|
459 |
|
|
TH1F *dR_FSR = PhotonSamples.Draw("dR_FSR", variable, nbins, min, max, label, "events",BaseCut && FSRcut, mc,PlottingSetup::luminosity);
|
460 |
|
|
TH1F *dR_nFSR = PhotonSamples.Draw("dR_nFSR", variable, nbins, min, max, label, "events",BaseCut && NoFSRcut, mc,PlottingSetup::luminosity);
|
461 |
|
|
|
462 |
|
|
dR_FSR->SetLineColor(TColor::GetColor("#01DF01"));
|
463 |
|
|
dR_nFSR->SetLineColor(TColor::GetColor("#FF4000"));
|
464 |
|
|
|
465 |
|
|
TLegend *leg = new TLegend(0.7,0.7,0.89,0.89);
|
466 |
|
|
leg->SetFillColor(kWhite);
|
467 |
|
|
leg->AddEntry(dR_FSR,"FSR #gamma's","l");
|
468 |
|
|
leg->AddEntry(dR_nFSR,"non-FSR #gamma's","l");
|
469 |
|
|
|
470 |
|
|
if(dR_nFSR->GetMinimum()<dR_FSR->GetMinimum()) dR_FSR->SetMinimum(dR_nFSR->GetMinimum());
|
471 |
|
|
if(dR_nFSR->GetMaximum()>dR_FSR->GetMaximum()) dR_FSR->SetMaximum(dR_nFSR->GetMaximum());
|
472 |
|
|
|
473 |
|
|
|
474 |
|
|
dR_FSR->Draw("histo");
|
475 |
|
|
dR_nFSR->Draw("same,histo");
|
476 |
|
|
leg->SetHeader("DY MC:");
|
477 |
|
|
leg->Draw("same,histo");
|
478 |
|
|
DrawMCPrelim();
|
479 |
|
|
|
480 |
|
|
CompleteSave(can,"PhotonStudies/GenPhotons/CharacterizingFSRPhotons/"+saveas);
|
481 |
|
|
delete dR_FSR;
|
482 |
|
|
delete dR_nFSR;
|
483 |
|
|
delete can;
|
484 |
buchmann |
1.2 |
}
|
485 |
|
|
|
486 |
|
|
|
487 |
|
|
void GenPhotons::CharacterizingFSRPhotons() {
|
488 |
buchmann |
1.6 |
MakeCharacterizationPlot("min(genPhotonsdR1,genPhotonsdR2)",100,0,5,"min(#Delta R (#gamma,l_{1}), #Delta R (#gamma,l_{2}))", "MinDR");
|
489 |
|
|
MakeCharacterizationPlot("genPhotonsPt",100,0,100,"p_{T}^{#gamma}", "PhotonPt");
|
490 |
|
|
MakeCharacterizationPlot("genPhotonsEta",100,-5,5,"#eta^{#gamma}", "PhotonEta");
|
491 |
|
|
MakeCharacterizationPlot("genPhotonsPhi",40,-4,4,"#phi^{#gamma}", "PhotonPhi");
|
492 |
buchmann |
1.2 |
}
|
493 |
|
|
|
494 |
|
|
void GenPhotons::CompareGenJZBDistributions() {
|
495 |
|
|
TCanvas *can = new TCanvas("can","can");
|
496 |
|
|
can->SetLogy(1);
|
497 |
|
|
|
498 |
|
|
TH1F *dR_FSR = PhotonSamples.Draw("dR_FSR", "genFSRjzbG", 30, -30, 30, "JZB^{gen}", "events",BaseCut && TCut("abs(genFSRjzbG)>0.1"), mc,PlottingSetup::luminosity);
|
499 |
|
|
TH1F *dR_nFSR = PhotonSamples.Draw("dR_nFSR", "genFSRjzb", 30, -30, 30, "JZB^{gen}", "events",BaseCut && TCut("abs(genFSRjzb)>0.1") , mc,PlottingSetup::luminosity);
|
500 |
|
|
|
501 |
|
|
dR_FSR->SetLineColor(TColor::GetColor("#01DF01"));
|
502 |
|
|
dR_nFSR->SetLineColor(TColor::GetColor("#FF4000"));
|
503 |
|
|
|
504 |
|
|
TLegend *leg = new TLegend(0.7,0.7,0.89,0.89);
|
505 |
|
|
leg->SetFillColor(kWhite);
|
506 |
|
|
leg->AddEntry(dR_FSR,"With FSR recovery","l");
|
507 |
|
|
leg->AddEntry(dR_nFSR,"Without FSR recovery","l");
|
508 |
|
|
|
509 |
|
|
if(dR_nFSR->GetMinimum()<dR_FSR->GetMinimum()) dR_FSR->SetMinimum(dR_nFSR->GetMinimum());
|
510 |
|
|
if(dR_nFSR->GetMaximum()>dR_FSR->GetMaximum()) dR_FSR->SetMaximum(dR_nFSR->GetMaximum());
|
511 |
|
|
|
512 |
|
|
|
513 |
|
|
dR_FSR->Draw("histo");
|
514 |
|
|
dR_nFSR->Draw("same,histo");
|
515 |
|
|
leg->SetHeader("DY MC:");
|
516 |
|
|
leg->Draw("same,histo");
|
517 |
|
|
DrawMCPrelim();
|
518 |
|
|
|
519 |
buchmann |
1.4 |
CompleteSave(can,"PhotonStudies/GenPhotons/GenJZBDistributions");
|
520 |
buchmann |
1.2 |
delete dR_FSR;
|
521 |
|
|
delete dR_nFSR;
|
522 |
|
|
delete can;
|
523 |
|
|
}
|
524 |
|
|
|
525 |
|
|
void GenPhotons::dR2DPlots() {
|
526 |
|
|
TCanvas *can = new TCanvas("can","can",1000,500);
|
527 |
|
|
can->Divide(2,1);
|
528 |
|
|
can->cd(1);
|
529 |
|
|
|
530 |
|
|
vector<float> binX, binY;
|
531 |
|
|
for(int i=0;i<=31;i++) {
|
532 |
|
|
binX.push_back(i*0.1);
|
533 |
|
|
binY.push_back(i*0.1);
|
534 |
|
|
}
|
535 |
|
|
|
536 |
|
|
TH2F *dR_FSR = PhotonSamples.Draw("dR_FSR", "genPhotonsdR1:genPhotonsdR2", binX,binY, "#Delta R (#gamma^{FSR},l_{1})","#Delta R (#gamma^{FSR},l_{2})",BaseCut && FSRcut ,mc,PlottingSetup::luminosity, PhotonSamples.FindSample("o"),false);
|
537 |
|
|
TH2F *dR_nFSR = PhotonSamples.Draw("dR_nFSR", "genPhotonsdR1:genPhotonsdR2", binX,binY, "#Delta R (#gamma^{non-FSR},l_{1})","#Delta R (#gamma^{non-FSR},l_{2})",BaseCut && NoFSRcut ,mc,PlottingSetup::luminosity, PhotonSamples.FindSample("o"),false);
|
538 |
|
|
|
539 |
|
|
can->cd(1);
|
540 |
|
|
dR_FSR->Draw("COLZ");
|
541 |
|
|
DrawMCPrelim();
|
542 |
|
|
|
543 |
|
|
can->cd(2);
|
544 |
|
|
dR_nFSR->Draw("COLZ");
|
545 |
|
|
DrawMCPrelim();
|
546 |
|
|
|
547 |
buchmann |
1.4 |
CompleteSave(can,"PhotonStudies/GenPhotons/dR_in_2D");
|
548 |
buchmann |
1.2 |
delete dR_FSR;
|
549 |
|
|
delete dR_nFSR;
|
550 |
|
|
delete can;
|
551 |
|
|
}
|
552 |
|
|
|
553 |
|
|
|
554 |
|
|
void GenPhotons::EfficiencyPurity() {
|
555 |
|
|
TCanvas *can = new TCanvas("can","can");
|
556 |
|
|
vector<float> bindR, binPt;
|
557 |
|
|
for(int i=0;i<=100;i++) bindR.push_back(i*0.05);
|
558 |
|
|
binPt.push_back(0);binPt.push_back(10);binPt.push_back(50);binPt.push_back(100);binPt.push_back(1000);binPt.push_back(1010);
|
559 |
buchmann |
1.6 |
// binPt.push_back(0);binPt.push_back(1000);binPt.push_back(1001);
|
560 |
buchmann |
1.2 |
|
561 |
|
|
|
562 |
buchmann |
1.3 |
TGraph *purity[binPt.size()];
|
563 |
|
|
TGraph *efficiency[binPt.size()];
|
564 |
|
|
TGraph *purity_n_efficiency[binPt.size()];
|
565 |
|
|
TH1F *FSR[binPt.size()];
|
566 |
|
|
TH1F *Any[binPt.size()];
|
567 |
|
|
for(int i=1;i<binPt.size();i++) {
|
568 |
buchmann |
1.6 |
//do this for each pt range
|
569 |
|
|
float ptlow=binPt[i-1];
|
570 |
|
|
float pthi =binPt[i];
|
571 |
|
|
stringstream ptcut;
|
572 |
|
|
ptcut << "genPhotonsPt>" << ptlow << " && genPhotonsPt<" << pthi << " && min(genPhotonsdR1,genPhotonsdR2)<5";
|
573 |
|
|
|
574 |
|
|
FSR[i-1] = PhotonSamples.Draw("FSR", "min(genPhotonsdR1,genPhotonsdR2)", bindR,"min DR","events",TCut(ptcut.str().c_str()) && BaseCut && FSRcut ,mc,PlottingSetup::luminosity);
|
575 |
|
|
Any[i-1] = PhotonSamples.Draw("Any", "min(genPhotonsdR1,genPhotonsdR2)", bindR,"min DR","events",TCut(ptcut.str().c_str()) && BaseCut ,mc,PlottingSetup::luminosity);
|
576 |
|
|
|
577 |
|
|
float NPhotons=0;
|
578 |
|
|
float NFSRPhotons=0;
|
579 |
|
|
float totalNFSRphotons=0;
|
580 |
|
|
|
581 |
|
|
for(int k=1;k<FSR[i-1]->GetNbinsX();k++) totalNFSRphotons+=FSR[i-1]->GetBinContent(k);
|
582 |
|
|
purity[i-1]=new TGraph(FSR[i-1]->GetNbinsX());
|
583 |
|
|
efficiency[i-1]=new TGraph(FSR[i-1]->GetNbinsX());
|
584 |
|
|
purity_n_efficiency[i-1]=new TGraph(FSR[i-1]->GetNbinsX());
|
585 |
|
|
for(int j=1;j<=FSR[i-1]->GetNbinsX();j++) {
|
586 |
|
|
NPhotons+=(int)Any[i-1]->GetBinContent(j);
|
587 |
|
|
NFSRPhotons+=FSR[i-1]->GetBinContent(j);
|
588 |
|
|
// cout << " ::::::::" << j << " : " << NPhotons << " : " << NFSRPhotons << " : " << totalNFSRphotons << endl;
|
589 |
buchmann |
1.3 |
if(NPhotons>0) purity[i-1]->SetPoint(j-1,FSR[i-1]->GetXaxis()->GetBinCenter(j)+FSR[i-1]->GetBinWidth(j),(float)NFSRPhotons/NPhotons);
|
590 |
|
|
else purity[i-1]->SetPoint(j-1,FSR[i-1]->GetXaxis()->GetBinCenter(j)+FSR[i-1]->GetBinWidth(j),-1);
|
591 |
|
|
if(totalNFSRphotons>0) efficiency[i-1]->SetPoint(j,FSR[i-1]->GetXaxis()->GetBinCenter(j)+FSR[i-1]->GetBinWidth(j),(float)NFSRPhotons/totalNFSRphotons);
|
592 |
|
|
else efficiency[i-1]->SetPoint(j-1,FSR[i-1]->GetXaxis()->GetBinCenter(j)+FSR[i-1]->GetBinWidth(j),-1);
|
593 |
buchmann |
1.6 |
if(totalNFSRphotons>0&&NPhotons>0) purity_n_efficiency[i-1]->SetPoint(j-1,(float)NFSRPhotons/totalNFSRphotons,(float)NFSRPhotons/NPhotons);
|
594 |
buchmann |
1.2 |
}
|
595 |
buchmann |
1.6 |
purity[i-1]->GetXaxis()->SetTitle("min(#Delta R(#gamma,l_{1}), #Delta R(#gamma,_{2}))");
|
596 |
|
|
purity[i-1]->GetXaxis()->CenterTitle();
|
597 |
|
|
purity[i-1]->GetYaxis()->SetTitle("purity");
|
598 |
|
|
purity[i-1]->GetYaxis()->CenterTitle();
|
599 |
|
|
|
600 |
|
|
efficiency[i-1]->GetXaxis()->SetTitle("min(#Delta R(#gamma,l_{1}), #Delta R(#gamma,_{2}))");
|
601 |
|
|
efficiency[i-1]->GetXaxis()->CenterTitle();
|
602 |
|
|
efficiency[i-1]->GetYaxis()->SetTitle("efficiency");
|
603 |
|
|
efficiency[i-1]->GetYaxis()->CenterTitle();
|
604 |
|
|
|
605 |
|
|
purity_n_efficiency[i-1]->GetXaxis()->SetTitle("efficiency");
|
606 |
|
|
purity_n_efficiency[i-1]->GetXaxis()->CenterTitle();
|
607 |
|
|
purity_n_efficiency[i-1]->GetYaxis()->SetTitle("purity");
|
608 |
|
|
purity_n_efficiency[i-1]->GetYaxis()->CenterTitle();
|
609 |
buchmann |
1.2 |
}
|
610 |
buchmann |
1.4 |
|
611 |
|
|
TLegend *leg = make_legend();
|
612 |
|
|
|
613 |
|
|
|
614 |
|
|
for(int i=0;i<binPt.size()-2;i++) {
|
615 |
|
|
stringstream description;
|
616 |
|
|
description << binPt[i] << " < p_{T}^{#gamma} < " << binPt[i+1];
|
617 |
|
|
purity[i]->SetLineColor(i+1);
|
618 |
|
|
purity_n_efficiency[i]->SetLineColor(i+1);
|
619 |
|
|
efficiency[i]->SetLineColor(i+1);
|
620 |
|
|
leg->AddEntry(purity[i],description.str().c_str(),"l");
|
621 |
|
|
}
|
622 |
buchmann |
1.6 |
|
623 |
buchmann |
1.4 |
for(int i=0;i<binPt.size()-2;i++) {
|
624 |
buchmann |
1.2 |
if(i==0) purity[i]->Draw("AC");
|
625 |
|
|
else purity[i]->Draw("C");
|
626 |
|
|
}
|
627 |
buchmann |
1.4 |
leg->Draw();
|
628 |
|
|
CompleteSave(can,"PhotonStudies/GenPhotons/Purity");
|
629 |
buchmann |
1.2 |
|
630 |
buchmann |
1.4 |
for(int i=0;i<binPt.size()-2;i++) {
|
631 |
buchmann |
1.2 |
if(i==0) efficiency[i]->Draw("AC");
|
632 |
|
|
else efficiency[i]->Draw("C");
|
633 |
|
|
}
|
634 |
buchmann |
1.4 |
leg->Draw();
|
635 |
|
|
CompleteSave(can,"PhotonStudies/GenPhotons/Efficiency");
|
636 |
buchmann |
1.2 |
|
637 |
buchmann |
1.3 |
for(int i=0;i<binPt.size()-1;i++) {
|
638 |
buchmann |
1.2 |
if(i==0) purity_n_efficiency[i]->Draw("AC");
|
639 |
|
|
else purity_n_efficiency[i]->Draw("C");
|
640 |
|
|
}
|
641 |
buchmann |
1.4 |
leg->SetX2(0.8);
|
642 |
|
|
leg->SetX1(0.65);
|
643 |
|
|
leg->SetY1(0.1);
|
644 |
|
|
leg->SetY2(0.6);
|
645 |
|
|
leg->Draw();
|
646 |
|
|
CompleteSave(can,"PhotonStudies/GenPhotons/Purity_n_efficiency");
|
647 |
buchmann |
1.2 |
}
|
648 |
|
|
|
649 |
buchmann |
1.1 |
|
650 |
|
|
void GenPhotons::GenLevelStudies() {
|
651 |
buchmann |
1.2 |
TCut essential_bkp = essentialcut;
|
652 |
|
|
essentialcut=TCut("");
|
653 |
|
|
|
654 |
buchmann |
1.6 |
CompareZmassToFinalStateLeptons();
|
655 |
|
|
NumberOfPhotonsPerEvent();
|
656 |
|
|
CharacterizingFSRPhotons();
|
657 |
|
|
CompareGenJZBDistributions();
|
658 |
|
|
|
659 |
|
|
dR2DPlots();
|
660 |
|
|
|
661 |
|
|
EfficiencyPurity();
|
662 |
|
|
|
663 |
|
|
essentialcut=essential_bkp;
|
664 |
buchmann |
1.1 |
}
|
665 |
|
|
|
666 |
|
|
void InitializePhotonSamples() {
|
667 |
buchmann |
1.6 |
float ZJetsCrossSection = 3532.8;
|
668 |
|
|
float LowZJetsCrossSection = 11050*0.069*1.15; // LO xs * filter eff * k-factor (same as ZJets)
|
669 |
|
|
|
670 |
|
|
PhotonSamples.AddSample("/shome/buchmann/ntuples/MC8tev/PhotonStudies/Skim3genJets_DYJetsToLL_M-50_TuneZ2Star_8TeV-madgraph-tarball-Summer12_DR53X-PU_S10_START53_V7A-v1.root","Z+Jets",-30346766,ZJetsCrossSection,false,false,1,kYellow);
|
671 |
|
|
PhotonSamples.AddSample("/shome/buchmann/ntuples/MC8tev/PhotonStudies/Skim3genJets_DYJetsToLL_M-10To50filter_8TeV-madgraph-Summer12_DR53X-PU_S10_START53_V7A-v1.root","Z+Jets",-6955271,LowZJetsCrossSection,false,false,1,kYellow);
|
672 |
|
|
|
673 |
|
|
write_info(__FUNCTION__,"Photon samples have been initialized!");
|
674 |
|
|
PhotonSamples.ListSamples();
|
675 |
|
|
|
676 |
|
|
GenPhotons::FSRcut = TCut("genPhotonsIsFSR");
|
677 |
|
|
GenPhotons::NoFSRcut = TCut("!genPhotonsIsFSR");
|
678 |
|
|
GenPhotons::BaseCut = TCut("genNjets>=3 && genPhotonsPt > 5 && NgenLeps>0");
|
679 |
buchmann |
1.1 |
}
|
680 |
|
|
|
681 |
|
|
void FSRstudy() {
|
682 |
buchmann |
1.6 |
InitializePhotonSamples();
|
683 |
|
|
|
684 |
|
|
// GenPhotons::GenLevelStudies();
|
685 |
|
|
RecoPhotons::RecoLevelStudies();
|
686 |
buchmann |
1.7 |
write_info(__FUNCTION__,"Please change JZBAnalysis photon dR cuts to 0.1 and 0.3 instead of 0.1 and 0.5 - there's too much crap coming in between .3 and .5");
|
687 |
buchmann |
1.1 |
}
|