1 #include "AliHBTPIDPurityFctns.h"
2 //_______________________________________________________________________________
3 /////////////////////////////////////////////////////////////////////////////////
5 // class AliHBTMonPhiResolutionVsPtFctn;
6 // class AliHBTMonThetaResolutionVsPtFctn;
8 // file: AliHBTPIDPurityFctns.cxx AliHBTPIDPurityFctns.h
10 // Caution: On 2D plots on X axis in simulated values
11 // That is contrary to two-particle resolutions where it is reconstructed one
13 // added by Piotr.Skowronski@cern.ch
16 //////////////////////////////////////////////////////////////////////////////////
19 /******************************************************************/
20 /******************************************************************/
21 /******************************************************************/
22 AliHBTQInvCorrelFctnPerfectPID f;
24 ClassImp(AliHBTMonPIDPurityVsPtFctn)
26 AliHBTMonPIDPurityVsPtFctn::AliHBTMonPIDPurityVsPtFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
27 AliHBTMonTwoParticleFctn1D(nbins,maxXval,minXval),
32 Rename("pidpurityvspt","PIDPurityVsPt");
35 /******************************************************************/
37 AliHBTMonPIDPurityVsPtFctn::~AliHBTMonPIDPurityVsPtFctn()
43 /******************************************************************/
44 void AliHBTMonPIDPurityVsPtFctn::Write()
46 AliHBTMonitorFunction::Write();
50 /******************************************************************/
52 void AliHBTMonPIDPurityVsPtFctn::Init()
55 if (AliHBTParticle::GetDebug()>0) Info("Init","%s",GetName());
59 Warning("Init","Function has NULL result histogram!");
65 TString numstr = fName + " Good"; //title and name of the
67 TAxis* xax = fResult->GetXaxis();
68 fGood = new TH1D(numstr,numstr,xax->GetNbins(),xax->GetXmin(),xax->GetXmax());
73 TString numstr = fName + " All"; //title and name of the
75 TAxis* xax = fResult->GetXaxis();
76 fAll = new TH1D(numstr,numstr,xax->GetNbins(),xax->GetXmin(),xax->GetXmax());
80 fResult->SetDirectory(0x0);
83 fGood->SetDirectory(0x0);
86 fAll->SetDirectory(0x0);
89 if (AliHBTParticle::GetDebug()>0) Info("Init","%s Done.",GetName());
92 /******************************************************************/
94 void AliHBTMonPIDPurityVsPtFctn::Rename(const Char_t * name)
96 //Rename fuctions and all histograms belonging to it
102 TString numstr = fName + " Result"; //title and name of the result histogram
103 fResult->SetName(numstr);
104 fResult->SetTitle(numstr);
109 TString numstr = fName + " Good";
110 fGood->SetName(numstr);
111 fGood->SetTitle(numstr);
116 TString numstr = fName + " All";
117 fAll->SetName(numstr);
118 fAll->SetTitle(numstr);
121 /******************************************************************/
123 void AliHBTMonPIDPurityVsPtFctn::Rename(const Char_t * name, const Char_t * title)
125 //renames and retitle the function and histograms
132 TString numstrn = fName + " Result"; //name of the result histogram
133 TString numstrt = fTitle + " Result"; //title of the result histogram
134 fResult->SetName(numstrn);
135 fResult->SetTitle(numstrt);
139 TString numstrn = fName + " Good"; //name of the Good histogram
140 TString numstrt = fTitle + " Good"; //title of the Good histogram
141 fGood->SetName(numstrn);
142 fGood->SetTitle(numstrt);
147 TString numstrn = fName + " All"; //name of the All histogram
148 TString numstrt = fTitle + " All"; //title of the All histogram
149 fAll->SetName(numstrn);
150 fAll->SetTitle(numstrt);
154 /******************************************************************/
156 TH1* AliHBTMonPIDPurityVsPtFctn::GetResult()
158 //Returns the result of the fuction
159 //that is histogram with effciency and contamination
161 fResult->Divide(fGood,fAll);
164 /******************************************************************/
166 void AliHBTMonPIDPurityVsPtFctn::Process(AliHBTParticle * track,AliHBTParticle * part)
168 //process the particle/track
169 Double_t pt = part->Pt();
171 if (track->GetPdgCode() == part->GetPdgCode())
177 // Info("Process","Catched pid impurity ...");
181 /******************************************************************/
182 /******************************************************************/
183 /******************************************************************/
185 ClassImp(AliHBTMonPIDContaminationVsPtFctn)
187 AliHBTMonPIDContaminationVsPtFctn::AliHBTMonPIDContaminationVsPtFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
188 AliHBTMonTwoParticleFctn1D(nbins,maxXval,minXval),
193 Rename("pidcontaminationvspt","PIDContaminationVsPt");
195 /******************************************************************/
197 AliHBTMonPIDContaminationVsPtFctn::~AliHBTMonPIDContaminationVsPtFctn()
203 /******************************************************************/
205 void AliHBTMonPIDContaminationVsPtFctn::Write()
207 //Writes the function results
208 AliHBTMonitorFunction::Write();
212 /******************************************************************/
214 void AliHBTMonPIDContaminationVsPtFctn::Init()
216 //Initializes fuction
217 if (AliHBTParticle::GetDebug()>0) Info("Init","%s",GetName());
221 Warning("Init","Function has NULL result histogram!");
227 TString numstr = fName + " Wrong"; //title and name of the
229 TAxis* xax = fResult->GetXaxis();
230 fWrong = new TH1D(numstr,numstr,xax->GetNbins(),xax->GetXmin(),xax->GetXmax());
235 TString numstr = fName + " All"; //title and name of the
237 TAxis* xax = fResult->GetXaxis();
238 fAll = new TH1D(numstr,numstr,xax->GetNbins(),xax->GetXmin(),xax->GetXmax());
241 fResult->SetDirectory(0x0);
244 fWrong->SetDirectory(0x0);
247 fAll->SetDirectory(0x0);
250 if (AliHBTParticle::GetDebug()>0) Info("Init","%s Done.",GetName());
253 /******************************************************************/
255 void AliHBTMonPIDContaminationVsPtFctn::Rename(const Char_t * name)
257 //Rename fuctions and all histograms belonging to it
263 TString numstr = fName + " Result"; //title and name of the result histogram
264 fResult->SetName(numstr);
265 fResult->SetTitle(numstr);
269 TString numstr = fName + " Wrong";
270 fWrong->SetName(numstr);
271 fWrong->SetTitle(numstr);
276 TString numstrn = fName + " All"; //name of the All histogram
277 TString numstrt = fTitle + " All"; //title of the All histogram
278 fAll->SetName(numstrn);
279 fAll->SetTitle(numstrt);
282 /******************************************************************/
284 void AliHBTMonPIDContaminationVsPtFctn::Rename(const Char_t * name, const Char_t * title)
286 //renames and retitle the function and histograms
293 TString numstrn = fName + " Result"; //name of the result histogram
294 TString numstrt = fTitle + " Result"; //title of the result histogram
295 fResult->SetName(numstrn);
296 fResult->SetTitle(numstrt);
300 TString numstrn = fName + " Wrong"; //name of the Wrong histogram
301 TString numstrt = fTitle + " Wrong"; //title of the Wrong histogram
302 fWrong->SetName(numstrn);
303 fWrong->SetTitle(numstrt);
308 TString numstr = fName + " All";
309 fAll->SetName(numstr);
310 fAll->SetTitle(numstr);
314 /******************************************************************/
316 TH1* AliHBTMonPIDContaminationVsPtFctn::GetResult()
318 //Returns the result of the fuction
319 //that is histogram with effciency and contamination
321 fResult->Divide(fWrong,fAll);
324 /******************************************************************/
326 void AliHBTMonPIDContaminationVsPtFctn::Process(AliHBTParticle * track, AliHBTParticle * part)
328 //process the particle/track
329 Double_t pt = part->Pt();
332 if (track->GetPdgCode() != part->GetPdgCode())
334 // Info("Process","Catched contamination");
335 // track->Print();part->Print();
340 /******************************************************************/
341 /******************************************************************/
342 /******************************************************************/
343 ClassImp(AliHBTQInvCorrelFctnPerfectPID)
345 AliHBTQInvCorrelFctnPerfectPID::AliHBTQInvCorrelFctnPerfectPID(Int_t nbins, Double_t maxXval, Double_t minXval):
346 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
349 fWriteNumAndDen = kTRUE;//change default behaviour
350 Rename("qinvcfprfctpid","Q_{inv} Correlation Function Perfect PID");
352 /*************************************************************/
354 void AliHBTQInvCorrelFctnPerfectPID::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
357 if (trackpair->Particle1()->GetPid() != partpair->Particle1()->GetPid()) return;
358 if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) return;
360 trackpair = CheckPair(trackpair);
361 if (trackpair == 0x0) return;
362 partpair = CheckPair(partpair);
363 if (partpair == 0x0) return;
365 fNumerator->Fill(trackpair->GetQInv());
368 /*************************************************************/
369 void AliHBTQInvCorrelFctnPerfectPID::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
372 if (trackpair->Particle1()->GetPid() != partpair->Particle1()->GetPid()) return;
373 if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) return;
375 trackpair = CheckPair(trackpair);
376 if (trackpair == 0x0) return;
377 partpair = CheckPair(partpair);
378 if (partpair == 0x0) return;
380 fDenominator->Fill(trackpair->GetQInv());
382 /*************************************************************/
384 TH1* AliHBTQInvCorrelFctnPerfectPID::GetResult()
386 //returns the scaled ratio
389 fRatio = GetRatio(Scale());
392 /*************************************************************/
393 /******************************************************************/
394 /******************************************************************/
395 /******************************************************************/
397 ClassImp(AliHBTWeightQInvCorrelFctnPerfectPID)
399 AliHBTWeightQInvCorrelFctnPerfectPID::AliHBTWeightQInvCorrelFctnPerfectPID(Int_t nbins, Double_t maxXval, Double_t minXval):
400 AliHBTTwoPairFctn1D(nbins,maxXval,minXval)
403 fWriteNumAndDen = kTRUE;//change default behaviour
404 Rename("wqinvcfprfctpid","Q_{inv} Weight Correlation Function Perfect PID");
406 /*************************************************************/
408 void AliHBTWeightQInvCorrelFctnPerfectPID::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
411 if (trackpair->Particle1()->GetPid() != partpair->Particle1()->GetPid()) return;
412 if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) return;
414 trackpair = CheckPair(trackpair);
415 if (trackpair == 0x0) return;
416 partpair = CheckPair(partpair);
417 if (partpair == 0x0) return;
419 fNumerator->Fill(trackpair->GetQInv(),partpair->GetWeight());
422 /*************************************************************/
423 void AliHBTWeightQInvCorrelFctnPerfectPID::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
426 if (trackpair->Particle1()->GetPid() != partpair->Particle1()->GetPid()) return;
427 if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) return;
429 trackpair = CheckPair(trackpair);
430 if (trackpair == 0x0) return;
431 partpair = CheckPair(partpair);
432 if (partpair == 0x0) return;
434 fDenominator->Fill(trackpair->GetQInv());
436 /*************************************************************/
438 TH1* AliHBTWeightQInvCorrelFctnPerfectPID::GetResult()
440 //returns the scaled ratio
443 fRatio = GetRatio(Scale());
448 /******************************************************************/
449 /******************************************************************/
450 /******************************************************************/
452 ClassImp(AliHBTWeightQOutSQideQLongFctnPerfectPID)
454 AliHBTWeightQOutSQideQLongFctnPerfectPID::AliHBTWeightQOutSQideQLongFctnPerfectPID
455 (Int_t nXbins, Double_t maxXval, Double_t minXval,
456 Int_t nYbins, Double_t maxYval, Double_t minYval,
457 Int_t nZbins, Double_t maxZval, Double_t minZval):
458 AliHBTTwoPairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval)
461 fWriteNumAndDen = kTRUE;//change default behaviour
462 Rename("wqoslprfctpid","Q_{out}-Q_{side}-Q_{long} Weight Fctn with perfect PID");
464 /*************************************************************/
466 void AliHBTWeightQOutSQideQLongFctnPerfectPID::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
469 if (trackpair->Particle1()->GetPid() != partpair->Particle1()->GetPid()) return;
470 if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) return;
472 trackpair = CheckPair(trackpair);
473 if (trackpair == 0x0) return;
474 partpair = CheckPair(partpair);
475 if (partpair == 0x0) return;
477 Double_t weight = partpair->GetWeight();
478 Double_t out = TMath::Abs(trackpair->GetQOutCMSLC());
479 Double_t side = TMath::Abs(trackpair->GetQSideCMSLC());
480 Double_t lon = TMath::Abs(trackpair->GetQLongCMSLC());
481 fNumerator->Fill(out,side,lon,weight);
483 /*************************************************************/
485 void AliHBTWeightQOutSQideQLongFctnPerfectPID::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
488 if (trackpair->Particle1()->GetPid() != partpair->Particle1()->GetPid()) return;
489 if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) return;
491 trackpair = CheckPair(trackpair);
492 if (trackpair == 0x0) return;
493 partpair = CheckPair(partpair);
494 if (partpair == 0x0) return;
496 Double_t out = TMath::Abs(trackpair->GetQOutCMSLC());
497 Double_t side = TMath::Abs(trackpair->GetQSideCMSLC());
498 Double_t lon = TMath::Abs(trackpair->GetQLongCMSLC());
499 fDenominator->Fill(out,side,lon);
501 /******************************************************************/
503 TH1* AliHBTWeightQOutSQideQLongFctnPerfectPID::GetResult()
505 //returns the scaled ratio
507 fRatio = GetRatio(Scale());
512 /******************************************************************/
513 /******************************************************************/
514 /******************************************************************/
516 ClassImp(AliHBTQOutSQideQLongFctnPerfectPID)
518 AliHBTQOutSQideQLongFctnPerfectPID::AliHBTQOutSQideQLongFctnPerfectPID
519 (Int_t nXbins, Double_t maxXval, Double_t minXval,
520 Int_t nYbins, Double_t maxYval, Double_t minYval,
521 Int_t nZbins, Double_t maxZval, Double_t minZval):
522 AliHBTTwoPairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval)
525 fWriteNumAndDen = kTRUE;//change default behaviour
526 Rename("qoslprfctpid","Q_{out}-Q_{side}-Q_{long} Fctn with perfect PID");
528 /*************************************************************/
530 void AliHBTQOutSQideQLongFctnPerfectPID::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
533 if (trackpair->Particle1()->GetPid() != partpair->Particle1()->GetPid()) return;
534 if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) return;
536 trackpair = CheckPair(trackpair);
537 if (trackpair == 0x0) return;
538 partpair = CheckPair(partpair);
539 if (partpair == 0x0) return;
541 Double_t out = TMath::Abs(trackpair->GetQOutCMSLC());
542 Double_t side = TMath::Abs(trackpair->GetQSideCMSLC());
543 Double_t lon = TMath::Abs(trackpair->GetQLongCMSLC());
544 fNumerator->Fill(out,side,lon);
546 /*************************************************************/
548 void AliHBTQOutSQideQLongFctnPerfectPID::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
551 if (trackpair->Particle1()->GetPid() != partpair->Particle1()->GetPid()) return;
552 if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) return;
554 trackpair = CheckPair(trackpair);
555 if (trackpair == 0x0) return;
556 partpair = CheckPair(partpair);
557 if (partpair == 0x0) return;
559 Double_t out = TMath::Abs(trackpair->GetQOutCMSLC());
560 Double_t side = TMath::Abs(trackpair->GetQSideCMSLC());
561 Double_t lon = TMath::Abs(trackpair->GetQLongCMSLC());
562 fDenominator->Fill(out,side,lon);
564 /******************************************************************/
566 TH1* AliHBTQOutSQideQLongFctnPerfectPID::GetResult()
568 //returns the scaled ratio
570 fRatio = GetRatio(Scale());
574 /******************************************************************/
575 /******************************************************************/
576 /******************************************************************/
580 ClassImp(AliHBTPairPIDProbVsQInvFctn)
582 AliHBTPairPIDProbVsQInvFctn::AliHBTPairPIDProbVsQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval):
583 AliHBTOnePairFctn1D(nbins,maxXval,minXval)
585 fWriteNumAndDen = kTRUE;//change default behaviour
586 Rename("qinvpidpur","Q_{inv} Function");
588 /******************************************************************/
590 TH1* AliHBTPairPIDProbVsQInvFctn::GetResult()
592 //returns the scaled ratio
594 fRatio = GetRatio(Scale());
597 /******************************************************************/
599 void AliHBTPairPIDProbVsQInvFctn::ProcessSameEventParticles(AliHBTPair* pair)
601 //Fills the numerator using pair from the same event
602 pair = CheckPair(pair);
603 if(pair) fNumerator->Fill(pair->GetQInv(),pair->GetPIDProb());
605 /******************************************************************/
607 void AliHBTPairPIDProbVsQInvFctn::ProcessDiffEventParticles(AliHBTPair* pair)
609 //Fills the denumerator using mixed pairs
610 pair = CheckPair(pair);
611 if(pair) fDenominator->Fill(pair->GetQInv(),pair->GetPIDProb());
614 /******************************************************************/
615 /******************************************************************/
616 /******************************************************************/
618 ClassImp(AliHBTPairPIDProbVsQOutSQideQLongFctn)
620 AliHBTPairPIDProbVsQOutSQideQLongFctn::AliHBTPairPIDProbVsQOutSQideQLongFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
621 Int_t nYbins, Double_t maxYval, Double_t minYval,
622 Int_t nZbins, Double_t maxZval, Double_t minZval):
623 AliHBTOnePairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval)
626 fWriteNumAndDen = kTRUE;//change default behaviour
627 Rename("qoslpidpur","Pair PID Probablilty .vs. Q_{out}-Q_{side}-Q_{long} Fctn");
629 /*************************************************************/
631 void AliHBTPairPIDProbVsQOutSQideQLongFctn::ProcessSameEventParticles(AliHBTPair* pair)
634 pair = CheckPair(pair);
635 if (pair == 0x0) return;
636 Double_t weight = pair->GetPIDProb();
637 Double_t out = TMath::Abs(pair->GetQOutCMSLC());
638 Double_t side = TMath::Abs(pair->GetQSideCMSLC());
639 Double_t lon = TMath::Abs(pair->GetQLongCMSLC());
640 fNumerator->Fill(out,side,lon,weight);
642 /*************************************************************/
644 void AliHBTPairPIDProbVsQOutSQideQLongFctn::ProcessDiffEventParticles(AliHBTPair* pair)
647 pair = CheckPair(pair);
648 if (pair == 0x0) return;
649 Double_t weight = pair->GetPIDProb();
650 Double_t out = TMath::Abs(pair->GetQOutCMSLC());
651 Double_t side = TMath::Abs(pair->GetQSideCMSLC());
652 Double_t lon = TMath::Abs(pair->GetQLongCMSLC());
653 fDenominator->Fill(out,side,lon,weight);
655 /*************************************************************/
657 TH1* AliHBTPairPIDProbVsQOutSQideQLongFctn::GetResult()
659 //returns the scaled ratio
662 fRatio = GetRatio(Scale());
666 /******************************************************************/
667 /******************************************************************/
668 /******************************************************************/
670 ClassImp(AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID)
672 AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID::AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID(Int_t nXbins, Double_t maxXval, Double_t minXval,
673 Int_t nYbins, Double_t maxYval, Double_t minYval,
674 Int_t nZbins, Double_t maxZval, Double_t minZval):
675 AliHBTTwoPairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval)
679 fWriteNumAndDen = kTRUE;
680 Rename("tteffptthetaphipfctPID","P_{t} \\theta \\phi Two Track Efficiency Function");
683 fNumerator->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]");
684 fNumerator->GetYaxis()->SetTitle("\\Delta \\theta [rad]");
685 fNumerator->GetZaxis()->SetTitle("\\Delta \\phi [rad]");
690 fDenominator->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]");
691 fDenominator->GetYaxis()->SetTitle("\\Delta \\theta [rad]");
692 fDenominator->GetZaxis()->SetTitle("\\Delta \\phi [rad]");
695 /******************************************************************/
697 void AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
700 if (trackpair->Particle1()->GetPid() != partpair->Particle1()->GetPid()) return;
701 if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) return;
703 trackpair = CheckPair(trackpair);
704 if (trackpair == 0x0) return;
705 partpair = CheckPair(partpair);
706 if (partpair == 0x0) return;
708 Double_t x = TMath::Abs(trackpair->GetDeltaPt());
709 Double_t y = TMath::Abs(trackpair->GetDeltaTheta());
710 Double_t z = TMath::Abs(trackpair->GetDeltaPhi());
711 fNumerator->Fill(x,y,z);
713 /******************************************************************/
715 void AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair)
718 if (trackpair->Particle1()->GetPid() != partpair->Particle1()->GetPid()) return;
719 if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) return;
721 trackpair = CheckPair(trackpair);
722 if (trackpair == 0x0) return;
723 partpair = CheckPair(partpair);
724 if (partpair == 0x0) return;
726 Double_t x = TMath::Abs(trackpair->GetDeltaPt());
727 Double_t y = TMath::Abs(trackpair->GetDeltaTheta());
728 Double_t z = TMath::Abs(trackpair->GetDeltaPhi());
729 fDenominator->Fill(x,y,z);
731 /******************************************************************/
733 TH1* AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID::GetResult()
735 //returns ratio of numerator and denominator
737 fRatio = GetRatio(Scale());
740 fRatio->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]");
741 fRatio->GetYaxis()->SetTitle("\\Delta \\theta [rad]");
742 fRatio->GetZaxis()->SetTitle("\\Delta \\phi [rad]");
746 /******************************************************************/
747 /******************************************************************/
748 /******************************************************************/
750 ClassImp(AliHBTPairPIDProbVsPtThetaPhiFctn)
752 AliHBTPairPIDProbVsPtThetaPhiFctn::AliHBTPairPIDProbVsPtThetaPhiFctn(Int_t nXbins, Double_t maxXval, Double_t minXval,
753 Int_t nYbins, Double_t maxYval, Double_t minYval,
754 Int_t nZbins, Double_t maxZval, Double_t minZval):
755 AliHBTOnePairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval)
758 fWriteNumAndDen = kTRUE;//change default behaviour
759 Rename("ptthetaphipidpur","Pair PID Probablilty .vs. \\Delta P_{t}-\\Delta \\theta-\\Delta \\phi Fctn");
762 fNumerator->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]");
763 fNumerator->GetYaxis()->SetTitle("\\Delta \\theta [rad]");
764 fNumerator->GetZaxis()->SetTitle("\\Delta \\phi [rad]");
769 fDenominator->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]");
770 fDenominator->GetYaxis()->SetTitle("\\Delta \\theta [rad]");
771 fDenominator->GetZaxis()->SetTitle("\\Delta \\phi [rad]");
775 /*************************************************************/
777 void AliHBTPairPIDProbVsPtThetaPhiFctn::ProcessSameEventParticles(AliHBTPair* pair)
780 pair = CheckPair(pair);
781 if (pair == 0x0) return;
782 Double_t weight = pair->GetPIDProb();
783 Double_t pt = TMath::Abs(pair->GetDeltaPt());
784 Double_t theta = TMath::Abs(pair->GetDeltaTheta());
785 Double_t phi = TMath::Abs(pair->GetDeltaPhi());
786 fNumerator->Fill(pt,theta,phi,weight);
788 /*************************************************************/
790 void AliHBTPairPIDProbVsPtThetaPhiFctn::ProcessDiffEventParticles(AliHBTPair* pair)
793 pair = CheckPair(pair);
794 if (pair == 0x0) return;
795 Double_t weight = pair->GetPIDProb();
796 Double_t pt = TMath::Abs(pair->GetDeltaPt());
797 Double_t phi = TMath::Abs(pair->GetDeltaTheta());
798 Double_t theta = TMath::Abs(pair->GetDeltaPhi());
799 fDenominator->Fill(pt,theta,phi,weight);
801 /*************************************************************/
803 TH1* AliHBTPairPIDProbVsPtThetaPhiFctn::GetResult()
805 //returns the scaled ratio
808 fRatio = GetRatio(Scale());
811 fRatio->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]");
812 fRatio->GetYaxis()->SetTitle("\\Delta \\theta [rad]");
813 fRatio->GetZaxis()->SetTitle("\\Delta \\phi [rad]");