]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HBTAN/AliHBTAnalysis.h
cout replaced by printf
[u/mrichter/AliRoot.git] / HBTAN / AliHBTAnalysis.h
CommitLineData
1b446896 1#ifndef ALIHBTANALYSIS_H
2#define ALIHBTANALYSIS_H
3
4#include <TObject.h>
5
1b446896 6class AliHBTParticleCut;
7class AliHBTCut;
8class AliHBTPairCut;
9class AliHBTPair;
10
11class AliHBTRun;
dc2c3f36 12class AliHBTEvent;
1b446896 13class AliHBTReader;
27b3fe5d 14class AliHBTOnePairFctn;
15class AliHBTTwoPairFctn;
1b446896 16
5c58441a 17class AliHBTMonOneParticleFctn;
18class AliHBTMonTwoParticleFctn;
1b446896 19
20class TList;
21
e4f2b1da 22//____________________
23//Central Object of HBT Analyser
24//Performs looping over events/particles
25
1b446896 26class AliHBTAnalysis: public TObject
27 {
28 public:
29 AliHBTAnalysis();
81b7b887 30 AliHBTAnalysis(const AliHBTAnalysis& in);
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();
1b446896 58 protected:
59
60 Bool_t RunCoherencyCheck();
61
dc2c3f36 62 void FilterOut(AliHBTEvent* outpart1, AliHBTEvent* outpart2, AliHBTEvent* inpart,
63 AliHBTEvent* outtrack1, AliHBTEvent* outtrack2, AliHBTEvent* intrack);
64 void FilterOut(AliHBTEvent* out1, AliHBTEvent* out2, AliHBTEvent* in);
81b7b887 65 void DeleteFunctions();
1b446896 66
67 virtual void ProcessTracks();
68 virtual void ProcessParticles();
69 virtual void ProcessTracksAndParticles();
70
dc2c3f36 71 virtual void ProcessTracksAndParticlesNonIdentAnal();
72 virtual void ProcessParticlesNonIdentAnal();
73 virtual void ProcessTracksNonIdentAnal();
81b7b887 74
75 AliHBTReader* fReader;//! Pointer to reader
1b446896 76
81b7b887 77 UInt_t fNTrackFunctions; //! Number of Tracks functions
78 UInt_t fNParticleFunctions; //! Number of particles functions
79 UInt_t fNParticleAndTrackFunctions; //! Number of resolution functions
80
81 UInt_t fNTrackMonitorFunctions; //! Number of Track Monitor functions
82 UInt_t fNParticleMonitorFunctions; //! Number of Particles Monitor functions
83 UInt_t fNParticleAndTrackMonitorFunctions; //! Number of Resolution Monitor functions
84
27b3fe5d 85 AliHBTOnePairFctn** fTrackFunctions; //!array of pointers to functions that analyze rekonstructed tracks
86 AliHBTOnePairFctn** fParticleFunctions; //!array of pointers to functions that analyze generated particles
dc2c3f36 87 AliHBTTwoPairFctn** fParticleAndTrackFunctions; //!array of pointers to functions that analyze both
1b446896 88 //reconstructed tracks and generated particles
89 //i.e. - resolution analyzers
81b7b887 90 AliHBTMonOneParticleFctn** fParticleMonitorFunctions; //! array of pointers to monitoring functions
91 AliHBTMonOneParticleFctn** fTrackMonitorFunctions; //! which are used for single particle analysis,
92 AliHBTMonTwoParticleFctn** fParticleAndTrackMonitorFunctions; //! cut monitoring, etc.
5c58441a 93
5c58441a 94
1b446896 95 /**********************************************/
96 /* Control parameters */
81b7b887 97 /**********************************************/
1b446896 98
81b7b887 99 AliHBTPairCut *fPairCut;//! Pair cut applied for all mixed particles
1b446896 100
81b7b887 101 Int_t fBufferSize; //!defines the size of buffer for mixed events; -1==MIX All
102 Int_t fDisplayMixingInfo;//!defines every which particle mixing info is displayed
103 Bool_t fIsOwner;//!defines of all functions are supposed to be deleted while by the way of analysis defaulr false
104
1b446896 105 private:
491d1b5d 106 static const UInt_t fgkFctnArraySize;//!
81b7b887 107 static const UInt_t fgkDefaultMixingInfo;//!
108 static const Int_t fgkDefaultBufferSize;//!
1b446896 109 public:
110 ClassDef(AliHBTAnalysis,0)
111 };
112
113
114
115
116#endif