]>
Commit | Line | Data |
---|---|---|
b8bea077 | 1 | /* $Id$ */ |
2 | ||
efb6c264 | 3 | const Int_t nPadX = 3, nPadY = 2; |
4 | const Int_t nPtBins=6 ; | |
5 | const Double_t ptBinEdges[21]={1., 2., 3., 4., 5., 7., 10.} ; | |
6 | ||
8e6cc59c | 7 | const Double_t kMean=0.136 ; //Approximate peak position to facilitate error estimate |
8 | ||
efb6c264 | 9 | const char format[] = ".eps"; // say if you want .pdf |
10 | ||
8e6cc59c | 11 | //----------------------------------------------------------------------------- |
efb6c264 | 12 | void MakeMmixPi0(const TString filename, |
13 | const TString listPath = "PHOSPi0Flow/PHOSPi0FlowCoutput1", // lego train | |
91b112bd | 14 | const Int_t centrality=0, |
efb6c264 | 15 | const char* pid="CPV", |
16 | const char* saveToDir="") | |
8e6cc59c | 17 | { |
efb6c264 | 18 | Printf("\nMakeMmixPi0(%s, %s, %i, %s, %s)", filename.Data(), listPath.Data(), centrality, pid, saveToDir); |
19 | ||
8e6cc59c | 20 | //Fit Real/Mixed ratio, normalize Mixed and subtract it from Real |
21 | ||
efb6c264 | 22 | TFile * file = new TFile(filename) ; |
23 | TList *histoList = (TList*)file->Get(listPath); | |
8b4ce769 | 24 | |
8e6cc59c | 25 | char key[125] ; |
26 | ||
27 | TH1F * hev = (TH1F*)histoList->FindObject("hTotSelEvents") ; | |
28 | TH2F * hCentrality = (TH2F*)histoList->FindObject("hCenPHOSCells") ; | |
efb6c264 | 29 | TH1D * hCentralityX = hCentrality->ProjectionX(); |
8e6cc59c | 30 | |
efb6c264 | 31 | printf("TotSelEvents (4): %f \n",hev->GetBinContent(4)) ; |
32 | printf("Centrality: %f \n",hCentralityX->Integral()) ; | |
8e6cc59c | 33 | |
efb6c264 | 34 | TH2F *hPi0 = (TH2F*) histoList->FindObject(Form("hPi0%s_cen%d" ,pid,centrality)); |
35 | TH2F *hPi0Mix = (TH2F*) histoList->FindObject(Form("hMiPi0%s_cen%d",pid,centrality)) ; | |
36 | if( !hPi0 || !hPi0Mix || hPi0->GetEntries() < 10000) { | |
37 | Printf(Form("no histogram(0x%x, 0x%x) or to low number of entries(%d) in hPi0, skipping this cent", hPi0, hPi0Mix, hPi0->GetEntries())); | |
38 | file->Close(); | |
39 | delete file; | |
8e6cc59c | 40 | return; |
41 | } | |
efb6c264 | 42 | |
8e6cc59c | 43 | |
efb6c264 | 44 | TFile* outFile = new TFile("Pi0_FitResult.root","recreate"); |
8e6cc59c | 45 | |
46 | PPRstyle(); | |
47 | gStyle->SetPadLeftMargin(0.14); | |
48 | gStyle->SetPadRightMargin(0.01); | |
bd741163 | 49 | //gStyle->SetPadTopMargin(0.01); |
8e6cc59c | 50 | gStyle->SetPadBottomMargin(0.08); |
51 | ||
52 | //Fit real only | |
53 | //Linear Bg | |
54 | char kkey[55]; | |
efb6c264 | 55 | sprintf(kkey, Form("%s_cent%d",pid,centrality)) ; |
8e6cc59c | 56 | char key2[155]; |
57 | sprintf(key,"Mix%s",kkey) ; | |
58 | sprintf(key2,"%s_mr1",key) ; | |
25a78f54 | 59 | TH1D * mr1 = new TH1D(key2,"Mass",nPtBins,ptBinEdges) ; |
8e6cc59c | 60 | sprintf(key2,"%s_sr1",key) ; |
25a78f54 | 61 | TH1D * sr1 = new TH1D(key2,"Width",nPtBins,ptBinEdges) ; |
8e6cc59c | 62 | sprintf(key2,"%s_ar1",key) ; |
25a78f54 | 63 | TH1D * ar1 = new TH1D(key2,"a",nPtBins,ptBinEdges) ; |
8e6cc59c | 64 | sprintf(key2,"%s_br1",key) ; |
25a78f54 | 65 | TH1D * br1 = new TH1D(key2,"a",nPtBins,ptBinEdges) ; |
8e6cc59c | 66 | sprintf(key2,"%s_yr1",key) ; |
25a78f54 | 67 | TH1D * nr1 = new TH1D(key2,"Raw yield",nPtBins,ptBinEdges) ; |
8e6cc59c | 68 | sprintf(key2,"%s_yr1int",key) ; |
25a78f54 | 69 | TH1D * nr1int = new TH1D(key2,"Raw yield, integrated",nPtBins,ptBinEdges) ; |
8e6cc59c | 70 | |
71 | //Quadratic Bg | |
72 | sprintf(key2,"%s_mr2",key) ; | |
25a78f54 | 73 | TH1D * mr2 = new TH1D(key2,"Mass",nPtBins,ptBinEdges) ; |
8e6cc59c | 74 | sprintf(key2,"%s_sr2",key) ; |
25a78f54 | 75 | TH1D * sr2 = new TH1D(key2,"Width",nPtBins,ptBinEdges) ; |
8e6cc59c | 76 | sprintf(key2,"%s_ar2",key) ; |
25a78f54 | 77 | TH1D * ar2 = new TH1D(key2,"a",nPtBins,ptBinEdges) ; |
8e6cc59c | 78 | sprintf(key2,"%s_br2",key) ; |
25a78f54 | 79 | TH1D * br2 = new TH1D(key2,"a",nPtBins,ptBinEdges) ; |
8e6cc59c | 80 | sprintf(key2,"%s_cr2",key) ; |
25a78f54 | 81 | TH1D * cr2 = new TH1D(key2,"a",nPtBins,ptBinEdges) ; |
8e6cc59c | 82 | sprintf(key2,"%s_yr2",key) ; |
25a78f54 | 83 | TH1D * nr2 = new TH1D(key2,"Raw yield",nPtBins,ptBinEdges) ; |
8e6cc59c | 84 | sprintf(key2,"%s_yr2int",key) ; |
25a78f54 | 85 | TH1D * nr2int = new TH1D(key2,"Raw yield, integrated",nPtBins,ptBinEdges) ; |
8e6cc59c | 86 | |
87 | TF1 * fit1 = new TF1("fit",CB,0.,1.,6) ; | |
88 | fit1->SetParName(0,"A") ; | |
89 | fit1->SetParName(1,"m_{0}") ; | |
90 | fit1->SetParName(2,"#sigma") ; | |
91 | fit1->SetParName(3,"a_{0}") ; | |
92 | fit1->SetParName(4,"a_{1}") ; | |
93 | fit1->SetParName(5,"a_{2}") ; | |
94 | fit1->SetLineWidth(2) ; | |
95 | fit1->SetLineColor(2) ; | |
96 | TF1 * fgs = new TF1("gs",CBs,0.,1.,4) ; | |
97 | fgs->SetParName(0,"A") ; | |
98 | fgs->SetParName(1,"m_{0}") ; | |
99 | fgs->SetParName(2,"#sigma") ; | |
100 | fgs->SetParName(3,"B") ; | |
101 | fgs->SetLineColor(2) ; | |
102 | fgs->SetLineWidth(1) ; | |
103 | ||
104 | TF1 * fit2 = new TF1("fit2",CB2,0.,1.,7) ; | |
105 | fit2->SetParName(0,"A") ; | |
106 | fit2->SetParName(1,"m_{0}") ; | |
107 | fit2->SetParName(2,"#sigma") ; | |
108 | fit2->SetParName(3,"a_{0}") ; | |
109 | fit2->SetParName(4,"a_{1}") ; | |
110 | fit2->SetParName(5,"a_{2}") ; | |
111 | fit2->SetParName(6,"a_{3}") ; | |
112 | fit2->SetLineWidth(2) ; | |
113 | fit2->SetLineColor(4) ; | |
114 | fit2->SetLineStyle(2) ; | |
115 | ||
116 | TF1 * fbg1 = new TF1("bg1",BG1,0.,1.,3) ; | |
117 | TF1 * fbg2 = new TF1("bg2",BG2,0.,1.,4) ; | |
118 | ||
119 | TCanvas * c3 = new TCanvas("mggFit1_Signal","mggFitCB",10,10,1200,800) ; | |
120 | c3->Divide(nPadX,nPadY) ; | |
121 | ||
122 | TCanvas * c1 = new TCanvas("mggFit1","mggFit1",10,10,1200,800) ; | |
123 | c1->Divide(nPadX,nPadY) ; | |
124 | c1->cd(0) ; | |
125 | ||
25a78f54 | 126 | TCanvas * rawCanvas = new TCanvas("rawCanvas","rawCanvas",10,10,1200,800); |
127 | rawCanvas->Divide(nPadX, nPadY); | |
128 | ||
efb6c264 | 129 | TAxis * pta=hPi0->GetYaxis() ; |
130 | TAxis * ma=hPi0->GetXaxis() ; | |
25a78f54 | 131 | for(Int_t ptBin=1; ptBin<=nPtBins; ptBin++){ |
132 | c1->cd(ptBin) ; | |
133 | printf("\n\t%.1f<pt<%.1f GeV/c\n",ptBinEdges[ptBin-1],ptBinEdges[ptBin]); | |
134 | Int_t imin=pta->FindBin(ptBinEdges[ptBin-1]+0.0001); | |
135 | Int_t imax=pta->FindBin(ptBinEdges[ptBin]-0.0001) ; | |
136 | Double_t pt=(ptBinEdges[ptBin]+ptBinEdges[ptBin-1])/2. ; | |
efb6c264 | 137 | TH1D * hp = hPi0->ProjectionX(Form("re_%d",ptBin),imin,imax) ; |
8e6cc59c | 138 | hp->Sumw2() ; |
efb6c264 | 139 | TH1D * hpm= hPi0Mix->ProjectionX("mi",imin,imax) ; |
8e6cc59c | 140 | hpm->Sumw2() ; |
25a78f54 | 141 | if(ptBin<=17){ |
8e6cc59c | 142 | hp ->Rebin(4) ; |
143 | hpm->Rebin(4) ; | |
144 | } | |
145 | else{ | |
146 | hp ->Rebin(5) ; | |
147 | hpm->Rebin(5) ; | |
148 | } | |
149 | for(Int_t ib=1; ib<=hp->GetNbinsX();ib++){if(hp ->GetBinContent(ib)==0)hp ->SetBinError(ib,1.);} | |
150 | for(Int_t ib=1; ib<=hp->GetNbinsX();ib++){if(hpm->GetBinContent(ib)==0)hpm->SetBinError(ib,1.);} | |
151 | TH1D * hpm2 = (TH1D*)hpm->Clone("Bg1") ; | |
25a78f54 | 152 | TH1D * hpmScaled = (TH1D*)hpm->Clone("hpmScaled") ; |
8e6cc59c | 153 | TH1D * hpcopy = (TH1D*)hp ->Clone("hpcopy") ; |
154 | TH1D * hp2 = (TH1D*)hp ->Clone("hp2") ; | |
155 | hpcopy->SetXTitle("M_{#gamma#gamma} (GeV/c^{2})"); | |
156 | hp2 ->SetXTitle("M_{#gamma#gamma} (GeV/c^{2})"); | |
157 | hpcopy->Divide(hpm) ; | |
25a78f54 | 158 | sprintf(key,"PID=%s, %3.1f<p_{T}<%3.1f GeV/c",pid,ptBinEdges[ptBin-1],ptBinEdges[ptBin]) ; |
8e6cc59c | 159 | hpcopy->SetTitle(key) ; |
160 | hpcopy->SetMarkerStyle(20) ; | |
161 | hpcopy->SetMarkerSize(0.7) ; | |
162 | ||
163 | fit1->SetParameters(0.001,0.136,0.0055,0.0002,-0.002,0.0) ; | |
164 | fit1->SetParLimits(0,0.000,1.000) ; | |
165 | fit1->SetParLimits(1,0.120,0.145) ; | |
166 | fit1->SetParLimits(2,0.005,0.012) ; | |
167 | ||
168 | Double_t rangeMin=0.05 ; | |
169 | Double_t rangeMax=0.3 ; | |
170 | if(centrality==0) rangeMax=0.4 ; | |
25a78f54 | 171 | if(ptBin==1){ |
8e6cc59c | 172 | rangeMin=0.06 ; |
173 | rangeMax=0.25 ; | |
174 | } | |
175 | hpcopy->Fit(fit1,"Q" ,"",rangeMin,rangeMax) ; | |
176 | hpcopy->Fit(fit1,"MQ","",rangeMin,rangeMax) ; | |
177 | ||
25a78f54 | 178 | ar1->SetBinContent(ptBin,fit1->GetParameter(3)) ; |
179 | ar1->SetBinError (ptBin,fit1->GetParError(3)) ; | |
180 | br1->SetBinContent(ptBin,fit1->GetParameter(4)) ; | |
181 | br1->SetBinError (ptBin,fit1->GetParError(4)) ; | |
8e6cc59c | 182 | |
183 | fit2->SetParameters(fit1->GetParameters()) ; | |
184 | fit2->SetParLimits(0,0.000,1.000) ; | |
185 | fit2->SetParLimits(1,0.120,0.145) ; | |
186 | fit2->SetParLimits(2,0.005,0.012) ; | |
187 | ||
188 | hpcopy->Fit(fit2,"+NQ","",rangeMin,rangeMax) ; | |
189 | hpcopy->Fit(fit2,"+MQ","",rangeMin,rangeMax) ; | |
190 | ||
25a78f54 | 191 | ar2->SetBinContent(ptBin,fit2->GetParameter(3)) ; |
192 | ar2->SetBinError (ptBin,fit2->GetParError(3)) ; | |
193 | br2->SetBinContent(ptBin,fit2->GetParameter(4)) ; | |
194 | br2->SetBinError (ptBin,fit2->GetParError(4)) ; | |
195 | cr2->SetBinContent(ptBin,fit2->GetParameter(5)) ; | |
196 | cr2->SetBinError (ptBin,fit2->GetParError(5)) ; | |
8e6cc59c | 197 | hpcopy->GetXaxis()->SetRangeUser(0.05,0.30) ; |
efb6c264 | 198 | hpcopy->DrawCopy() ; |
8e6cc59c | 199 | c1->Update() ; |
200 | ||
201 | fbg1->SetParameters(fit1->GetParameter(3),fit1->GetParameter(4),fit1->GetParameter(5)); | |
202 | fbg2->SetParameters(fit2->GetParameter(3),fit2->GetParameter(4),fit2->GetParameter(5), | |
203 | fit2->GetParameter(6)); | |
204 | ||
205 | Double_t intRangeMin = PeakPosition(pt)-3.*PeakWidth(pt) ; | |
206 | Double_t intRangeMax = PeakPosition(pt)+3.*PeakWidth(pt) ; | |
207 | Int_t intBinMin = hp->GetXaxis()->FindBin(intRangeMin) ; | |
208 | Int_t intBinMax = hp->GetXaxis()->FindBin(intRangeMax) ; | |
209 | Double_t errStat = hpm->Integral(intBinMin,intBinMax); | |
bd741163 | 210 | |
211 | rawCanvas->cd(ptBin); | |
212 | hpmScaled->Scale(fbg1(0.1349)); | |
213 | hp->SetTitle(key); | |
214 | hp->SetLineColor(kBlack); | |
efb6c264 | 215 | hp->SetAxisRange(0.0, 0.3); |
216 | //hp->GetYaxis()->SetRangeUser(0.6*hp->GetMaximum(), 1.1*hp->GetMaximum()); | |
bd741163 | 217 | hp->DrawCopy(); |
218 | hpmScaled->SetLineColor(kRed); | |
219 | hpmScaled->DrawCopy("same"); | |
220 | rawCanvas->Update(); | |
221 | ||
8e6cc59c | 222 | hpm ->Multiply(fbg1) ; |
223 | hpm2->Multiply(fbg2) ; | |
224 | hp ->Add(hpm ,-1.) ; | |
225 | hp2 ->Add(hpm2,-1.) ; | |
226 | ||
25a78f54 | 227 | c3->cd(ptBin) ; |
8e6cc59c | 228 | |
229 | Int_t binPi0 = hp->FindBin(kMean); | |
230 | fgs->SetParameters(hp->Integral(binPi0-1,binPi0+1)/3.,fit1->GetParameter(1),fit1->GetParameter(2)) ; | |
231 | fgs->SetParLimits(0,0.000,1.e+5) ; | |
232 | fgs->SetParLimits(1,0.120,0.145) ; | |
233 | fgs->SetParLimits(2,0.004,0.02) ; | |
234 | hp->Fit(fgs,"Q","",rangeMin,rangeMax) ; | |
235 | hp->SetMaximum(hp2->GetMaximum()*1.5) ; | |
236 | hp->SetMinimum(hp2->GetMinimum()*1.1) ; | |
237 | hp->SetMarkerStyle(20) ; | |
238 | hp->SetMarkerSize(0.7) ; | |
25a78f54 | 239 | mr1->SetBinContent(ptBin,fgs->GetParameter(1)) ; |
240 | mr1->SetBinError (ptBin,fgs->GetParError(1) ) ; | |
241 | sr1->SetBinContent(ptBin,TMath::Abs(fgs->GetParameter(2))) ; | |
242 | sr1->SetBinError (ptBin,fgs->GetParError(2) ) ; | |
8e6cc59c | 243 | |
244 | Double_t y=fgs->GetParameter(0)/hp->GetXaxis()->GetBinWidth(1) ; | |
25a78f54 | 245 | nr1->SetBinContent(ptBin,y) ; |
8e6cc59c | 246 | Double_t ey=fgs->GetParError(0)/hp->GetXaxis()->GetBinWidth(1) ; |
25a78f54 | 247 | nr1->SetBinError(ptBin,ey) ; |
8e6cc59c | 248 | |
249 | Double_t npiInt = hp->Integral(intBinMin,intBinMax) ; | |
250 | Double_t norm = fbg1->GetParameter(0) ; | |
251 | Double_t normErr= fbg1->GetParError(0) ; | |
252 | if(npiInt>0.){ | |
25a78f54 | 253 | nr1int->SetBinContent(ptBin,npiInt) ; |
254 | nr1int->SetBinError(ptBin,TMath::Sqrt(npiInt + norm*errStat + normErr*normErr*errStat*errStat + norm*norm*errStat)) ; | |
8e6cc59c | 255 | } |
256 | hp2->GetXaxis()->SetRangeUser(0.05,0.3) ; | |
257 | hp2->SetMaximum(hp2->GetMaximum()*1.5) ; | |
258 | hp2->SetMinimum(hp2->GetMinimum()*1.1) ; | |
259 | hp2->SetMarkerStyle(20) ; | |
260 | hp2->SetMarkerSize(0.7) ; | |
261 | hp2->Fit(fgs,"Q","",rangeMin,rangeMax) ; | |
25a78f54 | 262 | mr2->SetBinContent(ptBin,fgs->GetParameter(1)) ; |
263 | mr2->SetBinError (ptBin,fgs->GetParError(1)) ; | |
264 | sr2->SetBinContent(ptBin,TMath::Abs(fgs->GetParameter(2))) ; | |
265 | sr2->SetBinError (ptBin,fgs->GetParError(2)) ; | |
8e6cc59c | 266 | y=fgs->GetParameter(0)/hp->GetXaxis()->GetBinWidth(1) ; |
25a78f54 | 267 | nr2->SetBinContent(ptBin,y) ; |
8e6cc59c | 268 | ey= fgs->GetParError(0)/hp->GetXaxis()->GetBinWidth(1) ; |
25a78f54 | 269 | nr2->SetBinError(ptBin,ey) ; |
8e6cc59c | 270 | npiInt=hp2->Integral(intBinMin,intBinMax) ; |
271 | norm=fbg2->GetParameter(0) ; | |
272 | normErr=fbg2->GetParError(0) ; | |
273 | if(npiInt>0.){ | |
25a78f54 | 274 | nr2int->SetBinContent(ptBin,npiInt) ; |
275 | nr2int->SetBinError(ptBin,TMath::Sqrt(npiInt + norm*errStat + normErr*normErr*errStat*errStat + norm*norm*errStat)) ; | |
8e6cc59c | 276 | } |
277 | hp2->SetTitle(key) ; | |
efb6c264 | 278 | hp2->DrawCopy() ; |
8e6cc59c | 279 | c3->Update() ; |
280 | ||
281 | delete hp ; | |
282 | delete hpm ; | |
283 | delete hpm2 ; | |
efb6c264 | 284 | delete hpmScaled; |
285 | delete hpcopy; | |
286 | delete hp2; | |
8e6cc59c | 287 | } |
8e6cc59c | 288 | |
efb6c264 | 289 | if( TString(saveToDir).Length() ) |
290 | gSystem->mkdir(saveToDir, true); | |
291 | ||
292 | char name[55] ; | |
293 | sprintf(name,"%sPi0_ratio_%s%s", saveToDir, kkey, format) ; | |
8e6cc59c | 294 | c1->Print(name) ; |
efb6c264 | 295 | sprintf(name,"%sPi0_signal_%s%s", saveToDir, kkey, format) ; |
8e6cc59c | 296 | c3->Print(name) ; |
efb6c264 | 297 | sprintf(name,"%sPi0_raw_%s%s", saveToDir, kkey, format) ; |
298 | rawCanvas->Print(name); | |
8e6cc59c | 299 | |
300 | //Normalize by the number of events | |
efb6c264 | 301 | Int_t cMin=0, cMax=100; |
8e6cc59c | 302 | if (centrality == 0) { |
303 | cMin=1; | |
304 | cMax=10; | |
305 | } | |
306 | else if (centrality == 1) { | |
efb6c264 | 307 | cMin=11; |
8e6cc59c | 308 | cMax=40; |
309 | } | |
310 | else if (centrality == 2) { | |
311 | cMin=41; | |
8e6cc59c | 312 | cMax=80; |
313 | } | |
efb6c264 | 314 | else { |
315 | Printf("ERROR: Centrality: %d not defined !!! ERROR", centrality); | |
316 | return; | |
317 | } | |
318 | ||
319 | Double_t nevents = hCentralityX->Integral(cMin,cMax); | |
8e6cc59c | 320 | nr1 ->Scale(1./nevents) ; |
321 | nr1int->Scale(1./nevents) ; | |
322 | nr2 ->Scale(1./nevents) ; | |
323 | nr2int->Scale(1./nevents) ; | |
8e6cc59c | 324 | |
325 | ||
8e6cc59c | 326 | mr1->Write(0,TObject::kOverwrite) ; |
327 | sr1->Write(0,TObject::kOverwrite) ; | |
328 | ar1->Write(0,TObject::kOverwrite) ; | |
329 | br1->Write(0,TObject::kOverwrite) ; | |
330 | nr1->Write(0,TObject::kOverwrite) ; | |
331 | nr1int->Write(0,TObject::kOverwrite) ; | |
332 | ar2->Write(0,TObject::kOverwrite) ; | |
333 | br2->Write(0,TObject::kOverwrite) ; | |
334 | cr2->Write(0,TObject::kOverwrite) ; | |
335 | mr2->Write(0,TObject::kOverwrite) ; | |
336 | sr2->Write(0,TObject::kOverwrite) ; | |
337 | nr2->Write(0,TObject::kOverwrite) ; | |
338 | nr2int->Write(0,TObject::kOverwrite) ; | |
8e6cc59c | 339 | |
efb6c264 | 340 | |
341 | outFile->Close(); | |
342 | delete outFile; | |
343 | ||
344 | file->Close(); | |
345 | delete file; | |
346 | ||
8e6cc59c | 347 | } |
348 | ||
349 | //----------------------------------------------------------------------------- | |
350 | Double_t PeakPosition(Double_t pt){ | |
351 | //Fit to the measured peak position | |
352 | return 4.99292e-003*exp(-pt*9.32300e-001)+1.34944e-001 ; | |
353 | } | |
354 | //----------------------------------------------------------------------------- | |
355 | Double_t PeakWidth(Double_t pt){ | |
356 | //fit to the measured peak width | |
357 | Double_t a=0.0068 ; | |
358 | Double_t b=0.0025 ; | |
359 | Double_t c=0.000319 ; | |
360 | return TMath::Sqrt(a*a+b*b/pt/pt+c*c*pt*pt) ; | |
361 | } | |
362 | ||
363 | //----------------------------------------------------------------------------- | |
364 | Double_t CB(Double_t * x, Double_t * par){ | |
365 | //Parameterization of Real/Mixed ratio | |
366 | Double_t m=par[1] ; | |
367 | Double_t s=par[2] ; | |
368 | Double_t dx=(x[0]-m)/s ; | |
369 | return par[0]*exp(-dx*dx/2.)+par[3]+par[4]*(x[0]-kMean) ; | |
370 | } | |
371 | ||
372 | //----------------------------------------------------------------------------- | |
373 | Double_t CB2(Double_t * x, Double_t * par){ | |
374 | //Another parameterization of Real/Mixed ratio7TeV/README | |
375 | Double_t m=par[1] ; | |
376 | Double_t s=par[2] ; | |
377 | Double_t dx=(x[0]-m)/s ; | |
378 | return par[0]*exp(-dx*dx/2.)+par[3]+par[4]*(x[0]-kMean)+par[5]*(x[0]-kMean)*(x[0]-kMean) ; | |
379 | } | |
380 | //----------------------------------------------------------------------------- | |
381 | Double_t CBs(Double_t * x, Double_t * par){ | |
382 | //Parameterizatin of signal | |
383 | Double_t m=par[1] ; | |
384 | Double_t s=par[2] ; | |
385 | Double_t dx=(x[0]-m)/s ; | |
386 | return par[0]*exp(-dx*dx/2.)/TMath::Sqrt(TMath::TwoPi())/s+par[3] ; | |
387 | } | |
388 | //----------------------------------------------------------------------------- | |
389 | Double_t BG1(Double_t * x, Double_t * par){ | |
390 | //Normalizatino of Mixed | |
391 | return par[0]+par[1]*(x[0]-kMean) ; | |
392 | } | |
393 | //----------------------------------------------------------------------------- | |
394 | Double_t BG2(Double_t * x, Double_t * par){ | |
395 | //Another normalization of Mixed | |
396 | return par[0]+par[1]*(x[0]-kMean)+par[2]*(x[0]-kMean)*(x[0]-kMean) ; | |
397 | } | |
398 | ||
399 | ||
400 | //----------------------------------------------------------------------------- | |
401 | PPRstyle() | |
402 | { | |
403 | ||
404 | ////////////////////////////////////////////////////////////////////// | |
405 | // | |
406 | // ROOT style macro for the TRD TDR | |
407 | // | |
408 | ////////////////////////////////////////////////////////////////////// | |
409 | ||
410 | gStyle->SetPalette(1); | |
411 | gStyle->SetCanvasBorderMode(-1); | |
412 | gStyle->SetCanvasBorderSize(1); | |
413 | gStyle->SetCanvasColor(10); | |
414 | ||
415 | gStyle->SetFrameFillColor(10); | |
416 | gStyle->SetFrameBorderSize(1); | |
417 | gStyle->SetFrameBorderMode(-1); | |
418 | gStyle->SetFrameLineWidth(1.2); | |
419 | gStyle->SetFrameLineColor(1); | |
420 | ||
421 | gStyle->SetHistFillColor(0); | |
422 | gStyle->SetHistLineWidth(1); | |
423 | gStyle->SetHistLineColor(1); | |
424 | ||
425 | gStyle->SetPadColor(10); | |
426 | gStyle->SetPadBorderSize(1); | |
427 | gStyle->SetPadBorderMode(-1); | |
428 | ||
429 | gStyle->SetStatColor(10); | |
430 | gStyle->SetTitleColor(kBlack,"X"); | |
431 | gStyle->SetTitleColor(kBlack,"Y"); | |
432 | ||
433 | gStyle->SetLabelSize(0.04,"X"); | |
434 | gStyle->SetLabelSize(0.04,"Y"); | |
435 | gStyle->SetLabelSize(0.04,"Z"); | |
436 | gStyle->SetTitleSize(0.04,"X"); | |
437 | gStyle->SetTitleSize(0.04,"Y"); | |
438 | gStyle->SetTitleSize(0.04,"Z"); | |
439 | gStyle->SetTitleFont(42,"X"); | |
440 | gStyle->SetTitleFont(42,"Y"); | |
441 | gStyle->SetTitleFont(42,"X"); | |
442 | gStyle->SetLabelFont(42,"X"); | |
443 | gStyle->SetLabelFont(42,"Y"); | |
444 | gStyle->SetLabelFont(42,"Z"); | |
445 | gStyle->SetStatFont(42); | |
446 | ||
447 | gStyle->SetTitleOffset(1.0,"X"); | |
448 | gStyle->SetTitleOffset(1.4,"Y"); | |
449 | ||
450 | gStyle->SetFillColor(kWhite); | |
451 | gStyle->SetTitleFillColor(kWhite); | |
452 | ||
453 | gStyle->SetOptDate(0); | |
454 | gStyle->SetOptTitle(1); | |
455 | gStyle->SetOptStat(0); | |
456 | gStyle->SetOptFit(111); | |
457 | ||
458 | } | |
459 | ||
efb6c264 | 460 | // For different tasks (e.g. triggers) |
461 | void MakeMmixPi0() | |
462 | { | |
463 | for(int cent = 0; cent < 1; ++cent ) { | |
464 | MakeMmixPi0("AnalysisResults.root", "PHOSPi0Flow/PHOSPi0FlowCoutput1", cent, "CPV", "imgs/kCentral/"); | |
465 | //MakeMmixPi0("AnalysisResults.root", "AliPHOSPi0Flow_SemiCentral/AliPHOSPi0Flow_SemiCentralCoutput1", cent, "CPV", "imgs/kSemiCentral/"); | |
466 | //MakeMmixPi0("AnalysisResults.root", "AliPHOSPi0Flow_MB/AliPHOSPi0Flow_MBCoutput1", cent, "CPV", "imgs/kMB/"); | |
467 | //MakeMmixPi0("AnalysisResults.root", "AliPHOSPi0Flow_PHOSPb/AliPHOSPi0Flow_PHOSPbCoutput1", cent, "CPV", "imgs/kPHOSPb/"); | |
468 | } | |
469 | } |