reading RAW without data
[u/mrichter/AliRoot.git] / HBTAN / AliHBTasCorrFctn.h
1 #ifndef ALIHBTASCORRFCTN_H
2 #define ALIHBTASCORRFCTN_H
3
4 ///////////////////////////////////////////////////////
5 //                                                   //
6 // AliHBTasCorrFctn.h                                //
7 //                                                   //
8 // Class for calculating 3D as correlation           //
9 // functions                                         //
10 //author: Grzegorz.Galazka@cern.ch                   //
11 ///////////////////////////////////////////////////////
12
13 #include "AliHBTFunction.h"
14
15  
16 class AliHBTasCorrFctn: public AliHBTOnePairFctn1D
17 {
18 public:
19      AliHBTasCorrFctn(const char* name = "asejdzbitiCF", 
20                        const char* title= "as Correlation Function");
21
22      AliHBTasCorrFctn(const char* name, const char* title,
23                        Int_t nbins, Float_t maxXval, Float_t minXval);
24      AliHBTasCorrFctn(const AliHBTasCorrFctn& in);
25      
26      virtual ~AliHBTasCorrFctn();
27      
28      void Init();
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);}
33      
34      void SetNumberOfIntervals(Int_t N){fNumberOfIntervals = N;}
35      
36      Int_t GetNumberOfIntervals(){return fNumberOfIntervals;}
37     
38      
39      TH1*     GetResult();
40    
41 protected:
42      
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);
47      }
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); //
52      
53      TObjArray* fNum; // numerators array
54      TObjArray* fDen; // denominators array
55      TObjArray* fRat;// correl. fnctns array
56      
57      
58 private:
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
63      
64      ClassDef(AliHBTasCorrFctn,1)
65 };
66
67 class AliHBTQOutasCorrFctn: public AliHBTasCorrFctn{
68 public:
69      AliHBTQOutasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
70      
71      virtual  ~AliHBTQOutasCorrFctn(){};
72     
73      
74 protected:
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);
78      }
79      void BuildHistos();
80 private:   
81      ClassDef(AliHBTQOutasCorrFctn,1)
82 };
83
84 class AliHBTQSideasCorrFctn: public AliHBTasCorrFctn{
85 public:
86      AliHBTQSideasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
87 //     AliHBTSideasCorrFctn(const AliHBTasCorrFctn& in);
88      
89      virtual  ~AliHBTQSideasCorrFctn(){};
90          
91 protected:
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);
95      }
96      void BuildHistos();
97 private:   
98      ClassDef(AliHBTQSideasCorrFctn,1)
99 };
100
101
102 class AliHBTQLongasCorrFctn: public AliHBTasCorrFctn{
103 public:
104      AliHBTQLongasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
105
106      virtual  ~AliHBTQLongasCorrFctn(){};
107      
108 protected:
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);
112      }
113      void BuildHistos();
114 private:   
115      ClassDef(AliHBTQLongasCorrFctn,1)
116 };
117
118
119 #endif