]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HBTAN/AliHBTAnalysis.h
Putting back corrections for coding connsion
[u/mrichter/AliRoot.git] / HBTAN / AliHBTAnalysis.h
CommitLineData
1b446896 1#ifndef ALIHBTANALYSIS_H
2#define ALIHBTANALYSIS_H
3
6e8d850a 4/* $Id$ */
5
1b446896 6#include <TObject.h>
7
1b446896 8class AliHBTParticleCut;
9class AliHBTCut;
10class AliHBTPairCut;
11class AliHBTPair;
12
13class AliHBTRun;
dc2c3f36 14class AliHBTEvent;
1b446896 15class AliHBTReader;
27b3fe5d 16class AliHBTOnePairFctn;
17class AliHBTTwoPairFctn;
1b446896 18
5c58441a 19class AliHBTMonOneParticleFctn;
20class AliHBTMonTwoParticleFctn;
1b446896 21
22class TList;
23
e4f2b1da 24//____________________
25//Central Object of HBT Analyser
26//Performs looping over events/particles
27
1b446896 28class AliHBTAnalysis: public TObject
29 {
30 public:
31 AliHBTAnalysis();
81b7b887 32 AliHBTAnalysis(const AliHBTAnalysis& in);
6e8d850a 33 AliHBTAnalysis& operator=(const AliHBTAnalysis& right);
1b446896 34 virtual ~AliHBTAnalysis();
35
36 virtual void Process(Option_t* option = "TracksAndParticles");
37
1b446896 38 void SetGlobalPairCut(AliHBTPairCut* cut);
39
5c58441a 40 void AddTrackFunction(AliHBTOnePairFctn* f);
41 void AddParticleFunction(AliHBTOnePairFctn* f);
42 void AddParticleAndTrackFunction(AliHBTTwoPairFctn* f);
1b446896 43
5c58441a 44 void AddParticleMonitorFunction(AliHBTMonOneParticleFctn* f); //z.ch.
45 void AddTrackMonitorFunction(AliHBTMonOneParticleFctn* f); //z.ch.
46 void AddParticleAndTrackMonitorFunction(AliHBTMonTwoParticleFctn* f);//z.ch.
47
27b3fe5d 48 void AddResolutionFunction(AliHBTTwoPairFctn* f){AddParticleAndTrackFunction(f);}
1b446896 49
50 void SetReader(AliHBTReader* r){fReader = r;}
51
491d1b5d 52 void WriteFunctions();
7a2c8238 53
54 void SetBufferSize(Int_t buffsize){fBufferSize=buffsize;}
81b7b887 55 void SetOwner(Bool_t owner=kTRUE){fIsOwner=owner;}
56 Bool_t IsOwner() const {return fIsOwner;}
dc2c3f36 57 Bool_t IsNonIdentAnalysis();
e4f2b1da 58 void Init();
59 void ResetFunctions();
44e5b87b 60 void SetDisplayInfo(Int_t howoften){fDisplayMixingInfo = howoften;}//defines every each line info about mixing is displayed
1b446896 61 protected:
62
63 Bool_t RunCoherencyCheck();
64
dc2c3f36 65 void FilterOut(AliHBTEvent* outpart1, AliHBTEvent* outpart2, AliHBTEvent* inpart,
66 AliHBTEvent* outtrack1, AliHBTEvent* outtrack2, AliHBTEvent* intrack);
67 void FilterOut(AliHBTEvent* out1, AliHBTEvent* out2, AliHBTEvent* in);
81b7b887 68 void DeleteFunctions();
1b446896 69
70 virtual void ProcessTracks();
71 virtual void ProcessParticles();
72 virtual void ProcessTracksAndParticles();
73
dc2c3f36 74 virtual void ProcessTracksAndParticlesNonIdentAnal();
75 virtual void ProcessParticlesNonIdentAnal();
76 virtual void ProcessTracksNonIdentAnal();
81b7b887 77
78 AliHBTReader* fReader;//! Pointer to reader
1b446896 79
81b7b887 80 UInt_t fNTrackFunctions; //! Number of Tracks functions
81 UInt_t fNParticleFunctions; //! Number of particles functions
82 UInt_t fNParticleAndTrackFunctions; //! Number of resolution functions
83
84 UInt_t fNTrackMonitorFunctions; //! Number of Track Monitor functions
85 UInt_t fNParticleMonitorFunctions; //! Number of Particles Monitor functions
86 UInt_t fNParticleAndTrackMonitorFunctions; //! Number of Resolution Monitor functions
87
27b3fe5d 88 AliHBTOnePairFctn** fTrackFunctions; //!array of pointers to functions that analyze rekonstructed tracks
89 AliHBTOnePairFctn** fParticleFunctions; //!array of pointers to functions that analyze generated particles
dc2c3f36 90 AliHBTTwoPairFctn** fParticleAndTrackFunctions; //!array of pointers to functions that analyze both
1b446896 91 //reconstructed tracks and generated particles
92 //i.e. - resolution analyzers
81b7b887 93 AliHBTMonOneParticleFctn** fParticleMonitorFunctions; //! array of pointers to monitoring functions
94 AliHBTMonOneParticleFctn** fTrackMonitorFunctions; //! which are used for single particle analysis,
95 AliHBTMonTwoParticleFctn** fParticleAndTrackMonitorFunctions; //! cut monitoring, etc.
5c58441a 96
5c58441a 97
1b446896 98 /**********************************************/
99 /* Control parameters */
81b7b887 100 /**********************************************/
1b446896 101
81b7b887 102 AliHBTPairCut *fPairCut;//! Pair cut applied for all mixed particles
1b446896 103
81b7b887 104 Int_t fBufferSize; //!defines the size of buffer for mixed events; -1==MIX All
105 Int_t fDisplayMixingInfo;//!defines every which particle mixing info is displayed
106 Bool_t fIsOwner;//!defines of all functions are supposed to be deleted while by the way of analysis defaulr false
107
1b446896 108 private:
491d1b5d 109 static const UInt_t fgkFctnArraySize;//!
81b7b887 110 static const UInt_t fgkDefaultMixingInfo;//!
111 static const Int_t fgkDefaultBufferSize;//!
6e8d850a 112
1b446896 113 ClassDef(AliHBTAnalysis,0)
114 };
115
116
117
118
119#endif