2 //Christine Nattrass, University of Tennessee at Knoxville
3 //This macro is for calculating the correction for the neutral energy considered part of HadEt not recorded by the tracking detectors, that from lambdas, antilambdas, K0S, K0L, neutrons, and antineutrons.
4 //Since PYTHIA does not get the spectra of lambdas, antilambdas, and K0S correct, this is not a very good way of determining the correction used for data and as such should be used with great caution.
5 //Uses the output of AliAnalysisTaskHadEt
6 //This is not actually what gets used in the correction class AliAnalysisHadEtCorrections - that is done in the macro GetCorrections.C - but this is useful for making plots and playing around with different options
10 TH1D *GetHisto(float cut = 0.12, char *name, int mycase, bool eta, int color, int marker, bool hadronic, bool reweight,float kaonFactor=1.0, float lambdaFactor = 1.0, float baryonEnhancement = 1.0){
11 //TFile *file = new TFile("Et.ESD.new.sim.merged.root");
12 TFile *file = new TFile("Et.ESD.new.sim.LHC10d4.pp.merged.root");
13 TList *list = file->FindObject("out2");
14 char *reweightname = "";
15 if(reweight) reweightname = "Reweighted";
16 TH2F *numeratorParent;
19 numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda",reweightname)))->Clone("v0");
20 numeratorParent->Scale(lambdaFactor*baryonEnhancement);
21 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda",reweightname)),lambdaFactor*baryonEnhancement);
22 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)),kaonFactor);
25 numeratorParent = (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)))->Clone("Knnbar");
26 numeratorParent->Scale(kaonFactor);
27 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"),baryonEnhancement);
28 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"),baryonEnhancement);
31 numeratorParent = (TH2F*)((TH2F*) out2->FindObject("EtSimulatedOmega"))->Clone("ch2ndary");
32 numeratorParent->Scale(baryonEnhancement);
33 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
34 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi"),baryonEnhancement);
35 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"),baryonEnhancement);
36 //numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedSigma"));
37 //numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"));
38 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi0"),baryonEnhancement);
39 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"),baryonEnhancement);
42 numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("allneutral");
43 numeratorParent->Scale(lambdaFactor*baryonEnhancement);
44 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)),lambdaFactor*baryonEnhancement);
45 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)),kaonFactor);
46 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)),kaonFactor);
47 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"),baryonEnhancement);
48 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"),baryonEnhancement);
51 numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("allneutral");
52 numeratorParent->Scale(lambdaFactor*baryonEnhancement);
53 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)),lambdaFactor*baryonEnhancement);
54 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)),kaonFactor);
55 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)),kaonFactor);
56 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"),baryonEnhancement);
57 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"),baryonEnhancement);
58 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega"),baryonEnhancement);
59 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
60 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi"),baryonEnhancement);
61 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"),baryonEnhancement);
62 //numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedSigma"));
63 //numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"));
64 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi0"),baryonEnhancement);
65 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"),baryonEnhancement);
68 numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedXi"))->Clone("allxi");
69 numeratorParent->Scale(baryonEnhancement);
70 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"),baryonEnhancement);
71 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi0"),baryonEnhancement);
72 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"),baryonEnhancement);
75 numeratorParent = (TH2F*)((TH2F*) out2->FindObject("EtSimulatedOmega"))->Clone("allomega");
76 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
79 numeratorParent = (TH2F*)((TH2F*) out2->FindObject("EtSimulatedSigma"))->Clone("allsigma");
80 numeratorParent->Scale(baryonEnhancement);
81 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"),baryonEnhancement);
84 numeratorParent= (TH2F*)((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)))->Clone("allneutral");
85 numeratorParent->Scale(baryonEnhancement);
86 numeratorParent->Scale(lambdaFactor*baryonEnhancement);
87 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)),lambdaFactor*baryonEnhancement);
88 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)),kaonFactor);
89 numeratorParent->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)),kaonFactor);
90 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"),baryonEnhancement);
91 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"),baryonEnhancement);
92 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega"),baryonEnhancement);
93 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
94 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi"),baryonEnhancement);
95 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"),baryonEnhancement);
96 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedXi0"),baryonEnhancement);
97 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"),baryonEnhancement);
98 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedGamma"));
99 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEta"));
100 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedPi0"));
101 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega0"));
102 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEPlus"));
103 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
106 numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedGamma"))->Clone("allem");
107 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEta"));
108 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedPi0"));
109 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedOmega0"));
110 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEPlus"));
111 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
114 numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedGamma"))->Clone("gamma");
117 numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedPi0"))->Clone("pi0");
120 numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedEta"))->Clone("eta");
123 numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedOmega0"))->Clone("Omega0");
126 numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedEPlus"))->Clone("electron");
127 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
129 numeratorParent=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedPiPlus"))->Clone("chpi");
130 numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedPiMinus"));
135 //allhad=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedAllHadron"))->Clone("id");
136 allhad=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedPiPlus"))->Clone("id");
137 allhad->Add((TH2F*) out2->FindObject("EtSimulatedPiMinus"));
138 allhad->Add((TH2F*) out2->FindObject("EtSimulatedKMinus"),kaonFactor);
139 allhad->Add((TH2F*) out2->FindObject("EtSimulatedKPlus"),kaonFactor);
140 allhad->Add((TH2F*) out2->FindObject("EtSimulatedProton"),baryonEnhancement);
141 allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiProton"),baryonEnhancement);
142 allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedLambda%s",reweightname)),lambdaFactor*baryonEnhancement);
143 allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedAntiLambda%s",reweightname)),lambdaFactor*baryonEnhancement);
144 allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0S%s",reweightname)),kaonFactor);
145 allhad->Add((TH2F*) out2->FindObject(Form("EtSimulatedK0L%s",reweightname)),kaonFactor);
146 allhad->Add((TH2F*) out2->FindObject("EtSimulatedNeutron"),baryonEnhancement);
147 allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiNeutron"),baryonEnhancement);
148 allhad->Add((TH2F*) out2->FindObject("EtSimulatedEPlus"));
149 allhad->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
150 allhad->Add((TH2F*) out2->FindObject("EtSimulatedOmega"),baryonEnhancement);
151 allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
152 allhad->Add((TH2F*) out2->FindObject("EtSimulatedXi"),baryonEnhancement);
153 allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi"),baryonEnhancement);
154 allhad->Add((TH2F*) out2->FindObject("EtSimulatedSigma"),baryonEnhancement);
155 allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"),baryonEnhancement);
156 allhad->Add((TH2F*) out2->FindObject("EtSimulatedXi0"),baryonEnhancement);
157 allhad->Add((TH2F*) out2->FindObject("EtSimulatedAntiXi0"),baryonEnhancement);
159 if(hadronic){//if we are getting the correction for the hadronic only case...
160 allhad->Add((TH2F*) out2->FindObject("EtSimulatedGamma"));
161 allhad->Add((TH2F*) out2->FindObject("EtSimulatedEta"));
162 allhad->Add((TH2F*) out2->FindObject("EtSimulatedPi0"));
163 allhad->Add((TH2F*) out2->FindObject("EtSimulatedOmega0"));
164 allhad->Add((TH2F*) out2->FindObject("EtSimulatedEPlus"));
165 allhad->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
168 numeratorParent->Sumw2();
173 int lowbin = numeratorParent->GetYaxis()->FindBin(-cut+.001);//make sure we don't accv0entally get the wrong bin
174 int highbin = numeratorParent->GetYaxis()->FindBin(cut-.001);
175 cout<<"Projecting from "<<numeratorParent->GetYaxis()->GetBinLowEdge(lowbin)<<" to "<<numeratorParent->GetYaxis()->GetBinLowEdge(highbin+1)<<endl;
176 denominator = allhad->ProjectionX("name",lowbin,highbin);
177 numerator = numeratorParent->ProjectionX("numerator",lowbin,highbin);
180 int lowbin = allhad->GetXaxis()->FindBin(cut);//make sure we don't accidentally get the wrong bin
181 int highbin = allhad->GetXaxis()->GetNbins();
182 cout<<"Projecting from "<<allhad->GetXaxis()->GetBinLowEdge(lowbin)<<" to "<<allhad->GetXaxis()->GetBinLowEdge(highbin+1)<<endl;
183 numerator = numeratorParent->ProjectionY("name",lowbin,highbin);
184 denominator = allhad->ProjectionY("denominator",lowbin,highbin);
186 numerator->Divide(denominator);
188 numerator->SetYTitle("E_{T}^{sample}/E_{T}^{total}");
191 numerator->SetYTitle("E_{T}^{had,sample}/E_{T}^{had,total}");
193 numerator->GetYaxis()->SetTitleOffset(1.2);
194 numerator->SetMarkerColor(color);
195 numerator->SetLineColor(color);
196 numerator->SetMarkerStyle(marker);
197 //numerator->Draw("e");
202 void CorrNeutral(char *prodname = "LHC10d4 PYTHIA D6T 7 TeV p+p", char *shortprodname = "LHC10d4", bool hadronic = true, bool reweighted = false, float kaonFactor=1.0, float lambdaFactor = 1.0, float baryonEnhancement = 1.0){
203 gStyle->SetOptTitle(0);
204 gStyle->SetOptStat(0);
205 gStyle->SetOptFit(0);
206 // TCanvas *c = new TCanvas("c","c",800,400);
207 // c->SetTopMargin(0.0);
208 // c->SetRightMargin(0.0);
209 // c->SetBorderSize(0);
210 // c->SetFillColor(0);
211 // c->SetFillColor(0);
212 // c->SetBorderMode(0);
213 // c->SetFrameFillColor(0);
214 // c->SetFrameBorderMode(0);
216 // TPad *ptpad = c->cd(1);
217 TCanvas *ptpad = new TCanvas("ptpad","ptpad",400,400);
218 ptpad->SetTopMargin(0.04);
219 ptpad->SetRightMargin(0.04);
220 ptpad->SetLeftMargin(0.149288);
221 ptpad->SetBorderSize(0);
222 ptpad->SetFillColor(0);
223 ptpad->SetFillColor(0);
224 ptpad->SetBorderMode(0);
225 ptpad->SetFrameFillColor(0);
226 ptpad->SetFrameBorderMode(0);
229 int emcalmarker = 24;
235 if(hadronic) casetotal = 8;
236 TH1D *PHOStotal = GetHisto(0.12,"PHOStotal",casetotal,true,colortotal,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
237 TH1D *EMCALtotal = GetHisto(0.7,"EMCALtotal",casetotal,true,colortotal,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
238 TH1D *pt1total = GetHisto(ptcut2,"pt1total",casetotal,false,colortotal,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
239 TH1D *pt2total = GetHisto(ptcut1,"pt2total",casetotal,false,colortotal,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
241 int colorallneutral = 2;
242 TH1D *PHOSallneutral = GetHisto(0.12,"PHOSallneutral",3,true,colorallneutral,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
243 TH1D *EMCALallneutral = GetHisto(0.7,"EMCALallneutral",3,true,colorallneutral,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
244 TH1D *pt1allneutral = GetHisto(ptcut2,"pt1allneutral",3,false,colorallneutral,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
245 TH1D *pt2allneutral = GetHisto(ptcut1,"pt2allneutral",3,false,colorallneutral,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
247 int colorchargedsecondary = TColor::kViolet-3;
248 TH1D *PHOSchargedsecondary = GetHisto(0.12,"PHOSchargedsecondary",2,true,colorchargedsecondary,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
249 TH1D *EMCALchargedsecondary = GetHisto(0.7,"EMCALchargedsecondary",2,true,colorchargedsecondary,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
250 TH1D *pt1chargedsecondary = GetHisto(ptcut2,"pt1chargedsecondary",2,false,colorchargedsecondary,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
251 TH1D *pt2chargedsecondary = GetHisto(ptcut1,"pt2chargedsecondary",2,false,colorchargedsecondary,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
253 int colorneutralUndet = 4;
254 TH1D *PHOSneutralUndet = GetHisto(0.12,"PHOSneutralUndet",1,true,colorneutralUndet,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
255 TH1D *EMCALneutralUndet = GetHisto(0.7,"EMCALneutralUndet",1,true,colorneutralUndet,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
256 TH1D *pt1neutralUndet = GetHisto(ptcut2,"pt1neutralUndet",1,false,colorneutralUndet,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
257 TH1D *pt2neutralUndet = GetHisto(ptcut1,"pt2neutralUndet",1,false,colorneutralUndet,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
259 int colorv0 = TColor::kGreen+2;
260 TH1D *PHOSv0 = GetHisto(0.12,"PHOSv0",0,true,colorv0,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
261 TH1D *EMCALv0 = GetHisto(0.7,"EMCALv0",0,true,colorv0,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
262 TH1D *pt1v0 = GetHisto(ptcut2,"pt1v0",0,false,colorv0,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
263 TH1D *pt2v0 = GetHisto(ptcut1,"pt2v0",0,false,colorv0,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
265 int colorem = TColor::kCyan;
266 TH1D *PHOSem = GetHisto(0.12,"PHOSem",9,true,colorem,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
267 TH1D *EMCALem = GetHisto(0.7,"EMCALem",9,true,colorem,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
268 TH1D *pt1em = GetHisto(ptcut2,"pt1em",9,false,colorem,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
269 TH1D *pt2em = GetHisto(ptcut1,"pt2em",9,false,colorem,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
271 PHOStotal->SetMaximum(0.5);
272 PHOStotal->SetMinimum(0.0);
274 PHOStotal->SetMaximum(0.95);
276 PHOStotal->SetAxisRange(0.0,4);
277 PHOStotal->GetXaxis()->SetLabelSize(0.05);
278 PHOStotal->GetYaxis()->SetLabelSize(0.045);
279 PHOStotal->GetXaxis()->SetTitleSize(0.05);
280 PHOStotal->GetYaxis()->SetTitleSize(0.06);
282 EMCALtotal->Draw("same");
283 PHOSallneutral->Draw("same");
284 EMCALallneutral->Draw("same");
285 PHOSchargedsecondary->Draw("same");
286 EMCALchargedsecondary->Draw("same");
287 PHOSneutralUndet->Draw("same");
288 EMCALneutralUndet->Draw("same");
289 PHOSv0->Draw("same");
290 EMCALv0->Draw("same");
292 PHOSem->Draw("same");
293 EMCALem->Draw("same");
295 TLatex *tex = new TLatex(0.161478,1.0835,prodname);
296 tex->SetTextSize(0.0537634);
298 TLegend *leg = new TLegend(0.193781,0.796248,0.450272,0.944371);
299 leg->AddEntry(PHOStotal,"|#eta|<0.12");
300 leg->AddEntry(EMCALtotal,"|#eta|<0.70");
301 leg->SetFillStyle(0);
302 leg->SetFillColor(0);
303 leg->SetBorderSize(0);
305 TLegend *leg2 = new TLegend(0.518321,0.612903,0.774812,0.955343);
306 leg2->AddEntry(PHOStotal,"Total");
307 leg2->AddEntry(PHOSallneutral,"#Lambda,#bar{#Lambda},K^{0}_{S},K^{0}_{L},n,#bar{n}");
308 leg2->AddEntry(PHOSneutralUndet,"K^{0}_{L},n,#bar{n}");
309 leg2->AddEntry(PHOSv0,"#Lambda,#bar{#Lambda},K^{0}_{S}");
310 leg2->AddEntry(PHOSchargedsecondary,"#Xi,#Omega");
311 if(hadronic) leg2->AddEntry(PHOSem,"e^{#pm},#gamma,#eta,#pi^{0},#omega");
312 leg2->SetFillStyle(0);
313 leg2->SetFillColor(0);
314 leg2->SetBorderSize(0);
315 leg2->SetTextSize(0.0548607);
319 TCanvas *etapad = new TCanvas("etapad","etapad",400,400);// TPad *etapad = c->cd(2);
320 etapad->SetTopMargin(0.04);
321 etapad->SetRightMargin(0.04);
322 etapad->SetBorderSize(0);
323 etapad->SetFillColor(0);
324 etapad->SetFillColor(0);
325 etapad->SetBorderMode(0);
326 etapad->SetFrameFillColor(0);
327 etapad->SetFrameBorderMode(0);
328 etapad->SetLeftMargin(0.149288);
332 pt1total->GetXaxis()->SetLabelSize(0.05);
333 pt1total->GetYaxis()->SetLabelSize(0.045);
334 pt1total->GetXaxis()->SetTitleSize(0.05);
335 pt1total->GetYaxis()->SetTitleSize(0.06);
336 pt1total->SetMinimum(0.0);
337 pt1total->SetMaximum(0.5);
339 pt1total->SetMaximum(0.7);
342 TF1 *func = new TF1("func","[0]",-.7,.7);
343 func->SetParameter(0,0.2);
345 int nbins = pt1total->GetNbinsX();
347 float totalwidth = 0.0;
348 float weightPhos = 0.0;
349 float totalwidthPhos = 0.0;
350 for(int i=1;i<=nbins;i++){
351 float width = pt1total->GetBinWidth(i);
352 weight += width * pt1total->GetBinContent(i);
354 if(TMath::Abs(pt1total->GetBinCenter(i))<0.12){//if within the phos acceptance
355 weightPhos += width * pt1total->GetBinContent(i);
356 totalwidthPhos +=width;
359 weight = weight/totalwidth;
360 weightPhos = weightPhos/totalwidthPhos;
361 cout<<"weight = "<<weight<<" weight phos "<<weightPhos<<endl;
363 pt2total->Draw("same");
364 pt1allneutral->Draw("same");
365 pt2allneutral->Draw("same");
366 pt1chargedsecondary->Draw("same");
367 pt2chargedsecondary->Draw("same");
368 pt1neutralUndet->Draw("same");
369 pt2neutralUndet->Draw("same");
376 TLatex *tex = new TLatex(-.65,.23,Form("%2.5f#pm%2.5f",func->GetParameter(0),func->GetParError(0)));
379 TLegend *leg3 = new TLegend(0.539259,0.801734,0.79575,0.949857);
380 leg3->AddEntry(pt1total,"p_{T} cut = 0.1");
381 leg3->AddEntry(pt2total,"p_{T} cut = 0.05");
382 leg3->SetFillStyle(0);
383 leg3->SetFillColor(0);
384 leg3->SetBorderSize(0);
385 leg3->SetTextSize(0.0548607);
387 TLegend *leg4 = new TLegend(0.199016,0.785275,0.455507,0.955343);
388 leg4->AddEntry(PHOSv0,"#Lambda,#bar{#Lambda},K^{0}_{S}");
389 //leg4->AddEntry(PHOSchargedsecondary,"#Sigma,#bar{#Sigma},#Xi,#bar{#Xi},#Xi^{0},#bar{#Xi^0},#Omega,#bar{#Omega}");
390 leg4->AddEntry(PHOSchargedsecondary,"#Xi,#Omega");
391 if(hadronic) leg4->AddEntry(PHOSem,"e^{#pm},#gamma,#eta,#pi^{0},#omega");
392 leg4->SetFillStyle(0);
393 leg4->SetFillColor(0);
394 leg4->SetBorderSize(0);
395 leg4->SetTextSize(0.0548607);
399 if(hadronic) y = 0.158129;
400 TLatex *tex = new TLatex(-0.719565,y,prodname);
401 tex->SetTextSize(0.0537634);
407 char etanameeps[200];
408 char etanamepng[200];
409 char etanamepdf[200];
410 TString *Total = new TString("total");
411 TString *Neutral = new TString("neutral");
412 TString *Cut = Neutral;
413 if(hadronic) Cut = Total;
414 TString *None = new TString("");
415 TString *Factors = None;
416 if(kaonFactor!=1.0||lambdaFactor!=1.0||baryonEnhancement!=1.0){
417 Factors = new TString(Form("Lambda%2.2fKaon%2.2fBaryon%2.2f",lambdaFactor,kaonFactor,baryonEnhancement));
419 sprintf(ptnameeps,"pics/f%spt%s.eps",Cut->Data(),Factors->Data());
420 sprintf(ptnamepng,"pics/f%spt%s.png",Cut->Data(),Factors->Data());
421 sprintf(ptnamepdf,"pics/f%spt%s.pdf",Cut->Data(),Factors->Data());
422 sprintf(etanameeps,"pics/f%seta%s.eps",Cut->Data(),Factors->Data());
423 sprintf(etanamepng,"pics/f%seta%s.png",Cut->Data(),Factors->Data());
424 sprintf(etanamepdf,"pics/f%seta%s.pdf",Cut->Data(),Factors->Data());
425 ptpad->SaveAs(ptnameeps);
426 ptpad->SaveAs(ptnamepng);
427 ptpad->SaveAs(ptnamepdf);
428 etapad->SaveAs(etanameeps);
429 etapad->SaveAs(etanamepng);
430 etapad->SaveAs(etanamepdf);
432 TCanvas *c2 = new TCanvas("c2","c2",500,400);
433 c2->SetTopMargin(0.03);
434 c2->SetRightMargin(0.03);
435 c2->SetBorderSize(0);
438 c2->SetBorderMode(0);
439 c2->SetFrameFillColor(0);
440 c2->SetFrameBorderMode(0);
443 int colorchargedall = 1;
444 TH1D *chargedall = GetHisto(ptcut2,"chargedall",2,false,colorchargedall,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
445 int colorxi =TColor::kGreen+2;
446 TH1D *xi = GetHisto(ptcut2,"xi",5,false,colorxi,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
448 TH1D *omega = GetHisto(ptcut2,"omega",6,false,coloromega,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
450 TH1D *sigma = GetHisto(ptcut2,"sigma",7,false,colorsigma,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
451 chargedall->SetMinimum(0.0);
452 chargedall->SetMaximum(0.02);
456 //sigma->Draw("same");
457 TLegend *leg5 = new TLegend(0.199016,0.785275,0.455507,0.955343);
458 leg5->AddEntry(chargedall,"#Sigma,#Xi,#Xi^{0},#Omega");
459 //leg5->AddEntry(sigma,"#Sigma");
460 leg5->AddEntry(xi,"#Xi,#Xi^{0}");
461 leg5->AddEntry(omega,"#Omega");
462 leg5->SetFillStyle(0);
463 leg5->SetFillColor(0);
464 leg5->SetBorderSize(0);
465 leg5->SetTextSize(0.0548607);
467 if(!hadronic){return;}
468 TCanvas *empad = new TCanvas("empad","empad",400,400);
469 empad->SetTopMargin(0.04);
470 empad->SetRightMargin(0.04);
471 empad->SetLeftMargin(0.149288);
472 empad->SetBorderSize(0);
473 empad->SetFillColor(0);
474 empad->SetFillColor(0);
475 empad->SetBorderMode(0);
476 empad->SetFrameFillColor(0);
477 empad->SetFrameBorderMode(0);
478 //TH1D *EMCALem = GetHisto(0.7,"EMCALem",9,true,colorem,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
479 pt1em->SetMarkerColor(1);
480 pt1em->SetLineColor(1);
481 TH1D *EMCALGamma = GetHisto(ptcut2,"EMCALGamma",10,false,4,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//0.2%
482 TH1D *EMCALPi0 = GetHisto(ptcut2,"EMCALPi0",11,false,2,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//24%
483 TH1D *EMCALPiCh = GetHisto(ptcut2,"EMCALPiCh",15,false,2,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//24%
484 TH1D *EMCALEta = GetHisto(ptcut2,"EMCALEta",12,false,TColor::kViolet-3,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//1.7%
485 TH1D *EMCALOmega = GetHisto(ptcut2,"EMCALOmega",13,false,TColor::kCyan,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//0.24%
486 TH1D *EMCALElectron = GetHisto(ptcut2,"EMCALElectronFrog",14,false,TColor::kGreen+2,emcalmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);//0.25%
487 //EMCALElectron->Draw();return;
488 //EMCALPi0->Draw();return;
489 pt1em->SetMinimum(0.0);
490 pt1em->SetMaximum(0.3);
492 //EMCALGamma->Draw();
493 EMCALPiCh->Scale(0.5);
494 EMCALGamma->Draw("same");
495 EMCALPi0->Draw("same");
496 EMCALPiCh->Draw("same");
497 EMCALEta->Draw("same");
498 EMCALOmega->Draw("same");
499 EMCALElectron->Draw("same");
500 TLegend *leg20 = new TLegend(0.194444,0.215054,0.449495,0.430108);
501 leg20->AddEntry(pt1em,"#gamma#eta#pi^{0}#omega e^{#pm}");
502 //leg20->AddEntry(EMCALGamma,"#gamma");
503 leg20->AddEntry(EMCALEta,"#eta");
504 //leg20->AddEntry(EMCALOmega,"#omega");
505 leg20->AddEntry(EMCALPi0,"#pi^{0}");
506 leg20->AddEntry(EMCALPiCh,"#pi^{#pm}/2");
507 leg20->AddEntry(EMCALElectron,"e^{#pm}");
508 leg20->SetFillStyle(0);
509 leg20->SetFillColor(0);
510 leg20->SetBorderSize(0);
511 leg20->SetTextSize(0.0548607);
513 empad->SaveAs("pics/ftotalEmEt.eps");
515 TCanvas *percentagepad = new TCanvas("percentagepad","percentagepad",400,400);
516 percentagepad->SetTopMargin(0.04);
517 percentagepad->SetRightMargin(0.04);
518 percentagepad->SetLeftMargin(0.149288);
519 percentagepad->SetBorderSize(0);
520 percentagepad->SetFillColor(0);
521 percentagepad->SetFillColor(0);
522 percentagepad->SetBorderMode(0);
523 percentagepad->SetFrameFillColor(0);
524 percentagepad->SetFrameBorderMode(0);
525 TH1D *percentage = EMCALPi0->Clone("Percentage");
526 percentage->GetYaxis()->SetTitle("percentage of E_{T}^{em} from #pi^0");
527 percentage->Divide(pt1em);
528 TF1 *funcPercent = new TF1("funcPercent","[0]",-.7,.7);
529 funcPercent->SetParameter(0,0.91);
530 percentage->Fit(funcPercent);
531 percentage->Scale(100.0);
532 TF1 *funcPercent = new TF1("funcPercent","[0]",-.7,.7);
533 funcPercent->SetParameter(0,0.91);
534 percentage->Fit(funcPercent);
537 percentagepad->SaveAs("pics/ftotalpercentage.eps");