]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/alieve_main/alieve_main.cxx
Coverity
[u/mrichter/AliRoot.git] / EVE / alieve_main / alieve_main.cxx
1 // $Id$
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #include <EveBase/AliEveConfigManager.h>
11
12 #include <TInterpreter.h>
13 #include <TRint.h>
14 #include <TROOT.h>
15 #include <TPRegexp.h>
16 #include <TSystem.h>
17 #include <TError.h>
18 #include <RVersion.h>
19
20 #include <AliLog.h>
21
22 #include <TEveUtil.h>
23 #include <TEveManager.h>
24 #include <TEveSelection.h>
25 #include <TEveBrowser.h>
26 #include <TEveViewer.h>
27
28 #include <Getline.h>
29
30 int main(int argc, char **argv)
31 {
32   static const TEveException kEH("alieve::main");
33
34   if (gSystem->Getenv("ALICE_ROOT") == 0)
35   {
36     Error(kEH.Data(), "ALICE_ROOT is not defined, aborting.");
37     gSystem->Exit(1);
38   }
39
40   TString evedir(Form("%s/EVE", gSystem->Getenv("ALICE_ROOT")));
41
42   if (gSystem->AccessPathName(evedir) == kTRUE)
43   {
44     Error(kEH.Data(), "Directory $ALICE_ROOT/EVE does not exist.");
45     gSystem->Exit(1);
46   }
47
48   TString macPath(gROOT->GetMacroPath());
49   macPath += Form(":%s/macros", evedir.Data());
50   gInterpreter->AddIncludePath(evedir);
51   if (gSystem->Getenv("ALICE_ROOT") != 0)
52   {
53     macPath += Form(":%s/alice-macros", evedir.Data());
54     gInterpreter->AddIncludePath(Form("%s/EVE", gSystem->Getenv("ALICE_ROOT")));
55     gInterpreter->AddIncludePath(Form("%s/PWG0", gSystem->Getenv("ALICE_ROOT")));
56     gInterpreter->AddIncludePath(Form("%s/include", gSystem->Getenv("ALICE_ROOT")));
57     gInterpreter->AddIncludePath(gSystem->Getenv("ALICE_ROOT"));
58   }
59   {
60     // TabCom fails on double-colon in macro-path.
61     // I fixed this in ROOT sometime ago ... could be removed
62     // when we go to 5.26.
63     TPMERegexp doubleColon(":{2,}", "og");
64     doubleColon.Substitute(macPath, ":");
65   }
66   gROOT->SetMacroPath(macPath);
67
68   // make sure logger is instantiated
69   AliLog::GetRootLogger();
70   TRint  *app = new TRint("App", &argc, argv);
71
72 #if ROOT_VERSION_CODE >= ROOT_VERSION(5,25,4) || defined XXX_LATEST_ROOT
73   // Waiting for update by Pawel. Now GED in ROOT is better again :)
74   // Uncomment when fixed in AliEveGedXXX.
75   // TEveGListTreeEditorFrame::SetEditorClass("AliEveGedEditor");
76 #endif
77
78   TEveManager::Create();
79   gEve->GetDefaultViewer()->SetElementName("3D View");
80   gEve->GetSelection()->SetPickToSelect(TEveSelection::kPS_PableCompound);
81   gEve->GetHighlight()->SetPickToSelect(TEveSelection::kPS_PableCompound);
82
83   gEve->RegisterGeometryAlias("Default", Form("%s/alice-data/default_geo.root", evedir.Data()));
84
85   try {AliEveConfigManager::InitializeMaster();}
86   catch (TEveException exc) {
87         AliErrorGeneral("alieve_main",exc.Data());
88   }
89
90   app->Run(kTRUE);
91
92   if (gEve && gEve->GetBrowser())
93     gEve->GetBrowser()->UnmapWindow();
94   TEveManager::Terminate();
95
96   app->Terminate(0);
97
98   return 0;
99 }