1 #ifndef ALIHBTANALYSIS_H
2 #define ALIHBTANALYSIS_H
8 class AliHBTParticleCut;
16 class AliHBTOnePairFctn;
17 class AliHBTTwoPairFctn;
19 class AliHBTMonOneParticleFctn;
20 class AliHBTMonTwoParticleFctn;
24 class AliHBTAnalysis: public TObject
29 virtual ~AliHBTAnalysis();
31 virtual void Process(Option_t* option = "TracksAndParticles");
34 void SetGlobalPairCut(AliHBTPairCut* cut);
36 void AddTrackFunction(AliHBTOnePairFctn* f);
37 void AddParticleFunction(AliHBTOnePairFctn* f);
38 void AddParticleAndTrackFunction(AliHBTTwoPairFctn* f);
40 void AddParticleMonitorFunction(AliHBTMonOneParticleFctn* f); //z.ch.
41 void AddTrackMonitorFunction(AliHBTMonOneParticleFctn* f); //z.ch.
42 void AddParticleAndTrackMonitorFunction(AliHBTMonTwoParticleFctn* f);//z.ch.
44 void AddResolutionFunction(AliHBTTwoPairFctn* f){AddParticleAndTrackFunction(f);}
46 void SetReader(AliHBTReader* r){fReader = r;}
48 void WriteFunctions();
50 void SetBufferSize(Int_t buffsize){fBufferSize=buffsize;}
52 Bool_t IsNonIdentAnalysis();
55 Bool_t RunCoherencyCheck();
57 void FilterOut(AliHBTEvent* outpart1, AliHBTEvent* outpart2, AliHBTEvent* inpart,
58 AliHBTEvent* outtrack1, AliHBTEvent* outtrack2, AliHBTEvent* intrack);
59 void FilterOut(AliHBTEvent* out1, AliHBTEvent* out2, AliHBTEvent* in);
61 AliHBTReader* fReader;//!
63 virtual void ProcessTracks();
64 virtual void ProcessParticles();
65 virtual void ProcessTracksAndParticles();
67 virtual void ProcessTracksAndParticlesNonIdentAnal();
68 virtual void ProcessParticlesNonIdentAnal();
69 virtual void ProcessTracksNonIdentAnal();
71 AliHBTOnePairFctn** fTrackFunctions; //!array of pointers to functions that analyze rekonstructed tracks
72 AliHBTOnePairFctn** fParticleFunctions; //!array of pointers to functions that analyze generated particles
73 AliHBTTwoPairFctn** fParticleAndTrackFunctions; //!array of pointers to functions that analyze both
74 //reconstructed tracks and generated particles
75 //i.e. - resolution analyzers
77 AliHBTMonOneParticleFctn** fParticleMonitorFunctions; // array of pointers to monitoring functions
78 AliHBTMonOneParticleFctn** fTrackMonitorFunctions; // which are used for single particle analysis,
79 AliHBTMonTwoParticleFctn** fParticleAndTrackMonitorFunctions; // cut monitoring, etc.
81 UInt_t fNTrackFunctions; //!
82 UInt_t fNParticleFunctions; //!
83 UInt_t fNParticleAndTrackFunctions; //!
85 UInt_t fNParticleMonitorFunctions; //!
86 UInt_t fNTrackMonitorFunctions; //!
87 UInt_t fNParticleAndTrackMonitorFunctions; //!
89 /**********************************************/
90 /* Control parameters */
92 AliHBTPairCut *fPairCut;//!
94 Int_t fBufferSize; //defines the size of buffer for mixed events; -1==MIX All
95 /**********************************************/
99 static const Int_t fgkHbtAnalyzeAll;//!
100 static const UInt_t fgkFctnArraySize;//!
101 /*********************************************/
103 ClassDef(AliHBTAnalysis,0)