45e7e31d896f8726e23f91c334bcbbce372af61d
[u/mrichter/AliRoot.git] / HBTAN / AliHBTAnalysis.h
1 #ifndef ALIHBTANALYSIS_H
2 #define ALIHBTANALYSIS_H
3
4 #include <TObject.h>
5
6
7
8 class AliHBTParticleCut;
9 class AliHBTCut;
10 class AliHBTPairCut;
11 class AliHBTPair;
12
13 class AliHBTRun;
14 class AliHBTReader;
15 class AliHBTOnePairFctn;      
16 class AliHBTTwoPairFctn;
17
18
19 class TList;
20
21 class AliHBTAnalysis: public TObject
22  {
23    public:
24      AliHBTAnalysis();
25
26      virtual ~AliHBTAnalysis();
27
28      virtual void Process(Option_t* option = "TracksAndParticles");
29      
30
31      void SetGlobalPairCut(AliHBTPairCut* cut);
32      
33      void AddTrackFunction(AliHBTOnePairFctn*);
34      void AddParticleFunction(AliHBTOnePairFctn*);
35      void AddParticleAndTrackFunction(AliHBTTwoPairFctn*);
36      
37      void AddResolutionFunction(AliHBTTwoPairFctn* f){AddParticleAndTrackFunction(f);}
38      
39      void SetReader(AliHBTReader* r){fReader = r;}
40      
41      void WriteFunctions();
42      
43      void SetBufferSize(Int_t buffsize){fBufferSize=buffsize;}
44     
45    protected:
46      
47      Bool_t RunCoherencyCheck();
48      
49      
50      AliHBTReader* fReader;//!
51      
52      virtual void ProcessTracks();
53      virtual void ProcessParticles();
54      virtual void ProcessTracksAndParticles();
55      
56      
57      AliHBTOnePairFctn**  fTrackFunctions; //!array of pointers to functions that analyze rekonstructed tracks
58      AliHBTOnePairFctn**  fParticleFunctions; //!array of pointers to functions that analyze generated particles
59      AliHBTTwoPairFctn** fParticleAndTrackFunctions; //!array of pointers to functions that analyze both 
60                                         //reconstructed tracks and generated particles
61                 //i.e. - resolution analyzers
62      UInt_t fNTrackFunctions; //!
63      UInt_t fNParticleFunctions; //!
64      UInt_t fNParticleAndTrackFunctions; //!
65                 
66      /**********************************************/
67      /* Control parameters  */
68
69       AliHBTPairCut *fPairCut;//!
70       
71       Int_t fBufferSize; //defines the size of buffer for mixed events; -1==MIX All
72      /**********************************************/
73      
74      
75    private:
76      static const Int_t fgkHbtAnalyzeAll;//!
77      static const UInt_t fgkFctnArraySize;//!
78 /*********************************************/   
79    public:
80      ClassDef(AliHBTAnalysis,0)
81  };
82
83
84
85
86 #endif