]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTFunction.h
Removed
[u/mrichter/AliRoot.git] / HBTAN / AliHBTFunction.h
index ba890d40be2522cf8a51ef9bb2c0f61ca6f657bf..5b2d920269b7528c60f0b271508ef5e4595d4383 100644 (file)
 #include <TH2D.h>
 #include <TH3D.h>
 
-#include "AliHBTPairCut.h"
+#include "AliAODPairCut.h"
 #include "AliHBTPair.h"
 
 
 class AliHBTAnalysis;
-class AliHBTParticleCut;
+class AliVAODParticleCut;
 
 class AliHBTFunction: public TNamed
 {
   public:
     AliHBTFunction();
-    AliHBTFunction(const char* name,const char* title);
+    AliHBTFunction(const char* name, const char* title);
+    AliHBTFunction(const AliHBTFunction & source);
+    
     virtual ~AliHBTFunction();
     
-  AliHBTFunction(const AliHBTFunction & source) {
-    // Copy constructor needed by the coding conventions byt not used
-    Fatal("AliHBTFunction(const AliHBTFunction & source)",
-         "not implemented");
-  }
-
-  AliHBTFunction & operator= (const AliHBTFunction & source) {
-    // Assignment needed by the coding conventions byt not used
-    Fatal("Assignment operator","not implemented");
-    return * this;
-  }
+    AliHBTFunction & operator= (const AliHBTFunction & source);
 
     virtual TH1* GetNumerator() const = 0;
     virtual TH1* GetDenominator() const = 0;
     virtual TH1* GetResult() = 0;
 
-    virtual void Write();
-    virtual void Init();
+    virtual void WriteFunction();
+    virtual void InitFunction();
     
     TH1* GetRatio(Double_t normfactor = 1.0);
     void Rename(const Char_t * name); //renames the function and histograms ==title is the same that name
     void Rename(const Char_t * name, const Char_t * title); //renames and retitle the function and histograms
     
-    void SetPairCut(AliHBTPairCut* cut);
+    void SetPairCut(AliAODPairCut* cut);
     
     virtual AliHBTPair* CheckPair(AliHBTPair* pair);
-    
+    void  SetWriteNumAndDen(Bool_t flag = kFALSE){fWriteNumAndDen = flag;}
   protected:
     virtual void BuildHistos() = 0;//builds default histograms
-    AliHBTPairCut*   fPairCut;     //pair cut
-    
-   ClassDef(AliHBTFunction,2)
+    AliAODPairCut*   fPairCut;     //pair cut
+    Bool_t           fWriteNumAndDen; //flag indicating whether numerator and denominator should be writted together with a result
+    ClassDef(AliHBTFunction,3)
 };
 /******************************************************************/
 inline AliHBTPair* AliHBTFunction::CheckPair(AliHBTPair* pair)
 {
   //check if pair and both particles meets the cut criteria
-  if(fPairCut->Pass(pair)) //if the pair is BAD
-   {//it is BAD 
-    pair = pair->GetSwapedPair();
-    if(pair)
-     if(fPairCut->Pass(pair)) //so try reverse combination
-       { 
-        return 0x0;//it is BAD as well - so return
-       }
-   }
+  if(fPairCut->Pass(pair)) return 0x0; //if the pair is BAD
+
+//   It is notallowed to change the order here beacause analysis enforce the order
+
+//   {//it is BAD 
+//    pair = pair->GetSwappedPair();
+//    if(pair)
+//     if(fPairCut->Pass(pair)) //so try reverse combination
+//       { 
+//        return 0x0;//it is BAD as well - so return
+//       }
+//   }
+
   return pair; 
 }
 
+/******************************************************************/
+/******************************************************************/
+/******************************************************************/
+class AliHBTCorrelFunction
+{
+  public:
+    AliHBTCorrelFunction():fRatio(0x0){}
+    AliHBTCorrelFunction(const AliHBTCorrelFunction& in):fRatio((in.fRatio)?(TH1*)in.fRatio->Clone():0x0){}
+    virtual ~AliHBTCorrelFunction(){delete fRatio;}
+    
+    AliHBTCorrelFunction& operator=(const AliHBTCorrelFunction& in);
+   
+  protected:
+    TH1* fRatio;//!pointer to the ratio(result)
+    
+  ClassDef(AliHBTCorrelFunction,1)
+};
+
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
@@ -109,6 +123,7 @@ class AliHBTOnePairFctn
 
     virtual void Init() = 0;
     virtual void Write() = 0;
+    virtual const char* Name() = 0;
     
    ClassDef(AliHBTOnePairFctn,2)
 };
@@ -146,6 +161,7 @@ class AliHBTTwoPairFctn
     
     virtual void Init() = 0;
     virtual void Write() = 0;
+    virtual const char* Name() = 0;
             
    ClassDef(AliHBTTwoPairFctn,2)
   
@@ -175,16 +191,9 @@ class AliHBTFunction1D: public AliHBTFunction
   AliHBTFunction1D(const Char_t *name, const Char_t *title);
   AliHBTFunction1D(const Char_t *name, const Char_t *title,
                    Int_t nbins, Float_t maxXval, Float_t minXval);
-  AliHBTFunction1D(const AliHBTFunction1D & source) {
-    // Copy constructor needed by the coding conventions byt not used
-    Fatal("AliHBTFunction1D(const AliHBTFunction1D & source)",
-         "not implemented");
-  }
-  AliHBTFunction1D & operator= (const AliHBTFunction1D & source) {
-    // Assignment needed by the coding conventions byt not used
-    Fatal("Assignment operator","not implemented");
-    return * this;
-  }
+
+  AliHBTFunction1D(const AliHBTFunction1D & source);
+  AliHBTFunction1D & operator= (const AliHBTFunction1D& /*source*/);
 
   virtual ~AliHBTFunction1D();
   
@@ -244,17 +253,9 @@ class AliHBTFunction2D: public AliHBTFunction
                       Int_t nXbins, Double_t maxXval, Double_t minXval, 
                       Int_t nYbins, Double_t maxYval, Double_t minYval);
          
-  AliHBTFunction2D(const AliHBTFunction2D & source) {
-    // Copy constructor needed by the coding conventions byt not used
-    Fatal("AliHBTFunction2D(const AliHBTFunction2D & source)",
-         "not implemented");
-  }
-
-  AliHBTFunction2D & operator= (const AliHBTFunction2D & source) {
-    // Assignment needed by the coding conventions byt not used
-    Fatal("Assignment operator","not implemented");
-    return * this;
-  }
+  AliHBTFunction2D(const AliHBTFunction2D & source);
+
+  AliHBTFunction2D & operator= (const AliHBTFunction2D & /*source*/);
 
   virtual ~AliHBTFunction2D();
   
@@ -325,17 +326,8 @@ class AliHBTFunction3D: public AliHBTFunction
                    Int_t nYbins, Double_t maxYval, Double_t minYval, 
                    Int_t nZbins, Double_t maxZval, Double_t minZval);
 
-  AliHBTFunction3D(const AliHBTFunction3D & source) {
-    // Copy constructor needed by the coding conventions byt not used
-    Fatal("AliHBTFunction3D(const AliHBTFunction3D & source)",
-         "not implemented");
-  }
-
-  AliHBTFunction3D & operator= (const AliHBTFunction3D & source) {
-    // Assignment needed by the coding conventions byt not used
-    Fatal("Assignment operator","not implemented");
-    return * this;
-  }
+  AliHBTFunction3D(const AliHBTFunction3D & source);
+  AliHBTFunction3D & operator= (const AliHBTFunction3D & /*source*/);
 
   virtual ~AliHBTFunction3D();//destructor
 
@@ -355,8 +347,8 @@ class AliHBTFunction3D: public AliHBTFunction
               Int_t nzbins, Float_t zmax, Float_t zmin);
   virtual void BuildHistos();
   
-  TH3D* fNumerator; // Numerator histogram
-  TH3D* fDenominator; // Denominator histogram
+  TH3F* fNumerator; // Numerator histogram
+  TH3F* fDenominator; // Denominator histogram
   
   //definition of area used for scaling -> Scale is calculated this 
   //way that after division tale is on 1
@@ -411,11 +403,13 @@ class AliHBTOnePairFctn1D: public AliHBTOnePairFctn, public AliHBTFunction1D
 
   void ProcessSameEventParticles(AliHBTPair* pair);
   void ProcessDiffEventParticles(AliHBTPair* pair);
-  void Write(){AliHBTFunction::Write();}
-  void Init(){AliHBTFunction::Init();}
+  void Write(){WriteFunction();}
+  void Init(){InitFunction();}
+  const char* Name(){return GetName();}
+  
  protected:
   //retruns velue to be histogrammed
-  virtual Double_t GetValue(AliHBTPair* pair) = 0; 
+  virtual Double_t GetValue(AliHBTPair* pair) const = 0; 
   ClassDef(AliHBTOnePairFctn1D,2)
 };
 /******************************************************************/
@@ -453,10 +447,11 @@ class AliHBTOnePairFctn2D: public AliHBTOnePairFctn, public AliHBTFunction2D
   
   void ProcessSameEventParticles(AliHBTPair* pair);
   void ProcessDiffEventParticles(AliHBTPair* pair);
-  void Write(){AliHBTFunction::Write();}
-  void Init(){AliHBTFunction::Init();}
+  void Write(){WriteFunction();}
+  void Init(){InitFunction();}
+  const char* Name(){return GetName();}
  protected:
-  virtual void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) = 0;
+  virtual void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) const = 0;
   ClassDef(AliHBTOnePairFctn2D,2)
 };
 /******************************************************************/
@@ -496,10 +491,11 @@ class AliHBTOnePairFctn3D: public AliHBTOnePairFctn, public AliHBTFunction3D
 
   void ProcessSameEventParticles(AliHBTPair* pair);
   void ProcessDiffEventParticles(AliHBTPair* pair);
-  void Write(){AliHBTFunction::Write();}
-  void Init(){AliHBTFunction::Init();}
+  void Write(){WriteFunction();}
+  void Init(){InitFunction();}
+  const char* Name(){return GetName();}
  protected:
-  virtual void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y, Double_t& z) = 0;
+  virtual void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y, Double_t& z) const = 0;
  ClassDef(AliHBTOnePairFctn3D,2)
 };
 /******************************************************************/
@@ -532,10 +528,12 @@ class AliHBTTwoPairFctn1D: public AliHBTTwoPairFctn, public AliHBTFunction1D
 
   void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
   void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
-  void Write(){AliHBTFunction::Write();}
-  void Init(){AliHBTFunction::Init();}
+  void Write(){WriteFunction();}
+  void Init(){InitFunction();}
+  const char* Name(){return GetName();}
+  
  protected:
-  virtual Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) = 0;
+  virtual Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) const = 0;
 
   ClassDef(AliHBTTwoPairFctn1D,2)
 };
@@ -575,11 +573,12 @@ class AliHBTTwoPairFctn2D: public AliHBTTwoPairFctn, public AliHBTFunction2D
   
   void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
   void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
-  void Write(){AliHBTFunction::Write();}
-  void Init(){AliHBTFunction::Init();}
+  void Write(){WriteFunction();}
+  void Init(){InitFunction();}
+  const char* Name(){return GetName();}
 
  protected:
-  virtual void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) = 0;
+  virtual void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y) const = 0;
 
   ClassDef(AliHBTTwoPairFctn2D,2)
 };
@@ -621,11 +620,12 @@ class AliHBTTwoPairFctn3D: public AliHBTTwoPairFctn, public AliHBTFunction3D
 
   void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
   void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
-  void Write(){AliHBTFunction::Write();}
-  void Init(){AliHBTFunction::Init();}
+  void Write(){WriteFunction();}
+  void Init(){InitFunction();}
+  const char* Name(){return GetName();}
 
  protected:
-  virtual void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y, Double_t& z) = 0;
+  virtual void GetValues(AliHBTPair* trackpair, AliHBTPair* partpair, Double_t& x, Double_t& y, Double_t& z) const = 0;
 
   ClassDef(AliHBTTwoPairFctn3D,2)
 };