Removing output of hit pointers in AliMUONTrack class. New switch in ALiMUONv1 for...
[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);
bdec021f 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