Changes suggested by Effective C++ (F.Carminati)
[u/mrichter/AliRoot.git] / HBTAN / AliHBTWeightasCorrFctn.h
1 #ifndef ALIHBTWEIGHTASCORRFCTN_H
2 #define ALIHBTWEIGHTASCORRFCTN_H
3
4 ///////////////////////////////////////////////////////
5 //                                                   //
6 // AliHBTWeightasCorrFctn.h                           //
7 //                                                   //
8 // Class for calculating 3D Weightas correlation       //
9 // functions                                         //
10 // author: Grzegorz.Galazka@cern.ch                  //
11 ///////////////////////////////////////////////////////
12
13 #include "AliHBTFunction.h"
14
15  
16 class AliHBTWeightasCorrFctn: public AliHBTTwoPairFctn1D
17 {
18 public:
19      AliHBTWeightasCorrFctn(const char* name = "asejdzbitiCF", 
20                        const char* title= "as Correlation Function");
21
22      AliHBTWeightasCorrFctn(const char* name, const char* title,
23                        Int_t nbins, Float_t maxXval, Float_t minXval);
24      AliHBTWeightasCorrFctn(const AliHBTWeightasCorrFctn& in);
25      
26      virtual ~AliHBTWeightasCorrFctn();
27      
28      void Init();
29      void ProcessSameEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
30      void ProcessDiffEventParticles(AliHBTPair* trackpair, AliHBTPair* partpair);
31     
32      void Write();
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* tpair, AliHBTPair* ppair) const = 0;
44      virtual void BuildHistos() = 0;
45      
46      void SetParams(Int_t nbins,Float_t maxXval,Float_t minXval);
47      int Getnbins(){ return fnbins;}
48      double GetmaxXval(){return fmaxXval;}
49      double GetminXval(){return fminXval;}
50      
51      TObjArray* fNum; // numerators array
52      TObjArray* fDen; // denominators array
53      TObjArray* fRat;// correl. fnctns array
54      
55      
56 private:
57      int fnbins; //number of bins in histograms
58      Int_t fNumberOfIntervals;   //number of intervals
59      double fmaxXval; //max histogram's X value 
60      double fminXval; //min histogram's X value
61      
62      ClassDef(AliHBTWeightasCorrFctn,1)
63 };
64
65 class AliHBTQOutWeightasCorrFctn: public AliHBTWeightasCorrFctn{
66 public:
67      AliHBTQOutWeightasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
68      
69      virtual  ~AliHBTQOutWeightasCorrFctn(){};
70     
71      
72 protected:
73      Double_t GetValue(AliHBTPair* pair, AliHBTPair* ppair) const {ppair=0; return pair->GetQOutLCMS();}
74      void BuildHistos();
75 private:   
76      ClassDef(AliHBTQOutWeightasCorrFctn,1)
77 };
78
79 class AliHBTQSideWeightasCorrFctn: public AliHBTWeightasCorrFctn{
80 public:
81      AliHBTQSideWeightasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
82      virtual  ~AliHBTQSideWeightasCorrFctn(){};
83          
84 protected:
85      Double_t GetValue(AliHBTPair* pair, AliHBTPair* ppair) const {ppair=0;return pair->GetQSideLCMS();}
86      void BuildHistos();
87 private:   
88      ClassDef(AliHBTQSideWeightasCorrFctn,1)
89 };
90
91
92 class AliHBTQLongWeightasCorrFctn: public AliHBTWeightasCorrFctn{
93 public:
94      AliHBTQLongWeightasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
95
96      virtual  ~AliHBTQLongWeightasCorrFctn(){};
97      
98 protected:
99      Double_t GetValue(AliHBTPair* pair,AliHBTPair* ppair) const {ppair=0;return pair->GetQLongLCMS();}
100      void BuildHistos();
101 private:   
102      ClassDef(AliHBTQLongWeightasCorrFctn,1)
103 };
104
105
106 #endif