9c94df6380d2db705c85f67517d924c21dc7e0ee
[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 AliHBTTwoPartFctn;      
16 class AliHBTFourPartFctn;
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(AliHBTTwoPartFctn*);
34      void AddParticleFunction(AliHBTTwoPartFctn*);
35      void AddParticleAndTrackFunction(AliHBTFourPartFctn*);
36      
37      void AddResolutionFunction(AliHBTFourPartFctn* f){AddParticleAndTrackFunction(f);}
38      
39      void SetReader(AliHBTReader* r){fReader = r;}
40      
41      void WriteFunctions();
42    protected:
43      
44      Bool_t RunCoherencyCheck();
45      
46      
47      AliHBTReader* fReader;//!
48      
49      virtual void ProcessTracks();
50      virtual void ProcessParticles();
51      virtual void ProcessTracksAndParticles();
52      
53      
54      AliHBTTwoPartFctn**  fTrackFunctions; //!array of pointers to functions that analyze rekonstructed tracks
55      AliHBTTwoPartFctn**  fParticleFunctions; //!array of pointers to functions that analyze generated particles
56      AliHBTFourPartFctn** fParticleAndTrackFunctions; //!array of pointers to functions that analyze both 
57                                         //reconstructed tracks and generated particles
58                 //i.e. - resolution analyzers
59      UInt_t fNTrackFunctions; //!
60      UInt_t fNParticleFunctions; //!
61      UInt_t fNParticleAndTrackFunctions; //!
62                 
63      /**********************************************/
64      /* Control parameters  */
65
66       AliHBTPairCut *fPairCut;//!
67       
68      /**********************************************/
69      
70      
71    private:
72      static const Int_t fgkHbtAnalyzeAll;//!
73      static const UInt_t fgkFctnArraySize;//!
74 /*********************************************/   
75    public:
76      ClassDef(AliHBTAnalysis,0)
77  };
78
79
80
81
82 #endif