]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HBTAN/AliHBTasCorrFctn.h
merging RecPoints and ClustersV2. All ClusterFinders produce AliITSRecPoints objects...
[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      void Write();
32      
33      void SetNumberOfIntervals(Int_t N){fNumberOfIntervals = N;}
34      
35      Int_t GetNumberOfIntervals(){return fNumberOfIntervals;}
36     
37      
38      TH1*     GetResult();
39    
40 protected:
41      
42      virtual Double_t GetValue(AliHBTPair* pair) const = 0; 
43      virtual void BuildHistos() = 0; 
44      int Getnbins(){ return fnbins;}         // this are workarounds for my lame coding
45      double GetmaxXval(){return fmaxXval;}   // these methods are uset to build histograms 
46      double GetminXval(){return fminXval;}   // with set by user number of bins etc. 
47      void SetParams(Int_t nbins,Float_t maxXval,Float_t minXval); //
48      
49      TObjArray* fNum; // numerators array
50      TObjArray* fDen; // denominators array
51      TObjArray* fRat;// correl. fnctns array
52      
53      
54 private:
55      int fnbins; //number of bins in histograms
56      Int_t fNumberOfIntervals;   //number of intervals
57      double fmaxXval; //max histogram's X value 
58      double fminXval; //min histogram's X value
59      
60      ClassDef(AliHBTasCorrFctn,1)
61 };
62
63 class AliHBTQOutasCorrFctn: public AliHBTasCorrFctn{
64 public:
65      AliHBTQOutasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
66      
67      virtual  ~AliHBTQOutasCorrFctn(){};
68     
69      
70 protected:
71      Double_t GetValue(AliHBTPair* pair) const {return pair->GetQOutLCMS();}
72      void BuildHistos();
73 private:   
74      ClassDef(AliHBTQOutasCorrFctn,1)
75 };
76
77 class AliHBTQSideasCorrFctn: public AliHBTasCorrFctn{
78 public:
79      AliHBTQSideasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
80 //     AliHBTSideasCorrFctn(const AliHBTasCorrFctn& in);
81      
82      virtual  ~AliHBTQSideasCorrFctn(){};
83          
84 protected:
85      Double_t GetValue(AliHBTPair* pair) const {return pair->GetQSideLCMS();} 
86      void BuildHistos();
87 private:   
88      ClassDef(AliHBTQSideasCorrFctn,1)
89 };
90
91
92 class AliHBTQLongasCorrFctn: public AliHBTasCorrFctn{
93 public:
94      AliHBTQLongasCorrFctn(const char* name, const char* title, Int_t nbins, Float_t maxXval, Float_t minXval);
95
96      virtual  ~AliHBTQLongasCorrFctn(){};
97      
98 protected:
99      Double_t GetValue(AliHBTPair* pair) const {return pair->GetQLongLCMS();}
100      void BuildHistos();
101 private:   
102      ClassDef(AliHBTQLongasCorrFctn,1)
103 };
104
105
106 #endif