From: mtadel Date: Tue, 14 Oct 2008 19:37:04 +0000 (+0000) Subject: First pass of changes required for visualization of event-embedding. X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=4d62585e315b2bb46740889d80597e3f24bf9e1b First pass of changes required for visualization of event-embedding. 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. --- diff --git a/EVE/EveBase/AliEveEventManager.cxx b/EVE/EveBase/AliEveEventManager.cxx index c532542db39..9510e36234a 100644 --- a/EVE/EveBase/AliEveEventManager.cxx +++ b/EVE/EveBase/AliEveEventManager.cxx @@ -39,20 +39,23 @@ //______________________________________________________________________________ // -// 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 diff --git a/EVE/EveBase/AliEveEventManager.h b/EVE/EveBase/AliEveEventManager.h index ca7c86ac54b..b9cc5b9d600 100644 --- a/EVE/EveBase/AliEveEventManager.h +++ b/EVE/EveBase/AliEveEventManager.h @@ -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 diff --git a/EVE/EveBase/AliEveEventManagerEditor.cxx b/EVE/EveBase/AliEveEventManagerEditor.cxx index 53f661ef388..92f1aef1668 100644 --- a/EVE/EveBase/AliEveEventManagerEditor.cxx +++ b/EVE/EveBase/AliEveEventManagerEditor.cxx @@ -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 diff --git a/EVE/EveBase/AliEveEventManagerEditor.h b/EVE/EveBase/AliEveEventManagerEditor.h index 17ae64296a3..5bca6ac4c9b 100644 --- a/EVE/EveBase/AliEveEventManagerEditor.h +++ b/EVE/EveBase/AliEveEventManagerEditor.h @@ -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 diff --git a/EVE/EveBase/AliEveMacroExecutorWindow.cxx b/EVE/EveBase/AliEveMacroExecutorWindow.cxx index e894d0e5955..8f2d33a65d3 100644 --- a/EVE/EveBase/AliEveMacroExecutorWindow.cxx +++ b/EVE/EveBase/AliEveMacroExecutorWindow.cxx @@ -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() diff --git a/EVE/EveBase/AliEveTrackCounter.cxx b/EVE/EveBase/AliEveTrackCounter.cxx index c50796262df..4578eafcfa7 100644 --- a/EVE/EveBase/AliEveTrackCounter.cxx +++ b/EVE/EveBase/AliEveTrackCounter.cxx @@ -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); diff --git a/EVE/EveBase/AliEveTrackCounterEditor.cxx b/EVE/EveBase/AliEveTrackCounterEditor.cxx index 1106dabf28d..9953c9eec40 100644 --- a/EVE/EveBase/AliEveTrackCounterEditor.cxx +++ b/EVE/EveBase/AliEveTrackCounterEditor.cxx @@ -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()); } /******************************************************************************/ diff --git a/EVE/EveBase/LinkDef.h b/EVE/EveBase/LinkDef.h index 1379a6807ac..896edfc9528 100644 --- a/EVE/EveBase/LinkDef.h +++ b/EVE/EveBase/LinkDef.h @@ -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+; diff --git a/EVE/EveDet/AliEveMUONData.cxx b/EVE/EveDet/AliEveMUONData.cxx index 57edfcb75aa..ecea9b39c7f 100644 --- a/EVE/EveDet/AliEveMUONData.cxx +++ b/EVE/EveDet/AliEveMUONData.cxx @@ -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; diff --git a/EVE/EveDet/AliEveT0Module.cxx b/EVE/EveDet/AliEveT0Module.cxx index 894b6e97e21..b4efffed0ee 100644 --- a/EVE/EveDet/AliEveT0Module.cxx +++ b/EVE/EveDet/AliEveT0Module.cxx @@ -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(); diff --git a/EVE/EveDet/AliEveTRDTrackListEditor.cxx b/EVE/EveDet/AliEveTRDTrackListEditor.cxx index 1769fa1c27b..303cb675c30 100644 --- a/EVE/EveDet/AliEveTRDTrackListEditor.cxx +++ b/EVE/EveDet/AliEveTRDTrackListEditor.cxx @@ -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", diff --git a/EVE/alice-macros/MUON_displayData.C b/EVE/alice-macros/MUON_displayData.C index 28e38e857ed..0514b1ef13d 100644 --- a/EVE/alice-macros/MUON_displayData.C +++ b/EVE/alice-macros/MUON_displayData.C @@ -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); diff --git a/EVE/alice-macros/MUON_displaySimu.C b/EVE/alice-macros/MUON_displaySimu.C index 470f5199326..05cf74aa8ba 100644 --- a/EVE/alice-macros/MUON_displaySimu.C +++ b/EVE/alice-macros/MUON_displaySimu.C @@ -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; diff --git a/EVE/alice-macros/emcal_all.C b/EVE/alice-macros/emcal_all.C index 04a43c91e5d..6d0b267630b 100644 --- a/EVE/alice-macros/emcal_all.C +++ b/EVE/alice-macros/emcal_all.C @@ -37,8 +37,8 @@ void emcal_all(const UInt_t evtNum = 0, Bool_t digFile = 0, cout<<"Can not instatiate the Run Loader"< (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"); diff --git a/EVE/alice-macros/event_first.C b/EVE/alice-macros/event_first.C index 615c4b75b78..7877caf09e9 100644 --- a/EVE/alice-macros/event_first.C +++ b/EVE/alice-macros/event_first.C @@ -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); } diff --git a/EVE/alice-macros/event_goto.C b/EVE/alice-macros/event_goto.C index 30f3b15e707..a82ee6168f1 100644 --- a/EVE/alice-macros/event_goto.C +++ b/EVE/alice-macros/event_goto.C @@ -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); } diff --git a/EVE/alice-macros/event_last.C b/EVE/alice-macros/event_last.C index 53b55ee3fd4..18f5f8f66c4 100644 --- a/EVE/alice-macros/event_last.C +++ b/EVE/alice-macros/event_last.C @@ -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); } diff --git a/EVE/alice-macros/event_next.C b/EVE/alice-macros/event_next.C index 13a59f98fe4..cca485775d6 100644 --- a/EVE/alice-macros/event_next.C +++ b/EVE/alice-macros/event_next.C @@ -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(); } diff --git a/EVE/alice-macros/event_prev.C b/EVE/alice-macros/event_prev.C index 0ba6b55f38d..e7fc6b923dc 100644 --- a/EVE/alice-macros/event_prev.C +++ b/EVE/alice-macros/event_prev.C @@ -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(); } diff --git a/EVE/alice-macros/primary_vertex.C b/EVE/alice-macros/primary_vertex.C index d22a8203212..99fe06a6f4d 100644 --- a/EVE/alice-macros/primary_vertex.C +++ b/EVE/alice-macros/primary_vertex.C @@ -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(gAliEveEvent->FindChild(name)); + TEveCompound* parent = dynamic_cast + (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; } diff --git a/EVE/alice-macros/t0_raw.C b/EVE/alice-macros/t0_raw.C index 8749eebb398..f2760c66944 100644 --- a/EVE/alice-macros/t0_raw.C +++ b/EVE/alice-macros/t0_raw.C @@ -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<SetPalette(1, 0); diff --git a/EVE/alice-macros/tpc_digits.C b/EVE/alice-macros/tpc_digits.C index 53f13ebbb95..3dd78d7a498 100644 --- a/EVE/alice-macros/tpc_digits.C +++ b/EVE/alice-macros/tpc_digits.C @@ -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); diff --git a/EVE/alice-macros/tpc_raw.C b/EVE/alice-macros/tpc_raw.C index 9e1fffcac75..723a7a2d468 100644 --- a/EVE/alice-macros/tpc_raw.C +++ b/EVE/alice-macros/tpc_raw.C @@ -15,12 +15,6 @@ // 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"); diff --git a/EVE/macros/alieve_init.C b/EVE/macros/alieve_init.C index 3efea165055..aa6bc3fdb78 100644 --- a/EVE/macros/alieve_init.C +++ b/EVE/macros/alieve_init.C @@ -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 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 diff --git a/EVE/macros/alieve_online.C b/EVE/macros/alieve_online.C index d4fb3b0c54b..3a8bfc8eadb 100644 --- a/EVE/macros/alieve_online.C +++ b/EVE/macros/alieve_online.C @@ -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(); diff --git a/EVE/macros/anyscan_init.C b/EVE/macros/anyscan_init.C index f245b34623b..0d89308d72c 100644 --- a/EVE/macros/anyscan_init.C +++ b/EVE/macros/anyscan_init.C @@ -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) { diff --git a/EVE/macros/display.C b/EVE/macros/display.C index c0f66e3fa08..28db039688f 100644 --- a/EVE/macros/display.C +++ b/EVE/macros/display.C @@ -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 index ad6fe11a3a7..00000000000 --- a/EVE/macros/trackcount_init.C +++ /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(*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); -} diff --git a/EVE/macros/visscan_init.C b/EVE/macros/visscan_init.C index 49471fe5ab2..337789a2c69 100644 --- a/EVE/macros/visscan_init.C +++ b/EVE/macros/visscan_init.C @@ -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();