]>
Commit | Line | Data |
---|---|---|
836ce14a | 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; | |
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 | ||
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); | |
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 | } |