Updated event id displayin, and async blocklist processing
authorslindal <slindal@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Nov 2010 12:13:53 +0000 (12:13 +0000)
committerslindal <slindal@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 5 Nov 2010 12:13:53 +0000 (12:13 +0000)
EVE/EveHLT/AliEveEventBuffer.h
EVE/EveHLT/AliEveEventBufferHomer.cxx
EVE/EveHLT/AliEveEventBufferHomer.h
EVE/EveHLT/AliEveEventBufferOffline.cxx
EVE/EveHLT/AliEveEventBufferOffline.h
EVE/EveHLT/AliEveHLTEventManager.cxx
EVE/EveHLT/AliEveHLTEventManager.h
EVE/EveHLT/AliEveHLTEventManagerHomer.cxx
EVE/EveHLT/AliEveHOMERManager.cxx

index bf81f16..55e3b24 100644 (file)
@@ -53,13 +53,12 @@ public:
   void MonitorBuffer();
 
   static void * BufferThread(void * buffer);
-  virtual void WriteToFile() {//Do nothing
-    ;
-  }
+  virtual void WriteToFile(Int_t runnumber) = 0; 
 
   void CreateBufferThread();
 
   ULong64_t GetEventId() const { return fEventId[fBIndex[kCurrent]]; }
+  void SetEventId(ULong64_t eventId) { fEventId[fBIndex[kCurrent]] = eventId;}
 
 protected:
   
@@ -99,7 +98,6 @@ protected:
   Int_t CalculatePrevious(Int_t current);
   Int_t CalculateNext(Int_t current);
 
-  void SetEventId(ULong64_t eventId) { fEventId[fBIndex[kCurrent]] = eventId;}
   
   void SetBufferMonStarted(Bool_t started) {fBufferMonStarted = started;}
   Bool_t GetBufferMonStarted () const { return fBufferMonStarted;}
index 8769a46..6be6657 100644 (file)
@@ -47,7 +47,8 @@ TObject * AliEveEventBufferHomer::GetEventFromSource() {
   if(fHomer) {
     cout << "calling nexthomerevent"<<endl;
     TList * blockList = fHomer->NextHOMEREvent();
-    
+    TList * aList = fHomer->GetAsyncBlockList();
+    fAsyncList = aList;
     if(blockList)  return dynamic_cast<TObject*>(blockList);
     else return NULL;
   } 
@@ -106,14 +107,14 @@ void AliEveEventBufferHomer::ConnectToSource () {
 }
 
 ///_____________________________________________________________________
-void AliEveEventBufferHomer::WriteToFile(){
+void AliEveEventBufferHomer::WriteToFile(Int_t runnumber){
 
-  TFile * file = TFile::Open(Form("Event_0x%016X_ITS.root", 100), "RECREATE"); 
-  fEventBuffer->At(fBIndex[kTop])->Write("blockList", TObject::kSingleKey);
+  TFile * file = TFile::Open(Form("%d_0x%016X_ESD.root", runnumber, GetEventId()), "RECREATE"); 
+  fEventBuffer->At(fBIndex[kCurrent])->Write("blockList", TObject::kSingleKey);
   file->Close();
   
   if(fAsyncList) {
-    TFile * afile = TFile::Open(Form("Event_0x%016X_Async.root", 100), "RECREATE"); 
+    TFile * afile = TFile::Open(Form("%d_0x%016X_Async.root",  runnumber, GetEventId()), "RECREATE"); 
     fAsyncList->Write("blockList", TObject::kSingleKey);
     afile->Close();
   }
index e31066f..811ac3c 100644 (file)
@@ -44,9 +44,9 @@ public:
 
   AliEveHOMERManager * GetHomerManager() const { return fHomer;}
 
-  TList * GetAList() { return fAsyncList;}
+  TList * GetASyncEvent() { return fAsyncList;}
 
-  void WriteToFile();
+  void WriteToFile(Int_t runnumber);
 
 
 private:
index 2c935aa..1a7e95c 100644 (file)
@@ -105,9 +105,9 @@ void AliEveEventBufferOffline::ConnectToSource() {
 
 
 ///_____________________________________________________________________
-void AliEveEventBufferOffline::WriteToFile(){
+void AliEveEventBufferOffline::WriteToFile(Int_t runnumber){
   //Inherited from AliEveEventBuffer
-  TFile * file = TFile::Open(Form("Event_%d_ITS.root", 100), "RECREATE"); 
-  fEventBuffer->At(fBIndex[kTop])->Write("blockList", TObject::kSingleKey);
+  TFile * file = TFile::Open(Form("%d_%x%016X_ESD.root", runnumber, GetEventId()), "RECREATE"); 
+  fEventBuffer->At(fBIndex[kCurrent])->Write("blockList", TObject::kSingleKey);
   file->Close();
 }           
index 64223e7..9586e8d 100644 (file)
@@ -39,7 +39,7 @@ public:
   virtual ~AliEveEventBufferOffline();
 
   void ConnectToSource();
-  void WriteToFile();
+  void WriteToFile(Int_t runnumber);
 
 private:
 
index e3287d5..ec820f0 100644 (file)
@@ -6,7 +6,6 @@
 #include "TEveViewer.h"
 #include "TEveEventManager.h"
 
-//#include "AliHLTTriggerDecision.h"
 #include "AliHLTEvePhos.h"
 #include "AliHLTEveEmcal.h"
 #include "AliHLTEveTPC.h"
@@ -56,7 +55,8 @@ AliEveHLTEventManager::AliEveHLTEventManager() :
   fCenterProjectionsAtPrimaryVertex(kFALSE),
   fShowBarrel(kTRUE),
   fShowMuon(kFALSE), 
-  fRunNumber(-1)  
+  fRunNumber(-1),
+  fEventId(-1)
 {
   // see header file for class documentation
   // or
@@ -148,8 +148,10 @@ Int_t AliEveHLTEventManager::ProcessEvent(AliESDEvent * event) {
 
   // -- Set EventID in Window Title  
   TString winTitle("Eve Main Window");
-  winTitle += Form("-- Run Number: %d", event->GetRunNumber()); 
-  winTitle += Form("-- Event ID : 0x%016lX ", GetEventBuffer()->GetEventId() );
+  SetRunNumber(event->GetRunNumber());
+  SetEventId(GetEventBuffer()->GetEventId());
+  winTitle += Form("-- Run Number: %d", GetRunNumber()); 
+  winTitle += Form("-- Event ID : 0x%016lX ", GetEventId() );
   GetEveManager()->GetBrowser()->SetWindowName(winTitle);
 
 
@@ -194,18 +196,12 @@ Int_t AliEveHLTEventManager::ProcessEvent(TList * blockList) {
     return -1;
   }
  
-  cout << "ProcessEvent()::reset ()"<<endl;
-  ResetDisplay();
-  cout << "ProcessEvent() :: done reset()"<<endl;
   AliHLTHOMERBlockDesc * block = NULL;
   TIter next(blockList);
   while ((block = (AliHLTHOMERBlockDesc*)next())) {
     cout <<"Process Block"<<endl;
     ProcessBlock(block);
   } 
-
-  cout << "update() "<<endl;
-  UpdateDisplay();
   
   return 0;
 
@@ -348,9 +344,9 @@ void AliEveHLTEventManager::ResetDisplay () {
 void AliEveHLTEventManager::PrintScreens() {
 //   //See header file for documentation
 
-//   fEveManager->GetDefaultGLViewer()->SavePicture(Form("%d_0x%lu_3D.gif", fRunNumber, GetEventID(fCurrentEventIdx)));
-//   fRhoZViewer->GetGLViewer()->SavePicture(Form("%d_0x%lu_RhoZ.gif", fRunNumber, GetEventID(fCurrentEventIdx)));
-//   fRPhiViewer->GetGLViewer()->SavePicture(Form("%d_0x%lu_RPhi.gif", fRunNumber, GetEventID(fCurrentEventIdx)));
+  fEveManager->GetDefaultGLViewer()->SavePicture(Form("%d_0x%016lX_3D.gif", fRunNumber, GetEventId()));
+  fRhoZViewer->GetGLViewer()->SavePicture(Form("%d_0x%016lX_RhoZ.gif", fRunNumber, GetEventId()));
+  fRPhiViewer->GetGLViewer()->SavePicture(Form("%d_0x%016lX_RPhi.gif", fRunNumber, GetEventId()));
   return;
 }
 
@@ -450,7 +446,9 @@ void  AliEveHLTEventManager::UpdateDisplay() {
 
 void AliEveHLTEventManager::SaveEveryThing() {
 
-  GetEventBuffer()->WriteToFile();
+  PrintScreens();
+
+  GetEventBuffer()->WriteToFile(GetRunNumber());
   //Save everything to file
   //fEventBuffer->SaveBlockList();
   //fEventBuffer->SaveAsyncBlockList();
index 555b072..8215e6c 100644 (file)
@@ -38,7 +38,6 @@ public:
   virtual ~AliEveHLTEventManager();
 
 
-  void SetRunNumber(Int_t rn) { fRunNumber = rn; }
 
   /**Set and get the global instance of the Eve manager */
   void SetEveManager(TEveManager * manager) {fEveManager = manager;}
@@ -106,6 +105,12 @@ public:
   void UpdateDisplay(); 
 
 
+  Int_t GetRunNumber() const { return fRunNumber; }
+  ULong64_t GetEventId() const { return fEventId; }
+  void SetRunNumber(Int_t rn) { fRunNumber = rn; }
+  void SetEventId(ULong64_t id) { fEventId = id; }
+
+
   void CreatePhosElement();
   void CreateEmcalElement();
   void CreateTPCElement();
@@ -151,6 +156,7 @@ public:
   Bool_t fShowMuon;                                 // Display Muon arm ?
 
   Int_t fRunNumber;
+  ULong64_t fEventId;
 
   ClassDef(AliEveHLTEventManager, 0);
 
index f8ed314..b54d8f4 100644 (file)
@@ -53,26 +53,37 @@ void AliEveHLTEventManagerHomer::NextEvent() {
   }else {
     fEventBuffer->SetBusy(kTRUE);
   }
-  
-  TList * fEvent = static_cast<TList*>(fEventBuffer->NextEvent());
-  if(fEvent) {
-    cout << "Got the event " <<endl;
-    ProcessEvent(fEvent);
 
+  TList * aSyncEvent = fEventBuffer->GetASyncEvent();
+  TList * event = static_cast<TList*>(fEventBuffer->NextEvent());
+  if(event) {
+    cout << "Got the event, reset the display " <<endl;
+    ResetDisplay();
+    cout << "Process event"<<endl;
+    ProcessEvent(event);
+    if(aSyncEvent) {
+      cout  << "Process asynchroneous event" << endl;
+      ProcessEvent(aSyncEvent);
+    }  else {
+      cout << "Could not get async event"<<endl;
+    }
+    
+    cout << "Upate the display"<<endl;
+    UpdateDisplay();
+  
   } else {
     cout << "could't get the sync event"<<endl;
   }
   
- //  cout  << "doint async block"<<endl;
- //  TList * async = static_cast<TList*>(fEventBuffer->GetAList());
- //  if(async) {
- //    ProcessEvent(async);
- //   }  else {
- //     cout << "No async bloc"<<endl;
- // }
-
-
-fEventBuffer->SetBusy(kFALSE);
+  //  cout  << "doint async block"<<endl;
+  //  TList * async = static_cast<TList*>(fEventBuffer->GetAList());
+  //  if(async) {
+  //   ProcessEvent(async);
+  //   }  else {
+  //    cout << "No async bloc"<<endl;
+  // }
+
+  fEventBuffer->SetBusy(kFALSE);
 }
 
 
index 2f30649..ec5b564 100644 (file)
@@ -103,7 +103,7 @@ Int_t AliEveHOMERManager::CreateEveSourcesList() {
 ///_______________________________________________________________
 void AliEveHOMERManager::StartEveSourceListLoop() {
   HLTInfo("Starting source list timer");
-  fSourceListTimer->Start(5000); 
+  fSourceListTimer->Start(1000); 
 }
 ///_______________________________________________________________
 void AliEveHOMERManager::StopEveSourceListLoop() {
@@ -154,7 +154,7 @@ Int_t AliEveHOMERManager::ReConnectHOMER( TString /*detector*/ ){
   // see header file for class documentation
   Int_t iResult = 0;
   if (Connected()) DisconnectHOMER();
-  StartEveSourceListLoop();
+  CreateEveSourcesListLoop();
   return iResult;
 }
 
@@ -163,23 +163,28 @@ TList * AliEveHOMERManager::NextHOMEREvent() {
   //See header file for documentation  
   
   if(!Connected()) {
-    cout << "AliEveHOMERManager::NextHOMEREvent(): HOMER is not connected to a source!"<<endl;
-    return NULL;
+    HLTInfo("Homer is not connected, trying to reconnect!");
+    Int_t iResult = ReConnectHOMER();
+    if(iResult)  {
+      HLTError("Error establishing connection to sources");
+      return NULL;
+    } else {
+      HLTInfo("New connection established, trying again to fetch event");
+      return NextHOMEREvent();
+    }
   }
-
+  
   
   if ( NextEvent() ) {
     
     HLTInfo("Failed getting next event, trying to reconnect");
-    
     Int_t iResult = ReConnectHOMER();
     if(iResult)  {
       HLTError("Error establishing connection to sources");
-    }
-    
-    return NULL;
+      return NULL;
+    }    
   }
+  
   return GetBlockList();
   
 }