#include <TH2.h>
#include <TH3.h>
-
+
class AliHBTAnalysis;
class AliHBTFunction: public TNamed
//Abstract base class for HBT functions
-//
{
public:
AliHBTFunction();
+ AliHBTFunction(const char* name,const char* title);
virtual ~AliHBTFunction();
virtual TH1* GetNumerator() =0;
{
public:
AliHBTOnePairFctn(){}
+ AliHBTOnePairFctn(const Char_t *name, const Char_t *title):AliHBTFunction(name,title){}
virtual ~AliHBTOnePairFctn(){}
virtual void ProcessSameEventParticles(AliHBTPair* pair) = 0;
{
public:
AliHBTTwoPairFctn(){};
+ AliHBTTwoPairFctn(const Char_t *name, const Char_t *title):AliHBTFunction(name,title){}
virtual ~AliHBTTwoPairFctn(){};
virtual void
class AliHBTOnePairFctn1D: public AliHBTOnePairFctn
{
public:
- AliHBTOnePairFctn1D(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
+ AliHBTOnePairFctn1D();
+ AliHBTOnePairFctn1D(Int_t nbins, Double_t maxXval, Double_t minXval);
+ AliHBTOnePairFctn1D(const Char_t *name, const Char_t *title,
+ Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
virtual ~AliHBTOnePairFctn1D();
/******************************************************************/
/******************************************************************/
/******************************************************************/
-
+
class AliHBTOnePairFctn2D: public AliHBTOnePairFctn
{
public:
/******************************************************************/
/******************************************************************/
+class AliHBTTwoPairFctn1D: public AliHBTTwoPairFctn
+{
+ public:
+ AliHBTTwoPairFctn1D(Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
+ AliHBTTwoPairFctn1D(const char*,const char*,
+ Int_t nbins = 200, Double_t maxval = 1.5, Double_t minval = 0.0);
+ ~AliHBTTwoPairFctn1D();
+
+ TH1* GetNumerator(){return fNumerator;}
+ TH1* GetDenominator(){return fDenominator;}
+
+ void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+ void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+
+ protected:
+ virtual Double_t GetValue(AliHBTPair* trackpair, AliHBTPair* partpair) = 0;
+
+ TH1D* fNumerator;
+ TH1D* fDenominator;
+
+ public:
+ ClassDef(AliHBTTwoPairFctn1D,1)
+};
/******************************************************************/
public:
AliHBTTwoPairFctn2D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0,
Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15);
- ~AliHBTTwoPairFctn2D();
+ virtual ~AliHBTTwoPairFctn2D();
TH1* GetNumerator(){return fNumerator;}
TH1* GetDenominator(){return fDenominator;}
/******************************************************************/
/******************************************************************/
/******************************************************************/
+class AliHBTTwoPairFctn3D: public AliHBTTwoPairFctn
+{
+ public:
+ AliHBTTwoPairFctn3D(Int_t nXbins = 200, Double_t maxXval = 1.5, Double_t minXval = 0.0,
+ Int_t nYbins = 200, Double_t maxYval = .15, Double_t minYval =-0.15,
+ Int_t nZbins = 200, Double_t maxZval = .15, Double_t minZval =-0.15){}
+ virtual ~AliHBTTwoPairFctn3D(){}
+
+ TH1* GetNumerator(){return fNumerator;}
+ TH1* GetDenominator(){return fDenominator;}
+
+ void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+ void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
+
+
+ protected:
+ virtual void GetValues(AliHBTPair*,AliHBTPair*, Double_t&, Double_t&,Double_t&) = 0;
+
+ TH3D* fNumerator;
+ TH3D* fDenominator;
+
+ public:
+ ClassDef(AliHBTTwoPairFctn3D,1)
+};
/******************************************************************/
/******************************************************************/