#ifndef ALIHBTCORRELFUNCTION_H
#define ALIHBTCORRELFUNCTION_H
-
-#include "AliHBTFunction.h"
-#include "AliHBTParticle.h"
-//Set of functions:
+//____________________________________________________________________________
+//////////////////////////////////////////////////////////////////////////////
+//
+// class AliHBTQInvCorrelFctn
+// class AliHBTQOutLCMSCorrelFctn
+// class AliHBTQLongLCMSCorrelFctn
+// class AliHBTQSideLCMSCorrelFctn
+// class AliHBTInvMassCorrelFctn
+// class AliHBTTwoKStarCorrelFctn
+//
+// Set of functions:
// Q Invaraint Correlation Function
// Invariant Mass Function
//
-//more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html
-//Piotr.Skowronski@cern.ch
+// more info: http://aliweb.cern.ch/people/skowron/analyzer/index.html
+// Piotr.Skowronski@cern.ch
+//
+//////////////////////////////////////////////////////////////////////////////
+#include "AliHBTFunction.h"
+#include <Riostream.h>
-class AliHBTQInvCorrelFctn: public AliHBTTwoPartFctn1D
+/*************************************************************************************/
+class AliHBTQInvCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
{
//Q Invaraint Correlation Function
//1D two particle function
public:
- AliHBTQInvCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0):
- AliHBTTwoPartFctn1D(nbins,maxXval,minXval){}
+ AliHBTQInvCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
virtual ~AliHBTQInvCorrelFctn(){};
TH1* GetResult();
protected:
- Double_t GetValue(AliHBTPair * pair){return pair->GetQInv();}
+ Double_t GetValue(AliHBTPair * pair) const {return pair->GetQInv();}
+ private:
+ ClassDef(AliHBTQInvCorrelFctn,2)
+
+};
+/*************************************************************/
+
+class AliHBTOutSideLongFctn: public AliHBTOnePairFctn3D, public AliHBTCorrelFunction
+{
+
public:
- ClassDef(AliHBTQInvCorrelFctn,1)
+ AliHBTOutSideLongFctn(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 ~AliHBTOutSideLongFctn(){}
+
+ TH1* GetResult();
+ protected:
+ void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y, Double_t& z) const;
+
+ ClassDef(AliHBTOutSideLongFctn,1)
};
+/*************************************************************************************/
+
+class AliHBTQOutLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
+{
+//Q OutLCMSaraint Correlation Function
+//1D two particle function
+ public:
+ AliHBTQOutLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
+ virtual ~AliHBTQOutLCMSCorrelFctn(){};
+ TH1* GetResult();
+ protected:
+ Double_t GetValue(AliHBTPair * pair) const {return pair->GetQOutLCMS();}
+ private:
+ ClassDef(AliHBTQOutLCMSCorrelFctn,2)
+};
+/*************************************************************************************/
+
+class AliHBTQLongLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
+{
+//Q LongLCMSaraint Correlation Function
+//1D two particle function
+ public:
+ AliHBTQLongLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
+ virtual ~AliHBTQLongLCMSCorrelFctn(){};
+ TH1* GetResult();
+ protected:
+ Double_t GetValue(AliHBTPair * pair) const {return pair->GetQLongLCMS();}
+ private:
+ ClassDef(AliHBTQLongLCMSCorrelFctn,2)
+};
+/*************************************************************************************/
+
+class AliHBTQtLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
+{
+//Q LongLCMSaraint Correlation Function
+//1D two particle function
+ public:
+ AliHBTQtLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
+ virtual ~AliHBTQtLCMSCorrelFctn(){};
+ TH1* GetResult();
+ protected:
+ Double_t GetValue(AliHBTPair * pair) const {return pair->GetQtLCMS();}
+ private:
+ ClassDef(AliHBTQtLCMSCorrelFctn,2)
+};
+/*************************************************************************************/
+
+class AliHBTQSideLCMSCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
+{
+//Q SideLCMSaraint Correlation Function
+//1D two particle function
+ public:
+ AliHBTQSideLCMSCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
+ virtual ~AliHBTQSideLCMSCorrelFctn(){}
+ TH1* GetResult();
+ protected:
+ Double_t GetValue(AliHBTPair * pair) const {return pair->GetQSideLCMS();}
+ private:
+ ClassDef(AliHBTQSideLCMSCorrelFctn,2)
+};
+/*************************************************************************************/
+
+class AliHBTQtCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
+{
+//Q Longaraint Correlation Function
+//1D two particle function
+ public:
+ AliHBTQtCorrelFctn(Int_t nbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0);
+ virtual ~AliHBTQtCorrelFctn(){};
+ TH1* GetResult();
+ protected:
+ Double_t GetValue(AliHBTPair * pair) const {return pair->GetQt();}
+ private:
+ ClassDef(AliHBTQtCorrelFctn,1)
+};
+/*************************************************************************************/
-class AliHBTInvMassCorrelFctn: public AliHBTTwoPartFctn1D
+class AliHBTInvMassCorrelFctn: public AliHBTOnePairFctn1D
{
// Invariant Mass Function
public:
virtual ~AliHBTInvMassCorrelFctn(){};
TH1* GetResult();
protected:
- Double_t GetValue(AliHBTPair * pair) { return pair->GetInvMass();}
- public:
+ Double_t GetValue(AliHBTPair * pair) const { return pair->GetInvMass();}
+ private:
ClassDef(AliHBTInvMassCorrelFctn,1)
+};
+
+/*************************************************************************************/
+
+class AliHBTTwoKStarCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
+{
+// Correlation Function of 2*KStar
+ public:
+ AliHBTTwoKStarCorrelFctn(Int_t nbins = 200, Double_t maxXval = 0.15, Double_t minXval = 0.0);
+ virtual ~AliHBTTwoKStarCorrelFctn(){};
+ TH1* GetResult();
+ protected:
+ Double_t GetValue(AliHBTPair * pair) const { return 2.0*pair->GetKStar();}
+ private:
+ ClassDef(AliHBTTwoKStarCorrelFctn,2)
+};
+
+/*************************************************************************************/
+
+class AliHBTAvSeparCorrelFctn: public AliHBTOnePairFctn1D, public AliHBTCorrelFunction
+{
+// Correlation Function of 2*KStar
+ public:
+ AliHBTAvSeparCorrelFctn(Int_t nbins = 200, Double_t maxXval = 30, Double_t minXval = 0.0);
+ virtual ~AliHBTAvSeparCorrelFctn(){};
+ TH1* GetResult();
+ protected:
+ Double_t GetValue(AliHBTPair * pair) const { return pair->GetAvarageDistance();}
+ private:
+ ClassDef(AliHBTAvSeparCorrelFctn,2)
+};
+
+/*************************************************************************************/
+
+class AliHBTAvSeparVsQInvCorrelFctn: public AliHBTOnePairFctn2D, public AliHBTCorrelFunction
+{
+// Correlation Function of 2*KStar
+ public:
+ AliHBTAvSeparVsQInvCorrelFctn(Int_t nXbins = 10, Double_t maxXval = 0.05, Double_t minXval = 0.,
+ Int_t nYbins = 20, Double_t maxYval = 20, Double_t minYval = 0.0);
+ virtual ~AliHBTAvSeparVsQInvCorrelFctn(){};
+ TH1* GetResult();
+ protected:
+ void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) const
+ {
+ y = pair->GetAvarageDistance();
+ x = pair->GetQInv();
+ }
+ private:
+ ClassDef(AliHBTAvSeparVsQInvCorrelFctn,1)
+};
+/*************************************************************************************/
+/*************************************************************************************/
+/*************************************************************************************/
+
+class AliHBTQOutQSideFctn: public AliHBTOnePairFctn2D, public AliHBTCorrelFunction
+{
+
+ // friend class AliHBTOnePairFctn1D;
+ public:
+ AliHBTQOutQSideFctn(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);
+ virtual ~AliHBTQOutQSideFctn(){};
+ TH1* GetResult();
+
+ protected:
+ void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) const
+ {
+ y = pair->GetQSideLCMS();
+ x = pair->GetQOutLCMS();
+ }
+ ClassDef(AliHBTQOutQSideFctn,1)
+
+};
+/*************************************************************************************/
+
+class AliHBTQOutQLongFctn: public AliHBTOnePairFctn2D, public AliHBTCorrelFunction
+{
+
+ // friend class AliHBTOnePairFctn1D;
+ public:
+ AliHBTQOutQLongFctn(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);
+ virtual ~AliHBTQOutQLongFctn(){};
+ TH1* GetResult();
+
+ protected:
+ void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) const
+ {
+ y = pair->GetQLongLCMS();
+ x = pair->GetQOutLCMS();
+ }
+ ClassDef(AliHBTQOutQLongFctn,1)
};
+/*************************************************************************************/
+class AliHBTQSideQLongFctn: public AliHBTOnePairFctn2D, public AliHBTCorrelFunction
+{
+ // friend class AliHBTOnePairFctn1D;
+ public:
+ AliHBTQSideQLongFctn(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);
+ virtual ~AliHBTQSideQLongFctn(){};
+ TH1* GetResult();
+
+ protected:
+ void GetValues(AliHBTPair* pair, Double_t& x, Double_t& y) const
+ {
+ y = pair->GetQLongLCMS();
+ x = pair->GetQSideLCMS();
+ }
+ ClassDef(AliHBTQSideQLongFctn,1)
+
+};
#endif
+
+
+