#include "AliEveEventManagerEditor.h"
#include "AliEveEventManager.h"
-#include "TVirtualPad.h"
+#include <AliESDEvent.h>
+
+#include <TVirtualPad.h>
#include "TColor.h"
#include <TEveGValuators.h>
fNextEvent (0),
fLastEvent (0),
fRefresh (0),
- fTrigger (0),
fEventId (0),
fInfoLabel (0),
fAutoLoad (0),
fAutoLoadTime (0),
+ fTrigSel (0),
fEventInfo (0)
{
// Constructor.
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);
}
//______________________________________________________________________________
-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());
}
//______________________________________________________________________________
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();
}
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);
- }
-}
-