ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/

///////////////////////////////////////////////////////////////////////////
//
//  implementation of a GUI for the event/trigger selection
//
//  origin: Mikolaj Krzewicki, mikolaj.krzewicki@cern.ch
//
//////////////////////////////////////////////////////////////////////////

#include "AliEveEventSelectorWindow.h"
#include "AliEveEventSelector.h"
#include "AliEveEventManager.h"
#include <TGTextEntry.h>
#include <TGNumberEntry.h>
#include <TRootEmbeddedCanvas.h>
#include <TCanvas.h>
#include <TGButton.h>
#include <TGComboBox.h>
#include <TGLabel.h>
#include <TTree.h>
#include <AliESDEvent.h>
#include <AliESDRun.h>
#include <TH1.h>
#include <TDirectory.h>
#include <TROOT.h>

ClassImp(AliEveEventSelectorWindow)
//______________________________________________________________________________
AliEveEventSelectorWindow::AliEveEventSelectorWindow(const TGWindow *p, UInt_t w, UInt_t h,
                                                     AliEveEventSelector* sel) :
  TGMainFrame(p, w, h),
  fPSelector(sel),
  fPCanvas(0),
  fPDrawFormula(0),
  fPEntryFormula(0),
  fPEntryLowerBound(0),
  fPEntryHigherBound(0),
  fPButtonTextDone(0),
  fPComboBoxTrigger(0),
  fPEntryTriggerSelection(0),
  fPCheckTriggerSimple(0),
  fPCheckTriggerString(0),
  fPEntryMultHigh(0),
  fPEntryMultLow(0)
{
  //ctor

  //the canvas
  fPCanvas = new TRootEmbeddedCanvas(0,this);
  Int_t wid = fPCanvas->GetCanvasWindowId();
  TCanvas *myc = new TCanvas("MyCanvas", 10,10,wid);
  fPCanvas->AdoptCanvas(myc);
  AddFrame(fPCanvas, new TGLayoutHints(kLHintsExpandX | kLHintsExpandY));

  //draw box frame
  TGHorizontalFrame* hframedraw = new TGHorizontalFrame(this);
  AddFrame(hframedraw, new TGLayoutHints((kLHintsExpandX), 5,5,2,1));

  TGLabel* drawlabel = new TGLabel(hframedraw, "Draw preview");
  hframedraw->AddFrame(drawlabel, new TGLayoutHints(kLHintsLeft, 2,6,2));
  fPDrawFormula = new TGTextEntry(hframedraw);
  hframedraw->AddFrame(fPDrawFormula, new TGLayoutHints(kLHintsExpandX));
  TGTextButton* buttondraw = new TGTextButton(hframedraw,"Draw");
  buttondraw->Connect("Clicked()","AliEveEventSelectorWindow",
                              this, "DoDrawHistogram()");
  hframedraw->AddFrame(buttondraw, new TGLayoutHints(kLHintsLeft));
  TGTextButton* buttonview = new TGTextButton(hframedraw,"Browse");
  buttonview->Connect("Clicked()","TTree",fPSelector->GetESDTree(),"StartViewer()");
  hframedraw->AddFrame(buttonview, new TGLayoutHints(kLHintsLeft));


  //text selection frame
  TGHorizontalFrame *hframetxtsel = new TGHorizontalFrame(this);
  AddFrame(hframetxtsel, new TGLayoutHints((kLHintsExpandX), 5,5,1,1));

  TGLabel* exprlabel = new TGLabel(hframetxtsel, "Expression");
  hframetxtsel->AddFrame(exprlabel, new TGLayoutHints(kLHintsLeft, 6,2,2));

  TGCheckButton* checktextsel = new TGCheckButton(hframetxtsel);
  checktextsel->Connect("Toggled(Bool_t)", "AliEveEventSelector",
                        fPSelector, "SetSelectOnString(Bool_t)");
  checktextsel->SetState(fPSelector->GetSelectOnString() ? kButtonDown : kButtonUp);
  hframetxtsel->AddFrame(checktextsel, new TGLayoutHints(kLHintsLeft, 0,0,1));

  fPEntryLowerBound = new TGNumberEntry(hframetxtsel);
  hframetxtsel->AddFrame(fPEntryLowerBound, new TGLayoutHints(kLHintsLeft));
  fPEntryFormula = new TGTextEntry(hframetxtsel);
  hframetxtsel->AddFrame(fPEntryFormula, new TGLayoutHints(kLHintsExpandX));
  fPEntryHigherBound = new TGNumberEntry(hframetxtsel);
  hframetxtsel->AddFrame(fPEntryHigherBound, new TGLayoutHints(kLHintsLeft));
  fPButtonTextDone = new TGTextButton(hframetxtsel,"Set");
  fPButtonTextDone->Connect("Clicked()", "AliEveEventSelectorWindow",
                            this, "DoSetSelectionString()");
  hframetxtsel->AddFrame(fPButtonTextDone, new TGLayoutHints(kLHintsLeft));

  //trigger cuts frame
  TGHorizontalFrame* hframetrigger = new TGHorizontalFrame(this);
  AddFrame(hframetrigger, new TGLayoutHints((kLHintsLeft|kLHintsExpandX), 5,5,1,1));

  TGLabel* triglabel = new TGLabel(hframetrigger, "Trigger type");
  hframetrigger->AddFrame(triglabel, new TGLayoutHints(kLHintsLeft, 0,2,2));
  fPCheckTriggerSimple = new TGCheckButton(hframetrigger);
  fPCheckTriggerSimple->Connect("Toggled(Bool_t)","AliEveEventSelector",
                          fPSelector,"SetSelectOnTriggerType(Bool_t)");
  fPCheckTriggerSimple->SetState(fPSelector->GetSelectOnTriggerType() ? kButtonDown : kButtonUp );
  hframetrigger->AddFrame(fPCheckTriggerSimple, new TGLayoutHints(kLHintsLeft, 0,0,1));
  fPComboBoxTrigger = new TGComboBox(hframetrigger);
  fPComboBoxTrigger->Resize(200,20);
  fPComboBoxTrigger->Connect("Selected(const char*)","AliEveEventSelectorWindow",
                             this,"DoHandleTriggerFromComboBox(const char*)");
  hframetrigger->AddFrame(fPComboBoxTrigger, new TGLayoutHints(kLHintsLeft));

  TGLabel* labelfreetrig = new TGLabel(hframetrigger, "Expression");
  hframetrigger->AddFrame(labelfreetrig, new TGLayoutHints(kLHintsLeft, 4,2,2));
  fPCheckTriggerString = new TGCheckButton(hframetrigger);
  hframetrigger->AddFrame(fPCheckTriggerString, new TGLayoutHints(kLHintsLeft, 0,0,1));
  fPCheckTriggerString->Connect("Toggled(Bool_t)","AliEveEventSelector",
                           fPSelector,"SetSelectOnTriggerString(Bool_t)");
  fPCheckTriggerString->SetState(fPSelector->GetSelectOnTriggerString() ? kButtonDown : kButtonUp );
  fPEntryTriggerSelection = new TGTextEntry(hframetrigger);
  hframetrigger->AddFrame(fPEntryTriggerSelection, new TGLayoutHints(kLHintsExpandX));
  TGTextButton* buttontrigsel = new TGTextButton(hframetrigger,"Set");
  hframetrigger->AddFrame(buttontrigsel, new TGLayoutHints(kLHintsLeft));
  buttontrigsel->Connect("Clicked()","AliEveEventSelectorWindow",
                         this, "DoSetTriggerSelectionString()");

  //multiplicity cuts frame
  TGHorizontalFrame* hframemult = new TGHorizontalFrame(this);
  AddFrame(hframemult, new TGLayoutHints((kLHintsLeft), 5,5,1,1));

  TGLabel* multlabel = new TGLabel(hframemult, "Multiplicity");
  hframemult->AddFrame(multlabel, new TGLayoutHints(kLHintsLeft, 7,2,2));
  TGCheckButton* checkmult = new TGCheckButton(hframemult);
  checkmult->Connect("Toggled(Bool_t)", "AliEveEventSelector",
                      fPSelector,"SetSelectOnMultiplicity(Bool_t)");
  checkmult->SetState(fPSelector->GetSelectOnMultiplicity() ? kButtonDown : kButtonUp );
  hframemult->AddFrame(checkmult, new TGLayoutHints(kLHintsLeft, 0,0,1));
  fPEntryMultLow = new TGNumberEntry(hframemult);
  hframemult->AddFrame(fPEntryMultLow, new TGLayoutHints(kLHintsLeft));
  fPEntryMultHigh = new TGNumberEntry(hframemult);
  hframemult->AddFrame(fPEntryMultHigh, new TGLayoutHints(kLHintsLeft));
  TGTextButton* buttonmultset = new TGTextButton(hframemult,"Set");
  hframemult->AddFrame(buttonmultset, new TGLayoutHints(kLHintsLeft));
  buttonmultset->Connect("Clicked()","AliEveEventSelectorWindow",
                         this, "DoSetMultiplicityRange()");

  //wrap around
  TGHorizontalFrame* hframewrap = new TGHorizontalFrame(this);
  AddFrame(hframewrap, new TGLayoutHints((kLHintsLeft), 5,5,1,2));

  TGLabel* wraplabel = new TGLabel(hframewrap, "Wrap around at the end:");
  hframewrap->AddFrame(wraplabel, new TGLayoutHints(kLHintsLeft, 0,4,1));
  TGCheckButton* checkwraparound = new TGCheckButton(hframewrap);
  hframewrap->AddFrame(checkwraparound, new TGLayoutHints(kLHintsLeft));
  checkwraparound->Connect("Toggled(Bool_t)","AliEveEventSelector",
                           fPSelector, "SetWrapAround(Bool_t)");
  checkwraparound->SetState(fPSelector->GetWrapAround() ? kButtonDown : kButtonUp );

  SetupTriggerSelect();
  
  //bookkeeping
  SetWindowName("Event Selection");
  MapSubwindows();

  Resize(GetDefaultSize());
  MapWindow();
}

//______________________________________________________________________________
AliEveEventSelectorWindow::~AliEveEventSelectorWindow()
{
  //dtor
}

//______________________________________________________________________________
void AliEveEventSelectorWindow::SetupTriggerSelect()
{ 
  //Set up the list of available triggers

  // Do nothing if already enabled.
  if (fPComboBoxTrigger->GetNumberOfEntries() > 0)
    return;
  AliEveEventManager* fM = fPSelector->GetEventManager();
  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)
    {
      fPComboBoxTrigger->SetEnabled(kFALSE);  //no trigger classes
    }
    else
    {
      fPComboBoxTrigger->RemoveAll(); //some initial cleanup
      fPComboBoxTrigger->SetEnabled(kTRUE);  //no trigger classes
      //fPComboBoxTrigger->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();
        fPComboBoxTrigger->AddEntry(entry.Data(), i);
      }
    }
    fPComboBoxTrigger->Select(0, kTRUE); //set default no filtering and emit
    fPComboBoxTrigger->SetEnabled(kTRUE);
    delete activetrgarr;
  } 
  else
  { 
    fPComboBoxTrigger->SetEnabled(kFALSE);
  } 
} 

//______________________________________________________________________________
void AliEveEventSelectorWindow::DoSetSelectionString()
{
  //process the entered formula and send it to the selector

  TString str = fPEntryFormula->GetText();
  TString s;
  if (fPEntryLowerBound->GetNumber()==0&&fPEntryHigherBound->GetNumber()==0)
  {
    s = str;
  }
  else
  {
    s += "(";
    s += str;
    s += ")>";
    s += fPEntryLowerBound->GetNumber();
    s += "&&";
    s += "(";
    s += str;
    s += ")<";
    s += fPEntryHigherBound->GetNumber();
  }
  fPSelector->SetSelectionString(s);
}

//______________________________________________________________________________
void AliEveEventSelectorWindow::DoDrawHistogram()
{
  //Draw histogram with formula in the draw field

  TTree* tree = fPSelector->GetESDTree();
  TString str = fPDrawFormula->GetText();
  str += ">>selectionhist";

  TH1 *hist = dynamic_cast<TH1*>(gDirectory->Get("selectionhist"));
  if (hist) delete hist;

  TEvePadHolder padSwitch(kTRUE, fPCanvas->GetCanvas());
  tree->Draw(str);
}

//______________________________________________________________________________
void AliEveEventSelectorWindow::DoSetTriggerSelectionString()
{
  //Set trigger selection formula
  
  TString string = fPEntryTriggerSelection->GetText();
  fPSelector->SetTriggerSelectionString(string);
  fPEntryTriggerSelection->SetToolTipText(fPSelector->GetTriggerSelectionString());
}

//______________________________________________________________________________
void AliEveEventSelectorWindow::DoHandleTriggerFromComboBox(const char* str)
{
  //Dispatch the trigger selection to proper destination
  
  if (fPSelector->GetSelectOnTriggerString() && !fPSelector->GetSelectOnTriggerType())
  {
    fPEntryTriggerSelection->Insert(str);
    fPEntryTriggerSelection->SetFocus();
  }
  if (fPSelector->GetSelectOnTriggerType())
    fPSelector->SetTriggerType(str);
}

//______________________________________________________________________________
void AliEveEventSelectorWindow::DoSetMultiplicityRange()
{
  //Set the multiplicity range
  
  fPSelector->SetMultiplicityLow ((Int_t) fPEntryMultLow->GetNumber());
  fPSelector->SetMultiplicityHigh((Int_t) fPEntryMultHigh->GetNumber());
}
 AliEveEventSelectorWindow.cxx:1
 AliEveEventSelectorWindow.cxx:2
 AliEveEventSelectorWindow.cxx:3
 AliEveEventSelectorWindow.cxx:4
 AliEveEventSelectorWindow.cxx:5
 AliEveEventSelectorWindow.cxx:6
 AliEveEventSelectorWindow.cxx:7
 AliEveEventSelectorWindow.cxx:8
 AliEveEventSelectorWindow.cxx:9
 AliEveEventSelectorWindow.cxx:10
 AliEveEventSelectorWindow.cxx:11
 AliEveEventSelectorWindow.cxx:12
 AliEveEventSelectorWindow.cxx:13
 AliEveEventSelectorWindow.cxx:14
 AliEveEventSelectorWindow.cxx:15
 AliEveEventSelectorWindow.cxx:16
 AliEveEventSelectorWindow.cxx:17
 AliEveEventSelectorWindow.cxx:18
 AliEveEventSelectorWindow.cxx:19
 AliEveEventSelectorWindow.cxx:20
 AliEveEventSelectorWindow.cxx:21
 AliEveEventSelectorWindow.cxx:22
 AliEveEventSelectorWindow.cxx:23
 AliEveEventSelectorWindow.cxx:24
 AliEveEventSelectorWindow.cxx:25
 AliEveEventSelectorWindow.cxx:26
 AliEveEventSelectorWindow.cxx:27
 AliEveEventSelectorWindow.cxx:28
 AliEveEventSelectorWindow.cxx:29
 AliEveEventSelectorWindow.cxx:30
 AliEveEventSelectorWindow.cxx:31
 AliEveEventSelectorWindow.cxx:32
 AliEveEventSelectorWindow.cxx:33
 AliEveEventSelectorWindow.cxx:34
 AliEveEventSelectorWindow.cxx:35
 AliEveEventSelectorWindow.cxx:36
 AliEveEventSelectorWindow.cxx:37
 AliEveEventSelectorWindow.cxx:38
 AliEveEventSelectorWindow.cxx:39
 AliEveEventSelectorWindow.cxx:40
 AliEveEventSelectorWindow.cxx:41
 AliEveEventSelectorWindow.cxx:42
 AliEveEventSelectorWindow.cxx:43
 AliEveEventSelectorWindow.cxx:44
 AliEveEventSelectorWindow.cxx:45
 AliEveEventSelectorWindow.cxx:46
 AliEveEventSelectorWindow.cxx:47
 AliEveEventSelectorWindow.cxx:48
 AliEveEventSelectorWindow.cxx:49
 AliEveEventSelectorWindow.cxx:50
 AliEveEventSelectorWindow.cxx:51
 AliEveEventSelectorWindow.cxx:52
 AliEveEventSelectorWindow.cxx:53
 AliEveEventSelectorWindow.cxx:54
 AliEveEventSelectorWindow.cxx:55
 AliEveEventSelectorWindow.cxx:56
 AliEveEventSelectorWindow.cxx:57
 AliEveEventSelectorWindow.cxx:58
 AliEveEventSelectorWindow.cxx:59
 AliEveEventSelectorWindow.cxx:60
 AliEveEventSelectorWindow.cxx:61
 AliEveEventSelectorWindow.cxx:62
 AliEveEventSelectorWindow.cxx:63
 AliEveEventSelectorWindow.cxx:64
 AliEveEventSelectorWindow.cxx:65
 AliEveEventSelectorWindow.cxx:66
 AliEveEventSelectorWindow.cxx:67
 AliEveEventSelectorWindow.cxx:68
 AliEveEventSelectorWindow.cxx:69
 AliEveEventSelectorWindow.cxx:70
 AliEveEventSelectorWindow.cxx:71
 AliEveEventSelectorWindow.cxx:72
 AliEveEventSelectorWindow.cxx:73
 AliEveEventSelectorWindow.cxx:74
 AliEveEventSelectorWindow.cxx:75
 AliEveEventSelectorWindow.cxx:76
 AliEveEventSelectorWindow.cxx:77
 AliEveEventSelectorWindow.cxx:78
 AliEveEventSelectorWindow.cxx:79
 AliEveEventSelectorWindow.cxx:80
 AliEveEventSelectorWindow.cxx:81
 AliEveEventSelectorWindow.cxx:82
 AliEveEventSelectorWindow.cxx:83
 AliEveEventSelectorWindow.cxx:84
 AliEveEventSelectorWindow.cxx:85
 AliEveEventSelectorWindow.cxx:86
 AliEveEventSelectorWindow.cxx:87
 AliEveEventSelectorWindow.cxx:88
 AliEveEventSelectorWindow.cxx:89
 AliEveEventSelectorWindow.cxx:90
 AliEveEventSelectorWindow.cxx:91
 AliEveEventSelectorWindow.cxx:92
 AliEveEventSelectorWindow.cxx:93
 AliEveEventSelectorWindow.cxx:94
 AliEveEventSelectorWindow.cxx:95
 AliEveEventSelectorWindow.cxx:96
 AliEveEventSelectorWindow.cxx:97
 AliEveEventSelectorWindow.cxx:98
 AliEveEventSelectorWindow.cxx:99
 AliEveEventSelectorWindow.cxx:100
 AliEveEventSelectorWindow.cxx:101
 AliEveEventSelectorWindow.cxx:102
 AliEveEventSelectorWindow.cxx:103
 AliEveEventSelectorWindow.cxx:104
 AliEveEventSelectorWindow.cxx:105
 AliEveEventSelectorWindow.cxx:106
 AliEveEventSelectorWindow.cxx:107
 AliEveEventSelectorWindow.cxx:108
 AliEveEventSelectorWindow.cxx:109
 AliEveEventSelectorWindow.cxx:110
 AliEveEventSelectorWindow.cxx:111
 AliEveEventSelectorWindow.cxx:112
 AliEveEventSelectorWindow.cxx:113
 AliEveEventSelectorWindow.cxx:114
 AliEveEventSelectorWindow.cxx:115
 AliEveEventSelectorWindow.cxx:116
 AliEveEventSelectorWindow.cxx:117
 AliEveEventSelectorWindow.cxx:118
 AliEveEventSelectorWindow.cxx:119
 AliEveEventSelectorWindow.cxx:120
 AliEveEventSelectorWindow.cxx:121
 AliEveEventSelectorWindow.cxx:122
 AliEveEventSelectorWindow.cxx:123
 AliEveEventSelectorWindow.cxx:124
 AliEveEventSelectorWindow.cxx:125
 AliEveEventSelectorWindow.cxx:126
 AliEveEventSelectorWindow.cxx:127
 AliEveEventSelectorWindow.cxx:128
 AliEveEventSelectorWindow.cxx:129
 AliEveEventSelectorWindow.cxx:130
 AliEveEventSelectorWindow.cxx:131
 AliEveEventSelectorWindow.cxx:132
 AliEveEventSelectorWindow.cxx:133
 AliEveEventSelectorWindow.cxx:134
 AliEveEventSelectorWindow.cxx:135
 AliEveEventSelectorWindow.cxx:136
 AliEveEventSelectorWindow.cxx:137
 AliEveEventSelectorWindow.cxx:138
 AliEveEventSelectorWindow.cxx:139
 AliEveEventSelectorWindow.cxx:140
 AliEveEventSelectorWindow.cxx:141
 AliEveEventSelectorWindow.cxx:142
 AliEveEventSelectorWindow.cxx:143
 AliEveEventSelectorWindow.cxx:144
 AliEveEventSelectorWindow.cxx:145
 AliEveEventSelectorWindow.cxx:146
 AliEveEventSelectorWindow.cxx:147
 AliEveEventSelectorWindow.cxx:148
 AliEveEventSelectorWindow.cxx:149
 AliEveEventSelectorWindow.cxx:150
 AliEveEventSelectorWindow.cxx:151
 AliEveEventSelectorWindow.cxx:152
 AliEveEventSelectorWindow.cxx:153
 AliEveEventSelectorWindow.cxx:154
 AliEveEventSelectorWindow.cxx:155
 AliEveEventSelectorWindow.cxx:156
 AliEveEventSelectorWindow.cxx:157
 AliEveEventSelectorWindow.cxx:158
 AliEveEventSelectorWindow.cxx:159
 AliEveEventSelectorWindow.cxx:160
 AliEveEventSelectorWindow.cxx:161
 AliEveEventSelectorWindow.cxx:162
 AliEveEventSelectorWindow.cxx:163
 AliEveEventSelectorWindow.cxx:164
 AliEveEventSelectorWindow.cxx:165
 AliEveEventSelectorWindow.cxx:166
 AliEveEventSelectorWindow.cxx:167
 AliEveEventSelectorWindow.cxx:168
 AliEveEventSelectorWindow.cxx:169
 AliEveEventSelectorWindow.cxx:170
 AliEveEventSelectorWindow.cxx:171
 AliEveEventSelectorWindow.cxx:172
 AliEveEventSelectorWindow.cxx:173
 AliEveEventSelectorWindow.cxx:174
 AliEveEventSelectorWindow.cxx:175
 AliEveEventSelectorWindow.cxx:176
 AliEveEventSelectorWindow.cxx:177
 AliEveEventSelectorWindow.cxx:178
 AliEveEventSelectorWindow.cxx:179
 AliEveEventSelectorWindow.cxx:180
 AliEveEventSelectorWindow.cxx:181
 AliEveEventSelectorWindow.cxx:182
 AliEveEventSelectorWindow.cxx:183
 AliEveEventSelectorWindow.cxx:184
 AliEveEventSelectorWindow.cxx:185
 AliEveEventSelectorWindow.cxx:186
 AliEveEventSelectorWindow.cxx:187
 AliEveEventSelectorWindow.cxx:188
 AliEveEventSelectorWindow.cxx:189
 AliEveEventSelectorWindow.cxx:190
 AliEveEventSelectorWindow.cxx:191
 AliEveEventSelectorWindow.cxx:192
 AliEveEventSelectorWindow.cxx:193
 AliEveEventSelectorWindow.cxx:194
 AliEveEventSelectorWindow.cxx:195
 AliEveEventSelectorWindow.cxx:196
 AliEveEventSelectorWindow.cxx:197
 AliEveEventSelectorWindow.cxx:198
 AliEveEventSelectorWindow.cxx:199
 AliEveEventSelectorWindow.cxx:200
 AliEveEventSelectorWindow.cxx:201
 AliEveEventSelectorWindow.cxx:202
 AliEveEventSelectorWindow.cxx:203
 AliEveEventSelectorWindow.cxx:204
 AliEveEventSelectorWindow.cxx:205
 AliEveEventSelectorWindow.cxx:206
 AliEveEventSelectorWindow.cxx:207
 AliEveEventSelectorWindow.cxx:208
 AliEveEventSelectorWindow.cxx:209
 AliEveEventSelectorWindow.cxx:210
 AliEveEventSelectorWindow.cxx:211
 AliEveEventSelectorWindow.cxx:212
 AliEveEventSelectorWindow.cxx:213
 AliEveEventSelectorWindow.cxx:214
 AliEveEventSelectorWindow.cxx:215
 AliEveEventSelectorWindow.cxx:216
 AliEveEventSelectorWindow.cxx:217
 AliEveEventSelectorWindow.cxx:218
 AliEveEventSelectorWindow.cxx:219
 AliEveEventSelectorWindow.cxx:220
 AliEveEventSelectorWindow.cxx:221
 AliEveEventSelectorWindow.cxx:222
 AliEveEventSelectorWindow.cxx:223
 AliEveEventSelectorWindow.cxx:224
 AliEveEventSelectorWindow.cxx:225
 AliEveEventSelectorWindow.cxx:226
 AliEveEventSelectorWindow.cxx:227
 AliEveEventSelectorWindow.cxx:228
 AliEveEventSelectorWindow.cxx:229
 AliEveEventSelectorWindow.cxx:230
 AliEveEventSelectorWindow.cxx:231
 AliEveEventSelectorWindow.cxx:232
 AliEveEventSelectorWindow.cxx:233
 AliEveEventSelectorWindow.cxx:234
 AliEveEventSelectorWindow.cxx:235
 AliEveEventSelectorWindow.cxx:236
 AliEveEventSelectorWindow.cxx:237
 AliEveEventSelectorWindow.cxx:238
 AliEveEventSelectorWindow.cxx:239
 AliEveEventSelectorWindow.cxx:240
 AliEveEventSelectorWindow.cxx:241
 AliEveEventSelectorWindow.cxx:242
 AliEveEventSelectorWindow.cxx:243
 AliEveEventSelectorWindow.cxx:244
 AliEveEventSelectorWindow.cxx:245
 AliEveEventSelectorWindow.cxx:246
 AliEveEventSelectorWindow.cxx:247
 AliEveEventSelectorWindow.cxx:248
 AliEveEventSelectorWindow.cxx:249
 AliEveEventSelectorWindow.cxx:250
 AliEveEventSelectorWindow.cxx:251
 AliEveEventSelectorWindow.cxx:252
 AliEveEventSelectorWindow.cxx:253
 AliEveEventSelectorWindow.cxx:254
 AliEveEventSelectorWindow.cxx:255
 AliEveEventSelectorWindow.cxx:256
 AliEveEventSelectorWindow.cxx:257
 AliEveEventSelectorWindow.cxx:258
 AliEveEventSelectorWindow.cxx:259
 AliEveEventSelectorWindow.cxx:260
 AliEveEventSelectorWindow.cxx:261
 AliEveEventSelectorWindow.cxx:262
 AliEveEventSelectorWindow.cxx:263
 AliEveEventSelectorWindow.cxx:264
 AliEveEventSelectorWindow.cxx:265
 AliEveEventSelectorWindow.cxx:266
 AliEveEventSelectorWindow.cxx:267
 AliEveEventSelectorWindow.cxx:268
 AliEveEventSelectorWindow.cxx:269
 AliEveEventSelectorWindow.cxx:270
 AliEveEventSelectorWindow.cxx:271
 AliEveEventSelectorWindow.cxx:272
 AliEveEventSelectorWindow.cxx:273
 AliEveEventSelectorWindow.cxx:274
 AliEveEventSelectorWindow.cxx:275
 AliEveEventSelectorWindow.cxx:276
 AliEveEventSelectorWindow.cxx:277
 AliEveEventSelectorWindow.cxx:278
 AliEveEventSelectorWindow.cxx:279
 AliEveEventSelectorWindow.cxx:280
 AliEveEventSelectorWindow.cxx:281
 AliEveEventSelectorWindow.cxx:282
 AliEveEventSelectorWindow.cxx:283
 AliEveEventSelectorWindow.cxx:284
 AliEveEventSelectorWindow.cxx:285
 AliEveEventSelectorWindow.cxx:286
 AliEveEventSelectorWindow.cxx:287
 AliEveEventSelectorWindow.cxx:288
 AliEveEventSelectorWindow.cxx:289
 AliEveEventSelectorWindow.cxx:290
 AliEveEventSelectorWindow.cxx:291
 AliEveEventSelectorWindow.cxx:292
 AliEveEventSelectorWindow.cxx:293
 AliEveEventSelectorWindow.cxx:294
 AliEveEventSelectorWindow.cxx:295
 AliEveEventSelectorWindow.cxx:296
 AliEveEventSelectorWindow.cxx:297