]> git.uio.no Git - u/mrichter/AliRoot.git/blob - 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
1 TH1D *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;
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;
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
102 void 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);
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);
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);
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);
132   TH1D *Multistrangept = GetHisto(0.7,false,"Multistrangept",TPC,ITS,7,TColor::kGreen+2,23,filename,reweight,kaonFactor,lambdaFactor,baryonEnhancement);
133   if(ITS){
134     All->SetMaximum(0.025);
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);
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());
153   All->Fit(func);
154   Lambda->Fit(funcLam);
155   AntiLambda->Fit(funcAlam);
156   K0S->Fit(funcK0);
157   All->Draw();
158   Electrons->Draw("same");
159   V0s->Draw("same");
160   Multistrange->Draw("same");
161   K0S->Draw("same");
162   Lambda->Draw("same");
163   AntiLambda->Draw("same");
164   TLatex *tex = new TLatex(0.161478,1.0835,"LHC10d15: p+p, Pythia6 Perugia-0");
165   tex->SetTextSize(0.0537634);
166   tex->Draw();
167   TLegend *leg = new TLegend(0.636364,0.612903,0.893939,0.962366);
168   leg->AddEntry(All,"All");
169   leg->AddEntry(Electrons,"Electrons");
170   leg->AddEntry(V0s,"V0s");
171   leg->AddEntry(K0S,"K_{S}^{0}");
172   leg->AddEntry(Lambda,"#Lambda");
173   leg->AddEntry(AntiLambda,"#bar{#Lambda}");
174   leg->AddEntry(Multistrange,"Multistrange");
175   leg->SetFillStyle(0);
176   leg->SetFillColor(0);
177   leg->SetBorderSize(0);
178   leg->Draw();
179   TLatex *tex = new TLatex(-0.711139,0.0157696,Form("%2.5f#pm%2.5f",func->GetParameter(0),func->GetParError(0)));
180   tex->Draw();
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();
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");
212   K0Spt->Draw("same");
213   Lambdapt->Draw("same");
214   AntiLambdapt->Draw("same");
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();
219   TLegend *legpt = new TLegend(0.634228,0.430108,0.892617,0.905914);
220   legpt->AddEntry(Allpt,"All");
221   legpt->AddEntry(Electronspt,"Electrons");
222   legpt->AddEntry(V0spt,"V0s");
223   legpt->AddEntry(K0Spt,"K_{S}^{0}");
224   legpt->AddEntry(Lambdapt,"#Lambda");
225   legpt->AddEntry(AntiLambdapt,"#bar{#Lambda}");
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 }