new function
[u/mrichter/AliRoot.git] / EVE / macros / alieve_init.C
index 62f52b14ae76c2020cbf0913a922415041585300..19f09a6a462e1c9193193867530039867934f7dc 100644 (file)
@@ -1,29 +1,23 @@
 // $Header$
 
 void alieve_init(const Text_t* path=".", Int_t event=0,
-                 Bool_t use_runloader=true, Bool_t use_esd=true)
+                Bool_t use_runloader=kTRUE, Bool_t use_esd=kTRUE,
+                Bool_t avoid_exceptions_on_open=kTRUE)
 {
 
   // Set-up environment, load libraries.
 
   Reve::SetupEnvironment();
-
-  gROOT->SetMacroPath(Form("%s:%s/alice-macros:%s/macros",
-                          gROOT->GetMacroPath(),
-                          gSystem->Getenv("REVESYS"),
-                          gSystem->Getenv("ALICE_ROOT")));
-  gInterpreter->AddIncludePath(Form("%s/macros", gSystem->Getenv("ALICE_ROOT")));
-
-  Reve::AssertMacro("alieve_loadlibs.C");
-  gSystem->Load("libAlieve.so");
+  // alieve executable linked against ALICE nad EVE shared libraries.
+  // Reve::AssertMacro("alieve_loadlibs.C");
 
 
   // Put macros in the list of browsables, spawn a browser.
 
-  TFolder* f = new TFolder("ALICE EVE", "Visualization macros");
   TString macdir("$(REVESYS)/alice-macros");
   gSystem->ExpandPathName(macdir);
 
+  TFolder* f = gReve->GetMacroFolder();
   void* dirhandle = gSystem->OpenDirectory(macdir.Data());
   if(dirhandle != 0) {
     char* filename;
@@ -31,14 +25,14 @@ void alieve_init(const Text_t* path=".", Int_t event=0,
     while((filename = gSystem->GetDirEntry(dirhandle)) != 0) {
       if(re.Match(filename)) {
        printf("Adding macro '%s'\n", filename);
-       f->Add(new TMacro(Form("%s/%s", macdir.Data(), filename)));
+       f->Add(new Reve::RMacro(Form("%s/%s", macdir.Data(), filename)));
       }
     }
   }
   gSystem->FreeDirectory(dirhandle);
 
-  gROOT->GetListOfBrowsables()->Add(f);
   gROOT->GetListOfBrowsables()->Add
+    // (new TSystemDirectory("alice-macros", macdir.Data())); // !!!! this spits blood, but then works
     (new TSystemDirectory(macdir.Data(), macdir.Data()));
 
   new TBrowser;
@@ -46,11 +40,12 @@ void alieve_init(const Text_t* path=".", Int_t event=0,
   Reve::AssertMacro("region_marker.C");
 
   // Open event
+  if(path != 0) {
+    Alieve::Event::Initialize(use_runloader, use_esd, avoid_exceptions_on_open);
 
-  Alieve::Event::Initialize(use_runloader, use_esd);
-
-  printf("Opening event %d from '%s' ...", event, path); fflush(stdout);
-  Alieve::gEvent = new Alieve::Event(path, event);
-  printf(" done.\n");
-  gReve->AddEvent(Alieve::gEvent);
+    printf("Opening event %d from '%s' ...", event, path); fflush(stdout);
+    Alieve::gEvent = new Alieve::Event(path, event);
+    printf(" done.\n");
+    gReve->AddEvent(Alieve::gEvent);
+  }
 }