]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveBase/AliEveEventManager.h
8310147dec1d003b8532c1c99020d274e3cde1d5
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveEventManager.h
1 // $Id$
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #ifndef AliEveEventManaget_H
11 #define AliEveEventManager_H
12
13 #include <TEveEventManager.h>
14
15 class AliRunLoader;
16 class AliESDEvent;
17 class AliESDfriend;
18
19 class AliMagF;
20
21 class TFile;
22 class TTree;
23 class TGeoManager;
24
25 //==============================================================================
26 //
27 // AliEveEventManager
28 //
29 // Interface to ALICE event-data (RunLoader, ESD), magnetic field and
30 // geometry.
31 //
32
33
34 class AliEveEventManager : public TEveEventManager
35 {
36 private:
37   AliEveEventManager(const AliEveEventManager&);            // Not implemented
38   AliEveEventManager& operator=(const AliEveEventManager&); // Not implemented
39
40 protected:
41   TString       fPath;                  // URL to event-data.
42   Int_t         fEventId;               // Id of current event.
43
44   AliRunLoader* fRunLoader;             // Run loader.
45
46   TFile*        fESDFile;               // ESD file.
47   TTree*        fESDTree;               // ESD tree.
48   AliESDEvent*  fESD;                   // ESDEvent object.
49   AliESDfriend* fESDfriend;             // ESDfriend object.
50   Bool_t        fESDfriendExists;       // Flag specifying if ESDfriend was found during opening of the event-data.
51
52   static TString  fgCdbUri;             // Global URI to CDB.
53   static Bool_t   fgAssertRunLoader;    // Global flag specifying if AliRunLoader must be asserted during opening of the event-data.
54   static Bool_t   fgAssertESD;          // Global flag specifying if ESDEvent must be asserted during opening of the event-data.
55
56   static AliMagF* fgMagField;           // Global pointer to magneti field.
57
58 public:
59   static void SetCdbUri(const Text_t* cdb) { if (cdb) fgCdbUri = cdb; }
60   static void SetAssertElements(Bool_t assertRunloader, Bool_t assertEsd)
61   { fgAssertRunLoader = assertRunloader; fgAssertESD = assertEsd; }
62
63   AliEveEventManager();
64   AliEveEventManager(TString path, Int_t ev=0);
65   virtual ~AliEveEventManager();
66
67
68   virtual void Open();
69   virtual void GotoEvent(Int_t event);
70   virtual void NextEvent() { GotoEvent(fEventId + 1); }
71   virtual void PrevEvent() { GotoEvent(fEventId - 1); }
72   virtual void Close();
73
74   Int_t         GetEventId()   const { return fEventId; }
75   AliRunLoader* GetRunLoader() const { return fRunLoader; }
76   TTree*        GetESDTree()   const { return fESDTree; }
77   AliESDEvent*  GetESD()       const { return fESD; }
78   AliESDfriend* GetESDfriend()       const { return fESDfriend; }
79   Bool_t        GetESDfriendExists() const { return fESDfriendExists; }
80   virtual const Text_t* GetTitle()   const { return fPath.Data(); }
81
82   static AliRunLoader* AssertRunLoader();
83   static AliESDEvent*  AssertESD();
84   static AliESDfriend* AssertESDfriend();
85
86   static AliMagF*      AssertMagField();
87
88   static TGeoManager*  AssertGeometry();
89
90   ClassDef(AliEveEventManager, 1);
91 }; // endclass AliEveEventManager
92
93 extern AliEveEventManager* gAliEveEvent;
94
95 #endif