Adding ALICE specific implementation of Eve
authorquark <quark@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 19 Jun 2012 13:00:40 +0000 (13:00 +0000)
committerquark <quark@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 19 Jun 2012 13:00:40 +0000 (13:00 +0000)
13 files changed:
EVE/CMakebinalieve.pkg
EVE/CMakelibEveBase.pkg
EVE/EveBase/AliEveEventManager.cxx
EVE/EveBase/AliEveEventManager.h
EVE/EveBase/AliEveMacroExecutorWindow.cxx
EVE/EveBase/AliEveMultiView.cxx
EVE/EveBase/AliEveMultiView.h
EVE/EveBase/EveBaseLinkDef.h
EVE/alice-data/default_geo.root
EVE/alice-macros/phos_clusters.C
EVE/alieve_main/alieve_main.cxx
EVE/alieve_main/alihlteve_main.cxx
EVE/macros/visscan_init.C

index 91dbf26857679438a2978282af78893c16229ad3..c49083d36c37af36b887f30aca97c76a1ad8bf72 100644 (file)
@@ -32,13 +32,13 @@ set ( CSRCS )
 set ( EINCLUDE )
 set ( ELIBSDIR )
 
-set ( ELIBS  EveBase EveDet MONITOR MUONmapping MUONevaluation MUONsim MUONrec MUONgeometry MUONcalib MUONbase MUONraw MUONtrigger MUONcore TPCfast TPCsim TPCrec TPCbase ITSbase ITSsim ITSrec PMDbase PMDsim PMDrec TRDbase TRDsim TRDrec FMDbase FMDsim FMDrec TOFbase TOFrec TOFsim PHOSUtils PHOSbase PHOSsim PHOSrec ACORDEbase ACORDEsim ACORDErec HMPIDbase HMPIDrec HMPIDsim ZDCbase ZDCsim ZDCrec VZERObase VZEROsim VZEROrec EMCALUtils EMCALbase EMCALsim EMCALrec EMCALraw BCM STRUCT T0base T0sim T0rec STEER CDB AOD ESD STEERBase ANALYSISalice ANALYSIS THijing hijing THbtp TEPEMGEN FASTSIM microcern RAWDatasim RAWDatarec RAWDatabase HLTbase XMLParser STAT OADB)
+set ( ELIBS  EveBase EveDet MUONmapping MUONevaluation MUONsim MUONrec MUONgeometry MUONcalib MUONbase MUONraw MUONtrigger MUONcore TPCfast TPCsim TPCrec TPCbase ITSbase ITSsim ITSrec PMDbase PMDsim PMDrec TRDbase TRDsim TRDrec FMDbase FMDsim FMDrec TOFbase TOFrec TOFsim PHOSUtils PHOSbase PHOSsim PHOSrec ACORDEbase ACORDEsim ACORDErec HMPIDbase HMPIDrec HMPIDsim ZDCbase ZDCsim ZDCrec VZERObase VZEROsim VZEROrec EMCALUtils EMCALbase EMCALsim EMCALrec EMCALraw BCM STRUCT T0base T0sim T0rec STEER CDB AOD ESD STEERBase ANALYSISalice ANALYSIS THijing hijing THbtp TEPEMGEN FASTSIM microcern RAWDatasim RAWDatarec RAWDatabase HLTbase XMLParser STAT OADB MONITOR)
 
 if(PYTHIA6)
   list (APPEND ELIBS EVGEN)
 endif(PYTHIA6)
-set ( PACKBLIBS  ${ROOTCLIBS} ${ROOTPLIBS} -lTreePlayer -lGeomPainter -lGed -lRGL -lEve ${SYSLIBS} )
 
+set ( PACKBLIBS  ${ROOTCLIBS} ${ROOTPLIBS} -lTreePlayer -lGeomPainter -lGed -lRGL -lEve ${SYSLIBS} )
 
 if( ALICE_TARGET STREQUAL "macosx")
                        
index e9525e9ba9dcee2db3d0ddb8e4088a818f9436c3..0e5cd6462b693559cfd2a32a64344bfdcd360e88 100644 (file)
@@ -35,6 +35,7 @@ set ( DHDR  EveBase/EveBaseLinkDef.h)
 set ( EINCLUDE  RAW ITS TPC EVE/EveBase STEER/STEER STEER/AOD STEER/CDB STEER/ESD STEER/STEERBase)
 
 set ( EXPORT 
+  EveBase/AliEveApplication.h  
   EveBase/AliEveBeamsInfo.h
   EveBase/AliEveCascade.h
   EveBase/AliEveEventManager.h
@@ -48,6 +49,7 @@ set ( EXPORT
   EveBase/AliEveMacroExecutor.h
   EveBase/AliEveMacroExecutorWindow.h
   EveBase/AliEveMagField.h
+  EveBase/AliEveManager.h
   EveBase/AliEveMultiView.h
   EveBase/AliEveTrack.h 
   EveBase/AliEveTrackCounter.h
index f5ac2c01375f16c18a26a767152afca0b3d5ad3a..e53161140e91df5276cebf8d1b38012bf55f8777 100644 (file)
@@ -120,6 +120,7 @@ void AliEveEventManager::InitInternals()
 
   fAutoLoadTimer = new TTimer;
   fAutoLoadTimer->Connect("Timeout()", "AliEveEventManager", this, "AutoLoadNextEvent()");
+  fAutoLoadTimer->Connect("Timeout()", "AliEveEventManager", this, "Timeout()");
 
   fExecutor = new AliEveMacroExecutor;
 
@@ -189,6 +190,8 @@ AliEveEventManager::AliEveEventManager(const TString& name, const TString& path,
 AliEveEventManager::~AliEveEventManager()
 {
   // Destructor.
+  fAutoLoadTimer->Stop();
+       fAutoLoadTimer->Disconnect("Timeout");
 
   delete fSubManagers;
 
@@ -202,6 +205,8 @@ AliEveEventManager::~AliEveEventManager()
 
   fTransientLists->DecDenyDestroy();
   fTransientLists->Destroy();
+  
+  //delete fExecutor;
 }
 
 /******************************************************************************/
@@ -870,6 +875,11 @@ void AliEveEventManager::GotoEvent(Int_t event)
   AliSysInfo::AddStamp(sysInfoHeader + "PostUserActions");
 }
 
+void AliEveEventManager::Timeout()
+{
+               Emit("Timeout()");
+}
+
 void AliEveEventManager::NextEvent()
 {
   // Loads next event.
@@ -888,7 +898,7 @@ void AliEveEventManager::NextEvent()
     // so here we should do it in SetEvent().
     DestroyElements();
 
-    gSystem->ExitLoop();
+
   }
   else if (fESDTree)
   {
@@ -907,7 +917,7 @@ void AliEveEventManager::NextEvent()
 void AliEveEventManager::PrevEvent()
 {
   // Loads previous event.
-
+       
   static const TEveException kEH("AliEveEventManager::PrevEvent ");
 
   if (fAutoLoadTimerRunning)
index 3eb9ca25c0591da47327e7a94318d84da563e18b..b2955c0a5482f44def23efce8d3eab294f7d0a21 100644 (file)
@@ -64,8 +64,9 @@ public:
   virtual Int_t GetMaxEventId(Bool_t refreshESD=kFALSE) const;
   virtual void  GotoEvent(Int_t event);
   virtual void  NextEvent();
-  virtual void  PrevEvent();
+  virtual void  PrevEvent(); 
   virtual void  Close();
+  void Timeout(); // * SIGNAL*
 
   Int_t         GetEventId()         const { return fEventId; }
   AliRunLoader* GetRunLoader()       const { return fRunLoader; }
index 39ac0b6d17d6b3705197c35dad0d6af8197d77ef..6d9ac1046272496e00f3cd066db2b560a1043238 100644 (file)
@@ -162,7 +162,7 @@ AliEveMacroExecutorWindow::AliEveMacroExecutorWindow(AliEveMacroExecutor* master
 
   Resize(400, 700);
 
-  SetCleanup(kDeepCleanup);
+  //SetCleanup(kDeepCleanup);
   Layout();
   MapSubwindows();
   MapWindow();
@@ -174,7 +174,8 @@ AliEveMacroExecutorWindow::AliEveMacroExecutorWindow(AliEveMacroExecutor* master
 AliEveMacroExecutorWindow::~AliEveMacroExecutorWindow()
 {
   // Destructor.
-
+       fBoxContents.clear();
+               
   AliEveEventManager::GetMaster()->Disconnect("NewEventLoaded()", this);
 }
 
index 0469f24ccc468807866c720167ee9045534de48f..6efdba564d9e2d72acb3aca376edefa2fb544184 100644 (file)
@@ -147,6 +147,20 @@ if(fIsMuonView)
 
 }
 
+AliEveMultiView::~AliEveMultiView()
+{
+               DestroyAllGeometries();
+               
+               delete fGeomGentle;
+               delete fGeomGentleRPhi;
+               delete fGeomGentleRhoZ;
+               
+               delete  fRPhiMgr;
+               delete fRhoZMgr;
+               delete fMuonMgr;
+               
+}
+
 //-------------------------------------------------------------------------
 
 void AliEveMultiView::InitGeomGentle(TEveGeoShape* g3d, TEveGeoShape* grphi, TEveGeoShape* grhoz, TEveGeoShape* gmuon)
index 571315635fdadde166e6764b8d7095092721d859..bba471a69356c0ad7d9f1ce01a313dee634e344d 100644 (file)
@@ -32,7 +32,7 @@ class AliEveMultiView
 {
 public:
   AliEveMultiView(Bool_t setMuonView = kFALSE);
-  virtual ~AliEveMultiView() {}
+  virtual ~AliEveMultiView();
 
   static AliEveMultiView* Instance();
 
index d4af5d0087d8d49de2f173e97af8fbebf0107769..a63ff7aee76a2afc54c9982845324c222686203a 100644 (file)
 #pragma link off all globals;
 #pragma link off all classes;
 
+// AliEveApplication
+#pragma link C++ class AliEveApplication+;
+
+// AliEveManager
+#pragma link C++ class AliEveManager+;
+
 // AliEveConfigManager
 #pragma link C++ class AliEveConfigManager+;
 
index a6a943b6c58a204c20550261f88b19bf7872a4e5..3265dffd99b19c23484b6bb60d39659ce84f2166 100644 (file)
Binary files a/EVE/alice-data/default_geo.root and b/EVE/alice-data/default_geo.root differ
index 84f04ce10143a618d36e38446d01c02e410f4610..66e12fd2b4239aaba991138285a4bd30a7caf40d 100644 (file)
@@ -30,6 +30,8 @@ TEvePointSet* phos_clusters(TEveElement* cont=0)
 
   TTree *cTree = rl->GetTreeR("PHOS", false);
 
+       if(!cTree) return 0;
+
   TEvePointSet* clusters = new TEvePointSet(10000);
   clusters->SetOwnIds(kTRUE);
 
index c56a8136e992eba9914d381a3d36ceb88e7b3fca..fbb22e5adaf062ca5796432d13abd79cb52ad0b4 100644 (file)
@@ -1,96 +1,34 @@
 // $Id$
 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
+// Mihai Niculescu 2012
 
 /**************************************************************************
  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
  * full copyright notice.                                                 *
  **************************************************************************/
-#include <TInterpreter.h>
-#include <TRint.h>
-#include <TROOT.h>
-#include <TPRegexp.h>
-#include <TSystem.h>
-#include <TError.h>
-#include <RVersion.h>
-
-#include <TEveUtil.h>
-#include <TEveManager.h>
-#include <TEveSelection.h>
 #include <TEveBrowser.h>
-#include <TEveViewer.h>
 
-#include <Getline.h>
-#include <AliLog.h>
-#include <AliEveConfigManager.h>
+#include <AliEveApplication.h>
+#include <AliEveManager.h>
 
 int main(int argc, char **argv)
 {
-  static const TEveException kEH("alieve::main");
-
-  if (gSystem->Getenv("ALICE_ROOT") == 0)
-  {
-    Error(kEH.Data(), "ALICE_ROOT is not defined, aborting.");
-    gSystem->Exit(1);
-  }
-
-  TString evedir(Form("%s/EVE", gSystem->Getenv("ALICE_ROOT")));
-
-  if (gSystem->AccessPathName(evedir) == kTRUE)
-  {
-    Error(kEH.Data(), "Directory $ALICE_ROOT/EVE does not exist.");
-    gSystem->Exit(1);
-  }
-
-  TString macPath(gROOT->GetMacroPath());
-  macPath += Form(":%s/macros", evedir.Data());
-  gInterpreter->AddIncludePath(evedir);
-  if (gSystem->Getenv("ALICE_ROOT") != 0)
-  {
-    macPath += Form(":%s/alice-macros", evedir.Data());
-    gInterpreter->AddIncludePath(Form("%s/EVE", gSystem->Getenv("ALICE_ROOT")));
-    gInterpreter->AddIncludePath(Form("%s/PWG0", gSystem->Getenv("ALICE_ROOT")));
-    gInterpreter->AddIncludePath(Form("%s/include", gSystem->Getenv("ALICE_ROOT")));
-    gInterpreter->AddIncludePath(gSystem->Getenv("ALICE_ROOT"));
-  }
-  {
-    // TabCom fails on double-colon in macro-path.
-    // I fixed this in ROOT sometime ago ... could be removed
-    // when we go to 5.26.
-    TPMERegexp doubleColon(":{2,}", "og");
-    doubleColon.Substitute(macPath, ":");
-  }
-  gROOT->SetMacroPath(macPath);
-
-  // make sure logger is instantiated
-  AliLog::GetRootLogger();
-  TRint  *app = new TRint("App", &argc, argv);
-
-#if ROOT_VERSION_CODE >= ROOT_VERSION(5,25,4) || defined XXX_LATEST_ROOT
-  // Waiting for update by Pawel. Now GED in ROOT is better again :)
-  // Uncomment when fixed in AliEveGedXXX.
-  // TEveGListTreeEditorFrame::SetEditorClass("AliEveGedEditor");
-#endif
-
-  TEveManager::Create();
-  gEve->GetDefaultViewer()->SetElementName("3D View");
-  gEve->GetSelection()->SetPickToSelect(TEveSelection::kPS_PableCompound);
-  gEve->GetHighlight()->SetPickToSelect(TEveSelection::kPS_PableCompound);
-
-  gEve->RegisterGeometryAlias("Default", Form("%s/alice-data/default_geo.root", evedir.Data()));
-
-  try {AliEveConfigManager::InitializeMaster();}
-  catch (TEveException exc) {
-       AliErrorGeneral("alieve_main",exc.Data());
-  }
-
-  app->Run(kTRUE);
-
-  if (gEve && gEve->GetBrowser())
-    gEve->GetBrowser()->UnmapWindow();
-  TEveManager::Terminate();
-
-  app->Terminate(0);
-
+  AliEveApplication app("AliEve", &argc, argv, 0 , -1);
+  gEve = AliEveManager::Create();
+  
+  // close application when closing EveWindow from X window button
+       gEve->GetBrowser()->Connect("CloseWindow()", "TApplication", &app, "Terminate(=0)");
+       
+  // process command line arguments
+       app.GetOptions(&argc, argv);
+       
+       app.Run();
+
+       if(gEve){
+        delete gEve;
+   gEve = 0;
+       }
+       
   return 0;
 }
index 2ca187b6864ba99df1fb752d80c9beb2a5f92aaf..30088aa14547ef678f2d025a8a00a69cf79b6438 100644 (file)
@@ -90,7 +90,7 @@ int main(int argc, char **argv)
 
   if (gEve && gEve->GetBrowser())
     gEve->GetBrowser()->UnmapWindow();
-  TEveManager::Terminate();
+  gEve->Terminate();
 
   app->Terminate(0);
 
index 48cf7d824261dc795fc3f14e816273e133936b20..848d0105a3f11c3120d2fc82ce59ad192c785458 100644 (file)
@@ -7,6 +7,8 @@
  * full copyright notice.                                                 *
  **************************************************************************/
 
+#include <AliQAHistViewer.h>
+
 class AliEveMacroExecutor;
 class TEveProjectionManager;
 class TEveGeoShape;