// $Header$
-void alieve_init(const Text_t* path=".", Int_t event=0,
- Bool_t use_runloader=true, Bool_t use_esd=true)
+#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)
{
+ using namespace std;
// 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");
+ Info("alieve_init", "Adding standard macros.");
+ alieve_init_import_macros();
+ // Reve::AssertMacro("region_marker.C");
+
+ gSystem->ProcessEvents();
- // Put macros in the list of browsables, spawn a browser.
+ // 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);
+ }
+}
+
+void alieve_init_import_macros()
+{
+ // Put macros in the list of browsables, add a macro browser to
+ // top-level GUI.
- 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;
TPRegexp re("\.C$");
+ list<string> names;
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)));
+ 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 Reve::RMacro(Form("%s/%s", macdir.Data(), filename)));
+ char fullName[1000];
+ for (list<string>::iterator si=names.begin(); si!=names.end(); ++si)
+ {
+ sprintf(fullName,"%s/%s", macdir.Data(), si->c_str());
+ f->Add(new Reve::RMacro(fullName));
+ }
}
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;
-
- // Open event
-
- 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);
+ {
+ Reve::RGBrowser *br = gReve->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);
+ }
+ }
}