New functions added
authorskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 3 May 2004 13:28:00 +0000 (13:28 +0000)
committerskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 3 May 2004 13:28:00 +0000 (13:28 +0000)
HBTAN/AliHBTPIDPurityFctns.cxx
HBTAN/AliHBTPIDPurityFctns.h
HBTAN/HBTAnalysisLinkDef.h

index 4b7b913e10973eab9528d3611dbdddbe25be4f56..8a5ed957776ed62dc23adbaf3ca15a32940d1047 100644 (file)
@@ -662,3 +662,156 @@ TH1* AliHBTPairPIDProbVsQOutSQideQLongFctn::GetResult()
  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("tteffptthetaphi","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()->GetPid() != partpair->Particle1()->GetPid()) return;
+  if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) 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()->GetPid() != partpair->Particle1()->GetPid()) return;
+  if (trackpair->Particle2()->GetPid() != partpair->Particle2()->GetPid()) 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("qptthetaphipidpur","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;
+}
+
index 2eaa36973275519e8dbb586dfaa96019c20240aa..a374bb00faacd8913a3d7246fe51625a84482ba2 100644 (file)
@@ -153,6 +153,7 @@ class AliHBTPairPIDProbVsQInvFctn: public AliHBTOnePairFctn1D, public AliHBTCorr
    ClassDef(AliHBTPairPIDProbVsQInvFctn,1)
 };
 /*************************************************************************************/
+
 class AliHBTPairPIDProbVsQOutSQideQLongFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
 {
 
@@ -171,6 +172,45 @@ class AliHBTPairPIDProbVsQOutSQideQLongFctn: public AliHBTOnePairFctn3D, public
 
     ClassDef(AliHBTPairPIDProbVsQOutSQideQLongFctn,1)
 };
+/******************************************************************/
+
+class AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID: public AliHBTTwoPairFctn3D, public AliHBTCorrelFunction
+ {
+  public:
+    AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
+                                    Int_t nYbins = 100, Double_t maxYval = 0.3, Double_t minYval = 0.0,
+                       Int_t nZbins = 100, Double_t maxZval = 0.3, Double_t minZval = 0.0);
+    virtual ~AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID(){}
+    void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+    void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+    
+    TH1* GetResult();
+  protected:
+    void GetValues(AliHBTPair* /*trackpair*/, AliHBTPair* /*partpair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
+  private:
+    ClassDef(AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID,1)
+ };
+/*************************************************************************************/
+
+class AliHBTPairPIDProbVsPtThetaPhiFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
+{
+
+  public:
+    AliHBTPairPIDProbVsPtThetaPhiFctn(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
+                                      Int_t nYbins = 100, Double_t maxYval = 0.15, Double_t minYval = 0.0,
+                                      Int_t nZbins = 100, Double_t maxZval = 0.15, Double_t minZval = 0.0);
+    virtual  ~AliHBTPairPIDProbVsPtThetaPhiFctn(){}
+
+    TH1* GetResult();
+    void ProcessSameEventParticles(AliHBTPair* part);
+    void ProcessDiffEventParticles(AliHBTPair* pair);
+
+  protected:
+    void GetValues(AliHBTPair* /*pair*/, Double_t& /*x*/, Double_t& /*y*/, Double_t& /*z*/) const {}
+
+    ClassDef(AliHBTPairPIDProbVsPtThetaPhiFctn,1)
+};
+
 
 
 #endif
index 4ab65f81fd7b56607763f91de660be3cc5f75cb9..2e1aadfc5427811f67435afb5fad4bf671b1a518 100644 (file)
 #pragma link C++ class AliHBTQOutSQideQLongFctnPerfectPID+;
 #pragma link C++ class AliHBTPairPIDProbVsQInvFctn+;
 #pragma link C++ class AliHBTPairPIDProbVsQOutSQideQLongFctn+;
+#pragma link C++ class AliHBTTwoTrackEffFctnPtThetaPhiPerfectPID+;
+#pragma link C++ class AliHBTPairPIDProbVsPtThetaPhiFctn+;
 
 #pragma link C++ class AliHBTTwoTrackEffFctn+;
 #pragma link C++ class AliHBTTwoTrackEffFctnPtThetaPhi+;