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";
8 if(ITS) myname = "TPCITS";
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)));
19 //Et of all unidentified hadrons (plus hadrons identified as pions) calculated assuming their true mass
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);
33 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sMisidentifiedElectrons",myname)))->Clone("bkgd");
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);
41 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sK0SDaughters%s",myname,reweightname)))->Clone("bkgd");
42 bkgd->Scale(kaonFactor);
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);
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);
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);
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);
68 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sLambdaDaughters%s",myname,reweightname)))->Clone("bkgd");
69 bkgd->Scale(baryonEnhancement*lambdaFactor);
72 bkgd = (TH2F*)((TH2F*) out2->FindObject(Form("EtReconstructed%sAntiLambdaDaughters%s",myname,reweightname)))->Clone("bkgd");
73 bkgd->Scale(baryonEnhancement*lambdaFactor);
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);
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);
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);
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);
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);
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);
134 All->SetMaximum(0.025);
137 All->SetMaximum(0.2);
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());
154 Lambda->Fit(funcLam);
155 AntiLambda->Fit(funcAlam);
158 Electrons->Draw("same");
160 Multistrange->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);
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);
179 TLatex *tex = new TLatex(-0.711139,0.0157696,Form("%2.5f#pm%2.5f",func->GetParameter(0),func->GetParError(0)));
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());
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());
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());
190 TCanvas *c1 = new TCanvas("c1","c1",600,400);
191 c1->SetTopMargin(0.04);
192 c1->SetRightMargin(0.04);
193 c1->SetBorderSize(0);
196 c1->SetBorderMode(0);
197 c1->SetFrameFillColor(0);
198 c1->SetFrameBorderMode(0);
200 Allpt->SetMaximum(0.04);
203 Allpt->SetMaximum(0.2);
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);
210 Electronspt->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);
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);
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));
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);
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);