1 #ifndef ALIHBTANALYSIS_H
2 #define ALIHBTANALYSIS_H
6 class AliHBTParticleCut;
14 class AliHBTOnePairFctn;
15 class AliHBTTwoPairFctn;
17 class AliHBTMonOneParticleFctn;
18 class AliHBTMonTwoParticleFctn;
22 class AliHBTAnalysis: public TObject
26 AliHBTAnalysis(const AliHBTAnalysis& in);
27 const AliHBTAnalysis& operator=(const AliHBTAnalysis& right);
28 virtual ~AliHBTAnalysis();
30 virtual void Process(Option_t* option = "TracksAndParticles");
32 void SetGlobalPairCut(AliHBTPairCut* cut);
34 void AddTrackFunction(AliHBTOnePairFctn* f);
35 void AddParticleFunction(AliHBTOnePairFctn* f);
36 void AddParticleAndTrackFunction(AliHBTTwoPairFctn* f);
38 void AddParticleMonitorFunction(AliHBTMonOneParticleFctn* f); //z.ch.
39 void AddTrackMonitorFunction(AliHBTMonOneParticleFctn* f); //z.ch.
40 void AddParticleAndTrackMonitorFunction(AliHBTMonTwoParticleFctn* f);//z.ch.
42 void AddResolutionFunction(AliHBTTwoPairFctn* f){AddParticleAndTrackFunction(f);}
44 void SetReader(AliHBTReader* r){fReader = r;}
46 void WriteFunctions();
48 void SetBufferSize(Int_t buffsize){fBufferSize=buffsize;}
49 void SetOwner(Bool_t owner=kTRUE){fIsOwner=owner;}
50 Bool_t IsOwner() const {return fIsOwner;}
51 Bool_t IsNonIdentAnalysis();
54 Bool_t RunCoherencyCheck();
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);
59 void DeleteFunctions();
61 virtual void ProcessTracks();
62 virtual void ProcessParticles();
63 virtual void ProcessTracksAndParticles();
65 virtual void ProcessTracksAndParticlesNonIdentAnal();
66 virtual void ProcessParticlesNonIdentAnal();
67 virtual void ProcessTracksNonIdentAnal();
69 AliHBTReader* fReader;//! Pointer to reader
71 UInt_t fNTrackFunctions; //! Number of Tracks functions
72 UInt_t fNParticleFunctions; //! Number of particles functions
73 UInt_t fNParticleAndTrackFunctions; //! Number of resolution functions
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
79 AliHBTOnePairFctn** fTrackFunctions; //!array of pointers to functions that analyze rekonstructed tracks
80 AliHBTOnePairFctn** fParticleFunctions; //!array of pointers to functions that analyze generated particles
81 AliHBTTwoPairFctn** fParticleAndTrackFunctions; //!array of pointers to functions that analyze both
82 //reconstructed tracks and generated particles
83 //i.e. - resolution analyzers
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.
89 /**********************************************/
90 /* Control parameters */
91 /**********************************************/
93 AliHBTPairCut *fPairCut;//! Pair cut applied for all mixed particles
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
100 static const UInt_t fgkFctnArraySize;//!
101 static const UInt_t fgkDefaultMixingInfo;//!
102 static const Int_t fgkDefaultBufferSize;//!
104 ClassDef(AliHBTAnalysis,0)