* full copyright notice. *
**************************************************************************/
-#ifndef AliEveEventManaget_H
+#ifndef AliEveEventManager_H
#define AliEveEventManager_H
#include <TEveEventManager.h>
+#include <TQObject.h>
+#include <TObjArray.h>
+#include <AliESDEvent.h>
+
+class AliEveMacroExecutor;
class AliRunLoader;
class AliESDEvent;
class AliESDfriend;
+class AliRawReader;
class AliMagF;
//
-class AliEveEventManager : public TEveEventManager
+class AliEveEventManager : public TEveEventManager,
+ public TQObject
{
-private:
- AliEveEventManager(const AliEveEventManager&); // Not implemented
- AliEveEventManager& operator=(const AliEveEventManager&); // Not implemented
-
-protected:
- TString fPath; // URL to event-data.
- Int_t fEventId; // Id of current event.
-
- AliRunLoader* fRunLoader; // Run loader.
-
- 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.
-
- static TString fgCdbUri; // Global URI to CDB.
- static Bool_t fgAssertRunLoader; // Global flag specifying if AliRunLoader must be asserted during opening of the event-data.
- static Bool_t fgAssertESD; // Global flag specifying if ESDEvent must be asserted during opening of the event-data.
-
- static AliMagF* fgMagField; // Global pointer to magneti field.
-
public:
- static void SetCdbUri(const Text_t* cdb) { if (cdb) fgCdbUri = cdb; }
- static void SetAssertElements(Bool_t assertRunloader, Bool_t assertEsd)
- { fgAssertRunLoader = assertRunloader; fgAssertESD = assertEsd; }
+ static void SetESDFileName(const Text_t* esd);
+ static void SetRawFileName(const Text_t* raw);
+ static void SetCdbUri(const Text_t* cdb);
+ static void SetAssertElements(Bool_t assertRunloader, Bool_t assertEsd, Bool_t assertRaw);
AliEveEventManager();
AliEveEventManager(TString path, Int_t ev=0);
virtual ~AliEveEventManager();
- virtual void Open();
- virtual void GotoEvent(Int_t event);
- virtual void NextEvent() { GotoEvent(fEventId + 1); }
- virtual void PrevEvent() { GotoEvent(fEventId - 1); }
- virtual void Close();
+ virtual void Open();
+ void SetEvent(AliRunLoader *runLoader, AliRawReader *rawReader, AliESDEvent *esd);
+ virtual Int_t GetMaxEventId(Bool_t refreshESD=kFALSE) const;
+ virtual void GotoEvent(Int_t event);
+ virtual void NextEvent();
+ virtual void PrevEvent();
+ virtual void Close();
+ Bool_t FindNextByTrigger(Int_t& i);
+ Bool_t FindPrevByTrigger(Int_t& i);
+
Int_t GetEventId() const { return fEventId; }
AliRunLoader* GetRunLoader() const { return fRunLoader; }
+ TFile* GetESDFile() const { return fESDFile; }
TTree* GetESDTree() const { return fESDTree; }
AliESDEvent* GetESD() const { return fESD; }
AliESDfriend* GetESDfriend() const { return fESDfriend; }
Bool_t GetESDfriendExists() const { return fESDfriendExists; }
virtual const Text_t* GetTitle() const { return fPath.Data(); }
+ TString GetEventInfoHorizontal() const;
+ TString GetEventInfoVertical() const;
+
+ static Bool_t HasRunLoader();
+ static Bool_t HasESD();
+ static Bool_t HasESDfriend();
+ static Bool_t HasRawReader();
static AliRunLoader* AssertRunLoader();
static AliESDEvent* AssertESD();
static AliESDfriend* AssertESDfriend();
+ static AliRawReader* AssertRawReader();
static AliMagF* AssertMagField();
static TGeoManager* AssertGeometry();
- ClassDef(AliEveEventManager, 1);
-}; // endclass AliEveEventManager
+ Double_t GetAutoLoadTime() const { return fAutoLoadTime; }
+ Bool_t GetAutoLoad() const { return fAutoLoad; }
+ void SetAutoLoadTime(Float_t time);
+ void SetAutoLoad(Bool_t autoLoad);
+ void AutoLoadNextEvent();
+
+ Bool_t GetSelectOnTriggerType() const { return fSelectOnTriggerType; }
+ TString GetTriggerType() const { return fTriggerType; }
+ void SetTriggerType(const TString& triggertype) { fTriggerType = triggertype; }
+ void SetSelectOnTriggerType(Bool_t sel) { fSelectOnTriggerType = sel; }
+
+ Bool_t AreEventFilesOpened() const { return fIsOpen; }
+ Bool_t IsEventAvailable() const { return fHasEvent; }
+ Bool_t IsUnderExternalControl() const { return fExternalCtrl; }
+
+ virtual void AfterNewEventLoaded();
+ void NewEventLoaded(); // *SIGNAL*
+
+ AliEveMacroExecutor* GetExecutor() const { return fExecutor; }
+
+protected:
+ TString fPath; // URL to event-data.
+ Int_t fEventId; // Id of current event.
+
+ AliRunLoader* fRunLoader; // Run loader.
+
+ 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.
+
+ Bool_t fAutoLoad; // Automatic loading of events (online)
+ Float_t fAutoLoadTime; // Auto-load time in seconds
+ TTimer *fAutoLoadTimer; // Timer for automatic event loading
+
+ Bool_t fIsOpen; // Are event-files opened.
+ 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
+
+ AliEveMacroExecutor *fExecutor; // Executor for std macros
+
+ 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.
+ static Bool_t fgAssertRunLoader; // Global flag specifying if AliRunLoader must be asserted during opening of the event-data.
+ 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.
+
+private:
+ AliEveEventManager(const AliEveEventManager&); // Not implemented
+ AliEveEventManager& operator=(const AliEveEventManager&); // Not implemented
+
+ void InitInternals();
+ void StartAutoLoadTimer();
+ void StopAutoLoadTimer();
+
+ Bool_t fAutoLoadTimerRunning; // State of auto-load timer.
+
+ ClassDef(AliEveEventManager, 0); // Interface for getting all event components in a uniform way.
+};
extern AliEveEventManager* gAliEveEvent;