]>
Commit | Line | Data |
---|---|---|
1b446896 | 1 | #ifndef ALIHBTANALYSIS_H |
2 | #define ALIHBTANALYSIS_H | |
3 | ||
6e8d850a | 4 | /* $Id$ */ |
5 | ||
1b446896 | 6 | #include <TObject.h> |
7 | ||
1b446896 | 8 | class AliHBTParticleCut; |
9 | class AliHBTCut; | |
10 | class AliHBTPairCut; | |
11 | class AliHBTPair; | |
12 | ||
13 | class AliHBTRun; | |
dc2c3f36 | 14 | class AliHBTEvent; |
1b446896 | 15 | class AliHBTReader; |
27b3fe5d | 16 | class AliHBTOnePairFctn; |
17 | class AliHBTTwoPairFctn; | |
1b446896 | 18 | |
5c58441a | 19 | class AliHBTMonOneParticleFctn; |
20 | class AliHBTMonTwoParticleFctn; | |
1b446896 | 21 | |
22 | class TList; | |
23 | ||
e4f2b1da | 24 | //____________________ |
25 | //Central Object of HBT Analyser | |
26 | //Performs looping over events/particles | |
27 | ||
1b446896 | 28 | class AliHBTAnalysis: public TObject |
29 | { | |
30 | public: | |
31 | AliHBTAnalysis(); | |
81b7b887 | 32 | AliHBTAnalysis(const AliHBTAnalysis& in); |
6e8d850a | 33 | AliHBTAnalysis& operator=(const AliHBTAnalysis& right); |
1b446896 | 34 | virtual ~AliHBTAnalysis(); |
35 | ||
36 | virtual void Process(Option_t* option = "TracksAndParticles"); | |
37 | ||
1b446896 | 38 | void SetGlobalPairCut(AliHBTPairCut* cut); |
39 | ||
5c58441a | 40 | void AddTrackFunction(AliHBTOnePairFctn* f); |
41 | void AddParticleFunction(AliHBTOnePairFctn* f); | |
42 | void AddParticleAndTrackFunction(AliHBTTwoPairFctn* f); | |
1b446896 | 43 | |
5c58441a | 44 | void AddParticleMonitorFunction(AliHBTMonOneParticleFctn* f); //z.ch. |
45 | void AddTrackMonitorFunction(AliHBTMonOneParticleFctn* f); //z.ch. | |
46 | void AddParticleAndTrackMonitorFunction(AliHBTMonTwoParticleFctn* f);//z.ch. | |
47 | ||
27b3fe5d | 48 | void AddResolutionFunction(AliHBTTwoPairFctn* f){AddParticleAndTrackFunction(f);} |
1b446896 | 49 | |
50 | void SetReader(AliHBTReader* r){fReader = r;} | |
51 | ||
491d1b5d | 52 | void WriteFunctions(); |
7a2c8238 | 53 | |
54 | void SetBufferSize(Int_t buffsize){fBufferSize=buffsize;} | |
81b7b887 | 55 | void SetOwner(Bool_t owner=kTRUE){fIsOwner=owner;} |
56 | Bool_t IsOwner() const {return fIsOwner;} | |
dc2c3f36 | 57 | Bool_t IsNonIdentAnalysis(); |
e4f2b1da | 58 | void Init(); |
59 | void ResetFunctions(); | |
44e5b87b | 60 | void SetDisplayInfo(Int_t howoften){fDisplayMixingInfo = howoften;}//defines every each line info about mixing is displayed |
1b446896 | 61 | protected: |
62 | ||
63 | Bool_t RunCoherencyCheck(); | |
64 | ||
dc2c3f36 | 65 | void FilterOut(AliHBTEvent* outpart1, AliHBTEvent* outpart2, AliHBTEvent* inpart, |
66 | AliHBTEvent* outtrack1, AliHBTEvent* outtrack2, AliHBTEvent* intrack); | |
67 | void FilterOut(AliHBTEvent* out1, AliHBTEvent* out2, AliHBTEvent* in); | |
81b7b887 | 68 | void DeleteFunctions(); |
1b446896 | 69 | |
70 | virtual void ProcessTracks(); | |
71 | virtual void ProcessParticles(); | |
72 | virtual void ProcessTracksAndParticles(); | |
73 | ||
dc2c3f36 | 74 | virtual void ProcessTracksAndParticlesNonIdentAnal(); |
75 | virtual void ProcessParticlesNonIdentAnal(); | |
76 | virtual void ProcessTracksNonIdentAnal(); | |
81b7b887 | 77 | |
78 | AliHBTReader* fReader;//! Pointer to reader | |
1b446896 | 79 | |
81b7b887 | 80 | UInt_t fNTrackFunctions; //! Number of Tracks functions |
81 | UInt_t fNParticleFunctions; //! Number of particles functions | |
82 | UInt_t fNParticleAndTrackFunctions; //! Number of resolution functions | |
83 | ||
84 | UInt_t fNTrackMonitorFunctions; //! Number of Track Monitor functions | |
85 | UInt_t fNParticleMonitorFunctions; //! Number of Particles Monitor functions | |
86 | UInt_t fNParticleAndTrackMonitorFunctions; //! Number of Resolution Monitor functions | |
87 | ||
27b3fe5d | 88 | AliHBTOnePairFctn** fTrackFunctions; //!array of pointers to functions that analyze rekonstructed tracks |
89 | AliHBTOnePairFctn** fParticleFunctions; //!array of pointers to functions that analyze generated particles | |
dc2c3f36 | 90 | AliHBTTwoPairFctn** fParticleAndTrackFunctions; //!array of pointers to functions that analyze both |
1b446896 | 91 | //reconstructed tracks and generated particles |
92 | //i.e. - resolution analyzers | |
81b7b887 | 93 | AliHBTMonOneParticleFctn** fParticleMonitorFunctions; //! array of pointers to monitoring functions |
94 | AliHBTMonOneParticleFctn** fTrackMonitorFunctions; //! which are used for single particle analysis, | |
95 | AliHBTMonTwoParticleFctn** fParticleAndTrackMonitorFunctions; //! cut monitoring, etc. | |
5c58441a | 96 | |
5c58441a | 97 | |
1b446896 | 98 | /**********************************************/ |
99 | /* Control parameters */ | |
81b7b887 | 100 | /**********************************************/ |
1b446896 | 101 | |
81b7b887 | 102 | AliHBTPairCut *fPairCut;//! Pair cut applied for all mixed particles |
1b446896 | 103 | |
81b7b887 | 104 | Int_t fBufferSize; //!defines the size of buffer for mixed events; -1==MIX All |
105 | Int_t fDisplayMixingInfo;//!defines every which particle mixing info is displayed | |
106 | Bool_t fIsOwner;//!defines of all functions are supposed to be deleted while by the way of analysis defaulr false | |
107 | ||
1b446896 | 108 | private: |
491d1b5d | 109 | static const UInt_t fgkFctnArraySize;//! |
81b7b887 | 110 | static const UInt_t fgkDefaultMixingInfo;//! |
111 | static const Int_t fgkDefaultBufferSize;//! | |
6e8d850a | 112 | |
1b446896 | 113 | ClassDef(AliHBTAnalysis,0) |
114 | }; | |
115 | ||
116 | ||
117 | ||
118 | ||
119 | #endif |