]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/totEt/macros/hadEt/CorrBkgdErrors.C
Updates to macros to get code working on grid
[u/mrichter/AliRoot.git] / PWGLF / totEt / macros / hadEt / CorrBkgdErrors.C
CommitLineData
836ce14a 1TH1D *GetHisto(float etacut = 0.12, bool eta = true, char *name, bool TPC,bool ITS, int mycase = 0, int color=1, int marker = 20, char *filename="Et.ESD.new.sim.merged.root",bool reweight = false,float kaonFactor=1.0, float lambdaFactor = 1.0, float baryonEnhancement = 1.0){
2 TFile *file = new TFile(filename);
3 TList *list = file->FindObject("out2");
4 char *reweightname = "";
5 if(reweight) reweightname = "Reweighted";
6 char *myname = "ITS";
7 if(TPC){
8 if(ITS) myname = "TPCITS";
9 else{ myname = "TPC";}
10 }
11 TH2F *signal = ((TH2F*) out2->FindObject(Form("EtReconstructed%sIdentifiedPiPlus",myname)))->Clone("signal");
12 signal->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sIdentifiedPiMinus",myname)));
13 signal->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sIdentifiedKMinus",myname)),kaonFactor);
14 signal->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sIdentifiedKPlus",myname)),kaonFactor);
15 signal->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sIdentifiedProton",myname)),baryonEnhancement);
16 signal->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sIdentifiedAntiProton",myname)),baryonEnhancement);
17 signal->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sUnidentifiedAssumingPion",myname)));
18
19 //Et of all unidentified hadrons (plus hadrons identified as pions) calculated assuming their true mass
20 TH2F *bkgd;
21 switch(mycase){
22 case 0:
23 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sMisidentifiedElectrons",myname)))->Clone("bkgd");
24 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sLambdaDaughters%s",myname,reweightname)),baryonEnhancement*lambdaFactor);
25 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiLambdaDaughters%s",myname,reweightname)),baryonEnhancement*lambdaFactor);
26 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sK0SDaughters%s",myname,reweightname)),kaonFactor);
27 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sXiDaughters",myname)),baryonEnhancement);
28 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiXiDaughters",myname)),baryonEnhancement);
29 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sOmegaDaughters",myname)),baryonEnhancement);
30 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiOmegaDaughters",myname)),baryonEnhancement);
31 break;
32 case 1:
33 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sMisidentifiedElectrons",myname)))->Clone("bkgd");
34 break;
35 case 2:
36 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sLambdaDaughters%s",myname,reweightname)))->Clone("bkgd");
37 bkgd->Scale(baryonEnhancement*lambdaFactor);
38 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiLambdaDaughters%s",myname,reweightname)),baryonEnhancement*lambdaFactor);
39 break;
40 case 3:
41 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sK0SDaughters%s",myname,reweightname)))->Clone("bkgd");
42 bkgd->Scale(kaonFactor);
43 break;
44 case 4:
45 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sLambdaDaughters%s",myname,reweightname)))->Clone("bkgd");
46 bkgd->Scale(baryonEnhancement*lambdaFactor);
47 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiLambdaDaughters%s",myname,reweightname)),baryonEnhancement*lambdaFactor);
48 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sK0SDaughters%s",myname,reweightname)),kaonFactor);
49 break;
50 case 5:
51 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sXiDaughters",myname)))->Clone("bkgd");
52 bkgd->Scale(baryonEnhancement);
53 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiXiDaughters",myname)),baryonEnhancement);
54 break;
55 case 6:
56 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sOmegaDaughters",myname)))->Clone("bkgd");
57 bkgd->Scale(baryonEnhancement);
58 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiOmegaDaughters",myname)),baryonEnhancement);
59 break;
60 case 7:
61 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sXiDaughters",myname)))->Clone("bkgd");
62 bkgd->Scale(baryonEnhancement);
63 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiXiDaughters",myname)),baryonEnhancement);
64 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sOmegaDaughters",myname)),baryonEnhancement);
65 bkgd->Add((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiOmegaDaughters",myname)),baryonEnhancement);
66 break;
b610fb37 67 case 8:
68 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sLambdaDaughters%s",myname,reweightname)))->Clone("bkgd");
69 bkgd->Scale(baryonEnhancement*lambdaFactor);
70 break;
71 case 9:
72 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiLambdaDaughters%s",myname,reweightname)))->Clone("bkgd");
73 bkgd->Scale(baryonEnhancement*lambdaFactor);
74 break;
836ce14a 75 }
76 TH1D *denominator;
77 TH1D *numerator;
78 if(eta){
79 int lowbin = bkgd->GetXaxis()->FindBin(etacut+.001);//make sure we don't accidentally get the wrong bin
80 int highbin = bkgd->GetXaxis()->GetNbins();
81 cout<<"Projecting from "<<bkgd->GetXaxis()->GetBinLowEdge(lowbin)<<" to "<<bkgd->GetXaxis()->GetBinLowEdge(highbin+1)<<endl;
82 denominator = signal->ProjectionY("name",lowbin,highbin);
83 numerator = bkgd->ProjectionY(name,lowbin,highbin);
84 }
85 else{
86 int lowbin = bkgd->GetYaxis()->FindBin(-etacut+.001);//make sure we don't accidentally get the wrong bin
87 int highbin = bkgd->GetYaxis()->FindBin(etacut-.001);
88 cout<<"Projecting from "<<bkgd->GetYaxis()->GetBinLowEdge(lowbin)<<" to "<<bkgd->GetYaxis()->GetBinLowEdge(highbin+1)<<endl;
89 denominator = signal->ProjectionX("name",lowbin,highbin);
90 numerator = bkgd->ProjectionX(name,lowbin,highbin);
91 }
92 numerator->Divide(denominator);
93 numerator->SetYTitle("Ratio of E_{T}^{background}/E_{T}^{had, meas.}");
94 numerator->GetYaxis()->SetTitleOffset(1.2);
95 numerator->SetLineColor(color);
96 numerator->SetMarkerColor(color);
97 numerator->SetMarkerStyle(marker);
98 return numerator;
99
100}
101
102void CorrBkgdErrors(bool TPC = true, bool ITS=true, bool reweight = true,float kaonFactor=1.0, float lambdaFactor = 1.0, float baryonEnhancement = 1.0){
103 gStyle->SetOptTitle(0);
104 gStyle->SetOptStat(0);
105 gStyle->SetOptFit(0);
106 TCanvas *c = new TCanvas("c","c",400,400);
107 c->SetTopMargin(0.04);
108 c->SetRightMargin(0.04);
109 c->SetBorderSize(0);
110 c->SetFillColor(0);
111 c->SetFillColor(0);
112 c->SetBorderMode(0);
113 c->SetFrameFillColor(0);
114 c->SetFrameBorderMode(0);
115 c->SetLeftMargin(0.159091);
116 char * filename = "Et.ESD.new.sim.LHC10d4.pp.merged.root";
117 TH1D *All = GetHisto(0.1,true,"All",TPC,ITS,0,1,20,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
118 TH1D *Electrons = GetHisto(0.1,true,"Electrons",TPC,ITS,1,2,21,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
119 TH1D *V0s = GetHisto(0.1,true,"V0s",TPC,ITS,4,4,22,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
b610fb37 120 //case, color, marker
121 TH1D *K0S = GetHisto(0.1,true,"K0S",TPC,ITS,3,TColor::kOrange+8,33,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
122 TH1D *Lambda = GetHisto(0.1,true,"K0S",TPC,ITS,8,TColor::kMagenta+3,29,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
123 TH1D *AntiLambda = GetHisto(0.1,true,"K0S",TPC,ITS,9,TColor::kMagenta+3,30,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
836ce14a 124 TH1D *Multistrange = GetHisto(0.1,true,"Multistrange",TPC,ITS,7,TColor::kGreen+2,23,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
125
126 TH1D *Allpt = GetHisto(0.7,false,"Allpt",TPC,ITS,0,1,20,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
127 TH1D *Electronspt = GetHisto(0.7,false,"Electronspt",TPC,ITS,1,2,21,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
128 TH1D *V0spt = GetHisto(0.7,false,"V0spt",TPC,ITS,4,4,22,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
b610fb37 129 TH1D *K0Spt = GetHisto(0.1,false,"K0S",TPC,ITS,3,TColor::kOrange+8,33,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
130 TH1D *Lambdapt = GetHisto(0.1,false,"K0S",TPC,ITS,8,TColor::kMagenta+3,29,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
131 TH1D *AntiLambdapt = GetHisto(0.1,false,"K0S",TPC,ITS,9,TColor::kMagenta+3,30,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
836ce14a 132 TH1D *Multistrangept = GetHisto(0.7,false,"Multistrangept",TPC,ITS,7,TColor::kGreen+2,23,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
133 if(ITS){
b610fb37 134 All->SetMaximum(0.025);
836ce14a 135 }
136 else{
137 All->SetMaximum(0.2);
138 }
139 All->SetMinimum(0.0);
140 All->SetMarkerStyle(20);
141 All->GetYaxis()->SetTitleOffset(1.8);
142 TF1 *func = new TF1("func","[0]",-.7,.7);
b610fb37 143 func->SetParameter(0,0.02);
144 TF1 *funcLam = new TF1("funcLam","[0]",-.7,.7);
145 funcLam->SetParameter(0,0.001);
146 funcLam->SetLineColor(Lambda->GetMarkerColor());
147 TF1 *funcAlam = new TF1("funcAlam","[0]",-.7,.7);
148 funcAlam->SetParameter(0,0.003);
149 funcAlam->SetLineColor(AntiLambda->GetMarkerColor());
150 TF1 *funcK0 = new TF1("funcK0","[0]",-.7,.7);
151 funcK0->SetParameter(0,0.013);
152 funcK0->SetLineColor(K0S->GetMarkerColor());
836ce14a 153 All->Fit(func);
b610fb37 154 Lambda->Fit(funcLam);
155 AntiLambda->Fit(funcAlam);
156 K0S->Fit(funcK0);
836ce14a 157 All->Draw();
158 Electrons->Draw("same");
159 V0s->Draw("same");
160 Multistrange->Draw("same");
b610fb37 161 K0S->Draw("same");
162 Lambda->Draw("same");
163 AntiLambda->Draw("same");
836ce14a 164 TLatex *tex = new TLatex(0.161478,1.0835,"LHC10d15: p+p, Pythia6 Perugia-0");
165 tex->SetTextSize(0.0537634);
166 tex->Draw();
b610fb37 167 TLegend *leg = new TLegend(0.636364,0.612903,0.893939,0.962366);
836ce14a 168 leg->AddEntry(All,"All");
169 leg->AddEntry(Electrons,"Electrons");
170 leg->AddEntry(V0s,"V0s");
b610fb37 171 leg->AddEntry(K0S,"K_{S}^{0}");
172 leg->AddEntry(Lambda,"#Lambda");
173 leg->AddEntry(AntiLambda,"#bar{#Lambda}");
836ce14a 174 leg->AddEntry(Multistrange,"Multistrange");
175 leg->SetFillStyle(0);
176 leg->SetFillColor(0);
177 leg->SetBorderSize(0);
178 leg->Draw();
b610fb37 179 TLatex *tex = new TLatex(-0.711139,0.0157696,Form("%2.5f#pm%2.5f",func->GetParameter(0),func->GetParError(0)));
836ce14a 180 tex->Draw();
b610fb37 181 TLatex *texLam = new TLatex(-0.711139,0.00201613,Form("%2.5f#pm%2.5f",funcLam->GetParameter(0),funcLam->GetParError(0)));
182 texLam->SetTextColor(Lambda->GetMarkerColor());
183 texLam->Draw();
184 TLatex *texAlam = new TLatex(-0.711139,0.00365716,Form("%2.5f#pm%2.5f",funcAlam->GetParameter(0),funcAlam->GetParError(0)));
185 texAlam->SetTextColor(AntiLambda->GetMarkerColor());
186 texAlam->Draw();
187 TLatex *texK0 = new TLatex(-0.711139,0.008,Form("%2.5f#pm%2.5f",funcK0->GetParameter(0),funcK0->GetParError(0)));
188 texK0->SetTextColor(K0S->GetMarkerColor());
189 texK0->Draw();
836ce14a 190 TCanvas *c1 = new TCanvas("c1","c1",600,400);
191 c1->SetTopMargin(0.04);
192 c1->SetRightMargin(0.04);
193 c1->SetBorderSize(0);
194 c1->SetFillColor(0);
195 c1->SetFillColor(0);
196 c1->SetBorderMode(0);
197 c1->SetFrameFillColor(0);
198 c1->SetFrameBorderMode(0);
199 if(ITS){
200 Allpt->SetMaximum(0.04);
201 }
202 else{
203 Allpt->SetMaximum(0.2);
204 }
205 if(TPC) Allpt->GetXaxis()->SetRange(Allpt->GetXaxis()->FindBin(0.0),Allpt->GetXaxis()->FindBin(4.));
206 else{ Allpt->GetXaxis()->SetRange(Allpt->GetXaxis()->FindBin(0.0),Allpt->GetXaxis()->FindBin(1.));}
207 Allpt->SetMinimum(0.0);
208 Allpt->SetMarkerStyle(20);
209 Allpt->Draw();
210 Electronspt->Draw("same");
211 V0spt->Draw("same");
b610fb37 212 K0Spt->Draw("same");
213 Lambdapt->Draw("same");
214 AntiLambdapt->Draw("same");
836ce14a 215 Multistrangept->Draw("same");
216 TLatex *texpt = new TLatex(0.161478,1.0835,"LHC10d15: p+p, Pythia6 Perugia-0");
217 texpt->SetTextSize(0.0537634);
218 texpt->Draw();
b610fb37 219 TLegend *legpt = new TLegend(0.634228,0.430108,0.892617,0.905914);
836ce14a 220 legpt->AddEntry(Allpt,"All");
221 legpt->AddEntry(Electronspt,"Electrons");
222 legpt->AddEntry(V0spt,"V0s");
b610fb37 223 legpt->AddEntry(K0Spt,"K_{S}^{0}");
224 legpt->AddEntry(Lambdapt,"#Lambda");
225 legpt->AddEntry(AntiLambdapt,"#bar{#Lambda}");
836ce14a 226 legpt->AddEntry(Multistrangept,"Multistrange");
227 legpt->SetFillStyle(0);
228 legpt->SetFillColor(0);
229 legpt->SetBorderSize(0);
230 legpt->Draw();
231
232
233 char TPCnameeps[200];
234 char TPCnamepng[200];
235 char ITSnameeps[200];
236 char ITSnamepng[200];
237 TString *None = new TString("");
238 TString *Factors = None;
239 if(kaonFactor!=1.0||lambdaFactor!=1.0||baryonEnhancement!=1.0){
240 Factors = new TString(Form("Lambda%2.1fKaon%2.1fBaryon%2.1f",lambdaFactor,kaonFactor,baryonEnhancement));
241 }
242 if(TPC){
243 sprintf(TPCnameeps,"pics/bkgdComponentsErrorsTPC%s.eps",Factors->Data());
244 sprintf(TPCnamepng,"pics/bkgdComponentsErrorsTPC%s.png",Factors->Data());
245 c->SaveAs(TPCnameeps);
246 c->SaveAs(TPCnamepng);
247 sprintf(TPCnameeps,"pics/bkgdComponentsTPC%s.eps",Factors->Data());
248 sprintf(TPCnamepng,"pics/bkgdComponentsTPC%s.png",Factors->Data());
249 c1->SaveAs(TPCnameeps);
250 c1->SaveAs(TPCnamepng);
251 }
252 else{
253 sprintf(ITSnameeps,"pics/bkgdComponentsErrorsITS%s.eps",Factors->Data());
254 sprintf(ITSnamepng,"pics/bkgdComponentsErrorsITS%s.png",Factors->Data());
255 c->SaveAs(ITSnameeps);
256 c->SaveAs(ITSnamepng);
257 sprintf(ITSnameeps,"pics/bkgdComponentsITS%s.eps",Factors->Data());
258 sprintf(ITSnamepng,"pics/bkgdComponentsITS%s.png",Factors->Data());
259 c1->SaveAs(ITSnameeps);
260 c1->SaveAs(ITSnamepng);
261 }
262
263}