Cut inherits now from TNamed -> possiblity of writing it to file
[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
22class 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