]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTQResolutionFctns.h
Updated version (Zubayer)
[u/mrichter/AliRoot.git] / HBTAN / AliHBTQResolutionFctns.h
index 478c8654ba95fd2543e5482423c7fb6f2683955c..91908f9d21ac3142879f7b0fb864cc16313b0eb9 100644 (file)
@@ -1,41 +1,66 @@
-#ifndef ALIHBTQOUTVsQINVRESOLFCTN_H
-#define ALIHBTQOUTVsQINVRESOLFCTN_H
-//General Remark:
-//CMSLC means
-//Center of Mass System Longitudially Co-moving
-
-
-//this class creates resolution function of Qout 
-//(difference of simulated pair Qout and recontructed pair)
-//in function of QInv
-//it inherits from AliHBTTwoPairFctn2D
-//  it needs two pairs to compare
-//  and is two dimentional: numerator and denominator are TH2D
-
-class AliHBTQOutResolVsQInvFctn;  //QOutCMSLC  Res   Vs   QInvCMSLC 
-class AliHBTQSideResolVsQInvFctn; //QSideCMSLC Res   Vs   QInvCMSLC 
-class AliHBTQLongResolVsQInvFctn; //QLongCMSLC Res   Vs   QInvCMSLC 
-class AliHBTQInvResolVsQInvFctn;  //QInvCMSLC Res   Vs   QInvCMSLC 
-
-class AliHBTPairThetaResolVsQInvFctn;//PairTheta Res   Vs   QInvCMSLC
-class AliHBTPairPhiResolVsQInvFctn;  //PairPhi   Res   Vs   QInvCMSLC
-
-class AliHBTQInvResolVsKtFctn;    //QInvCMSLC  Res   Vs   Kt
-class AliHBTQOutResolVsKtFctn;    //QOutCMSLC  Res   Vs   Kt
-class AliHBTQSideResolVsKtFctn;   //QSideCMSLC Res   Vs   Kt
-class AliHBTQLongResolVsKtFctn;   //QLongCMSLC Res   Vs   Kt
+#ifndef ALIHBTQRESOLUTIONFCTNS_H
+#define ALIHBTQRESOLUTIONFCTNS_H
+//__________________________________________________________________
+////////////////////////////////////////////////////////////////////
+//                                                                //
+// General Remark:                                                //
+// LCMS means                                                    //
+// Center of Mass System Longitudially Co-moving                  //
+//                                                                //
+//                                                                //
+// This class creates resolution function of Qout                 //
+// (difference of simulated pair Qout and recontructed pair)      //
+// in function of QInv                                            //
+// it inherits from AliHBTTwoPairFctn2D                           //
+//  it needs two pairs to compare                                 //
+//  and is two dimentional: numerator and denominator are TH2D    //
+//                                                                //
+////////////////////////////////////////////////////////////////////
+
+#include <TMath.h>
+
+class AliHBTKtResolVsQInvFctn;  //Kt Res   Vs   QInvLCMS 
+
+class AliHBTQOutResolVsQInvFctn;  //QOutLCMS  Res   Vs   QInvLCMS 
+class AliHBTQSideResolVsQInvFctn; //QSideLCMS Res   Vs   QInvLCMS 
+class AliHBTQLongResolVsQInvFctn; //QLongLCMS Res   Vs   QInvLCMS 
+class AliHBTQInvResolVsQInvFctn;  //QInvLCMS Res   Vs   QInvLCMS 
+
+class AliHBTPairThetaResolVsQInvFctn;//PairTheta Res   Vs   QInvLCMS
+class AliHBTPairPhiResolVsQInvFctn;  //PairPhi   Res   Vs   QInvLCMS
+
+class AliHBTQInvResolVsKtFctn;    //QInvLCMS  Res   Vs   Kt
+class AliHBTQOutResolVsKtFctn;    //QOutLCMS  Res   Vs   Kt
+class AliHBTQSideResolVsKtFctn;   //QSideLCMS Res   Vs   Kt
+class AliHBTQLongResolVsKtFctn;   //QLongLCMS Res   Vs   Kt
 
 class AliHBTPairThetaResolVsKtFctn;   //PairTheta Res   Vs   Kt
 class AliHBTPairPhiResolVsKtFctn;   //PairPhi Res   Vs   Kt
 
 
-class AliHBTQOutResolVsQOutFctn;  //QOutCMSLC  Res   Vs   QOut
-class AliHBTQSideResolVsQSideFctn;//QSideCMSLC Res   Vs   QSide
-class AliHBTQLongResolVsQLongFctn;//QLongCMSLC Res   Vs   QLong
+class AliHBTQOutResolVsQOutFctn;  //QOutLCMS  Res   Vs   QOut
+class AliHBTQSideResolVsQSideFctn;//QSideLCMS Res   Vs   QSide
+class AliHBTQLongResolVsQLongFctn;//QLongLCMS Res   Vs   QLong
 
 
  
 #include "AliHBTFunction.h"
+/***********************************************************************/
+/***********************************************************************/
+class AliHBTKtResolVsQInvFctn: public AliHBTTwoPairFctn2D
+ {
+  public: 
+   AliHBTKtResolVsQInvFctn(Int_t nXbins = 200, Double_t maxXval = 0.2, Double_t minXval = 0.0, 
+                           Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
+   
+   virtual ~AliHBTKtResolVsQInvFctn(){}
+   
+   TH1* GetResult(){return this->fNumerator;}  
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTKtResolVsQInvFctn,1)
+ };
+
+
 /***********************************************************************/
 /***********************************************************************/
 class AliHBTQInvResolVsQInvFctn: public AliHBTTwoPairFctn2D
@@ -46,16 +71,9 @@ class AliHBTQInvResolVsQInvFctn: public AliHBTTwoPairFctn2D
    
    virtual ~AliHBTQInvResolVsQInvFctn(){}
    
-   TH1* GetResult(){return fNumerator;}  
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     y = partpair->GetQInv() - trackpair->GetQInv();
-     x = partpair->GetQInv();
-    }
-  protected:
-  private: 
-  public:
-    ClassDef(AliHBTQInvResolVsQInvFctn,1)
+   TH1* GetResult(){return this->fNumerator;}  
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTQInvResolVsQInvFctn,1)
  };
 
 
@@ -69,16 +87,9 @@ class AliHBTQOutResolVsQInvFctn: public AliHBTTwoPairFctn2D
    
    virtual ~AliHBTQOutResolVsQInvFctn(){}
    
-   TH1* GetResult(){return fNumerator;}  
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
-     x = partpair->GetQInv();
-    }
-  protected:
-  private: 
-  public:
-    ClassDef(AliHBTQOutResolVsQInvFctn,1)
+   TH1* GetResult(){return this->fNumerator;}  
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTQOutResolVsQInvFctn,1)
  };
 
 /***********************************************************************/
@@ -90,16 +101,9 @@ class AliHBTQSideResolVsQInvFctn: public AliHBTTwoPairFctn2D
                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
    virtual ~AliHBTQSideResolVsQInvFctn(){}
 
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair,  Double_t& x, Double_t& y)
-    {
-     y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
-     x = partpair->GetQInv();
-    }
-   TH1* GetResult(){return fNumerator;} 
-  protected:
-  private:
-  public:
-    ClassDef(AliHBTQSideResolVsQInvFctn,1)
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair,  Double_t& x, Double_t& y) const;
+   TH1* GetResult(){return this->fNumerator;} 
+   ClassDef(AliHBTQSideResolVsQInvFctn,1)
  };
 
 /***********************************************************************/
@@ -111,16 +115,9 @@ class AliHBTQLongResolVsQInvFctn: public AliHBTTwoPairFctn2D
                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
    virtual ~AliHBTQLongResolVsQInvFctn(){}
 
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
-     x = partpair->GetQInv();
-    }
-   TH1* GetResult(){return fNumerator;} 
-  protected:
-  private:
-  public:
-    ClassDef(AliHBTQLongResolVsQInvFctn,1)
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   TH1* GetResult(){return this->fNumerator;} 
+   ClassDef(AliHBTQLongResolVsQInvFctn,1)
  };
 
 /***********************************************************************/
@@ -132,16 +129,9 @@ class AliHBTQInvResolVsKtFctn: public AliHBTTwoPairFctn2D
                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
    virtual ~AliHBTQInvResolVsKtFctn(){};
 
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     y = partpair->GetQInv() - trackpair->GetQInv();
-     x = partpair->GetKt();
-    }
-   TH1* GetResult(){return fNumerator;} 
-  protected:
-  private:
-  public:
-    ClassDef(AliHBTQInvResolVsKtFctn,1)
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   TH1* GetResult(){return this->fNumerator;} 
+   ClassDef(AliHBTQInvResolVsKtFctn,1)
  };
 /***********************************************************************/
 /***********************************************************************/
@@ -151,16 +141,9 @@ class AliHBTQOutResolVsKtFctn: public AliHBTTwoPairFctn2D
    AliHBTQOutResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
    virtual ~AliHBTQOutResolVsKtFctn(){}
-   TH1* GetResult(){return GetNumerator();}
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     y = partpair->GetQOutCMSLC() - trackpair->GetQOutCMSLC();
-     x = partpair->GetKt();
-    }
-  protected:
-  private:
-  public:
-    ClassDef(AliHBTQOutResolVsKtFctn,1)
+   TH1* GetResult(){return this->GetNumerator();}
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTQOutResolVsKtFctn,1)
  };
 /***********************************************************************/
 /***********************************************************************/
@@ -170,16 +153,9 @@ class AliHBTQSideResolVsKtFctn: public AliHBTTwoPairFctn2D
    AliHBTQSideResolVsKtFctn(Int_t nXbins = 200, Double_t maxXval = 1., Double_t minXval = 0.0, 
                             Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
    virtual ~AliHBTQSideResolVsKtFctn(){}
-   TH1* GetResult(){return GetNumerator();}
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     y = partpair->GetQSideCMSLC() - trackpair->GetQSideCMSLC();
-     x = partpair->GetKt();
-    }
-  protected:
-  private:
-  public:
-    ClassDef(AliHBTQSideResolVsKtFctn,1)
+   TH1* GetResult(){return this->GetNumerator();}
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTQSideResolVsKtFctn,1)
  };
 /***********************************************************************/
 /***********************************************************************/
@@ -190,16 +166,9 @@ class AliHBTQLongResolVsKtFctn: public AliHBTTwoPairFctn2D
                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
    virtual ~AliHBTQLongResolVsKtFctn(){}
 
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     y = partpair->GetQLongCMSLC() - trackpair->GetQLongCMSLC();
-     x = partpair->GetKt();
-    }
-   TH1* GetResult(){return fNumerator;}
-  protected:
-  private:
-  public:
-    ClassDef(AliHBTQLongResolVsKtFctn,1)
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   TH1* GetResult(){return this->GetNumerator();}
+   ClassDef(AliHBTQLongResolVsKtFctn,1)
  };
 /***********************************************************************/
 /***********************************************************************/
@@ -210,16 +179,9 @@ class AliHBTQOutResolVsQOutFctn: public AliHBTTwoPairFctn2D
                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
    virtual ~AliHBTQOutResolVsQOutFctn(){}
 
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     x = partpair->GetQOutCMSLC();
-     y = x - trackpair->GetQOutCMSLC();
-    }
-   TH1* GetResult(){return fNumerator;}  
-  protected:
-  private:
-  public:
-    ClassDef(AliHBTQOutResolVsQOutFctn,1)
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   TH1* GetResult(){return this->fNumerator;}  
+   ClassDef(AliHBTQOutResolVsQOutFctn,1)
  };
 
 /***********************************************************************/
@@ -232,19 +194,11 @@ class AliHBTQSideResolVsQSideFctn: public AliHBTTwoPairFctn2D
                              Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
    virtual ~AliHBTQSideResolVsQSideFctn(){}
 
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     x = partpair->GetQSideCMSLC();
-     y = x - trackpair->GetQSideCMSLC();
-    }
-   TH1* GetResult(){return fNumerator;}  
-  protected:
-  private:
-  public:
-    ClassDef(AliHBTQSideResolVsQSideFctn,1)
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   TH1* GetResult(){return this->fNumerator;}  
+   ClassDef(AliHBTQSideResolVsQSideFctn,1)
  };
 
-
 /***********************************************************************/
 /***********************************************************************/
 
@@ -255,21 +209,13 @@ class AliHBTQLongResolVsQLongFctn: public AliHBTTwoPairFctn2D
                              Int_t nYbins = 500, Double_t maxYval = .05, Double_t minYval =-0.05);
    virtual ~AliHBTQLongResolVsQLongFctn(){}
 
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     x = partpair->GetQLongCMSLC();
-     y = x - trackpair->GetQLongCMSLC();
-    }
-   TH1* GetResult(){return fNumerator;}  
-  protected:
-  private:
-  public:
-    ClassDef(AliHBTQLongResolVsQLongFctn,1)
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   TH1* GetResult(){return this->fNumerator;}  
+   ClassDef(AliHBTQLongResolVsQLongFctn,1)
  };
-
-
 /***********************************************************************/
 /***********************************************************************/
+
 class AliHBTPairThetaResolVsQInvFctn: public AliHBTTwoPairFctn2D
  {
   public: 
@@ -278,20 +224,27 @@ class AliHBTPairThetaResolVsQInvFctn: public AliHBTTwoPairFctn2D
    
    virtual ~AliHBTPairThetaResolVsQInvFctn(){}
    
-   TH1* GetResult(){return fNumerator;}  
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
-     Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
-     y = partTheta - trackTheta;
-     x = partpair->GetQInv();
-    }
-  protected:
-  private: 
-  public:
-    ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
+   TH1* GetResult(){return this->fNumerator;}  
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTPairThetaResolVsQInvFctn,1)
+ };
+
+/***********************************************************************/
+/***********************************************************************/
+class AliHBTPairThetaResolVsPairThetaFctn: public AliHBTTwoPairFctn2D
+ {
+  public: 
+   AliHBTPairThetaResolVsPairThetaFctn(Int_t nXbins = 200, Double_t maxXval = TMath::PiOver2(), Double_t minXval = -TMath::PiOver2(), 
+                             Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
+   
+   virtual ~AliHBTPairThetaResolVsPairThetaFctn(){}
+   
+   TH1* GetResult(){return this->fNumerator;}  
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTPairThetaResolVsPairThetaFctn,1)
  };
 
+
 /***********************************************************************/
 /***********************************************************************/
 class AliHBTPairPhiResolVsQInvFctn: public AliHBTTwoPairFctn2D
@@ -302,18 +255,9 @@ class AliHBTPairPhiResolVsQInvFctn: public AliHBTTwoPairFctn2D
    
    virtual ~AliHBTPairPhiResolVsQInvFctn(){}
    
-   TH1* GetResult(){return fNumerator;}  
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
-     Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
-     y = partPhi - trackPhi;
-     x = partpair->GetQInv();
-    }
-  protected:
-  private: 
-  public:
-    ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
+   TH1* GetResult(){return this->fNumerator;}  
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTPairPhiResolVsQInvFctn,1)
  };
 
 /***********************************************************************/
@@ -326,18 +270,9 @@ class AliHBTPairThetaResolVsKtFctn: public AliHBTTwoPairFctn2D
    
    virtual ~AliHBTPairThetaResolVsKtFctn(){}
    
-   TH1* GetResult(){return fNumerator;}  
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     Double_t partTheta = partpair->Particle1()->Theta() - partpair->Particle2()->Theta();
-     Double_t trackTheta = trackpair->Particle1()->Theta() - trackpair->Particle2()->Theta();
-     y = partTheta - trackTheta;
-     x = partpair->GetKt();
-    }
-  protected:
-  private: 
-  public:
-    ClassDef(AliHBTPairThetaResolVsKtFctn,1)
+   TH1* GetResult(){return this->fNumerator;}  
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTPairThetaResolVsKtFctn,1)
  };
 
 /***********************************************************************/
@@ -350,18 +285,25 @@ class AliHBTPairPhiResolVsKtFctn: public AliHBTTwoPairFctn2D
    
    virtual ~AliHBTPairPhiResolVsKtFctn(){}
    
-   TH1* GetResult(){return fNumerator;}  
-   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y)
-    {
-     Double_t partPhi = partpair->Particle1()->Phi() - partpair->Particle2()->Phi();
-     Double_t trackPhi = trackpair->Particle1()->Phi() - trackpair->Particle2()->Phi();
-     y = partPhi - trackPhi;
-     x = partpair->GetKt();
-    }
-  protected:
-  private: 
-  public:
-    ClassDef(AliHBTPairPhiResolVsKtFctn,1)
+   TH1* GetResult(){return this->fNumerator;}  
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTPairPhiResolVsKtFctn,1)
  };
 
+/***********************************************************************/
+/***********************************************************************/
+class AliHBTPairPhiResolVsPairPhiFctn: public AliHBTTwoPairFctn2D
+ {
+  public: 
+   AliHBTPairPhiResolVsPairPhiFctn(Int_t nXbins = 200, Double_t maxXval = TMath::TwoPi(), Double_t minXval = 0.0, 
+                             Int_t nYbins = 500, Double_t maxYval = .15, Double_t minYval =-0.15);
+   
+   virtual ~AliHBTPairPhiResolVsPairPhiFctn(){}
+   
+   TH1* GetResult(){return this->fNumerator;}  
+   void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const;
+   ClassDef(AliHBTPairPhiResolVsPairPhiFctn,1)
+ };
+
+
 #endif