[ROOT] TEventList: failure to create event list for 2nd TEventList object in scope

From: Justin Findlay (findlay@cosmic.utah.edu)
Date: Wed Sep 29 2004 - 22:27:47 MEST


I am unsure as to whether I've made a false assumption about TEventLists or if this
is a ROOT bug.  The following code compiled against the latest CVS head produces
the output shown.

int main(int argc, char*argv[])
{
  TFile fin(argv[1], "read");
  TNtupleD*ntuple = (TNtupleD*)fin.Get("ntuple");
  TString selection;

  selection = "(0.99 < mx)";
  TEventList*event_list_one = new TEventList("one" + TString("event_list"));
  ntuple->Draw(TString(">> ") + event_list_one->GetName(), selection);
  cout << event_list_one << endl << ntuple->GetSelectedRows() << endl;
  ntuple->SetEventList(event_list_one);
  //...

  selection = "(-0.01 < mx && mx < 0.01)";
  TEventList*event_list_zero = new TEventList("zero" + TString("event_list"));
  ntuple->Draw(TString(">> ") + event_list_zero->GetName(), selection);
  cout << event_list_zero << endl << ntuple->GetSelectedRows() << endl;
  ntuple->SetEventList(event_list_zero);
  //...

  return 0;
}

output:

0x88461f0
140390
0x8c1cee8
0

If the order of the statements is reversed, the second TEventList is again not
populated.

int main(int argc, char*argv[])
{
  TFile fin(argv[1], "read");
  TNtupleD*ntuple = (TNtupleD*)fin.Get("ntuple");
  TString selection;

  selection = "(-0.01 < mx && mx < 0.01)";
  TEventList*event_list_zero = new TEventList("zero" + TString("event_list"));
  ntuple->Draw(TString(">> ") + event_list_zero->GetName(), selection);
  cout << event_list_zero << endl << ntuple->GetSelectedRows() << endl;
  ntuple->SetEventList(event_list_zero);
  //...

  selection = "(0.99 < mx)";
  TEventList*event_list_one = new TEventList("one" + TString("event_list"));
  ntuple->Draw(TString(">> ") + event_list_one->GetName(), selection);
  cout << event_list_one << endl << ntuple->GetSelectedRows() << endl;
  ntuple->SetEventList(event_list_one);
  //...

  return 0;
}

output:

0x896b3b8
182187
0x8c1e530
0


Justin



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET