]>
Commit | Line | Data |
---|---|---|
30e7579c | 1 | #ifndef ALIEVEHLTEVENTMANAGER_H |
2 | #define ALIEVEHLTEVENTMANAGER_H | |
3 | ||
4 | ||
5 | #include "TEveEventManager.h" | |
6 | #include "AliHLTLoggingVariadicFree.h" | |
7 | ||
8 | class AliHLTHOMERBlockDesc; | |
9 | class TList; | |
10 | ||
11 | class TEveManager; | |
12 | class TEveScene; | |
13 | class TEveProjectionManager; | |
14 | class TTimer; | |
15 | class TEveViewer; | |
16 | ||
17 | class AliHLTEvePhos; | |
18 | class AliHLTEveEmcal; | |
19 | class AliHLTEveTPC; | |
20 | class AliHLTEveHLT; | |
21 | class AliHLTEveITS; | |
22 | class AliHLTEveISSD; | |
23 | class AliHLTEveISDD; | |
24 | class AliHLTEveISPD; | |
25 | class AliHLTEveTRD; | |
26 | class AliHLTEveAny; | |
27 | class AliHLTEveMuon; | |
28 | class AliEveEventBuffer; | |
29 | class AliESDEvent; | |
30 | ||
31 | class AliEveHLTEventManager : public TEveElementList { | |
32 | ||
33 | public: | |
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 |