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