example analysis macro extended for monitor functions
[u/mrichter/AliRoot.git] / HBTAN / AliHBTAnalysis.h
CommitLineData
1b446896 1#ifndef ALIHBTANALYSIS_H
2#define ALIHBTANALYSIS_H
3
4#include <TObject.h>
5
6
7
8class AliHBTParticleCut;
9class AliHBTCut;
10class AliHBTPairCut;
11class AliHBTPair;
12
13class AliHBTRun;
dc2c3f36 14class AliHBTEvent;
1b446896 15class AliHBTReader;
27b3fe5d 16class AliHBTOnePairFctn;
17class AliHBTTwoPairFctn;
1b446896 18
19
20class TList;
21
22class AliHBTAnalysis: public TObject
23 {
24 public:
25 AliHBTAnalysis();
26
27 virtual ~AliHBTAnalysis();
28
29 virtual void Process(Option_t* option = "TracksAndParticles");
30
31
32 void SetGlobalPairCut(AliHBTPairCut* cut);
33
27b3fe5d 34 void AddTrackFunction(AliHBTOnePairFctn*);
35 void AddParticleFunction(AliHBTOnePairFctn*);
36 void AddParticleAndTrackFunction(AliHBTTwoPairFctn*);
1b446896 37
27b3fe5d 38 void AddResolutionFunction(AliHBTTwoPairFctn* f){AddParticleAndTrackFunction(f);}
1b446896 39
40 void SetReader(AliHBTReader* r){fReader = r;}
41
491d1b5d 42 void WriteFunctions();
7a2c8238 43
44 void SetBufferSize(Int_t buffsize){fBufferSize=buffsize;}
dc2c3f36 45
46 Bool_t IsNonIdentAnalysis();
1b446896 47 protected:
48
49 Bool_t RunCoherencyCheck();
50
dc2c3f36 51 void FilterOut(AliHBTEvent* outpart1, AliHBTEvent* outpart2, AliHBTEvent* inpart,
52 AliHBTEvent* outtrack1, AliHBTEvent* outtrack2, AliHBTEvent* intrack);
53 void FilterOut(AliHBTEvent* out1, AliHBTEvent* out2, AliHBTEvent* in);
1b446896 54
491d1b5d 55 AliHBTReader* fReader;//!
1b446896 56
57 virtual void ProcessTracks();
58 virtual void ProcessParticles();
59 virtual void ProcessTracksAndParticles();
60
dc2c3f36 61 virtual void ProcessTracksAndParticlesNonIdentAnal();
62 virtual void ProcessParticlesNonIdentAnal();
63 virtual void ProcessTracksNonIdentAnal();
1b446896 64
27b3fe5d 65 AliHBTOnePairFctn** fTrackFunctions; //!array of pointers to functions that analyze rekonstructed tracks
66 AliHBTOnePairFctn** fParticleFunctions; //!array of pointers to functions that analyze generated particles
dc2c3f36 67 AliHBTTwoPairFctn** fParticleAndTrackFunctions; //!array of pointers to functions that analyze both
1b446896 68 //reconstructed tracks and generated particles
69 //i.e. - resolution analyzers
491d1b5d 70 UInt_t fNTrackFunctions; //!
71 UInt_t fNParticleFunctions; //!
72 UInt_t fNParticleAndTrackFunctions; //!
1b446896 73
74 /**********************************************/
75 /* Control parameters */
76
491d1b5d 77 AliHBTPairCut *fPairCut;//!
1b446896 78
7a2c8238 79 Int_t fBufferSize; //defines the size of buffer for mixed events; -1==MIX All
1b446896 80 /**********************************************/
81
82
83 private:
491d1b5d 84 static const Int_t fgkHbtAnalyzeAll;//!
85 static const UInt_t fgkFctnArraySize;//!
1b446896 86/*********************************************/
87 public:
88 ClassDef(AliHBTAnalysis,0)
89 };
90
91
92
93
94#endif