1 #ifndef ALIEVEHLTEVENTMANAGER_H
2 #define ALIEVEHLTEVENTMANAGER_H
5 #include "TEveEventManager.h"
6 #include "AliHLTLoggingVariadicFree.h"
8 class AliHLTHOMERBlockDesc;
13 class TEveProjectionManager;
28 class AliHLTEveMultCorr;
29 class AliEveEventBuffer;
32 class AliEveHLTEventManager : public TEveElementList {
37 AliEveHLTEventManager();
39 virtual ~AliEveHLTEventManager();
43 /**Set and get the global instance of the Eve manager */
44 void SetEveManager(TEveManager * manager) {fEveManager = manager;}
45 TEveManager * GetEveManager() const {return fEveManager;}
47 /**Set and get the global instance of TGeoManager */
48 void SetGeoManager(TGeoManager * manager) {fGeoManager = manager;}
49 TGeoManager * GetGeoManager() const {return fGeoManager;}
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;}
59 /** Start and stop the automatic event loop */
64 void SetShowMuon(Bool_t showmuon) { fShowMuon = showmuon; }
66 /** Print the screens to a file **/
70 virtual void NavigateBack() = 0;
71 virtual void NavigateFwd() = 0;
76 virtual void ConnectEventBuffer();
77 virtual void StartBufferMonitor();
78 virtual void NextEvent() = 0;
80 virtual void SaveEveryThing();
84 /** copy constructor prohibited */
85 AliEveHLTEventManager(const AliEveHLTEventManager&);
87 /** assignment operator prohibited */
88 AliEveHLTEventManager& operator=(const AliEveHLTEventManager&);
90 /** Process the event data */
91 Int_t ProcessEvent(TList * blockList);
92 Int_t ProcessEvent(AliESDEvent * event);
94 /** Set flag for event loop */
95 void SetEventLoopStarted (Bool_t started) {fEventLoopStarted = started;}
97 void DestroyDetectorElements();
99 virtual AliEveEventBuffer * GetEventBuffer() {return NULL;}
102 void ProcessBlock(AliHLTHOMERBlockDesc * block); //Process block
103 /** Reset the elements in the display */
105 /** Update the display */
106 void UpdateDisplay();
109 Int_t GetRunNumber() const { return fRunNumber; }
110 ULong64_t GetEventId() const { return fEventId; }
111 void SetRunNumber(Int_t rn) { fRunNumber = rn; }
112 void SetEventId(ULong64_t id) { fEventId = id; }
115 void CreatePhosElement();
116 void CreateMultCorrElement();
117 void CreateEmcalElement();
118 void CreateTPCElement();
119 void CreateITSElement();
120 void CreateISPDElement();
121 void CreateISDDElement();
122 void CreateISSDElement();
123 void CreateTRDElement();
124 void CreateHLTElement();
127 TGeoManager * fGeoManager; //The global TGeoManager instance
128 TEveManager * fEveManager; //The global TEveManager instance
129 TEveProjectionManager * fRPhiManager; //The R - Phi projection scene manager
130 TEveProjectionManager * fRhoZManager; //The Rho- Z projection sene manager
131 TEveScene * fRPhiEventScene; //The R - Phi projection scene
132 TEveScene * fRhoZEventScene; //The Rho - Z projection sene
133 TEveViewer * fRhoZViewer;
134 TEveViewer * fRPhiViewer;
138 TTimer * fTimer; //Timer for event loop
139 //TTimer * fSourceListTimer; //Timer for source list loop
141 AliHLTEvePhos * fPhosElement; //Phos eve processor
142 AliHLTEveEmcal * fEmcalElement; //Emcal eve processor
143 AliHLTEveTPC * fTPCElement; //TPC eve processor
144 AliHLTEveHLT * fHLTElement; //HLT
145 AliHLTEveITS * fITSElement; //ITS
146 AliHLTEveISPD * fISPDElement; //ISPD
147 AliHLTEveISSD * fISSDElement; //ISSD
148 AliHLTEveISDD * fISDDElement; //ISDD
149 AliHLTEveTRD * fTRDElement; //TRD
150 AliHLTEveMuon * fMuonElement; //MUON
151 AliHLTEveMultCorr * fMultCorrElement; //Mult corr
152 AliHLTEveAny * fAnyElement; //Catch all
156 Bool_t fEventLoopStarted; // Flag indicating whether the loop is running
157 Bool_t fCenterProjectionsAtPrimaryVertex; // Flag indicating whether to center the projection scenes at primary vertex (as opposed to 0, 0, 0)
158 Bool_t fShowBarrel; // Display barrel detectors ?
159 Bool_t fShowMuon; // Display Muon arm ?
164 ClassDef(AliEveHLTEventManager, 0);