]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/EveBase/AliEveEventManagerEditor.cxx
Remove obsolete comments about TTree::Refresh() not working.
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveEventManagerEditor.cxx
index 92f1aef1668ed050adfd11729590c258c47e9e0d..6eb97cbe766a569add077fc4bf537699562a3e1f 100644 (file)
@@ -10,7 +10,9 @@
 #include "AliEveEventManagerEditor.h"
 #include "AliEveEventManager.h"
 
-#include "TVirtualPad.h"
+#include <AliESDEvent.h>
+
+#include <TVirtualPad.h>
 #include "TColor.h"
 
 #include <TEveGValuators.h>
@@ -101,11 +103,11 @@ AliEveEventManagerWindow::AliEveEventManagerWindow(AliEveEventManager* mgr) :
   fNextEvent    (0),
   fLastEvent    (0),
   fRefresh      (0),
-  fTrigger      (0),
   fEventId      (0),
   fInfoLabel    (0),
   fAutoLoad     (0),
   fAutoLoadTime (0),
+  fTrigSel      (0),
   fEventInfo    (0)
 {
   // Constructor.
@@ -156,14 +158,12 @@ AliEveEventManagerWindow::AliEveEventManagerWindow(AliEveEventManager* mgr) :
     fAutoLoadTime->SetToolTip("Automatic event loading time in seconds.");
     fAutoLoadTime->Connect("ValueSet(Double_t)", cls, this, "DoSetAutoLoadTime()");
 
-    MkLabel(f, "||", 0, 8, 8);
-
-    MkLabel(f, "TRG select:", 0, 0, 4, 4);
-    fTrigger = new TGComboBox(f);
-    f->AddFrame(fTrigger, new TGLayoutHints(kLHintsNormal));
-    fTrigger->Resize(75,20);
-    //fTrigger->EnableTextInput(kTRUE);
-    fTrigger->Connect("Selected(const char*)", cls, this, "DoSetTriggerType(const char*)");
+    fTrigSel = new TGComboBox(f);
+    fTrigSel->Resize(4*width,b->GetDefaultHeight());
+    fTrigSel->AddEntry("No trigger selection",-1);
+    fTrigSel->Select(-1,kFALSE);
+    f->AddFrame(fTrigSel, new TGLayoutHints(kLHintsNormal, 10, 5, 0, 0));
+    fTrigSel->Connect("Selected(char*)", cls, this, "DoSetTrigSel()");
   }
 
   fEventInfo = new TGTextView(this, 400, 600);
@@ -249,20 +249,11 @@ void AliEveEventManagerWindow::DoSetAutoLoadTime()
 }
 
 //______________________________________________________________________________
-void AliEveEventManagerWindow::DoSetTriggerType(const char* type)
+void AliEveEventManagerWindow::DoSetTrigSel()
 {
-  // Slot for setting trigger type.
+  // Set the trigger selection
 
-  TString typestr = type;
-  if (typestr=="")
-  {
-    fM->SetSelectOnTriggerType(kFALSE);
-  }
-  else
-  {
-    fM->SetTriggerType( typestr );
-    fM->SetSelectOnTriggerType(kTRUE);
-  }
+  fM->SetTrigSel(fTrigSel->GetSelectedEntry()->EntryId());
 }
 
 //______________________________________________________________________________
@@ -284,13 +275,27 @@ void AliEveEventManagerWindow::Update()
   fEventId->SetState(evNavOn);
   fInfoLabel->SetText(Form("/ %d", fM->GetMaxEventId()));
 
-  // fAutoLoadTime->SetEnabled(fM->GetAutoLoad());
   fAutoLoad->SetState(fM->GetAutoLoad() ? kButtonDown : kButtonUp);
   fAutoLoadTime->SetValue(fM->GetAutoLoadTime());
 
-  fEventInfo->LoadBuffer(fM->GetEventInfoHorizontal());
+  // Loop over active trigger classes
+  if (fM->GetESD()) {
+    for(Int_t iTrig = 0; iTrig < AliESDRun::kNTriggerClasses; iTrig++) {
+      TString trigName = fM->GetESD()->GetESDRun()->GetTriggerClass(iTrig);
+      if (trigName.IsNull()) {
+       if (fTrigSel->GetListBox()->GetEntry(iTrig)) {
+         if (fTrigSel->GetSelected() == iTrig) fTrigSel->Select(-1);
+         fTrigSel->RemoveEntry(iTrig);
+       }
+       continue;
+      }
+      if (!fTrigSel->FindEntry(trigName.Data()))
+       fTrigSel->AddEntry(trigName.Data(),iTrig);
+    }
+  }
+  fTrigSel->SetEnabled(!evNavOn);
 
-  SetupTriggerSelect();
+  fEventInfo->LoadBuffer(fM->GetEventInfoHorizontal());
 
   Layout();
 }
@@ -333,42 +338,3 @@ TGLabel* AliEveEventManagerWindow::MkLabel(TGCompositeFrame* p,
   return l;
 }
 
-void AliEveEventManagerWindow::SetupTriggerSelect()
-{
-  // Do nothing if already enabled.
-  if (fTrigger->GetNumberOfEntries() > 0)
-    return;
-
-  AliESDEvent* esd = fM->GetESD();
-  if (esd && fM->GetESDFile() != 0)
-  {
-    TString activetrg = esd->GetESDRun()->GetActiveTriggerClasses();  //Get list of active classes
-    TObjArray* activetrgarr = activetrg.Tokenize(" "); //break up the classes string, space as separator
-    Int_t entries = activetrgarr->GetEntries();  //how many triggerclasses
-    TString entry;  //to hold the triger class name
-    TObjString* entryobj;
-    if (entries == 0)
-    {
-      fTrigger->SetEnabled(kFALSE);  //no trigger classes
-    }
-    else
-    {
-      fTrigger->RemoveAll(); //some initial cleanup
-      fTrigger->SetEnabled(kTRUE);  //no trigger classes
-      fTrigger->AddEntry("",-1);  //first entry empty - select to not filter by trigger
-      for (Int_t i=0;i<entries;i++)
-      {
-       entryobj = (TObjString*)activetrgarr->At(i);
-       entry = entryobj->GetString();
-       fTrigger->AddEntry(entry.Data(), i);
-      }
-    }
-    fTrigger->Select(-1, kTRUE); //set default no filtering and emit
-    fTrigger->SetEnabled(kTRUE);
-  }
-  else
-  {
-    fTrigger->SetEnabled(kFALSE);
-  }
-}
-