]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/totEt/macros/hadEt/CorrNeutral.C
fixed a bug in rescaling v0s, cleaning up macro for neutral energy contribution with...
[u/mrichter/AliRoot.git] / PWG4 / totEt / macros / hadEt / CorrNeutral.C
1
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
7
8
9
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; 
17   switch(mycase){
18   case 0:
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);
23     break;
24   case 1:
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);
29     break;
30   case 2:
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);
40     break;
41   case 3:
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);
49     break;
50   case 4:
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);
66     break;
67   case 5:
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);
73     break;
74   case 6:
75     numeratorParent = (TH2F*)((TH2F*) out2->FindObject("EtSimulatedOmega"))->Clone("allomega");
76     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiOmega"),baryonEnhancement);
77     break;
78   case 7:
79     numeratorParent = (TH2F*)((TH2F*) out2->FindObject("EtSimulatedSigma"))->Clone("allsigma");
80     numeratorParent->Scale(baryonEnhancement);
81     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedAntiSigma"),baryonEnhancement);
82     break;
83   case 8:
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"));
104     break;
105   case 9:
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"));
112     break;
113   case 10:
114     numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedGamma"))->Clone("gamma");
115     break;
116   case 11:
117     numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedPi0"))->Clone("pi0");
118     break;
119   case 12:
120     numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedEta"))->Clone("eta");
121     break;
122   case 13:
123     numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedOmega0"))->Clone("Omega0");
124     break;
125   case 14:
126     numeratorParent= (TH2F*)((TH2F*) out2->FindObject("EtSimulatedEPlus"))->Clone("electron");
127     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedEMinus"));
128   case 15:
129     numeratorParent=(TH2F*) ((TH2F*) out2->FindObject("EtSimulatedPiPlus"))->Clone("chpi");
130     numeratorParent->Add((TH2F*) out2->FindObject("EtSimulatedPiMinus"));
131     break;
132   }
133
134   TH2F *allhad;
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);
158
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"));
166   }
167
168   numeratorParent->Sumw2();
169   allhad->Sumw2();
170   TH1D *denominator;
171   TH1D *numerator;
172   if(eta){
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);
178   }
179   else{
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);
185   }
186   numerator->Divide(denominator);
187   if(hadronic){
188     numerator->SetYTitle("E_{T}^{sample}/E_{T}^{total}");
189   }
190   else{
191     numerator->SetYTitle("E_{T}^{had,sample}/E_{T}^{had,total}");
192   }
193   numerator->GetYaxis()->SetTitleOffset(1.2);
194   numerator->SetMarkerColor(color);
195   numerator->SetLineColor(color);
196   numerator->SetMarkerStyle(marker);
197   //numerator->Draw("e");
198   return numerator;
199
200 }
201
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);
215 //   c->Divide(2);
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);
227
228   int phosmarker = 20;
229   int emcalmarker = 24;
230   float ptcut1 = 0.05;
231   float ptcut2 = 0.1;
232
233   int colortotal = 1;
234   int casetotal = 4;
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);
240
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);
246
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);
252
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);
258
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);
264
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);
270
271   PHOStotal->SetMaximum(0.5);
272   PHOStotal->SetMinimum(0.0);
273   if(hadronic){
274     PHOStotal->SetMaximum(0.95);
275   }
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);
281   PHOStotal->Draw();
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");
291   if(hadronic){
292     PHOSem->Draw("same");
293     EMCALem->Draw("same");
294   }
295   TLatex *tex = new TLatex(0.161478,1.0835,prodname);
296   tex->SetTextSize(0.0537634);
297   tex->Draw();
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);
304   leg->Draw();
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);
316   leg2->Draw();
317
318
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);
329
330
331
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);
338   if(hadronic){
339     pt1total->SetMaximum(0.7);
340   }
341
342   TF1 *func = new TF1("func","[0]",-.7,.7);
343   func->SetParameter(0,0.2);
344   pt1total->Fit(func);
345   int nbins = pt1total->GetNbinsX();
346   float weight = 0.0;
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);
353     totalwidth +=width;
354     if(TMath::Abs(pt1total->GetBinCenter(i))<0.12){//if within the phos acceptance
355     weightPhos += width * pt1total->GetBinContent(i);
356     totalwidthPhos +=width;
357     }
358   }
359   weight = weight/totalwidth;
360   weightPhos = weightPhos/totalwidthPhos;
361   cout<<"weight = "<<weight<<" weight phos "<<weightPhos<<endl;
362   pt1total->Draw();
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");
370   pt1v0->Draw("same");
371   pt2v0->Draw("same");
372   if(hadronic){
373     pt1em->Draw("same");
374     pt2em->Draw("same");
375   }
376   TLatex *tex = new TLatex(-.65,.23,Form("%2.5f#pm%2.5f",func->GetParameter(0),func->GetParError(0)));
377   tex->Draw();
378
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);
386   leg3->Draw();
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);
396   //leg4->Draw();
397
398   float y = 0.0237534;
399   if(hadronic) y = 0.158129;
400   TLatex *tex = new TLatex(-0.719565,y,prodname);
401   tex->SetTextSize(0.0537634);
402   tex->Draw();
403
404   char ptnameeps[200];
405   char ptnamepng[200];
406   char ptnamepdf[200];
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));
418   }
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);
431
432   TCanvas *c2 = new TCanvas("c2","c2",500,400);
433   c2->SetTopMargin(0.03);
434   c2->SetRightMargin(0.03);
435   c2->SetBorderSize(0);
436   c2->SetFillColor(0);
437   c2->SetFillColor(0);
438   c2->SetBorderMode(0);
439   c2->SetFrameFillColor(0);
440   c2->SetFrameBorderMode(0);
441
442
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);
447   int coloromega = 4;
448   TH1D *omega = GetHisto(ptcut2,"omega",6,false,coloromega,phosmarker,hadronic,reweighted,kaonFactor,lambdaFactor,baryonEnhancement);
449   int colorsigma = 2;
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);
453   chargedall->Draw();
454   xi->Draw("same");
455   omega->Draw("same");
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);
466   leg5->Draw();
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);
491   pt1em->Draw();
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);
512   leg20->Draw();
513   empad->SaveAs("pics/ftotalEmEt.eps");
514
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);
535
536   percentage->Draw();
537   percentagepad->SaveAs("pics/ftotalpercentage.eps");
538 }