Added run number to frame
[u/mrichter/AliRoot.git] / EVE / EveHLT / AliEveHLTEventManager.h
CommitLineData
30e7579c 1#ifndef ALIEVEHLTEVENTMANAGER_H
2#define ALIEVEHLTEVENTMANAGER_H
3
4
5#include "TEveEventManager.h"
6#include "AliHLTLoggingVariadicFree.h"
7
8class AliHLTHOMERBlockDesc;
9class TList;
10
11class TEveManager;
12class TEveScene;
13class TEveProjectionManager;
14class TTimer;
15class TEveViewer;
16
17class AliHLTEvePhos;
18class AliHLTEveEmcal;
19class AliHLTEveTPC;
20class AliHLTEveHLT;
21class AliHLTEveITS;
22class AliHLTEveISSD;
23class AliHLTEveISDD;
24class AliHLTEveISPD;
25class AliHLTEveTRD;
26class AliHLTEveAny;
27class AliHLTEveMuon;
28class AliEveEventBuffer;
29class AliESDEvent;
30
31class AliEveHLTEventManager : public TEveElementList {
32
33public:
34
35 ///Constructor
36 AliEveHLTEventManager();
37
38 virtual ~AliEveHLTEventManager();
39
40
41 void SetRunNumber(Int_t rn) { fRunNumber = rn; }
42
43 /**Set and get the global instance of the Eve manager */
44 void SetEveManager(TEveManager * manager) {fEveManager = manager;}
45 TEveManager * GetEveManager() const {return fEveManager;}
46
47 /**Set and get the global instance of TGeoManager */
48 void SetGeoManager(TGeoManager * manager) {fGeoManager = manager;}
49 TGeoManager * GetGeoManager() const {return fGeoManager;}
50
51 /** Set the projection scenes and their managers */
52 void SetRPhiManager (TEveProjectionManager * mgr) {fRPhiManager = mgr;}
53 void SetRPhiEventScene (TEveScene * scene ) {fRPhiEventScene = scene;}
54 void SetRPhiViewer(TEveViewer * viewer ) {fRPhiViewer = viewer;}
55 void SetRhoZManager(TEveProjectionManager * mgr) {fRhoZManager = mgr;}
56 void SetRhoZEventScene(TEveScene * scene ) {fRhoZEventScene = scene;}
57 void SetRhoZViewer(TEveViewer * viewer ) {fRhoZViewer = viewer;}
58
59 /** Start and stop the automatic event loop */
60 void StartLoop();
61 void StopLoop();
62
d5180d24 63 //* Show muon arm*//
64 void SetShowMuon(Bool_t showmuon) { fShowMuon = showmuon; }
65
30e7579c 66 /** Print the screens to a file **/
67 void PrintScreens();
68
69
70 virtual void NavigateBack() = 0;
71 virtual void NavigateFwd() = 0;
72
73
74
75 //Event buffer stuff
76 virtual void ConnectEventBuffer();
77 virtual void StartBufferMonitor();
78 virtual void NextEvent() = 0;
79
80 virtual void SaveEveryThing();
81
82 protected:
83
84 /** copy constructor prohibited */
85 AliEveHLTEventManager(const AliEveHLTEventManager&);
86
87 /** assignment operator prohibited */
88 AliEveHLTEventManager& operator=(const AliEveHLTEventManager&);
89
90 /** Process the event data */
91 Int_t ProcessEvent(TList * blockList);
92 Int_t ProcessEvent(AliESDEvent * event);
93
94 /** Set flag for event loop */
95 void SetEventLoopStarted (Bool_t started) {fEventLoopStarted = started;}
96
97 void DestroyDetectorElements();
98
99 virtual AliEveEventBuffer * GetEventBuffer() {return NULL;}
100
101 /** Process block */
102 void ProcessBlock(AliHLTHOMERBlockDesc * block); //Process block
103 /** Reset the elements in the display */
104 void ResetDisplay();
105 /** Update the display */
106 void UpdateDisplay();
107
108
109 void CreatePhosElement();
110 void CreateEmcalElement();
111 void CreateTPCElement();
112 void CreateITSElement();
113 void CreateISPDElement();
114 void CreateISDDElement();
115 void CreateISSDElement();
116 void CreateTRDElement();
117 void CreateHLTElement();
118
119
120 TGeoManager * fGeoManager; //The global TGeoManager instance
121 TEveManager * fEveManager; //The global TEveManager instance
122 TEveProjectionManager * fRPhiManager; //The R - Phi projection scene manager
123 TEveProjectionManager * fRhoZManager; //The Rho- Z projection sene manager
124 TEveScene * fRPhiEventScene; //The R - Phi projection scene
125 TEveScene * fRhoZEventScene; //The Rho - Z projection sene
126 TEveViewer * fRhoZViewer;
127 TEveViewer * fRPhiViewer;
128
129
130
131 TTimer * fTimer; //Timer for event loop
132 //TTimer * fSourceListTimer; //Timer for source list loop
133
134 AliHLTEvePhos * fPhosElement; //Phos eve processor
135 AliHLTEveEmcal * fEmcalElement; //Emcal eve processor
136 AliHLTEveTPC * fTPCElement; //TPC eve processor
137 AliHLTEveHLT * fHLTElement; //HLT
138 AliHLTEveITS * fITSElement; //ITS
139 AliHLTEveISPD * fISPDElement; //ISPD
140 AliHLTEveISSD * fISSDElement; //ISSD
141 AliHLTEveISDD * fISDDElement; //ISDD
142 AliHLTEveTRD * fTRDElement; //TRD
143 AliHLTEveMuon * fMuonElement; //MUON
144 AliHLTEveAny * fAnyElement; //Catch all
145
146
147
148 Bool_t fEventLoopStarted; // Flag indicating whether the loop is running
149 Bool_t fCenterProjectionsAtPrimaryVertex; // Flag indicating whether to center the projection scenes at primary vertex (as opposed to 0, 0, 0)
150 Bool_t fShowBarrel; // Display barrel detectors ?
151 Bool_t fShowMuon; // Display Muon arm ?
152
153 Int_t fRunNumber;
154
155 ClassDef(AliEveHLTEventManager, 0);
156
157};
158
159#endif