bugfix
[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
30e7579c 41
42 /**Set and get the global instance of the Eve manager */
43 void SetEveManager(TEveManager * manager) {fEveManager = manager;}
44 TEveManager * GetEveManager() const {return fEveManager;}
45
46 /**Set and get the global instance of TGeoManager */
47 void SetGeoManager(TGeoManager * manager) {fGeoManager = manager;}
48 TGeoManager * GetGeoManager() const {return fGeoManager;}
49
50 /** Set the projection scenes and their managers */
51 void SetRPhiManager (TEveProjectionManager * mgr) {fRPhiManager = mgr;}
52 void SetRPhiEventScene (TEveScene * scene ) {fRPhiEventScene = scene;}
53 void SetRPhiViewer(TEveViewer * viewer ) {fRPhiViewer = viewer;}
54 void SetRhoZManager(TEveProjectionManager * mgr) {fRhoZManager = mgr;}
55 void SetRhoZEventScene(TEveScene * scene ) {fRhoZEventScene = scene;}
56 void SetRhoZViewer(TEveViewer * viewer ) {fRhoZViewer = viewer;}
57
58 /** Start and stop the automatic event loop */
59 void StartLoop();
60 void StopLoop();
61
d5180d24 62 //* Show muon arm*//
63 void SetShowMuon(Bool_t showmuon) { fShowMuon = showmuon; }
64
30e7579c 65 /** Print the screens to a file **/
66 void PrintScreens();
67
68
69 virtual void NavigateBack() = 0;
70 virtual void NavigateFwd() = 0;
71
72
73
74 //Event buffer stuff
75 virtual void ConnectEventBuffer();
76 virtual void StartBufferMonitor();
77 virtual void NextEvent() = 0;
78
79 virtual void SaveEveryThing();
80
81 protected:
82
83 /** copy constructor prohibited */
84 AliEveHLTEventManager(const AliEveHLTEventManager&);
85
86 /** assignment operator prohibited */
87 AliEveHLTEventManager& operator=(const AliEveHLTEventManager&);
88
89 /** Process the event data */
90 Int_t ProcessEvent(TList * blockList);
91 Int_t ProcessEvent(AliESDEvent * event);
92
93 /** Set flag for event loop */
94 void SetEventLoopStarted (Bool_t started) {fEventLoopStarted = started;}
95
96 void DestroyDetectorElements();
97
98 virtual AliEveEventBuffer * GetEventBuffer() {return NULL;}
99
100 /** Process block */
101 void ProcessBlock(AliHLTHOMERBlockDesc * block); //Process block
102 /** Reset the elements in the display */
103 void ResetDisplay();
104 /** Update the display */
105 void UpdateDisplay();
106
107
cc87822c 108 Int_t GetRunNumber() const { return fRunNumber; }
109 ULong64_t GetEventId() const { return fEventId; }
110 void SetRunNumber(Int_t rn) { fRunNumber = rn; }
111 void SetEventId(ULong64_t id) { fEventId = id; }
112
113
30e7579c 114 void CreatePhosElement();
115 void CreateEmcalElement();
116 void CreateTPCElement();
117 void CreateITSElement();
118 void CreateISPDElement();
119 void CreateISDDElement();
120 void CreateISSDElement();
121 void CreateTRDElement();
122 void CreateHLTElement();
123
124
125 TGeoManager * fGeoManager; //The global TGeoManager instance
126 TEveManager * fEveManager; //The global TEveManager instance
127 TEveProjectionManager * fRPhiManager; //The R - Phi projection scene manager
128 TEveProjectionManager * fRhoZManager; //The Rho- Z projection sene manager
129 TEveScene * fRPhiEventScene; //The R - Phi projection scene
130 TEveScene * fRhoZEventScene; //The Rho - Z projection sene
131 TEveViewer * fRhoZViewer;
132 TEveViewer * fRPhiViewer;
133
134
135
136 TTimer * fTimer; //Timer for event loop
137 //TTimer * fSourceListTimer; //Timer for source list loop
138
139 AliHLTEvePhos * fPhosElement; //Phos eve processor
140 AliHLTEveEmcal * fEmcalElement; //Emcal eve processor
141 AliHLTEveTPC * fTPCElement; //TPC eve processor
142 AliHLTEveHLT * fHLTElement; //HLT
143 AliHLTEveITS * fITSElement; //ITS
144 AliHLTEveISPD * fISPDElement; //ISPD
145 AliHLTEveISSD * fISSDElement; //ISSD
146 AliHLTEveISDD * fISDDElement; //ISDD
147 AliHLTEveTRD * fTRDElement; //TRD
148 AliHLTEveMuon * fMuonElement; //MUON
149 AliHLTEveAny * fAnyElement; //Catch all
150
151
152
153 Bool_t fEventLoopStarted; // Flag indicating whether the loop is running
154 Bool_t fCenterProjectionsAtPrimaryVertex; // Flag indicating whether to center the projection scenes at primary vertex (as opposed to 0, 0, 0)
155 Bool_t fShowBarrel; // Display barrel detectors ?
156 Bool_t fShowMuon; // Display Muon arm ?
157
158 Int_t fRunNumber;
cc87822c 159 ULong64_t fEventId;
30e7579c 160
161 ClassDef(AliEveHLTEventManager, 0);
162
163};
164
165#endif