1 #ifndef ALIHBTASCORRFCTN_H
2 #define ALIHBTASCORRFCTN_H
4 ///////////////////////////////////////////////////////
6 // AliHBTasCorrFctn.h //
8 // Class for calculating 3D as correlation //
10 //author: Grzegorz.Galazka@cern.ch //
11 ///////////////////////////////////////////////////////
13 #include "AliHBTFunction.h"
16 class AliHBTasCorrFctn: public AliHBTOnePairFctn1D
19 AliHBTasCorrFctn(const char* name = "asejdzbitiCF",
20 const char* title= "as Correlation Function");
22 AliHBTasCorrFctn(const char* name, const char* title,
23 Int_t nbins, Float_t maxXval, Float_t minXval);
24 AliHBTasCorrFctn(const AliHBTasCorrFctn& in);
26 virtual ~AliHBTasCorrFctn();
29 void ProcessSameEventParticles(AliHBTPair* pair);
30 void ProcessDiffEventParticles(AliHBTPair* pair);
31 Int_t Write(const char* /*x1*/ = "",Int_t /*x2*/ = 0, Int_t /*x3*/ = 0);
32 Int_t Write(const char* x1 = "",Int_t x2 = 0, Int_t x3 = 0) const {return AliHBTOnePairFctn1D::Write(x1,x2,x3);}
34 void SetNumberOfIntervals(Int_t N){fNumberOfIntervals = N;}
36 Int_t GetNumberOfIntervals(){return fNumberOfIntervals;}
43 virtual Double_t GetValue(AliHBTPair* pair) const = 0;
44 virtual void BuildHistos() = 0;
45 void BuildHistos(Int_t nbins, Float_t max, Float_t min) {
46 AliHBTOnePairFctn1D::BuildHistos(nbins, max, min);
48 int Getnbins(){ return fnbins;} // this are workarounds for my lame coding
49 double GetmaxXval(){return fmaxXval;} // these methods are uset to build histograms
50 double GetminXval(){return fminXval;} // with set by user number of bins etc.
51 void SetParams(Int_t nbins,Float_t maxXval,Float_t minXval); //
53 TObjArray* fNum; // numerators array
54 TObjArray* fDen; // denominators array
55 TObjArray* fRat;// correl. fnctns array
59 int fnbins; //number of bins in histograms
60 Int_t fNumberOfIntervals; //number of intervals
61 double fmaxXval; //max histogram's X value
62 double fminXval; //min histogram's X value
64 ClassDef(AliHBTasCorrFctn,1)
67 class AliHBTQOutasCorrFctn: public AliHBTasCorrFctn{
69 AliHBTQOutasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
71 virtual ~AliHBTQOutasCorrFctn(){};
75 Double_t GetValue(AliHBTPair* pair) const {return pair->GetQOutLCMS();}
76 void BuildHistos(Int_t nbins, Float_t max, Float_t min) {
77 AliHBTasCorrFctn::BuildHistos(nbins, max, min);
81 ClassDef(AliHBTQOutasCorrFctn,1)
84 class AliHBTQSideasCorrFctn: public AliHBTasCorrFctn{
86 AliHBTQSideasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
87 // AliHBTSideasCorrFctn(const AliHBTasCorrFctn& in);
89 virtual ~AliHBTQSideasCorrFctn(){};
92 Double_t GetValue(AliHBTPair* pair) const {return pair->GetQSideLCMS();}
93 void BuildHistos(Int_t nbins, Float_t max, Float_t min) {
94 AliHBTasCorrFctn::BuildHistos(nbins, max, min);
98 ClassDef(AliHBTQSideasCorrFctn,1)
102 class AliHBTQLongasCorrFctn: public AliHBTasCorrFctn{
104 AliHBTQLongasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
106 virtual ~AliHBTQLongasCorrFctn(){};
109 Double_t GetValue(AliHBTPair* pair) const {return pair->GetQLongLCMS();}
110 void BuildHistos(Int_t nbins, Float_t max, Float_t min) {
111 AliHBTasCorrFctn::BuildHistos(nbins, max, min);
115 ClassDef(AliHBTQLongasCorrFctn,1)