Adding a trigger selection combo-box to be used by the online display/reco. The combo...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 15 Sep 2009 13:46:24 +0000 (13:46 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 15 Sep 2009 13:46:24 +0000 (13:46 +0000)
EVE/EveBase/AliEveEventManager.cxx
EVE/EveBase/AliEveEventManager.h
EVE/EveBase/AliEveEventManagerEditor.cxx
EVE/EveBase/AliEveEventManagerEditor.h
RAW/AliRawReader.h

index c65bddd..4baa2ba 100644 (file)
@@ -1176,6 +1176,24 @@ void AliEveEventManager::SetAutoLoad(Bool_t autoLoad)
   }
 }
 
+void AliEveEventManager::SetTrigSel(Int_t trig)
+{
+  static const TEveException kEH("AliEveEventManager::SetTrigSel ");
+
+  if (!fRawReader)
+    {
+    Warning(kEH, "No Raw-reader exists. Ignoring the call.");
+    return;
+  }
+  else
+  {
+    ULong64_t trigMask = 0;
+    if (trig >= 0) trigMask = (1ull << trig);
+    Info(kEH,"Trigger selection: 0x%llx",trigMask);
+    fRawReader->SelectEvents(-1,trigMask,NULL);
+  }
+}
+
 void AliEveEventManager::StartAutoLoadTimer()
 {
   // Start the auto-load timer.
index 0805f16..6b5e2f9 100644 (file)
@@ -108,6 +108,7 @@ public:
   Bool_t        GetAutoLoad()            const { return fAutoLoad;     }
   void          SetAutoLoadTime(Float_t time);
   void          SetAutoLoad(Bool_t autoLoad);
+  void          SetTrigSel(Int_t trig);
   void          AutoLoadNextEvent();
 
   Bool_t        AreEventFilesOpened()    const { return fIsOpen;       }
index 1cc682a..6eb97cb 100644 (file)
@@ -107,6 +107,7 @@ AliEveEventManagerWindow::AliEveEventManagerWindow(AliEveEventManager* mgr) :
   fInfoLabel    (0),
   fAutoLoad     (0),
   fAutoLoadTime (0),
+  fTrigSel      (0),
   fEventInfo    (0)
 {
   // Constructor.
@@ -157,6 +158,12 @@ AliEveEventManagerWindow::AliEveEventManagerWindow(AliEveEventManager* mgr) :
     fAutoLoadTime->SetToolTip("Automatic event loading time in seconds.");
     fAutoLoadTime->Connect("ValueSet(Double_t)", cls, this, "DoSetAutoLoadTime()");
 
+    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);
@@ -242,6 +249,14 @@ void AliEveEventManagerWindow::DoSetAutoLoadTime()
 }
 
 //______________________________________________________________________________
+void AliEveEventManagerWindow::DoSetTrigSel()
+{
+  // Set the trigger selection
+
+  fM->SetTrigSel(fTrigSel->GetSelectedEntry()->EntryId());
+}
+
+//______________________________________________________________________________
 void AliEveEventManagerWindow::Update()
 {
   // Update current event, number of available events, list of active triggers
@@ -263,6 +278,23 @@ void AliEveEventManagerWindow::Update()
   fAutoLoad->SetState(fM->GetAutoLoad() ? kButtonDown : kButtonUp);
   fAutoLoadTime->SetValue(fM->GetAutoLoadTime());
 
+  // 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);
+
   fEventInfo->LoadBuffer(fM->GetEventInfoHorizontal());
 
   Layout();
index 06e296f..a5f7f38 100644 (file)
@@ -80,6 +80,7 @@ public:
   void DoRefresh();
   void DoSetAutoLoad();
   void DoSetAutoLoadTime();
+  void DoSetTrigSel();
 
   void Update();
 
@@ -98,6 +99,8 @@ protected:
   TGCheckButton        *fAutoLoad;     // Check-box for automatic loading of events
   TEveGValuator        *fAutoLoadTime; // Time for automatic loading of events
 
+  TGComboBox           *fTrigSel;      // Trigger selection combo box
+
   TGTextView           *fEventInfo;    // Text box with event info
 
   TGTextButton* MkTxtButton(TGCompositeFrame* p, const char* txt, Int_t width=0,
index 2eb8915..d754e71 100644 (file)
@@ -23,6 +23,7 @@ class AliRawEventHeaderBase;
 class AliRawVEvent;
 
 class AliRawReader: public TObject {
+  friend class AliEveEventManager;
   public :
     AliRawReader();
     AliRawReader(const AliRawReader& rawReader);