]>
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 | ||
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 |