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