]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVE/macros/alieve_init.C
Change how ESDfriend is set in alieve.
[u/mrichter/AliRoot.git] / EVE / macros / alieve_init.C
index c44a6e88cd0e6072e03110578666b9be5c4be817..1f0bf7a2451d007f0fdee74053f7c97bfbe19ddf 100644 (file)
@@ -1,39 +1,78 @@
-// $Header$
+// $Id$
+// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
+
+/**************************************************************************
+ * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
+ * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
+ * full copyright notice.                                                 *
+ **************************************************************************/
+
+#ifndef __CINT_
+#include <list>
+#include <string>
+#endif
 
 void alieve_init(const Text_t* path   = ".", Int_t event=0,
-                const Text_t* cdburi = 0,
-                Bool_t assert_runloader=kFALSE, Bool_t assert_esd=kFALSE)
+                 const Text_t* esdfile = 0,
+                 const Text_t* rawfile = 0,
+                const Text_t* cdburi  = 0,
+                Bool_t assert_runloader = kFALSE,
+                 Bool_t assert_esd       = kFALSE,
+                 Bool_t assert_raw       = kFALSE)
 {
+  Info("alieve_init", "Adding standard macros.");
+  TString  hack = gSystem->pwd(); // Problem with TGFileBrowser cding
+  alieve_init_import_macros();
+  gSystem->cd(hack);
+
+  // TEveUtil::AssertMacro("region_marker.C");
 
-  // Set-up environment, load libraries.
+  gSystem->ProcessEvents();
 
-  Reve::SetupEnvironment();
-  // alieve executable linked against ALICE nad EVE shared libraries.
-  // Reve::AssertMacro("alieve_loadlibs.C");
+  AliEveEventManager::SetESDFileName(esdfile);
+  AliEveEventManager::SetRawFileName(rawfile);
+  AliEveEventManager::SetAssertElements(assert_runloader, assert_esd, assert_raw);
+  AliEveEventManager::SetCdbUri(cdburi);
 
+  // Open event
+  if(path != 0)
+  {
+    Info("alieve_init", "Opening event %d from '%s' ...", event, path);
+    gAliEveEvent = new AliEveEventManager(path, event);
+    gEve->AddEvent(gAliEveEvent);
+  }
+}
 
-  // Put macros in the list of browsables, spawn a browser.
+void alieve_init_import_macros()
+{
+  // Put macros in the list of browsables, add a macro browser to
+  // top-level GUI.
 
-  TString macdir("$(REVESYS)/alice-macros");
+  TString macdir("$(ALICE_ROOT)/EVE/alice-macros");
   gSystem->ExpandPathName(macdir);
 
-  TFolder* f = gReve->GetMacroFolder();
+  TFolder* f = gEve->GetMacroFolder();
   void* dirhandle = gSystem->OpenDirectory(macdir.Data());
   if(dirhandle != 0) {
     char* filename;
     TPRegexp re("\.C$");
+    std::list<string> names;
     while((filename = gSystem->GetDirEntry(dirhandle)) != 0) {
       if(re.Match(filename)) {
-       printf("Adding macro '%s'\n", filename);
-       //PH The line below is replaced waiting for a fix in Root
-       //PH which permits to use variable siza arguments in CINT
-       //PH on some platforms (alphalinuxgcc, solariscc5, etc.)
-       // f->Add(new Reve::RMacro(Form("%s/%s", macdir.Data(), filename)));
-       char fullName[1000];
-       sprintf(fullName,"%s/%s", macdir.Data(), filename);
-       f->Add(new Reve::RMacro(fullName));
+       names.push_back(filename);
       }
     }
+    names.sort();
+    //PH The line below is replaced waiting for a fix in Root
+    //PH which permits to use variable siza arguments in CINT
+    //PH on some platforms (alphalinuxgcc, solariscc5, etc.)
+    // f->Add(new TEveMacro(Form("%s/%s", macdir.Data(), filename)));
+    char fullName[1000];
+    for (std::list<string>::iterator si=names.begin(); si!=names.end(); ++si)
+    {
+      sprintf(fullName,"%s/%s", macdir.Data(), si->c_str());
+      f->Add(new TEveMacro(fullName));
+    }
   }
   gSystem->FreeDirectory(dirhandle);
 
@@ -41,17 +80,19 @@ void alieve_init(const Text_t* path   = ".", Int_t event=0,
     // (new TSystemDirectory("alice-macros", macdir.Data())); // !!!! this spits blood, but then works
     (new TSystemDirectory(macdir.Data(), macdir.Data()));
 
-  new TBrowser;
-
-  Reve::AssertMacro("region_marker.C");
-
-  // Open event
-  if(path != 0) {
-    Alieve::Event::SetCdbUri(cdburi);
-    Alieve::Event::SetAssertElements(assert_runloader, assert_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);
+  {
+    TEveBrowser   *br = gEve->GetBrowser();
+    TGFileBrowser *fb = 0;
+    fb = br->GetFileBrowser();
+    fb->GotoDir(macdir);
+    {
+      br->StartEmbedding(0);
+      fb = br->MakeFileBrowser();
+      fb->BrowseObj(f);
+      fb->Show();
+      br->StopEmbedding();
+      br->SetTabTitle("Macros", 0);
+      br->SetTab(0, 0);
+    }
   }
 }