First pass of changes required for visualization of event-embedding.
authormtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 14 Oct 2008 19:37:04 +0000 (19:37 +0000)
committermtadel <mtadel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 14 Oct 2008 19:37:04 +0000 (19:37 +0000)
Remove global variable 'AliEveEventManager* gAliEveEvent'.

Instead of this introduce:
a) two private static data-members fgMaster and fgCurrent;
b) a list to hold dependent event-managers.

This is half cooked ... but removal of the global variable calls for
an intermediate check-in.

------

Remove obsolete macro trackcount_init.C.

29 files changed:
EVE/EveBase/AliEveEventManager.cxx
EVE/EveBase/AliEveEventManager.h
EVE/EveBase/AliEveEventManagerEditor.cxx
EVE/EveBase/AliEveEventManagerEditor.h
EVE/EveBase/AliEveMacroExecutorWindow.cxx
EVE/EveBase/AliEveTrackCounter.cxx
EVE/EveBase/AliEveTrackCounterEditor.cxx
EVE/EveBase/LinkDef.h
EVE/EveDet/AliEveMUONData.cxx
EVE/EveDet/AliEveT0Module.cxx
EVE/EveDet/AliEveTRDTrackListEditor.cxx
EVE/alice-macros/MUON_displayData.C
EVE/alice-macros/MUON_displaySimu.C
EVE/alice-macros/emcal_all.C
EVE/alice-macros/event_first.C
EVE/alice-macros/event_goto.C
EVE/alice-macros/event_last.C
EVE/alice-macros/event_next.C
EVE/alice-macros/event_prev.C
EVE/alice-macros/primary_vertex.C
EVE/alice-macros/t0_raw.C
EVE/alice-macros/tpc_digits.C
EVE/alice-macros/tpc_raw.C
EVE/macros/alieve_init.C
EVE/macros/alieve_online.C
EVE/macros/anyscan_init.C
EVE/macros/display.C
EVE/macros/trackcount_init.C [deleted file]
EVE/macros/visscan_init.C

index c532542..9510e36 100644 (file)
 
 //______________________________________________________________________________
 //
-// Provide interface for loading and navigating standard AliRoot data
-// (AliRunLoader) and ESDs.
-//
-// Missing support for raw-data. For now this is handled individually
-// by each sub-detector.
+// Provides interface for loading and navigating standard AliRoot data
+// (AliRunLoader), ESDs and RAW.
 //
 // Also provides interface to magnetic-field and geometry. Mostly
 // intended as wrappers over standard AliRoot functionality for
 // convenient use from visualizateion macros.
+//
+// There can be a single main event-manger, it is stored in private
+// data member fgMaster and can be accessed via static member function
+// GetMaster().
+//
+// For event overlaying and embedding one can instantiate additional
+// event-managers via static method AddDependentManager(const TString& path).
+// This interface is under development.
 
 ClassImp(AliEveEventManager)
 
-AliEveEventManager* gAliEveEvent = 0;
-
 Bool_t AliEveEventManager::fgAssertRunLoader = kFALSE;
 Bool_t AliEveEventManager::fgAssertESD       = kFALSE;
 Bool_t AliEveEventManager::fgAssertRaw       = kFALSE;
@@ -63,10 +66,27 @@ TString  AliEveEventManager::fgCdbUri("local://$ALICE_ROOT");
 
 AliMagF* AliEveEventManager::fgMagField = 0;
 
+AliEveEventManager* AliEveEventManager::fgMaster  = 0;
+AliEveEventManager* AliEveEventManager::fgCurrent = 0;
+
 void AliEveEventManager::InitInternals()
 {
   // Initialize internal members.
 
+  static const TEveException kEH("AliEveEventManager::InitInternals ");
+
+  if (fgCurrent != 0)
+  {
+    throw(kEH + "Dependent event-managers should be created via static method AddDependentManager().");
+  }
+
+  if (fgMaster == 0)
+  {
+    fgMaster = this;
+  }
+
+  fgCurrent = this;
+
   fAutoLoadTimer = new TTimer;
   fAutoLoadTimer->Connect("Timeout()", "AliEveEventManager", this, "AutoLoadNextEvent()");
 
@@ -84,7 +104,8 @@ AliEveEventManager::AliEveEventManager() :
   fAutoLoad  (kFALSE), fAutoLoadTime (5.),     fAutoLoadTimer(0),
   fIsOpen    (kFALSE), fHasEvent     (kFALSE), fExternalCtrl (kFALSE),
   fSelectOnTriggerType(kFALSE), fTriggerType(""),
-  fExecutor  (0),
+  fExecutor    (0),
+  fSubManagers (0),
   fAutoLoadTimerRunning(kFALSE)
 {
   // Default constructor.
@@ -92,7 +113,7 @@ AliEveEventManager::AliEveEventManager() :
   InitInternals();
 }
 
-AliEveEventManager::AliEveEventManager(TString path, Int_t ev) :
+AliEveEventManager::AliEveEventManager(const TString& path, Int_t ev) :
   TEveEventManager("AliEVE AliEveEventManager"),
 
   fPath   (path), fEventId(-1),
@@ -103,7 +124,8 @@ AliEveEventManager::AliEveEventManager(TString path, Int_t ev) :
   fAutoLoad  (kFALSE), fAutoLoadTime (5),      fAutoLoadTimer(0),
   fIsOpen    (kFALSE), fHasEvent     (kFALSE), fExternalCtrl (kFALSE),
   fSelectOnTriggerType(kFALSE), fTriggerType(""),
-  fExecutor  (0),
+  fExecutor    (0),
+  fSubManagers (0),
   fAutoLoadTimerRunning(kFALSE)
 {
   // Constructor with event-directory URL and event-id.
@@ -133,24 +155,24 @@ AliEveEventManager::~AliEveEventManager()
 
 /******************************************************************************/
 
-void AliEveEventManager::SetESDFileName(const Text_t* esd)
+void AliEveEventManager::SetESDFileName(const TString& esd)
 {
   // Set file-name for opening ESD, default "AliESDs.root".
 
-  if (esd) fgESDFileName = esd;
+  if ( ! esd.IsNull()) fgESDFileName = esd;
 }
 
-void AliEveEventManager::SetRawFileName(const Text_t* raw)
+void AliEveEventManager::SetRawFileName(const TString& raw)
 {
   // Set file-name for opening of raw-data, default "raw.root"
-  if (raw) fgRawFileName = raw;
+  if ( ! raw.IsNull()) fgRawFileName = raw;
 }
 
-void AliEveEventManager::SetCdbUri(const Text_t* cdb)
+void AliEveEventManager::SetCdbUri(const TString& cdb)
 {
   // Set path to CDB, default "local://$ALICE_ROOT".
 
-  if (cdb) fgCdbUri = cdb;
+  if ( ! cdb.IsNull()) fgCdbUri = cdb;
 }
 
 void AliEveEventManager::SetAssertElements(Bool_t assertRunloader,
@@ -697,28 +719,28 @@ Bool_t AliEveEventManager::HasRunLoader()
 {
   // Check if AliRunLoader is initialized.
 
-  return gAliEveEvent && gAliEveEvent->fHasEvent && gAliEveEvent->fRunLoader;
+  return fgCurrent && fgCurrent->fHasEvent && fgCurrent->fRunLoader;
 }
 
 Bool_t AliEveEventManager::HasESD()
 {
   // Check if AliESDEvent is initialized.
 
-  return gAliEveEvent && gAliEveEvent->fHasEvent && gAliEveEvent->fESD;
+  return fgCurrent && fgCurrent->fHasEvent && fgCurrent->fESD;
 }
 
 Bool_t AliEveEventManager::HasESDfriend()
 {
   // Check if AliESDfriend is initialized.
 
-  return gAliEveEvent && gAliEveEvent->fHasEvent && gAliEveEvent->fESDfriend;
+  return fgCurrent && fgCurrent->fHasEvent && fgCurrent->fESDfriend;
 }
 
 Bool_t AliEveEventManager::HasRawReader()
 {
   // Check if raw-reader is initialized.
 
-  return gAliEveEvent && gAliEveEvent->fHasEvent && gAliEveEvent->fRawReader;
+  return fgCurrent && fgCurrent->fHasEvent && fgCurrent->fRawReader;
 }
 
 AliRunLoader* AliEveEventManager::AssertRunLoader()
@@ -729,11 +751,11 @@ AliRunLoader* AliEveEventManager::AssertRunLoader()
 
   static const TEveException kEH("AliEveEventManager::AssertRunLoader ");
 
-  if (gAliEveEvent == 0 || gAliEveEvent->fHasEvent == kFALSE)
+  if (fgCurrent == 0 || fgCurrent->fHasEvent == kFALSE)
     throw (kEH + "ALICE event not ready.");
-  if (gAliEveEvent->fRunLoader == 0)
+  if (fgCurrent->fRunLoader == 0)
     throw (kEH + "AliRunLoader not initialised.");
-  return gAliEveEvent->fRunLoader;
+  return fgCurrent->fRunLoader;
 }
 
 AliESDEvent* AliEveEventManager::AssertESD()
@@ -744,11 +766,11 @@ AliESDEvent* AliEveEventManager::AssertESD()
 
   static const TEveException kEH("AliEveEventManager::AssertESD ");
 
-  if (gAliEveEvent == 0 || gAliEveEvent->fHasEvent == kFALSE)
+  if (fgCurrent == 0 || fgCurrent->fHasEvent == kFALSE)
     throw (kEH + "ALICE event not ready.");
-  if (gAliEveEvent->fESD == 0)
+  if (fgCurrent->fESD == 0)
     throw (kEH + "AliESD not initialised.");
-  return gAliEveEvent->fESD;
+  return fgCurrent->fESD;
 }
 
 AliESDfriend* AliEveEventManager::AssertESDfriend()
@@ -759,11 +781,11 @@ AliESDfriend* AliEveEventManager::AssertESDfriend()
 
   static const TEveException kEH("AliEveEventManager::AssertESDfriend ");
 
-  if (gAliEveEvent == 0 || gAliEveEvent->fHasEvent == kFALSE)
+  if (fgCurrent == 0 || fgCurrent->fHasEvent == kFALSE)
     throw (kEH + "ALICE event not ready.");
-  if (gAliEveEvent->fESDfriend == 0)
+  if (fgCurrent->fESDfriend == 0)
     throw (kEH + "AliESDfriend not initialised.");
-  return gAliEveEvent->fESDfriend;
+  return fgCurrent->fESDfriend;
 }
 
 AliRawReader* AliEveEventManager::AssertRawReader()
@@ -772,12 +794,12 @@ AliRawReader* AliEveEventManager::AssertRawReader()
 
   static const TEveException kEH("AliEveEventManager::AssertRawReader ");
 
-  if (gAliEveEvent == 0 || gAliEveEvent->fHasEvent == kFALSE)
+  if (fgCurrent == 0 || fgCurrent->fHasEvent == kFALSE)
     throw (kEH + "ALICE event not ready.");
-  if (gAliEveEvent->fRawReader == 0)
+  if (fgCurrent->fRawReader == 0)
     throw (kEH + "RawReader not ready.");
 
-  return gAliEveEvent->fRawReader;
+  return fgCurrent->fRawReader;
 }
 
 AliMagF* AliEveEventManager::AssertMagField()
@@ -790,12 +812,20 @@ AliMagF* AliEveEventManager::AssertMagField()
   // !!!! This should be fixed ... get field also in some other way,
   // not only via run-loader.
 
+  static const TEveException kEH("AliEveEventManager::AssertMagField ");
+
   if (fgMagField == 0)
   {
-    if (gAliEveEvent && gAliEveEvent->fRunLoader && gAliEveEvent->fRunLoader->GetAliRun())
-      fgMagField = gAliEveEvent->fRunLoader->GetAliRun()->Field();
+    if (fgMaster && fgMaster->fRunLoader && fgMaster->fRunLoader->GetAliRun())
+    {
+      ::Info(kEH, "Retrieving magnetic field from AliRun.");
+      fgMagField = fgMaster->fRunLoader->GetAliRun()->Field();
+    }
     else
+    {
+      ::Warning(kEH, "Instantiating default magnetic field (5kG).");
       fgMagField = new AliMagFMaps("Maps","Maps", 1, 1., 10., AliMagFMaps::k5kG);
+    }
   }
   return fgMagField;
 }
@@ -834,6 +864,41 @@ TGeoManager* AliEveEventManager::AssertGeometry()
   return gGeoManager;
 }
 
+//------------------------------------------------------------------------------
+
+void AliEveEventManager::AddDependentManager(const TString& /*path*/)
+{
+  // Create and attach a dependent event-manager.
+
+  static const TEveException kEH("AliEveEventManager::AddDependentManager ");
+
+  ::Error(kEH, "Not implemented.");
+
+  if (fgMaster == 0)
+    throw(kEH + "Master event-manager must be instantiated first.");
+
+  if (fgMaster->fSubManagers == 0)
+    fgMaster->fSubManagers = new TList;
+
+  // fgCurrent = 0;
+  // construct
+  // insert fgCurrent
+  // fgCurrent = fgMaster;
+}
+
+AliEveEventManager* AliEveEventManager::GetMaster()
+{
+  // Get master event-manager.
+
+  return fgMaster;
+}
+
+AliEveEventManager* AliEveEventManager::GetCurrent()
+{
+  // Get current event-manager.
+
+  return fgCurrent;
+}
 
 //------------------------------------------------------------------------------
 // Autoloading of events
index ca7c86a..b9cc5b9 100644 (file)
@@ -41,16 +41,15 @@ class AliEveEventManager : public TEveEventManager,
                            public TQObject
 {
 public:
-  static void SetESDFileName(const Text_t* esd);
-  static void SetRawFileName(const Text_t* raw);
-  static void SetCdbUri(const Text_t* cdb);
+  static void SetESDFileName(const TString& esd);
+  static void SetRawFileName(const TString& raw);
+  static void SetCdbUri     (const TString& cdb);
   static void SetAssertElements(Bool_t assertRunloader, Bool_t assertEsd, Bool_t assertRaw);
 
   AliEveEventManager();
-  AliEveEventManager(TString path, Int_t ev=0);
+  AliEveEventManager(const TString& path, Int_t ev=0);
   virtual ~AliEveEventManager();
 
-
   virtual void  Open();
   void          SetEvent(AliRunLoader *runLoader, AliRawReader *rawReader, AliESDEvent *esd);
   virtual Int_t GetMaxEventId(Bool_t refreshESD=kFALSE) const;
@@ -87,6 +86,11 @@ public:
 
   static TGeoManager*  AssertGeometry();
 
+  static void AddDependentManager(const TString& path);
+
+  static AliEveEventManager* GetMaster();
+  static AliEveEventManager* GetCurrent();
+
   Double_t      GetAutoLoadTime()        const { return fAutoLoadTime; }
   Bool_t        GetAutoLoad()            const { return fAutoLoad;     }
   void          SetAutoLoadTime(Float_t time);
@@ -113,13 +117,13 @@ protected:
 
   AliRunLoader* fRunLoader;            // Run loader.
 
-  TFile*        fESDFile;              // ESD file.
-  TTree*        fESDTree;              // ESD tree.
-  AliESDEvent*  fESD;                  // ESDEvent object.
-  AliESDfriend* fESDfriend;            // ESDfriend object.
+  TFile        *fESDFile;              // ESD file.
+  TTree        *fESDTree;              // ESD tree.
+  AliESDEvent  *fESD;                  // ESDEvent object.
+  AliESDfriend *fESDfriend;            // ESDfriend object.
   Bool_t        fESDfriendExists;      // Flag specifying if ESDfriend was found during opening of the event-data.
 
-  AliRawReader* fRawReader;             // Raw-adata reader.
+  AliRawReader *fRawReader;             // Raw-data reader.
 
   Bool_t        fAutoLoad;              // Automatic loading of events (online)
   Float_t       fAutoLoadTime;          // Auto-load time in seconds
@@ -129,11 +133,13 @@ protected:
   Bool_t        fHasEvent;              // Is an event available.
   Bool_t        fExternalCtrl;          // Are we under external event-loop.
 
-  Bool_t        fSelectOnTriggerType;   //whether to select on triggertype
-  TString       fTriggerType;           //triggertype to select on
+  Bool_t        fSelectOnTriggerType;   // Whether to select on trigger-type.
+  TString       fTriggerType;           // Trigger-type to select on.
 
   AliEveMacroExecutor *fExecutor;       // Executor for std macros
 
+  TList        *fSubManagers;           // Dependent event-managers, used for event embedding.
+
   static TString  fgESDFileName;        // Name by which to open ESD.
   static TString  fgRawFileName;        // Name by which to open raw-data file.
   static TString  fgCdbUri;            // Global URI to CDB.
@@ -141,7 +147,7 @@ protected:
   static Bool_t   fgAssertESD;         // Global flag specifying if ESDEvent must be asserted during opening of the event-data.
   static Bool_t   fgAssertRaw;         // Global flag specifying if raw-data presence must be asserted during opening of the event-data.
 
-  static AliMagF* fgMagField;          // Global pointer to magneti field.
+  static AliMagF* fgMagField;          // Global pointer to magnetic field.
 
 private:
   AliEveEventManager(const AliEveEventManager&);            // Not implemented
@@ -153,9 +159,10 @@ private:
 
   Bool_t fAutoLoadTimerRunning; // State of auto-load timer.
 
+  static AliEveEventManager* fgMaster;
+  static AliEveEventManager* fgCurrent;
+
   ClassDef(AliEveEventManager, 0); // Interface for getting all event components in a uniform way.
 };
 
-extern AliEveEventManager* gAliEveEvent;
-
 #endif
index 53f661e..92f1aef 100644 (file)
@@ -93,8 +93,9 @@ void AliEveEventManagerEditor::DoNextEvent()
 
 ClassImp(AliEveEventManagerWindow)
 
-AliEveEventManagerWindow::AliEveEventManagerWindow() :
+AliEveEventManagerWindow::AliEveEventManagerWindow(AliEveEventManager* mgr) :
   TGMainFrame(gClient->GetRoot(), 400, 100, kVerticalFrame),
+  fM            (mgr),
   fFirstEvent   (0),
   fPrevEvent    (0),
   fNextEvent    (0),
@@ -168,7 +169,7 @@ AliEveEventManagerWindow::AliEveEventManagerWindow() :
   fEventInfo = new TGTextView(this, 400, 600);
   AddFrame(fEventInfo, new TGLayoutHints(kLHintsNormal | kLHintsExpandX | kLHintsExpandY));
 
-  gAliEveEvent->Connect("NewEventLoaded()", cls, this, "Update()");
+  fM->Connect("NewEventLoaded()", cls, this, "Update()");
 
   SetCleanup(kDeepCleanup);
   Layout();
@@ -181,42 +182,42 @@ AliEveEventManagerWindow::~AliEveEventManagerWindow()
 {
   // Destructor.
 
-  gAliEveEvent->Disconnect("NewEventLoaded()", this);
+  fM->Disconnect("NewEventLoaded()", this);
 }
 
 //______________________________________________________________________________
 void AliEveEventManagerWindow::DoFirstEvent()
 {
   // Load previous event
-  gAliEveEvent->GotoEvent(0);
+  fM->GotoEvent(0);
 }
 
 //______________________________________________________________________________
 void AliEveEventManagerWindow::DoPrevEvent()
 {
   // Load previous event
-  gAliEveEvent->PrevEvent();
+  fM->PrevEvent();
 }
 
 //______________________________________________________________________________
 void AliEveEventManagerWindow::DoNextEvent()
 {
   // Load next event
-  gAliEveEvent->NextEvent();
+  fM->NextEvent();
 }
 
 //______________________________________________________________________________
 void AliEveEventManagerWindow::DoLastEvent()
 {
   // Load previous event
-  gAliEveEvent->GotoEvent(-1);
+  fM->GotoEvent(-1);
 }
 
 //______________________________________________________________________________
 void AliEveEventManagerWindow::DoSetEvent()
 {
   // Set current event
-  gAliEveEvent->GotoEvent((Int_t) fEventId->GetNumber());
+  fM->GotoEvent((Int_t) fEventId->GetNumber());
 }
 
 //______________________________________________________________________________
@@ -224,10 +225,10 @@ void AliEveEventManagerWindow::DoRefresh()
 {
   // Refresh event status.
 
-  Int_t ev = gAliEveEvent->GetEventId();
-  gAliEveEvent->Close();
-  gAliEveEvent->Open();
-  gAliEveEvent->GotoEvent(ev);
+  Int_t ev = fM->GetEventId();
+  fM->Close();
+  fM->Open();
+  fM->GotoEvent(ev);
 }
 
 //______________________________________________________________________________
@@ -235,7 +236,7 @@ void AliEveEventManagerWindow::DoSetAutoLoad()
 {
   // Set the auto-load flag
 
-  gAliEveEvent->SetAutoLoad(fAutoLoad->IsOn());
+  fM->SetAutoLoad(fAutoLoad->IsOn());
   Update();
 }
 
@@ -244,7 +245,7 @@ void AliEveEventManagerWindow::DoSetAutoLoadTime()
 {
   // Set the auto-load time in seconds
 
-  gAliEveEvent->SetAutoLoadTime(fAutoLoadTime->GetValue());
+  fM->SetAutoLoadTime(fAutoLoadTime->GetValue());
 }
 
 //______________________________________________________________________________
@@ -255,12 +256,12 @@ void AliEveEventManagerWindow::DoSetTriggerType(const char* type)
   TString typestr = type;
   if (typestr=="")
   {
-    gAliEveEvent->SetSelectOnTriggerType(kFALSE);
+    fM->SetSelectOnTriggerType(kFALSE);
   }
   else
   {
-    gAliEveEvent->SetTriggerType( typestr );
-    gAliEveEvent->SetSelectOnTriggerType(kTRUE);
+    fM->SetTriggerType( typestr );
+    fM->SetSelectOnTriggerType(kTRUE);
   }
 }
 
@@ -269,8 +270,8 @@ void AliEveEventManagerWindow::Update()
 {
   // Update current event, number of available events, list of active triggers
 
-  Bool_t autoLoad = gAliEveEvent->GetAutoLoad();
-  Bool_t extCtrl  = gAliEveEvent->IsUnderExternalControl();
+  Bool_t autoLoad = fM->GetAutoLoad();
+  Bool_t extCtrl  = fM->IsUnderExternalControl();
   Bool_t evNavOn  = !autoLoad && !extCtrl;
 
   fFirstEvent->SetEnabled(evNavOn);
@@ -279,15 +280,15 @@ void AliEveEventManagerWindow::Update()
   fNextEvent ->SetEnabled(!autoLoad);
   fRefresh   ->SetEnabled(evNavOn);
 
-  fEventId->SetNumber(gAliEveEvent->GetEventId());
+  fEventId->SetNumber(fM->GetEventId());
   fEventId->SetState(evNavOn);
-  fInfoLabel->SetText(Form("/ %d", gAliEveEvent->GetMaxEventId()));
+  fInfoLabel->SetText(Form("/ %d", fM->GetMaxEventId()));
 
-  // fAutoLoadTime->SetEnabled(gAliEveEvent->GetAutoLoad());
-  fAutoLoad->SetState(gAliEveEvent->GetAutoLoad() ? kButtonDown : kButtonUp);
-  fAutoLoadTime->SetValue(gAliEveEvent->GetAutoLoadTime());
+  // fAutoLoadTime->SetEnabled(fM->GetAutoLoad());
+  fAutoLoad->SetState(fM->GetAutoLoad() ? kButtonDown : kButtonUp);
+  fAutoLoadTime->SetValue(fM->GetAutoLoadTime());
 
-  fEventInfo->LoadBuffer(gAliEveEvent->GetEventInfoHorizontal());
+  fEventInfo->LoadBuffer(fM->GetEventInfoHorizontal());
 
   SetupTriggerSelect();
 
@@ -338,8 +339,8 @@ void AliEveEventManagerWindow::SetupTriggerSelect()
   if (fTrigger->GetNumberOfEntries() > 0)
     return;
 
-  AliESDEvent* esd = gAliEveEvent->GetESD();
-  if (esd && gAliEveEvent->GetESDFile() != 0)
+  AliESDEvent* esd = fM->GetESD();
+  if (esd && fM->GetESDFile() != 0)
   {
     TString activetrg = esd->GetESDRun()->GetActiveTriggerClasses();  //Get list of active classes
     TObjArray* activetrgarr = activetrg.Tokenize(" "); //break up the classes string, space as separator
index 17ae642..5bca6ac 100644 (file)
@@ -67,7 +67,7 @@ private:
 class AliEveEventManagerWindow : public TGMainFrame
 {
 public:
-  AliEveEventManagerWindow();
+  AliEveEventManagerWindow(AliEveEventManager* mgr);
   virtual ~AliEveEventManagerWindow();
 
   void DoFirstEvent();
@@ -86,6 +86,8 @@ public:
   void Update();
 
 protected:
+  AliEveEventManager   *fM;            // Model object.
+
   TGTextButton         *fFirstEvent;   // Go to first event
   TGTextButton         *fPrevEvent;    // Go to prev event
   TGTextButton         *fNextEvent;    // Go to next event
index e894d0e..8f2d33a 100644 (file)
@@ -160,7 +160,7 @@ AliEveMacroExecutorWindow::AliEveMacroExecutorWindow(AliEveMacroExecutor* master
   MapSubwindows();
   MapWindow();
 
-  gAliEveEvent->Connect("NewEventLoaded()", "AliEveMacroExecutorWindow", this,
+  AliEveEventManager::GetMaster()->Connect("NewEventLoaded()", "AliEveMacroExecutorWindow", this,
                        "NewEventLoaded()");
 }
 
@@ -168,7 +168,7 @@ AliEveMacroExecutorWindow::~AliEveMacroExecutorWindow()
 {
   // Destructor.
 
-  gAliEveEvent->Disconnect("NewEventLoaded()", this);
+  AliEveEventManager::GetMaster()->Disconnect("NewEventLoaded()", this);
 }
 
 /******************************************************************************/
@@ -243,7 +243,7 @@ void AliEveMacroExecutorWindow::DoReloadEvent()
 {
   // Slot for reload-event.
 
-  gAliEveEvent->GotoEvent(gAliEveEvent->GetEventId());
+  AliEveEventManager::GetMaster()->GotoEvent(AliEveEventManager::GetMaster()->GetEventId());
 }
 
 void AliEveMacroExecutorWindow::DoSelectTags()
index c507962..4578eaf 100644 (file)
@@ -69,7 +69,6 @@ void AliEveTrackCounter::Reset()
 {
    // Reset internal track-counters and track-list.
 
-   printf("AliEveTrackCounter::Reset()\n");
    fAllTracks  = 0;
    fGoodTracks = 0;
    TIter next(&fTrackLists);
index 1106dab..9953c9e 100644 (file)
@@ -141,7 +141,7 @@ AliEveTrackCounterEditor::AliEveTrackCounterEditor(const TGWindow *p, Int_t widt
       AddFrame(f, new TGLayoutHints(kLHintsLeft, 0, 0, 0, 0));
    }
 
-  gAliEveEvent->Connect("NewEventLoaded()",
+  AliEveEventManager::GetMaster()->Connect("NewEventLoaded()",
                         "AliEveTrackCounterEditor", this, "UpdateModel()");
 }
 
@@ -149,7 +149,7 @@ AliEveTrackCounterEditor::~AliEveTrackCounterEditor()
 {
   // Destructor.
 
-  gAliEveEvent->Disconnect("NewEventLoaded()", this);
+  AliEveEventManager::GetMaster()->Disconnect("NewEventLoaded()", this);
 }
 
 /******************************************************************************/
@@ -181,7 +181,7 @@ void AliEveTrackCounterEditor::DoPrev()
 {
    // Slot for Prev.
 
-   gAliEveEvent->PrevEvent();
+   AliEveEventManager::GetMaster()->PrevEvent();
 }
 
 //______________________________________________________________________________
@@ -189,14 +189,14 @@ void AliEveTrackCounterEditor::DoNext()
 {
    // Slot for Next.
 
-   gAliEveEvent->NextEvent();
+   AliEveEventManager::GetMaster()->NextEvent();
 }
 
 //______________________________________________________________________________
 void AliEveTrackCounterEditor::DoSetEvent()
 {
    // Slot for SetEvent.
-   gAliEveEvent->GotoEvent((Int_t) fEventId->GetNumber());
+   AliEveEventManager::GetMaster()->GotoEvent((Int_t) fEventId->GetNumber());
 }
 
 /******************************************************************************/
index 1379a68..896edfc 100644 (file)
@@ -16,8 +16,6 @@
 #pragma link C++ class AliEveEventManagerEditor+;
 #pragma link C++ class AliEveEventManagerWindow+;
 
-#pragma link C++ global gAliEveEvent;
-
 // AliEveMacro and AliEveMacroExecutor
 #pragma link C++ class AliEveMacro+;
 #pragma link C++ class AliEveMacroEditor+;
index 57edfcb..ecea9b3 100644 (file)
@@ -270,8 +270,8 @@ void AliEveMUONData::LoadRecPointsFromESD(Char_t *fileName)
   Int_t detElemId, chamber, nTrackParam;
   Double_t clsX, clsY, clsZ, charge;
   
-  if (esdTree->GetEvent(gAliEveEvent->GetEventId()) <= 0) {
-    cout << "fails to read ESD object for event " << gAliEveEvent->GetEventId() << endl;
+  if (esdTree->GetEvent(AliEveEventManager::GetMaster()->GetEventId()) <= 0) {
+    cout << "fails to read ESD object for event " << AliEveEventManager::GetMaster()->GetEventId() << endl;
     return;
   }
     
@@ -403,7 +403,7 @@ void AliEveMUONData::LoadRaw(TString fileName)
   Int_t iEvent = 0;
   while (fgRawReader->NextEvent())
   {
-    if (iEvent != gAliEveEvent->GetEventId())
+    if (iEvent != AliEveEventManager::GetMaster()->GetEventId())
     {
       iEvent++;
       continue;
index 894b6e9..b4efffe 100644 (file)
@@ -98,7 +98,7 @@ void AliEveT0Module::LoadRaw(TString fileName, Int_t ievt)
     rawC->QuadValue(start->GetData(i+25,0)-start->GetData(0,0));
   }
     vertexT0->AddHexagon(0, 0, 0, 1);
-    vertexT0->QuadValue(zvertex);
+    vertexT0->QuadValue(TMath::Nint(zvertex));
 
   rawA->RefitPlex();
   rawC->RefitPlex();
index 1769fa1..303cb67 100644 (file)
@@ -221,7 +221,7 @@ AliEveTRDTrackListEditor::AliEveTRDTrackListEditor(const TGWindow* p, Int_t widt
   ftlMacroSelList->Connect("Selected(Int_t)", "AliEveTRDTrackListEditor", this, "UpdateMacroListSelection(Int_t)");
 
   // Handle the signal "NewEventLoaded"
-  gAliEveEvent->Connect("NewEventLoaded()", "AliEveTRDTrackListEditor", this, "HandleNewEventLoaded()");
+  AliEveEventManager::GetMaster()->Connect("NewEventLoaded()", "AliEveTRDTrackListEditor", this, "HandleNewEventLoaded()");
 
   // Handle the signal "Selected" (another tab has been selected)
   GetGedEditor()->GetTab()->Connect("Selected(Int_t)", "AliEveTRDTrackListEditor", 
index 28e38e8..0514b1e 100644 (file)
@@ -11,7 +11,6 @@ class AliEveMUONData;
 class AliEveEventManager;
 
 AliEveMUONData     *g_muon_data       = 0;
-AliEveEventManager *g_muon_last_event = 0;
 
 Int_t  g_currentEvent = -1;
 Bool_t g_fromRaw      = kFALSE;
@@ -39,29 +38,29 @@ void MUON_displayData(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t
   TTree* ct = 0;
   TTree* ht = 0;
 
-  if (gAliEveEvent == 0) {
+  if (AliEveEventManager::GetMaster() == 0) {
     printf("No alieve event: use alieve_init(...) \n");
     return;
   }
 
-  if (g_currentEvent == gAliEveEvent->GetEventId()) {
+  if (g_currentEvent == AliEveEventManager::GetMaster()->GetEventId()) {
     if (g_fromRaw == fromRaw) {
       printf("Same event... \n");
       return;
     } else {
       if (g_fromRaw) {
        printf("Same event with digits.\n");
-       gAliEveEvent->GotoEvent(g_currentEvent);
+       AliEveEventManager::GetMaster()->GotoEvent(g_currentEvent);
       } else {
        printf("Same event with raw.\n");
-       gAliEveEvent->GotoEvent(g_currentEvent);
+       AliEveEventManager::GetMaster()->GotoEvent(g_currentEvent);
       }
     }
   }
 
   g_fromRaw = fromRaw;
 
-  TString dataPath = TString(gAliEveEvent->GetTitle());
+  TString dataPath = TString(AliEveEventManager::GetMaster()->GetTitle());
   dataPath.Append("/rawmuon.root");
 
   AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
@@ -85,7 +84,7 @@ void MUON_displayData(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t
     }
   }
 
-  TString esdDataPath = TString(gAliEveEvent->GetTitle());
+  TString esdDataPath = TString(AliEveEventManager::GetMaster()->GetTitle());
   esdDataPath.Append("/AliESDs.root");
   if (clustersFromESD) {
     g_muon_data->LoadRecPointsFromESD(esdDataPath.Data());
@@ -95,9 +94,7 @@ void MUON_displayData(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t
     g_muon_data->LoadRecPoints(ct);
   }
   
-  g_muon_last_event = gAliEveEvent;
-
-  g_currentEvent = g_muon_last_event->GetEventId();
+  g_currentEvent = AliEveEventManager::GetMaster()->GetEventId();
 
   gStyle->SetPalette(1, 0);
 
index 470f519..05cf74a 100644 (file)
@@ -11,7 +11,6 @@ class AliEveMUONData;
 class AliEveEventManager;
 
 AliEveMUONData     *g_muon_data       = 0;
-AliEveEventManager *g_muon_last_event = 0;
 
 Int_t  g_currentEvent = -1;
 Bool_t g_fromRaw      = kFALSE;
@@ -39,29 +38,29 @@ void MUON_displaySimu(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t
   TTree* ct = 0;
   TTree* ht = 0;
 
-  if (gAliEveEvent == 0) {
+  if (AliEveEventManager::GetMaster() == 0) {
     printf("No alieve event: use alieve_init(...) \n");
     return;
   }
 
-  if (g_currentEvent == gAliEveEvent->GetEventId()) {
+  if (g_currentEvent == AliEveEventManager::GetMaster()->GetEventId()) {
     if (g_fromRaw == fromRaw) {
       printf("Same event... \n");
       return;
     } else {
       if (g_fromRaw) {
        printf("Same event with digits.\n");
-       gAliEveEvent->GotoEvent(g_currentEvent);
+       AliEveEventManager::GetMaster()->GotoEvent(g_currentEvent);
       } else {
        printf("Same event with raw.\n");
-       gAliEveEvent->GotoEvent(g_currentEvent);
+       AliEveEventManager::GetMaster()->GotoEvent(g_currentEvent);
       }
     }
   }
 
   g_fromRaw = fromRaw;
 
-  TString dataPath = TString(gAliEveEvent->GetTitle());
+  TString dataPath = TString(AliEveEventManager::GetMaster()->GetTitle());
   dataPath.Append("/rawmuon.root");
 
   AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
@@ -85,7 +84,7 @@ void MUON_displaySimu(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t
     }
   }
 
-  TString esdDataPath = TString(gAliEveEvent->GetTitle());
+  TString esdDataPath = TString(AliEveEventManager::GetMaster()->GetTitle());
   esdDataPath.Append("/AliESDs.root");
   if (clustersFromESD) {
     g_muon_data->LoadRecPointsFromESD(esdDataPath.Data());
@@ -99,9 +98,7 @@ void MUON_displaySimu(Bool_t fromRaw = kFALSE, Bool_t showTracks = kTRUE, Bool_t
   ht = rl->GetTreeH("MUON", false);
   g_muon_data->LoadHits(ht);
   
-  g_muon_last_event = gAliEveEvent;
-
-  g_currentEvent = g_muon_last_event->GetEventId();
+  g_currentEvent = AliEveEventManager::GetMaster()->GetEventId();
 
   gStyle->SetPalette(1, 0);
 
@@ -170,13 +167,13 @@ void MUON_ESD_tracks()
 //______________________________________________________________________________
 void MUON_Ref_tracks()
 {
-  TString dataPathESD = TString(gAliEveEvent->GetTitle());
+  TString dataPathESD = TString(AliEveEventManager::GetMaster()->GetTitle());
   dataPathESD.Append("/AliESDs.root");
-  TString dataPathSIM = TString(gAliEveEvent->GetTitle());
+  TString dataPathSIM = TString(AliEveEventManager::GetMaster()->GetTitle());
   dataPathSIM.Append("/");
 
   AliMUONRecoCheck recoCheck(dataPathESD.Data(),dataPathSIM.Data());
-  AliMUONVTrackStore* trackRefStore = recoCheck.ReconstructibleTracks(gAliEveEvent->GetEventId());
+  AliMUONVTrackStore* trackRefStore = recoCheck.ReconstructibleTracks(AliEveEventManager::GetMaster()->GetEventId());
   TIter next(trackRefStore->CreateIterator());
   AliMUONTrack* trackRef;
 
index 04a43c9..6d0b267 100644 (file)
@@ -37,8 +37,8 @@ void emcal_all(const UInt_t evtNum = 0, Bool_t digFile = 0,
     cout<<"Can not instatiate the Run Loader"<<endl;
   AliESDEvent* esd = AliEveEventManager::AssertESD();
   AliEMCALLoader *emcl = dynamic_cast<AliEMCALLoader*> (rl->GetDetectorLoader("EMCAL"));
-  Int_t evtID = gAliEveEvent->GetEventId();
-  if(evtID != evtNum) gAliEveEvent->GotoEvent(evtNum);
+  Int_t evtID = AliEveEventManager::GetMaster()->GetEventId();
+  if(evtID != evtNum) AliEveEventManager::GetMaster()->GotoEvent(evtNum);
 
   //Load Hits
   rl->LoadHits("EMCAL");
index 615c4b7..7877caf 100644 (file)
@@ -9,9 +9,9 @@
 
 void event_first()
 {
-  if (gAliEveEvent == 0) {
+  if (AliEveEventManager::GetMaster() == 0) {
     printf("AliEveEventManager is not initialized!\n");
     return;
   }
-  gAliEveEvent->GotoEvent(0);
+  AliEveEventManager::GetMaster()->GotoEvent(0);
 }
index 30f3b15..a82ee61 100644 (file)
@@ -9,9 +9,9 @@
 
 void event_goto(Int_t event=0)
 {
-  if (gAliEveEvent == 0) {
+  if (AliEveEventManager::GetMaster() == 0) {
     printf("AliEveEventManager is not initialized!\n");
     return;
   }
-  gAliEveEvent->GotoEvent(event);
+  AliEveEventManager::GetMaster()->GotoEvent(event);
 }
index 53b55ee..18f5f8f 100644 (file)
@@ -9,9 +9,9 @@
 
 void event_last()
 {
-  if (gAliEveEvent == 0) {
+  if (AliEveEventManager::GetMaster() == 0) {
     printf("AliEveEventManager is not initialized!\n");
     return;
   }
-  gAliEveEvent->GotoEvent(-1);
+  AliEveEventManager::GetMaster()->GotoEvent(-1);
 }
index 13a59f9..cca4857 100644 (file)
@@ -9,9 +9,9 @@
 
 void event_next()
 {
-  if (gAliEveEvent == 0) {
+  if (AliEveEventManager::GetMaster() == 0) {
     printf("AliEveEventManager is not initialized!\n");
     return;
   }
-  gAliEveEvent->NextEvent();
+  AliEveEventManager::GetMaster()->NextEvent();
 }
index 0ba6b55..e7fc6b9 100644 (file)
@@ -9,9 +9,9 @@
 
 void event_prev()
 {
-  if (gAliEveEvent == 0) {
+  if (AliEveEventManager::GetMaster() == 0) {
     printf("AliEveEventManager is not initialized!\n");
     return;
   }
-  gAliEveEvent->PrevEvent();
+  AliEveEventManager::GetMaster()->PrevEvent();
 }
index d22a820..99fe06a 100644 (file)
@@ -17,13 +17,14 @@ TEveCompound* assert_vertex_parent(const TString& name, Color_t col)
   // !!! TEveCompound should have viz-db support ... add in root, then fix here,
   // that is, remove the color var and pass viz-db tag.
 
-  TEveCompound* parent = dynamic_cast<TEveCompound*>(gAliEveEvent->FindChild(name));
+  TEveCompound* parent = dynamic_cast<TEveCompound*>
+    (AliEveEventManager::GetCurrent()->FindChild(name));
   if (parent == 0)
   {
     parent = new TEveCompound(name);
     parent->OpenCompound();
     parent->SetMainColor(col);
-    gAliEveEvent->AddElement(parent);
+    AliEveEventManager::GetMaster()->AddElement(parent);
   }
   return parent;
 }
index 8749eeb..f2760c6 100644 (file)
@@ -7,11 +7,12 @@
  * full copyright notice.                                                 *
  **************************************************************************/
 
+// MT comment, 14.10.2008 - This is wrong and not in sync with AliEveT0Module.
+// It can not work.
+
 void t0_raw()
 {
   AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
-  Int_t ievt = gAliEveEvent->GetEventId();
-    cout<<ievt<<endl;
 
   gStyle->SetPalette(1, 0);
 
index 53f13eb..3dd78d7 100644 (file)
@@ -7,35 +7,19 @@
  * full copyright notice.                                                 *
  **************************************************************************/
 
-class AliEveTPCData;
-class AliEveEventManager;
-
-AliEveTPCData      *g_tpc_data       = 0;
-AliEveEventManager *g_tpc_last_event = 0;
-
 void tpc_digits(Int_t mode=1)
 {
-  if (g_tpc_data == 0 || g_tpc_last_event != gAliEveEvent)
+  AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
+  rl->LoadDigits("TPC");
+  TTree* dt = rl->GetTreeD("TPC", false);
+  if (dt == 0)
   {
-    AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
-    rl->LoadDigits("TPC");
-    TTree* dt = rl->GetTreeD("TPC", false);
-
-    g_tpc_data = new AliEveTPCData;
-    g_tpc_data->LoadDigits(dt, kTRUE); // Create all present sectors.
-
-    g_tpc_last_event = gAliEveEvent;
+    throw(TEveException("tpc_digits Can not access digits tree."));
   }
 
-  // Viewport limits.
-  /*
-  Float_t left, right, top, bottom;
-  right  = di->fOut2Seg.fNMaxPads* di->fOut2Seg.fPadWidth;
-  left   = -right;
-  bottom = di->fInnSeg.fRlow;
-  top    = bottom + di->fOut2Seg.fRlow +
-    di->fOut2Seg.fNRows*di->fOut2Seg.fPadLength - di->fInnSeg.fRlow;
-  */
+  AliEveTPCData *x = new AliEveTPCData;
+
+  x->LoadDigits(dt, kTRUE); // Create all present sectors.
 
   gStyle->SetPalette(1, 0);
   Color_t col = 36;
@@ -45,7 +29,7 @@ void tpc_digits(Int_t mode=1)
   case 0: { // Display a single sector
     AliEveTPCSector2D* s = new AliEveTPCSector2D();
     s->SetFrameColor(col);
-    s->SetDataSource(g_tpc_data);
+    s->SetDataSource(x);
     gEve->AddElement(s);
     gEve->Redraw3D();
 
@@ -69,7 +53,7 @@ void tpc_digits(Int_t mode=1)
       {
        AliEveTPCSector2D* s = new AliEveTPCSector2D(Form("AliEveTPCSector2D %d", i));
        s->SetSectorID(i);
-       s->SetDataSource(g_tpc_data);
+       s->SetDataSource(x);
        s->SetFrameColor(col);
        s->SetAutoTrans(kTRUE);
        gEve->AddElement(s, l);
@@ -85,7 +69,7 @@ void tpc_digits(Int_t mode=1)
       {
        AliEveTPCSector2D* s = new AliEveTPCSector2D(Form("AliEveTPCSector2D %d", i));
        s->SetSectorID(i);
-       s->SetDataSource(g_tpc_data);
+       s->SetDataSource(x);
        s->SetFrameColor(col);
        s->SetAutoTrans(kTRUE);
        gEve->AddElement(s, l);
@@ -99,7 +83,7 @@ void tpc_digits(Int_t mode=1)
   case 2 : { // Display a single sector in 3D
     AliEveTPCSector3D* s = new AliEveTPCSector3D();
     s->SetFrameColor(col);
-    s->SetDataSource(g_tpc_data);
+    s->SetDataSource(x);
     gEve->AddElement(s);
     gEve->Redraw3D();
     break;
@@ -117,7 +101,7 @@ void tpc_digits(Int_t mode=1)
       {
        AliEveTPCSector3D* s = new AliEveTPCSector3D(Form("AliEveTPCSector3D %d", i));
        s->SetSectorID(i);
-       s->SetDataSource(g_tpc_data);
+       s->SetDataSource(x);
        s->SetFrameColor(col);
        s->SetAutoTrans(kTRUE);
        gEve->AddElement(s, l);
@@ -133,7 +117,7 @@ void tpc_digits(Int_t mode=1)
       {
        AliEveTPCSector3D* s = new AliEveTPCSector3D(Form("AliEveTPCSector3D %d", i));
        s->SetSectorID(i);
-       s->SetDataSource(g_tpc_data);
+       s->SetDataSource(x);
        s->SetFrameColor(col);
        s->SetAutoTrans(kTRUE);
        gEve->AddElement(s, l);
@@ -153,16 +137,17 @@ void tpc_digits_2drange(Int_t start, Int_t end)
   if (start <  0)  start = 0;
   if (end   > 35)  end   = 35;
 
-  if (g_tpc_data == 0 || g_tpc_last_event != gAliEveEvent) {
-    AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
-    rl->LoadDigits("TPC");
-    TTree* dt = rl->GetTreeD("TPC", false);
+  AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
+  rl->LoadDigits("TPC");
+  TTree* dt = rl->GetTreeD("TPC", false);
+  if (dt == 0)
+  {
+    throw(TEveException("tpc_digits Can not access digits tree."));
+  }
 
-    g_tpc_data = new AliEveTPCData;
-    g_tpc_data->LoadDigits(dt, kTRUE); // Create all present sectors.
+  AliEveTPCData *x = new AliEveTPCData;
 
-    g_tpc_last_event = gAliEveEvent;
-  }
+  x->LoadDigits(dt, kTRUE); // Create all present sectors.
 
   gStyle->SetPalette(1, 0);
   Color_t col = 36;
@@ -177,7 +162,7 @@ void tpc_digits_2drange(Int_t start, Int_t end)
     {
       AliEveTPCSector2D* s = new AliEveTPCSector2D();
       s->SetSectorID(i);
-      s->SetDataSource(g_tpc_data);
+      s->SetDataSource(x);
       s->SetFrameColor(col);
       s->SetAutoTrans(kTRUE);
       gEve->AddElement(s, l);
index 9e1fffc..723a7a2 100644 (file)
 // mode = 2 - show only 3D sectors
 // mode = 3 - show both 2D and 3D sectors
 
-class AliRawReader;
-
-class AliEveTPCData;
-class AliEveTPCSector2D;
-class AliEveTPCSector3D;
-
 void tpc_raw(Int_t mode = 3)
 {
   gStyle->SetPalette(1, 0);
@@ -32,12 +26,11 @@ void tpc_raw(Int_t mode = 3)
   AliTPCRawStream input(reader);
   reader->Select("TPC"); // ("TPC", firstRCU, lastRCU);
 
-  x = new AliEveTPCData;
+  AliEveTPCData *x = new AliEveTPCData;
   // x->SetLoadPedestal(5);
   x->SetLoadThreshold(5);
   x->SetAutoPedestal(kTRUE);
 
-  x->DropAllSectors();
   x->LoadRaw(input, kTRUE, kTRUE);
 
   TEveElementList* sec2d = new TEveElementList("TPC 2D");
index 3efea16..aa6bc3f 100644 (file)
@@ -32,15 +32,15 @@ void alieve_init(const Text_t* path   = ".", Int_t event=0,
 
   AliEveEventManager::SetESDFileName(esdfile);
   AliEveEventManager::SetRawFileName(rawfile);
-  AliEveEventManager::SetAssertElements(assert_runloader, assert_esd, assert_raw);
   AliEveEventManager::SetCdbUri(cdburi);
+  AliEveEventManager::SetAssertElements(assert_runloader, assert_esd, assert_raw);
 
   // Open event
-  if(path != 0)
+  if (path != 0)
   {
     Info("alieve_init", "Opening event %d from '%s' ...", event, path);
-    gAliEveEvent = new AliEveEventManager(path, event);
-    gEve->AddEvent(gAliEveEvent);
+    new AliEveEventManager(path, event);
+    gEve->AddEvent(AliEveEventManager::GetMaster());
   }
 }
 
@@ -54,14 +54,15 @@ void alieve_init_import_macros()
 
   TFolder* f = gEve->GetMacroFolder();
   void* dirhandle = gSystem->OpenDirectory(macdir.Data());
-  if(dirhandle != 0) {
+  if (dirhandle != 0)
+  {
     char* filename;
     TPRegexp re("\.C$");
     std::list<string> names;
-    while((filename = gSystem->GetDirEntry(dirhandle)) != 0) {
-      if(re.Match(filename)) {
+    while ((filename = gSystem->GetDirEntry(dirhandle)) != 0)
+    {
+      if (re.Match(filename))
        names.push_back(filename);
-      }
     }
     names.sort();
     //PH The line below is replaced waiting for a fix in Root
index d4fb3b0..3a8bfc8 100644 (file)
@@ -4,7 +4,7 @@
  * full copyright notice.                                                 *
  **************************************************************************/
 
-TEveGeoShape *gGeomGentle    = 0;
+TEveGeoShape *gGeomGentle = 0;
 
 void alieve_online_init()
 {
@@ -51,16 +51,14 @@ void alieve_online_init()
   TEveBrowser* browser = gEve->GetBrowser();
 
   browser->StartEmbedding(TRootBrowser::kBottom);
-  new AliEveEventManagerWindow;
+  new AliEveEventManagerWindow(AliEveEventManager::GetMaster());
   browser->StopEmbedding("EventCtrl");
 
-
   gEve->Redraw3D(kTRUE);
 }
 
 void alieve_online_on_new_event()
 {
-
   its_raw();
   its_clusters();
 
index f245b34..0d89308 100644 (file)
@@ -73,7 +73,7 @@ void anyscan_init()
   }
 
 
-  AliEveMacroExecutor *exec = gAliEveEvent->GetExecutor();
+  AliEveMacroExecutor *exec = AliEveEventManager::GetMaster()->GetExecutor();
 
   exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Track",   "kine_tracks.C", "kine_tracks", "", kFALSE));
   exec->AddMacro(new AliEveMacro(AliEveMacro::kRunLoader, "SIM Hit ITS", "its_hits.C",    "its_hits",    "", kFALSE));
@@ -122,12 +122,12 @@ void anyscan_init()
   browser->GetTabRight()->SetTab(1);
 
   browser->StartEmbedding(TRootBrowser::kBottom);
-  new AliEveEventManagerWindow;
+  new AliEveEventManagerWindow(AliEveEventManager::GetMaster());
   browser->StopEmbedding("EventCtrl");
 
   // event
-  gAliEveEvent->AddNewEventCommand("on_new_event();");
-  gAliEveEvent->GotoEvent(0);
+  AliEveEventManager::GetMaster()->AddNewEventCommand("on_new_event();");
+  AliEveEventManager::GetMaster()->GotoEvent(0);
 
   gEve->EditElement(g_trkcnt);
 
@@ -140,7 +140,7 @@ void on_new_event()
 {
   AliEveTrackCounter* g_trkcnt = AliEveTrackCounter::fgInstance;
   g_trkcnt->Reset();
-  g_trkcnt->SetEventId(gAliEveEvent->GetEventId());
+  g_trkcnt->SetEventId(AliEveEventManager::GetMaster()->GetEventId());
 
   if (g_esd_tracks_by_category_container != 0)
   {
index c0f66e3..28db039 100644 (file)
@@ -190,9 +190,9 @@ public:
     }
     std::cout << "Opening " << fileName << " (" << dirName << ")" << std::endl;
     
-    if (gAliEveEvent) delete gAliEveEvent;
-    gAliEveEvent = new AliEveEventManager(dirName.Data(), 0);
-    gEve->AddEvent(gAliEveEvent);
+    if (AliEveEventManager::GetMaster()) delete AliEveEventManager::GetMaster();
+    AliEveEventManager::GetMaster() = new AliEveEventManager(dirName.Data(), 0);
+    gEve->AddEvent(AliEveEventManager::GetMaster());
     
     if (refresh) Refresh();
   }
@@ -283,7 +283,7 @@ public:
   Reload()
   {
     Prepare();
-    Int_t event = gAliEveEvent->GetEventId();
+    Int_t event = AliEveEventManager::GetMaster()->GetEventId();
     std::cout << "Getting event " << event 
              << ", please wait ... " << std::flush;
     gROOT->Macro(Form("event_goto.C(%d)", event));
diff --git a/EVE/macros/trackcount_init.C b/EVE/macros/trackcount_init.C
deleted file mode 100644 (file)
index ad6fe11..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-// $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.                                                 *
- **************************************************************************/
-
-class TEveProjectionManager;
-class TEveGeoShape;
-class TEveUtil;
-
-TEveProjectionManager  *proj = 0;
-TEveGeoShape *geom = 0;
-
-void trackcount_init()
-{
-  TEveUtil::LoadMacro("alieve_init.C");
-  alieve_init(".", -1);
-
-  TEveUtil::LoadMacro("geom_gentle.C");
-
-  TEveUtil::LoadMacro("primary_vertex.C");
-  TEveUtil::LoadMacro("esd_tracks.C");
-  TEveUtil::LoadMacro("its_clusters.C+");
-  TEveUtil::LoadMacro("tpc_clusters.C+");
-
-  TEveViewer* nv = gEve->SpawnNewViewer("Projected View");
-  TEveScene*  ns = gEve->SpawnNewScene("Projected Scene");
-  nv->AddScene(ns);
-  TGLViewer* v = nv->GetGLViewer();
-  v->SetCurrentCamera(TGLViewer::kCameraOrthoXOY);
-  TGLCameraMarkupStyle* mup = v->GetCameraMarkup();
-  if(mup) mup->SetShow(kFALSE);
-
-  AliEveTrackFitter* fitter = new AliEveTrackFitter();
-  gEve->AddToListTree(fitter, 1);
-  gEve->AddElement(fitter, gEve->GetEventScene());
-
-  AliEveTrackCounter* g_trkcnt = new AliEveTrackCounter("Primary Counter");
-  gEve->AddToListTree(g_trkcnt, kFALSE);
-
-  TEveProjectionManager* pm = new TEveProjectionManager(); 
-  proj = pm;
-  gEve->AddToListTree(proj, kTRUE);
-  gEve->AddElement(proj, ns);
-  
-  TEveProjectionAxes* axes = new TEveProjectionAxes(proj);
-  axes->SetText("Projected Track-Count");
-  axes->SetFontFile("comicbd");
-  axes->SetFontSize(20);
-  gEve->AddElement(axes, ns);
-  gEve->AddToListTree(axes, kTRUE);
-
-  // geometry
-  TEveGeoShape* gg = geom_gentle();
-  geom = gg;
-
-  // event
-  gAliEveEvent->AddNewEventCommand("on_new_event();");
-  gAliEveEvent->GotoEvent(0);
-
-  gEve->Redraw3D(kTRUE);
-}
-
-/******************************************************************************/
-
-void on_new_event()
-{
-  try {
-    TEvePointSet* itsc = its_clusters();
-    itsc->SetMarkerColor(5);
-
-    TEvePointSet* tpcc = tpc_clusters();
-    tpcc->SetMarkerColor(4);
-  }
-  catch(TEveException& exc) {
-    printf("Exception loading ITS/TPC clusters: %s\n", exc.Data());
-  }
-
-  primary_vertex(1, 1);
-
-  TEveElementList* cont = esd_tracks_vertex_cut();
-
-  // Here we expect five TEveTrackList containers.
-  // First two have reasonable primaries (sigma-to-prim-vertex < 5).
-  // Other three are almost certainly secondaries.
-  Int_t count = 1;
-  AliEveTrackCounter* g_trkcnt = AliEveTrackCounter::fgInstance;
-  g_trkcnt->Reset();
-  g_trkcnt->SetEventId(gAliEveEvent->GetEventId());
-  TEveElement::List_i i = cont->BeginChildren();
-  while (i != cont->EndChildren()) {
-    TEveTrackList* l = dynamic_cast<TEveTrackList*>(*i);
-    if (l != 0) {
-      l->SetLineWidth(2);
-      g_trkcnt->RegisterTracks(l, (count <= 2));
-      ++count;
-    }
-    ++i;
-  }
-  TEveElement* top = gEve->GetCurrentEvent();
-  proj->DestroyElements();
-  AliESDEvent* esd = AliEveEventManager::AssertESD();
-  Double_t x[3];
-  esd->GetPrimaryVertex()->GetXYZ(x);
-  proj->SetCenter(x[0], x[1], x[2]);
-
-  // geom
-  proj->ImportElements(geom);
-  // event
-  proj->ImportElements(top);
-  // top->SetRnrState(kFALSE);
-}
-
-/******************************************************************************/
-
-TParticle* id(Int_t label=0, Bool_t showParents=kTRUE)
-{
-  AliRunLoader* rl = AliEveEventManager::AssertRunLoader();
-  rl->LoadKinematics();
-  AliStack* stack = rl->Stack();
-
-  printf("Number primaries %d, all particles %d, label %d\n",
-        stack->GetNprimary(), stack->GetNtrack(), label);
-  if (label < 0 || label >= stack->GetNtrack()) {
-    printf("  Label exceeds available range.\n");
-    return 0;
-  }
-
-  TParticle* part = stack->Particle(label);
-  if (part != 0) {
-    part->Print();
-    if (showParents) {
-      while (part->GetMother(0) >= 0) {
-       part = stack->Particle(part->GetMother(0));
-       part->Print();
-      }
-    }
-  }
-  return stack->Particle(label);
-}
index 49471fe..337789a 100644 (file)
@@ -84,8 +84,8 @@ void visscan_init()
   browser->StopEmbedding("EventCtrl");
 
   // event
-  gAliEveEvent->AddNewEventCommand("on_new_event();");
-  gAliEveEvent->GotoEvent(0);
+  AliEveEventManager::GetMaster()->AddNewEventCommand("on_new_event();");
+  AliEveEventManager::GetMaster()->GotoEvent(0);
 
   gEve->EditElement(g_trkcnt);
 
@@ -135,7 +135,7 @@ void on_new_event()
 
   AliEveTrackCounter* g_trkcnt = AliEveTrackCounter::fgInstance;
   g_trkcnt->Reset();
-  g_trkcnt->SetEventId(gAliEveEvent->GetEventId());
+  g_trkcnt->SetEventId(AliEveEventManager::GetMaster()->GetEventId());
 
   TEveElementList* cont = esd_tracks_by_category();