Corrections to reconstruction algorithm.
[u/mrichter/AliRoot.git] / HBTAN / AliHBTAnalysis.h
CommitLineData
1b446896 1#ifndef ALIHBTANALYSIS_H
2#define ALIHBTANALYSIS_H
3
4#include <TObject.h>
5
6
7
8class AliHBTParticleCut;
9class AliHBTCut;
10class AliHBTPairCut;
11class AliHBTPair;
12
13class AliHBTRun;
dc2c3f36 14class AliHBTEvent;
1b446896 15class AliHBTReader;
27b3fe5d 16class AliHBTOnePairFctn;
17class AliHBTTwoPairFctn;
1b446896 18
5c58441a 19class AliHBTMonOneParticleFctn;
20class AliHBTMonTwoParticleFctn;
1b446896 21
22class TList;
23
24class AliHBTAnalysis: public TObject
25 {
26 public:
27 AliHBTAnalysis();
28
29 virtual ~AliHBTAnalysis();
30
31 virtual void Process(Option_t* option = "TracksAndParticles");
32
33
34 void SetGlobalPairCut(AliHBTPairCut* cut);
35
5c58441a 36 void AddTrackFunction(AliHBTOnePairFctn* f);
37 void AddParticleFunction(AliHBTOnePairFctn* f);
38 void AddParticleAndTrackFunction(AliHBTTwoPairFctn* f);
1b446896 39
5c58441a 40 void AddParticleMonitorFunction(AliHBTMonOneParticleFctn* f); //z.ch.
41 void AddTrackMonitorFunction(AliHBTMonOneParticleFctn* f); //z.ch.
42 void AddParticleAndTrackMonitorFunction(AliHBTMonTwoParticleFctn* f);//z.ch.
43
27b3fe5d 44 void AddResolutionFunction(AliHBTTwoPairFctn* f){AddParticleAndTrackFunction(f);}
1b446896 45
46 void SetReader(AliHBTReader* r){fReader = r;}
47
491d1b5d 48 void WriteFunctions();
7a2c8238 49
50 void SetBufferSize(Int_t buffsize){fBufferSize=buffsize;}
dc2c3f36 51
52 Bool_t IsNonIdentAnalysis();
1b446896 53 protected:
54
55 Bool_t RunCoherencyCheck();
56
dc2c3f36 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);
1b446896 60
491d1b5d 61 AliHBTReader* fReader;//!
1b446896 62
63 virtual void ProcessTracks();
64 virtual void ProcessParticles();
65 virtual void ProcessTracksAndParticles();
66
dc2c3f36 67 virtual void ProcessTracksAndParticlesNonIdentAnal();
68 virtual void ProcessParticlesNonIdentAnal();
69 virtual void ProcessTracksNonIdentAnal();
1b446896 70
27b3fe5d 71 AliHBTOnePairFctn** fTrackFunctions; //!array of pointers to functions that analyze rekonstructed tracks
72 AliHBTOnePairFctn** fParticleFunctions; //!array of pointers to functions that analyze generated particles
dc2c3f36 73 AliHBTTwoPairFctn** fParticleAndTrackFunctions; //!array of pointers to functions that analyze both
1b446896 74 //reconstructed tracks and generated particles
75 //i.e. - resolution analyzers
5c58441a 76
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.
80
491d1b5d 81 UInt_t fNTrackFunctions; //!
82 UInt_t fNParticleFunctions; //!
83 UInt_t fNParticleAndTrackFunctions; //!
1b446896 84
5c58441a 85 UInt_t fNParticleMonitorFunctions; //!
86 UInt_t fNTrackMonitorFunctions; //!
87 UInt_t fNParticleAndTrackMonitorFunctions; //!
88
1b446896 89 /**********************************************/
90 /* Control parameters */
91
491d1b5d 92 AliHBTPairCut *fPairCut;//!
1b446896 93
7a2c8238 94 Int_t fBufferSize; //defines the size of buffer for mixed events; -1==MIX All
1b446896 95 /**********************************************/
96
97
98 private:
491d1b5d 99 static const Int_t fgkHbtAnalyzeAll;//!
100 static const UInt_t fgkFctnArraySize;//!
1b446896 101/*********************************************/
102 public:
103 ClassDef(AliHBTAnalysis,0)
104 };
105
106
107
108
109#endif