1 #include "AliHBTNonId3DCorrFctn.h"
5 ///////////////////////////////////////////////////////
7 // AliHBTNonId3DCorrFctn.h //
9 // Class for calculating 3D non-id correlation //
12 ///////////////////////////////////////////////////////
14 ClassImp(AliHBTNonId3DCorrFctn)
16 AliHBTNonId3DCorrFctn::AliHBTNonId3DCorrFctn(const char* name, const char* title):
17 AliHBTOnePairFctn1D(name,title),
45 /******************************************************************/
46 AliHBTNonId3DCorrFctn::AliHBTNonId3DCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval):
47 AliHBTOnePairFctn1D(name,title,nbins,maxXval,minXval),
76 /******************************************************************/
77 AliHBTNonId3DCorrFctn::AliHBTNonId3DCorrFctn(const AliHBTNonId3DCorrFctn& in):
78 AliHBTOnePairFctn1D(in),
107 /******************************************************************/
109 AliHBTNonId3DCorrFctn::~AliHBTNonId3DCorrFctn()
119 delete fRatOutNOverP;
127 delete fRatSideNOverP;
135 delete fRatLongNOverP;
139 /******************************************************************/
140 void AliHBTNonId3DCorrFctn::WriteFunction()
143 Double_t outPscale = Scale(fNumOutP,fDenOutP);
144 cout<<"outPscale = "<<outPscale<<endl;
145 fRatOutP->Divide(fNumOutP,fDenOutP,outPscale);
147 Double_t outNscale = Scale(fNumOutN,fDenOutN);
148 cout<<"outNscale = "<<outNscale<<endl;
149 fRatOutN->Divide(fNumOutN,fDenOutN,outNscale);
151 fRatOutNOverP->Divide(fRatOutN,fRatOutP);
154 Double_t sidePscale = Scale(fNumSideP,fDenSideP);
155 fRatSideP->Divide(fNumSideP,fDenSideP,sidePscale);
157 Double_t sideNscale = Scale(fNumSideN,fDenSideN);
158 fRatSideN->Divide(fNumSideN,fDenSideN,sideNscale);
160 fRatSideNOverP->Divide(fRatSideN,fRatSideP);
163 Double_t longPscale = Scale(fNumLongP,fDenLongP);
164 fRatLongP->Divide(fNumLongP,fDenLongP,longPscale);
166 Double_t longNscale = Scale(fNumLongN,fDenLongN);
167 fRatLongN->Divide(fNumLongN,fDenLongN,longNscale);
169 fRatLongNOverP->Divide(fRatLongN,fRatLongP);
178 fRatOutNOverP->Write();
187 fRatSideNOverP->Write();
196 fRatLongNOverP->Write();
200 //-------------------------------------
201 void AliHBTNonId3DCorrFctn::ProcessSameEventParticles(AliHBTPair* pair)
203 //Fills the numerator using pair from the same event
204 pair = CheckPair(pair);
205 if(pair == 0x0) return;
207 double tKStar = TMath::Abs(pair->GetKStar());
208 double tKStarOut = pair->GetKStarOut();
209 double tKStarSide = pair->GetKStarSide();
210 double tKStarLong = pair->GetKStarLong();
214 fNumOutP->Fill(tKStar);
218 fNumOutN->Fill(tKStar);
223 fNumSideP->Fill(tKStar);
227 fNumSideN->Fill(tKStar);
232 fNumLongP->Fill(tKStar);
236 fNumLongN->Fill(tKStar);
240 /****************************************************************/
241 void AliHBTNonId3DCorrFctn::Init()
243 AliHBTOnePairFctn1D::Init();
251 fRatOutNOverP->Reset();
260 fRatSideNOverP->Reset();
269 fRatLongNOverP->Reset();
271 /****************************************************************/
274 void AliHBTNonId3DCorrFctn::ProcessDiffEventParticles(AliHBTPair* pair)
277 double tKStar = TMath::Abs(pair->GetKStar());
278 double tKStarOut = pair->GetKStarOut();
279 double tKStarSide = pair->GetKStarSide();
280 double tKStarLong = pair->GetKStarLong();
284 fDenOutP->Fill(tKStar);
288 fDenOutN->Fill(tKStar);
293 fDenSideP->Fill(tKStar);
297 fDenSideN->Fill(tKStar);
302 fDenLongP->Fill(tKStar);
306 fDenLongN->Fill(tKStar);
312 /******************************************************************/
314 void AliHBTNonId3DCorrFctn::BuildHistos(Int_t nbins, Float_t max, Float_t min)
317 AliHBTFunction1D::BuildHistos(nbins,max,min);
319 TString nameNumOutP = "NumOutP";
320 TString nameDenOutP = "DenOutP";
321 TString nameRatOutP = "RatOutP";
322 TString nameNumOutN = "NumOutN";
323 TString nameDenOutN = "DenOutN";
324 TString nameRatOutN = "RatOutN";
325 TString nameRatOut = "RatOut";
326 TString nameRatOutNOverP = "RatOutNOverP";
327 TString nameNumSideP = "NumSideP";
328 TString nameDenSideP = "DenSideP";
329 TString nameRatSideP = "RatSideP";
330 TString nameNumSideN = "NumSideN";
331 TString nameDenSideN = "DenSideN";
332 TString nameRatSideN = "RatSideN";
333 TString nameRatSide = "RatSide";
334 TString nameRatSideNOverP = "RatSideNOverP";
335 TString nameNumLongP = "NumLongP";
336 TString nameDenLongP = "DenLongP";
337 TString nameRatLongP = "RatLongP";
338 TString nameNumLongN = "NumLongN";
339 TString nameDenLongN = "DenLongN";
340 TString nameRatLongN = "RatLongN";
341 TString nameRatLong = "RatLong";
342 TString nameRatLongNOverP = "RatLongNOverP";
344 fNumOutP = new TH1D(nameNumOutP.Data(),nameNumOutP.Data(),nbins,min,max);
345 fDenOutP = new TH1D(nameDenOutP.Data(),nameDenOutP.Data(),nbins,min,max);
346 fRatOutP = new TH1D(nameRatOutP.Data(),nameRatOutP.Data(),nbins,min,max);
348 fNumOutN = new TH1D(nameNumOutN.Data(),nameNumOutN.Data(),nbins,min,max);
349 fDenOutN = new TH1D(nameDenOutN.Data(),nameDenOutN.Data(),nbins,min,max);
350 fRatOutN = new TH1D(nameRatOutN.Data(),nameRatOutN.Data(),nbins,min,max);
352 fRatOut = new TH1D(nameRatOut.Data(),nameRatOut.Data(),nbins,min,max);
353 fRatOutNOverP = new TH1D(nameRatOutNOverP.Data(),nameRatOutNOverP.Data(),nbins,min,max);
355 fNumSideP = new TH1D(nameNumSideP.Data(),nameNumSideP.Data(),nbins,min,max);
356 fDenSideP = new TH1D(nameDenSideP.Data(),nameDenSideP.Data(),nbins,min,max);
357 fRatSideP = new TH1D(nameRatSideP.Data(),nameRatSideP.Data(),nbins,min,max);
359 fNumSideN = new TH1D(nameNumSideN.Data(),nameNumSideN.Data(),nbins,min,max);
360 fDenSideN = new TH1D(nameDenSideN.Data(),nameDenSideN.Data(),nbins,min,max);
361 fRatSideN = new TH1D(nameRatSideN.Data(),nameRatSideN.Data(),nbins,min,max);
363 fRatSide = new TH1D(nameRatSide.Data(),nameRatSide.Data(),nbins,min,max);
364 fRatSideNOverP = new TH1D(nameRatSideNOverP.Data(),nameRatSideNOverP.Data(),nbins,min,max);
366 fNumLongP = new TH1D(nameNumLongP.Data(),nameNumLongP.Data(),nbins,min,max);
367 fDenLongP = new TH1D(nameDenLongP.Data(),nameDenLongP.Data(),nbins,min,max);
368 fRatLongP = new TH1D(nameRatLongP.Data(),nameRatLongP.Data(),nbins,min,max);
370 fNumLongN = new TH1D(nameNumLongN.Data(),nameNumLongN.Data(),nbins,min,max);
371 fDenLongN = new TH1D(nameDenLongN.Data(),nameDenLongN.Data(),nbins,min,max);
372 fRatLongN = new TH1D(nameRatLongN.Data(),nameRatLongN.Data(),nbins,min,max);
374 fRatLong = new TH1D(nameRatLong.Data(),nameRatLong.Data(),nbins,min,max);
375 fRatLongNOverP = new TH1D(nameRatLongNOverP.Data(),nameRatLongNOverP.Data(),nbins,min,max);
385 fRatOutNOverP->Sumw2();
393 fRatSideNOverP->Sumw2();
401 fRatLongNOverP->Sumw2();
404 TH1* AliHBTNonId3DCorrFctn::GetResult()