#include "AliHLTEveHLT.h"
#include "AliHLTEvePhos.h"
#include "AliHLTEveEmcal.h"
#include "AliESDEvent.h"
#include "AliEveHLTEventManager.h"
#include "AliEveEventBufferOffline.h"
#include "AliEveHLTEventManagerHomer.h"
#include "TList.h"
#include "AliEveHOMERManager.h"
#include "TEveManager.h"
#include "TTimer.h"
#include "TGLOverlayButton.h"
#include "TGLViewer.h"
ClassImp(AliEveHLTEventManagerHomer)
AliEveHLTEventManagerHomer::AliEveHLTEventManagerHomer() :
AliEveHLTEventManager(),
fEventBuffer(NULL),
fNextEventTimer(NULL),
fInfoButton(NULL)
{
fEventBuffer = new AliEveEventBufferHomer();
fEventBuffer->StartBufferMonitor();
fNextEventTimer = new TTimer();
fNextEventTimer->Connect("Timeout()", "AliEveHLTEventManagerHomer", this, "TryNextEvent()" );
fInfoButton = new TGLOverlayButton(dynamic_cast<TGLViewerBase*>(gEve->GetDefaultGLViewer()), "", 0, 540, 210, 25);
fInfoButton->SetAlphaValues(0.0, 0.8);
}
AliEveHLTEventManagerHomer::~AliEveHLTEventManagerHomer() {
if(fEventBuffer)
delete fEventBuffer;
fEventBuffer = NULL;
}
void AliEveHLTEventManagerHomer::ProcessList(TList * blockList) {
ProcessEvent(blockList);
UpdateDisplay();
}
void AliEveHLTEventManagerHomer::NextEvent() {
fNextEventTimer->Start(1000);
}
void AliEveHLTEventManagerHomer::TryNextEvent() {
if ( fEventBuffer->LockMutex() ) {
fInfoButton->SetAlphaValues(0.8, 0.8);
fInfoButton->SetText("Waiting for buffer...");
gEve->Redraw3D(kFALSE);
cout << "try again in 1 sec"<<endl;
return;
}
fInfoButton->SetAlphaValues(0.8, 0.8);
fNextEventTimer->Stop();
cout << "Mutex is freeee!!"<<endl;
TList * aSyncEvent = fEventBuffer->GetASyncEvent();
TList * event = static_cast<TList*>(fEventBuffer->NextEvent());
if(event) {
cout << "Got the event, reset the display " <<endl;
fInfoButton->SetText("Reset display..");
ResetDisplay();
cout << "Process event"<<endl;
fInfoButton->SetText("Processing event..");
ProcessEvent(event);
if(aSyncEvent) {
cout << "Process asynchroneous event" << endl;
ProcessEvent(aSyncEvent);
} else {
cout << "Could not get async event"<<endl;
}
cout << "Upate the display"<<endl;
fInfoButton->SetText("Updating display...");
UpdateDisplay();
} else {
cout << "couldn't get the sync event"<<endl;
fInfoButton->SetAlphaValues(0.8, 0.8);
fInfoButton->SetText("Waiting for buffer...");
fEventBuffer->UnLockMutex();
fEventBuffer->CreateBufferThread();
fNextEventTimer->Start(3000);
return;
}
fInfoButton->SetAlphaValues(0.0, 0.0);
fInfoButton->SetText("Done..");
fEventBuffer->UnLockMutex();
}
void AliEveHLTEventManagerHomer::NavigateFwd() {
TList * fEvent = dynamic_cast<TList*>(fEventBuffer->Fwd());
if(fEvent) {
ResetDisplay();
ProcessEvent(fEvent);
UpdateDisplay();
} else {
cout << "couldn't get the fwd event"<<endl;
}
}
void AliEveHLTEventManagerHomer::NavigateBack() {
TList * fEvent = dynamic_cast<TList*>(fEventBuffer->Back());
if(fEvent) {
ResetDisplay();
ProcessEvent(fEvent);
UpdateDisplay();
} else {
cout << "couldn't get the back event"<<endl;
}
}
AliEveHLTEventManagerHomer.cxx:1 AliEveHLTEventManagerHomer.cxx:2 AliEveHLTEventManagerHomer.cxx:3 AliEveHLTEventManagerHomer.cxx:4 AliEveHLTEventManagerHomer.cxx:5 AliEveHLTEventManagerHomer.cxx:6 AliEveHLTEventManagerHomer.cxx:7 AliEveHLTEventManagerHomer.cxx:8 AliEveHLTEventManagerHomer.cxx:9 AliEveHLTEventManagerHomer.cxx:10 AliEveHLTEventManagerHomer.cxx:11 AliEveHLTEventManagerHomer.cxx:12 AliEveHLTEventManagerHomer.cxx:13 AliEveHLTEventManagerHomer.cxx:14 AliEveHLTEventManagerHomer.cxx:15 AliEveHLTEventManagerHomer.cxx:16 AliEveHLTEventManagerHomer.cxx:17 AliEveHLTEventManagerHomer.cxx:18 AliEveHLTEventManagerHomer.cxx:19 AliEveHLTEventManagerHomer.cxx:20 AliEveHLTEventManagerHomer.cxx:21 AliEveHLTEventManagerHomer.cxx:22 AliEveHLTEventManagerHomer.cxx:23 AliEveHLTEventManagerHomer.cxx:24 AliEveHLTEventManagerHomer.cxx:25 AliEveHLTEventManagerHomer.cxx:26 AliEveHLTEventManagerHomer.cxx:27 AliEveHLTEventManagerHomer.cxx:28 AliEveHLTEventManagerHomer.cxx:29 AliEveHLTEventManagerHomer.cxx:30 AliEveHLTEventManagerHomer.cxx:31 AliEveHLTEventManagerHomer.cxx:32 AliEveHLTEventManagerHomer.cxx:33 AliEveHLTEventManagerHomer.cxx:34 AliEveHLTEventManagerHomer.cxx:35 AliEveHLTEventManagerHomer.cxx:36 AliEveHLTEventManagerHomer.cxx:37 AliEveHLTEventManagerHomer.cxx:38 AliEveHLTEventManagerHomer.cxx:39 AliEveHLTEventManagerHomer.cxx:40 AliEveHLTEventManagerHomer.cxx:41 AliEveHLTEventManagerHomer.cxx:42 AliEveHLTEventManagerHomer.cxx:43 AliEveHLTEventManagerHomer.cxx:44 AliEveHLTEventManagerHomer.cxx:45 AliEveHLTEventManagerHomer.cxx:46 AliEveHLTEventManagerHomer.cxx:47 AliEveHLTEventManagerHomer.cxx:48 AliEveHLTEventManagerHomer.cxx:49 AliEveHLTEventManagerHomer.cxx:50 AliEveHLTEventManagerHomer.cxx:51 AliEveHLTEventManagerHomer.cxx:52 AliEveHLTEventManagerHomer.cxx:53 AliEveHLTEventManagerHomer.cxx:54 AliEveHLTEventManagerHomer.cxx:55 AliEveHLTEventManagerHomer.cxx:56 AliEveHLTEventManagerHomer.cxx:57 AliEveHLTEventManagerHomer.cxx:58 AliEveHLTEventManagerHomer.cxx:59 AliEveHLTEventManagerHomer.cxx:60 AliEveHLTEventManagerHomer.cxx:61 AliEveHLTEventManagerHomer.cxx:62 AliEveHLTEventManagerHomer.cxx:63 AliEveHLTEventManagerHomer.cxx:64 AliEveHLTEventManagerHomer.cxx:65 AliEveHLTEventManagerHomer.cxx:66 AliEveHLTEventManagerHomer.cxx:67 AliEveHLTEventManagerHomer.cxx:68 AliEveHLTEventManagerHomer.cxx:69 AliEveHLTEventManagerHomer.cxx:70 AliEveHLTEventManagerHomer.cxx:71 AliEveHLTEventManagerHomer.cxx:72 AliEveHLTEventManagerHomer.cxx:73 AliEveHLTEventManagerHomer.cxx:74 AliEveHLTEventManagerHomer.cxx:75 AliEveHLTEventManagerHomer.cxx:76 AliEveHLTEventManagerHomer.cxx:77 AliEveHLTEventManagerHomer.cxx:78 AliEveHLTEventManagerHomer.cxx:79 AliEveHLTEventManagerHomer.cxx:80 AliEveHLTEventManagerHomer.cxx:81 AliEveHLTEventManagerHomer.cxx:82 AliEveHLTEventManagerHomer.cxx:83 AliEveHLTEventManagerHomer.cxx:84 AliEveHLTEventManagerHomer.cxx:85 AliEveHLTEventManagerHomer.cxx:86 AliEveHLTEventManagerHomer.cxx:87 AliEveHLTEventManagerHomer.cxx:88 AliEveHLTEventManagerHomer.cxx:89 AliEveHLTEventManagerHomer.cxx:90 AliEveHLTEventManagerHomer.cxx:91 AliEveHLTEventManagerHomer.cxx:92 AliEveHLTEventManagerHomer.cxx:93 AliEveHLTEventManagerHomer.cxx:94 AliEveHLTEventManagerHomer.cxx:95 AliEveHLTEventManagerHomer.cxx:96 AliEveHLTEventManagerHomer.cxx:97 AliEveHLTEventManagerHomer.cxx:98 AliEveHLTEventManagerHomer.cxx:99 AliEveHLTEventManagerHomer.cxx:100 AliEveHLTEventManagerHomer.cxx:101 AliEveHLTEventManagerHomer.cxx:102 AliEveHLTEventManagerHomer.cxx:103 AliEveHLTEventManagerHomer.cxx:104 AliEveHLTEventManagerHomer.cxx:105 AliEveHLTEventManagerHomer.cxx:106 AliEveHLTEventManagerHomer.cxx:107 AliEveHLTEventManagerHomer.cxx:108 AliEveHLTEventManagerHomer.cxx:109 AliEveHLTEventManagerHomer.cxx:110 AliEveHLTEventManagerHomer.cxx:111 AliEveHLTEventManagerHomer.cxx:112 AliEveHLTEventManagerHomer.cxx:113 AliEveHLTEventManagerHomer.cxx:114 AliEveHLTEventManagerHomer.cxx:115 AliEveHLTEventManagerHomer.cxx:116 AliEveHLTEventManagerHomer.cxx:117 AliEveHLTEventManagerHomer.cxx:118 AliEveHLTEventManagerHomer.cxx:119 AliEveHLTEventManagerHomer.cxx:120 AliEveHLTEventManagerHomer.cxx:121 AliEveHLTEventManagerHomer.cxx:122 AliEveHLTEventManagerHomer.cxx:123 AliEveHLTEventManagerHomer.cxx:124 AliEveHLTEventManagerHomer.cxx:125 AliEveHLTEventManagerHomer.cxx:126 AliEveHLTEventManagerHomer.cxx:127 AliEveHLTEventManagerHomer.cxx:128 AliEveHLTEventManagerHomer.cxx:129 AliEveHLTEventManagerHomer.cxx:130 AliEveHLTEventManagerHomer.cxx:131 AliEveHLTEventManagerHomer.cxx:132 AliEveHLTEventManagerHomer.cxx:133 AliEveHLTEventManagerHomer.cxx:134 AliEveHLTEventManagerHomer.cxx:135 AliEveHLTEventManagerHomer.cxx:136 AliEveHLTEventManagerHomer.cxx:137 AliEveHLTEventManagerHomer.cxx:138 AliEveHLTEventManagerHomer.cxx:139 AliEveHLTEventManagerHomer.cxx:140 AliEveHLTEventManagerHomer.cxx:141 AliEveHLTEventManagerHomer.cxx:142 AliEveHLTEventManagerHomer.cxx:143 AliEveHLTEventManagerHomer.cxx:144