X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HBTAN%2FAliHBTPIDPurityFctns.cxx;h=2e8f2e470589cc1d2cf1505d155f1fa32dacb8cb;hb=55d460483b6227b2554af960eb2672b4a03c43fd;hp=89166db84469a64605eea74f232913694fe3cf58;hpb=81b4075341c2e78daf377054a1bdcd180f28a002;p=u%2Fmrichter%2FAliRoot.git diff --git a/HBTAN/AliHBTPIDPurityFctns.cxx b/HBTAN/AliHBTPIDPurityFctns.cxx index 89166db8446..2e8f2e47058 100644 --- a/HBTAN/AliHBTPIDPurityFctns.cxx +++ b/HBTAN/AliHBTPIDPurityFctns.cxx @@ -7,15 +7,16 @@ // // file: AliHBTPIDPurityFctns.cxx AliHBTPIDPurityFctns.h // -// Caution: On 2D plots on X axis in simulated values -// That is contrary to two-particle resolutions where it is reconstructed one +// Classes for calculating PID purity, efficiency and other things connected with PID +// xxx +// xxx // // added by Piotr.Skowronski@cern.ch -// // ////////////////////////////////////////////////////////////////////////////////// +/******************************************************************/ /******************************************************************/ /******************************************************************/ @@ -32,6 +33,19 @@ AliHBTMonPIDPurityVsPtFctn::AliHBTMonPIDPurityVsPtFctn(Int_t nbins, Double_t max } /******************************************************************/ +AliHBTMonPIDPurityVsPtFctn::AliHBTMonPIDPurityVsPtFctn(const AliHBTMonPIDPurityVsPtFctn& /*in*/): + AliHBTMonTwoParticleFctn1D(), + AliHBTCorrelFunction(), + fGood(0x0), + fAll(0x0) +{ + //cpy constructor + Error("AliHBTMonPIDPurityVsPtFctn(const AliHBTMonPIDPurityVsPtFctn&", + "Functions can not be copied because of histogram names clashes"); +} + +/******************************************************************/ + AliHBTMonPIDPurityVsPtFctn::~AliHBTMonPIDPurityVsPtFctn() { //dtor @@ -39,8 +53,19 @@ AliHBTMonPIDPurityVsPtFctn::~AliHBTMonPIDPurityVsPtFctn() delete fAll; } /******************************************************************/ + +AliHBTMonPIDPurityVsPtFctn& AliHBTMonPIDPurityVsPtFctn::operator= + (const AliHBTMonPIDPurityVsPtFctn& /*in*/) +{ +//assigment operator + Error("operator=","Functions can not be copied because of histogram names clashes"); + return *this; +} +/******************************************************************/ + void AliHBTMonPIDPurityVsPtFctn::Write() { +//Writes a fucntion results AliHBTMonitorFunction::Write(); fGood->Write(); fAll->Write(); @@ -50,7 +75,7 @@ void AliHBTMonPIDPurityVsPtFctn::Write() void AliHBTMonPIDPurityVsPtFctn::Init() { //Initializes fuction - if (AliHBTParticle::GetDebug()>0) Info("Init","%s",GetName()); + if (AliVAODParticle::GetDebug()>0) Info("Init","%s",GetName()); if (fResult == 0x0) { @@ -84,7 +109,7 @@ void AliHBTMonPIDPurityVsPtFctn::Init() fAll->SetDirectory(0x0); fAll->Sumw2(); - if (AliHBTParticle::GetDebug()>0) Info("Init","%s Done.",GetName()); + if (AliVAODParticle::GetDebug()>0) Info("Init","%s Done.",GetName()); } /******************************************************************/ @@ -101,6 +126,7 @@ void AliHBTMonPIDPurityVsPtFctn::Rename(const Char_t * name) fResult->SetName(numstr); fResult->SetTitle(numstr); } + if (fGood) { TString numstr = fName + " Good"; @@ -160,7 +186,7 @@ TH1* AliHBTMonPIDPurityVsPtFctn::GetResult() } /******************************************************************/ -void AliHBTMonPIDPurityVsPtFctn::Process(AliHBTParticle * track,AliHBTParticle * part) +void AliHBTMonPIDPurityVsPtFctn::Process(AliVAODParticle * track,AliVAODParticle * part) { //process the particle/track Double_t pt = part->Pt(); @@ -191,6 +217,20 @@ AliHBTMonPIDContaminationVsPtFctn::AliHBTMonPIDContaminationVsPtFctn(Int_t nbins } /******************************************************************/ +AliHBTMonPIDContaminationVsPtFctn::AliHBTMonPIDContaminationVsPtFctn + (const AliHBTMonPIDContaminationVsPtFctn& /*in*/): + AliHBTMonTwoParticleFctn1D(), + AliHBTCorrelFunction(), + fWrong(0x0), + fAll(0x0) +{ + //cpy constructor + Error("AliHBTMonPIDContaminationVsPtFctn(const AliHBTMonPIDContaminationVsPtFctn&", + "Functions can not be copied because of histogram names clashes"); +} + +/******************************************************************/ + AliHBTMonPIDContaminationVsPtFctn::~AliHBTMonPIDContaminationVsPtFctn() { //dtor @@ -199,6 +239,15 @@ AliHBTMonPIDContaminationVsPtFctn::~AliHBTMonPIDContaminationVsPtFctn() } /******************************************************************/ +AliHBTMonPIDContaminationVsPtFctn& AliHBTMonPIDContaminationVsPtFctn::operator= + (const AliHBTMonPIDContaminationVsPtFctn& /*in*/) +{ +//assigment operator + Error("operator=","Functions can not be copied because of histogram names clashes"); + return *this; +} +/******************************************************************/ + void AliHBTMonPIDContaminationVsPtFctn::Write() { //Writes the function results @@ -211,7 +260,7 @@ void AliHBTMonPIDContaminationVsPtFctn::Write() void AliHBTMonPIDContaminationVsPtFctn::Init() { //Initializes fuction - if (AliHBTParticle::GetDebug()>0) Info("Init","%s",GetName()); + if (AliVAODParticle::GetDebug()>0) Info("Init","%s",GetName()); if (fResult == 0x0) { @@ -244,7 +293,7 @@ void AliHBTMonPIDContaminationVsPtFctn::Init() fAll->SetDirectory(0x0); fAll->Sumw2(); - if (AliHBTParticle::GetDebug()>0) Info("Init","%s Done.",GetName()); + if (AliVAODParticle::GetDebug()>0) Info("Init","%s Done.",GetName()); } /******************************************************************/ @@ -320,7 +369,7 @@ TH1* AliHBTMonPIDContaminationVsPtFctn::GetResult() } /******************************************************************/ -void AliHBTMonPIDContaminationVsPtFctn::Process(AliHBTParticle * track, AliHBTParticle * part) +void AliHBTMonPIDContaminationVsPtFctn::Process(AliVAODParticle * track, AliVAODParticle * part) { //process the particle/track Double_t pt = part->Pt(); @@ -335,6 +384,245 @@ void AliHBTMonPIDContaminationVsPtFctn::Process(AliHBTParticle * track, AliHBTPa } /******************************************************************/ +/******************************************************************/ +/******************************************************************/ +ClassImp(AliHBTQInvCorrelFctnPerfectPID) + +AliHBTQInvCorrelFctnPerfectPID::AliHBTQInvCorrelFctnPerfectPID(Int_t nbins, Double_t maxXval, Double_t minXval): + AliHBTTwoPairFctn1D(nbins,maxXval,minXval) +{ +//ctor + fWriteNumAndDen = kTRUE;//change default behaviour + Rename("qinvcfprfctpid","Q_{inv} Correlation Function Perfect PID"); +} +/*************************************************************/ + +void AliHBTQInvCorrelFctnPerfectPID::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) +{ +//Fills numerator + if (trackpair->Particle1()->GetPdgCode() != partpair->Particle1()->GetPdgCode()) return; + if (trackpair->Particle2()->GetPdgCode() != partpair->Particle2()->GetPdgCode()) return; + + trackpair = CheckPair(trackpair); + if (trackpair == 0x0) return; +// partpair = CheckPair(partpair); + if (partpair == 0x0) return; + + fNumerator->Fill(trackpair->GetQInv()); +} + +/*************************************************************/ +void AliHBTQInvCorrelFctnPerfectPID::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) +{ +//Fills numerator + if (trackpair->Particle1()->GetPdgCode() != partpair->Particle1()->GetPdgCode()) return; + if (trackpair->Particle2()->GetPdgCode() != partpair->Particle2()->GetPdgCode()) return; + + trackpair = CheckPair(trackpair); + if (trackpair == 0x0) return; +// partpair = CheckPair(partpair); + if (partpair == 0x0) return; + + fDenominator->Fill(trackpair->GetQInv()); +} +/*************************************************************/ + +TH1* AliHBTQInvCorrelFctnPerfectPID::GetResult() +{ + //returns the scaled ratio + + delete fRatio; + fRatio = GetRatio(Scale()); + return fRatio; +} +/*************************************************************/ +/******************************************************************/ +/******************************************************************/ +/******************************************************************/ + +ClassImp(AliHBTWeightQInvCorrelFctnPerfectPID) + +AliHBTWeightQInvCorrelFctnPerfectPID::AliHBTWeightQInvCorrelFctnPerfectPID(Int_t nbins, Double_t maxXval, Double_t minXval): + AliHBTTwoPairFctn1D(nbins,maxXval,minXval) +{ +//ctor + fWriteNumAndDen = kTRUE;//change default behaviour + Rename("wqinvcfprfctpid","Q_{inv} Weight Correlation Function Perfect PID"); +} +/*************************************************************/ + +void AliHBTWeightQInvCorrelFctnPerfectPID::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) +{ +//Fills numerator + if (trackpair->Particle1()->GetPdgCode() != partpair->Particle1()->GetPdgCode()) return; + if (trackpair->Particle2()->GetPdgCode() != partpair->Particle2()->GetPdgCode()) return; + + trackpair = CheckPair(trackpair); + if (trackpair == 0x0) return; +// partpair = CheckPair(partpair); + if (partpair == 0x0) return; + + fNumerator->Fill(trackpair->GetQInv(),partpair->GetWeight()); +} + +/*************************************************************/ +void AliHBTWeightQInvCorrelFctnPerfectPID::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) +{ +//Fills numerator + if (trackpair->Particle1()->GetPdgCode() != partpair->Particle1()->GetPdgCode()) return; + if (trackpair->Particle2()->GetPdgCode() != partpair->Particle2()->GetPdgCode()) return; + + trackpair = CheckPair(trackpair); + if (trackpair == 0x0) return; +// partpair = CheckPair(partpair); + if (partpair == 0x0) return; + + fDenominator->Fill(trackpair->GetQInv()); +} +/*************************************************************/ + +TH1* AliHBTWeightQInvCorrelFctnPerfectPID::GetResult() +{ + //returns the scaled ratio + + delete fRatio; + fRatio = GetRatio(Scale()); + return fRatio; +} + + +/******************************************************************/ +/******************************************************************/ +/******************************************************************/ + +ClassImp(AliHBTWeightQOutSQideQLongFctnPerfectPID) + +AliHBTWeightQOutSQideQLongFctnPerfectPID::AliHBTWeightQOutSQideQLongFctnPerfectPID + (Int_t nXbins, Double_t maxXval, Double_t minXval, + Int_t nYbins, Double_t maxYval, Double_t minYval, + Int_t nZbins, Double_t maxZval, Double_t minZval): + AliHBTTwoPairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval) +{ + //ctor + fWriteNumAndDen = kTRUE;//change default behaviour + Rename("wqoslprfctpid","Q_{out}-Q_{side}-Q_{long} Weight Fctn with perfect PID"); +} +/*************************************************************/ + +void AliHBTWeightQOutSQideQLongFctnPerfectPID::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) +{ +//Fills numerator + if (trackpair->Particle1()->GetPdgCode() != partpair->Particle1()->GetPdgCode()) return; + if (trackpair->Particle2()->GetPdgCode() != partpair->Particle2()->GetPdgCode()) return; + + trackpair = CheckPair(trackpair); + if (trackpair == 0x0) return; +// partpair = CheckPair(partpair); + if (partpair == 0x0) return; + + Double_t weight = partpair->GetWeight(); + Double_t out = TMath::Abs(trackpair->GetQOutLCMS()); + Double_t side = TMath::Abs(trackpair->GetQSideLCMS()); + Double_t lon = TMath::Abs(trackpair->GetQLongLCMS()); + fNumerator->Fill(out,side,lon,weight); +} +/*************************************************************/ + +void AliHBTWeightQOutSQideQLongFctnPerfectPID::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) +{ +//Fills numerator + if (trackpair->Particle1()->GetPdgCode() != partpair->Particle1()->GetPdgCode()) return; + if (trackpair->Particle2()->GetPdgCode() != partpair->Particle2()->GetPdgCode()) return; + + trackpair = CheckPair(trackpair); + if (trackpair == 0x0) return; +// partpair = CheckPair(partpair); + if (partpair == 0x0) return; + + Double_t out = TMath::Abs(trackpair->GetQOutLCMS()); + Double_t side = TMath::Abs(trackpair->GetQSideLCMS()); + Double_t lon = TMath::Abs(trackpair->GetQLongLCMS()); + fDenominator->Fill(out,side,lon); +} +/******************************************************************/ + +TH1* AliHBTWeightQOutSQideQLongFctnPerfectPID::GetResult() +{ + //returns the scaled ratio + delete fRatio; + fRatio = GetRatio(Scale()); + return fRatio; +} + + +/******************************************************************/ +/******************************************************************/ +/******************************************************************/ + +ClassImp(AliHBTQOutSQideQLongFctnPerfectPID) + +AliHBTQOutSQideQLongFctnPerfectPID::AliHBTQOutSQideQLongFctnPerfectPID + (Int_t nXbins, Double_t maxXval, Double_t minXval, + Int_t nYbins, Double_t maxYval, Double_t minYval, + Int_t nZbins, Double_t maxZval, Double_t minZval): + AliHBTTwoPairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval) +{ + //ctor + fWriteNumAndDen = kTRUE;//change default behaviour + Rename("qoslprfctpid","Q_{out}-Q_{side}-Q_{long} Fctn with perfect PID"); +} +/*************************************************************/ + +void AliHBTQOutSQideQLongFctnPerfectPID::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) +{ +//Fills numerator + if (trackpair->Particle1()->GetPdgCode() != partpair->Particle1()->GetPdgCode()) return; + if (trackpair->Particle2()->GetPdgCode() != partpair->Particle2()->GetPdgCode()) return; + + trackpair = CheckPair(trackpair); + if (trackpair == 0x0) return; +// partpair = CheckPair(partpair); + if (partpair == 0x0) return; + + Double_t out = TMath::Abs(trackpair->GetQOutLCMS()); + Double_t side = TMath::Abs(trackpair->GetQSideLCMS()); + Double_t lon = TMath::Abs(trackpair->GetQLongLCMS()); + fNumerator->Fill(out,side,lon); +} +/*************************************************************/ + +void AliHBTQOutSQideQLongFctnPerfectPID::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) +{ +//Fills numerator + if (trackpair->Particle1()->GetPdgCode() != partpair->Particle1()->GetPdgCode()) return; + if (trackpair->Particle2()->GetPdgCode() != partpair->Particle2()->GetPdgCode()) return; + + trackpair = CheckPair(trackpair); + if (trackpair == 0x0) return; +// partpair = CheckPair(partpair); + if (partpair == 0x0) return; + + Double_t out = TMath::Abs(trackpair->GetQOutLCMS()); + Double_t side = TMath::Abs(trackpair->GetQSideLCMS()); + Double_t lon = TMath::Abs(trackpair->GetQLongLCMS()); + fDenominator->Fill(out,side,lon); +} +/******************************************************************/ + +TH1* AliHBTQOutSQideQLongFctnPerfectPID::GetResult() +{ + //returns the scaled ratio + delete fRatio; + fRatio = GetRatio(Scale()); + return fRatio; +} + +/******************************************************************/ +/******************************************************************/ +/******************************************************************/ + + + ClassImp(AliHBTPairPIDProbVsQInvFctn) AliHBTPairPIDProbVsQInvFctn::AliHBTPairPIDProbVsQInvFctn(Int_t nbins, Double_t maxXval, Double_t minXval): @@ -369,6 +657,9 @@ void AliHBTPairPIDProbVsQInvFctn::ProcessDiffEventParticles(AliHBTPair* pair) if(pair) fDenominator->Fill(pair->GetQInv(),pair->GetPIDProb()); } +/******************************************************************/ +/******************************************************************/ +/******************************************************************/ ClassImp(AliHBTPairPIDProbVsQOutSQideQLongFctn) @@ -389,9 +680,9 @@ void AliHBTPairPIDProbVsQOutSQideQLongFctn::ProcessSameEventParticles(AliHBTPair pair = CheckPair(pair); if (pair == 0x0) return; Double_t weight = pair->GetPIDProb(); - Double_t out = TMath::Abs(pair->GetQOutCMSLC()); - Double_t side = TMath::Abs(pair->GetQSideCMSLC()); - Double_t lon = TMath::Abs(pair->GetQLongCMSLC()); + Double_t out = TMath::Abs(pair->GetQOutLCMS()); + Double_t side = TMath::Abs(pair->GetQSideLCMS()); + Double_t lon = TMath::Abs(pair->GetQLongLCMS()); fNumerator->Fill(out,side,lon,weight); } /*************************************************************/ @@ -402,9 +693,9 @@ void AliHBTPairPIDProbVsQOutSQideQLongFctn::ProcessDiffEventParticles(AliHBTPair pair = CheckPair(pair); if (pair == 0x0) return; Double_t weight = pair->GetPIDProb(); - Double_t out = TMath::Abs(pair->GetQOutCMSLC()); - Double_t side = TMath::Abs(pair->GetQSideCMSLC()); - Double_t lon = TMath::Abs(pair->GetQLongCMSLC()); + Double_t out = TMath::Abs(pair->GetQOutLCMS()); + Double_t side = TMath::Abs(pair->GetQSideLCMS()); + Double_t lon = TMath::Abs(pair->GetQLongLCMS()); fDenominator->Fill(out,side,lon,weight); } /*************************************************************/ @@ -412,7 +703,161 @@ void AliHBTPairPIDProbVsQOutSQideQLongFctn::ProcessDiffEventParticles(AliHBTPair TH1* AliHBTPairPIDProbVsQOutSQideQLongFctn::GetResult() { //returns the scaled ratio + + delete fRatio; + fRatio = GetRatio(Scale()); + return fRatio; +} + +/******************************************************************/ +/******************************************************************/ +/******************************************************************/ + +ClassImp(AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID) + +AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID::AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID(Int_t nXbins, Double_t maxXval, Double_t minXval, + Int_t nYbins, Double_t maxYval, Double_t minYval, + Int_t nZbins, Double_t maxZval, Double_t minZval): + AliHBTTwoPairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval) +{ +//ctor +//Set Axis Title + fWriteNumAndDen = kTRUE; + Rename("tteffptthetaphipfctPID","P_{t} \\theta \\phi Two Track Efficiency Function"); + if(fNumerator) + { + fNumerator->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]"); + fNumerator->GetYaxis()->SetTitle("\\Delta \\theta [rad]"); + fNumerator->GetZaxis()->SetTitle("\\Delta \\phi [rad]"); + } + + if(fDenominator) + { + fDenominator->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]"); + fDenominator->GetYaxis()->SetTitle("\\Delta \\theta [rad]"); + fDenominator->GetZaxis()->SetTitle("\\Delta \\phi [rad]"); + } +} +/******************************************************************/ + +void AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID::ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) +{ +//Fills numerator + if (trackpair->Particle1()->GetPdgCode() != partpair->Particle1()->GetPdgCode()) return; + if (trackpair->Particle2()->GetPdgCode() != partpair->Particle2()->GetPdgCode()) return; + + trackpair = CheckPair(trackpair); + if (trackpair == 0x0) return; +// partpair = CheckPair(partpair); + if (partpair == 0x0) return; + + Double_t x = TMath::Abs(trackpair->GetDeltaPt()); + Double_t y = TMath::Abs(trackpair->GetDeltaTheta()); + Double_t z = TMath::Abs(trackpair->GetDeltaPhi()); + fNumerator->Fill(x,y,z); +} +/******************************************************************/ + +void AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID::ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair) +{ +//Fills numerator + if (trackpair->Particle1()->GetPdgCode() != partpair->Particle1()->GetPdgCode()) return; + if (trackpair->Particle2()->GetPdgCode() != partpair->Particle2()->GetPdgCode()) return; + + trackpair = CheckPair(trackpair); + if (trackpair == 0x0) return; +// partpair = CheckPair(partpair); + if (partpair == 0x0) return; + + Double_t x = TMath::Abs(trackpair->GetDeltaPt()); + Double_t y = TMath::Abs(trackpair->GetDeltaTheta()); + Double_t z = TMath::Abs(trackpair->GetDeltaPhi()); + fDenominator->Fill(x,y,z); +} +/******************************************************************/ + +TH1* AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID::GetResult() +{ +//returns ratio of numerator and denominator + delete fRatio; + fRatio = GetRatio(Scale()); + if(fRatio) + { + fRatio->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]"); + fRatio->GetYaxis()->SetTitle("\\Delta \\theta [rad]"); + fRatio->GetZaxis()->SetTitle("\\Delta \\phi [rad]"); + } + return fRatio; +} +/******************************************************************/ +/******************************************************************/ +/******************************************************************/ + +ClassImp(AliHBTPairPIDProbVsPtThetaPhiFctn) + +AliHBTPairPIDProbVsPtThetaPhiFctn::AliHBTPairPIDProbVsPtThetaPhiFctn(Int_t nXbins, Double_t maxXval, Double_t minXval, + Int_t nYbins, Double_t maxYval, Double_t minYval, + Int_t nZbins, Double_t maxZval, Double_t minZval): + AliHBTOnePairFctn3D(nXbins,maxXval,minXval,nYbins,maxYval,minYval,nZbins,maxZval,minZval) +{ + //ctor + fWriteNumAndDen = kTRUE;//change default behaviour + Rename("ptthetaphipidpur","Pair PID Probablilty .vs. \\Delta P_{t}-\\Delta \\theta-\\Delta \\phi Fctn"); + if(fNumerator) + { + fNumerator->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]"); + fNumerator->GetYaxis()->SetTitle("\\Delta \\theta [rad]"); + fNumerator->GetZaxis()->SetTitle("\\Delta \\phi [rad]"); + } + + if(fDenominator) + { + fDenominator->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]"); + fDenominator->GetYaxis()->SetTitle("\\Delta \\theta [rad]"); + fDenominator->GetZaxis()->SetTitle("\\Delta \\phi [rad]"); + } + +} +/*************************************************************/ + +void AliHBTPairPIDProbVsPtThetaPhiFctn::ProcessSameEventParticles(AliHBTPair* pair) +{ +//Fills numerator + pair = CheckPair(pair); + if (pair == 0x0) return; + Double_t weight = pair->GetPIDProb(); + Double_t pt = TMath::Abs(pair->GetDeltaPt()); + Double_t theta = TMath::Abs(pair->GetDeltaTheta()); + Double_t phi = TMath::Abs(pair->GetDeltaPhi()); + fNumerator->Fill(pt,theta,phi,weight); +} +/*************************************************************/ + +void AliHBTPairPIDProbVsPtThetaPhiFctn::ProcessDiffEventParticles(AliHBTPair* pair) +{ +//Fills numerator + pair = CheckPair(pair); + if (pair == 0x0) return; + Double_t weight = pair->GetPIDProb(); + Double_t pt = TMath::Abs(pair->GetDeltaPt()); + Double_t phi = TMath::Abs(pair->GetDeltaTheta()); + Double_t theta = TMath::Abs(pair->GetDeltaPhi()); + fDenominator->Fill(pt,theta,phi,weight); +} +/*************************************************************/ + +TH1* AliHBTPairPIDProbVsPtThetaPhiFctn::GetResult() +{ + //returns the scaled ratio + delete fRatio; fRatio = GetRatio(Scale()); + if(fRatio) + { + fRatio->GetXaxis()->SetTitle("\\Delta P_{t} [GeV]"); + fRatio->GetYaxis()->SetTitle("\\Delta \\theta [rad]"); + fRatio->GetZaxis()->SetTitle("\\Delta \\phi [rad]"); + } return fRatio; } +