]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTFunction.h
Few switches added
[u/mrichter/AliRoot.git] / HBTAN / AliHBTFunction.h
index 0eb565509bb503e069fd8f69b94c60bb3fd284f9..0a5785f52ef613623e04a570b891fc11d4228324 100644 (file)
@@ -50,12 +50,12 @@ class AliHBTFunction: public TNamed
     void SetPairCut(AliHBTPairCut* 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)
+    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)
@@ -73,6 +73,24 @@ inline AliHBTPair* AliHBTFunction::CheckPair(AliHBTPair* pair)
   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)
+};
+
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
@@ -101,6 +119,7 @@ class AliHBTOnePairFctn
 
     virtual void Init() = 0;
     virtual void Write() = 0;
+    virtual const char* Name() = 0;
     
    ClassDef(AliHBTOnePairFctn,2)
 };
@@ -138,6 +157,7 @@ class AliHBTTwoPairFctn
     
     virtual void Init() = 0;
     virtual void Write() = 0;
+    virtual const char* Name() = 0;
             
    ClassDef(AliHBTTwoPairFctn,2)
   
@@ -323,8 +343,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
@@ -381,6 +401,8 @@ class AliHBTOnePairFctn1D: public AliHBTOnePairFctn, public AliHBTFunction1D
   void ProcessDiffEventParticles(AliHBTPair* pair);
   void Write(){WriteFunction();}
   void Init(){InitFunction();}
+  const char* Name(){return GetName();}
+  
  protected:
   //retruns velue to be histogrammed
   virtual Double_t GetValue(AliHBTPair* pair) = 0; 
@@ -423,6 +445,7 @@ class AliHBTOnePairFctn2D: public AliHBTOnePairFctn, public AliHBTFunction2D
   void ProcessDiffEventParticles(AliHBTPair* pair);
   void Write(){WriteFunction();}
   void Init(){InitFunction();}
+  const char* Name(){return GetName();}
  protected:
   virtual void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) = 0;
   ClassDef(AliHBTOnePairFctn2D,2)
@@ -466,6 +489,7 @@ class AliHBTOnePairFctn3D: public AliHBTOnePairFctn, public AliHBTFunction3D
   void ProcessDiffEventParticles(AliHBTPair* pair);
   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;
  ClassDef(AliHBTOnePairFctn3D,2)
@@ -502,6 +526,7 @@ class AliHBTTwoPairFctn1D: public AliHBTTwoPairFctn, public AliHBTFunction1D
   void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
   void Write(){WriteFunction();}
   void Init(){InitFunction();}
+  const char* Name(){return GetName();}
   
  protected:
   virtual Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) = 0;
@@ -546,6 +571,7 @@ class AliHBTTwoPairFctn2D: public AliHBTTwoPairFctn, public AliHBTFunction2D
   void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
   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;
@@ -592,6 +618,7 @@ class AliHBTTwoPairFctn3D: public AliHBTTwoPairFctn, public AliHBTFunction3D
   void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
   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;