2db1d0b51a25dc75be5cb4b38726d7b89a877dfd
[u/mrichter/AliRoot.git] / EVE / Alieve / EventAlieve.h
1 // $Header$
2
3 #ifndef ALIEVE_Event_H
4 #define ALIEVE_Event_H
5
6 #include <TList.h>
7
8 #include <Reve/EventBase.h>
9
10 class AliRunLoader;
11 class AliESD;
12 class AliESDfriend;
13
14 class AliMagF;
15
16 class TFile;
17 class TTree;
18 class TGeoManager;
19
20 namespace Alieve {
21
22 class Event : public Reve::EventBase
23 {
24 private:
25   Event(const Event&);            // Not implemented
26   Event& operator=(const Event&); // Not implemented
27
28 protected:
29   TString       fPath;
30   Int_t         fEventId;
31
32   AliRunLoader* fRunLoader;
33
34   TFile*        fESDFile;
35   TTree*        fESDTree;
36   AliESD*       fESD;
37   AliESDfriend* fESDfriend;
38   Bool_t        fESDfriendExists;
39
40   TList         fNewEventCommands;
41
42   static Bool_t fgUseRunLoader;
43   static Bool_t fgUseESDTree;
44   static Bool_t fgAvoidExcOnOpen;
45
46   static TString  fgCdbUri;
47
48   static AliMagF* fgMagField;
49
50 public:
51   static void Initialize(Bool_t use_runloader=kTRUE, Bool_t use_esd=kTRUE,
52                          Bool_t avoid_exc_on_open=kTRUE);
53
54   static void SetCdbUri(const Text_t* cdb) { if (cdb) fgCdbUri = cdb; }
55
56   Event();
57   Event(TString path, Int_t ev=0);
58
59   void Open();
60   void GotoEvent(Int_t event);
61   void NextEvent() { GotoEvent(fEventId + 1); }
62   void PrevEvent() { GotoEvent(fEventId - 1); }
63   void Close();
64
65   virtual void  AfterNewEventLoaded();
66
67   TList& GetNewEventCommands() { return fNewEventCommands; }
68   void   AddNewEventCommand(const Text_t* cmd);
69
70   Int_t         GetEventId()   const { return fEventId; }
71   AliRunLoader* GetRunLoader() const { return fRunLoader; }
72   TTree*        GetESDTree()   const { return fESDTree; }
73   AliESD*       GetESD()       const { return fESD; }
74   AliESDfriend* GetESDfriend()       const { return fESDfriend; }
75   Bool_t        GetESDfriendExists() const { return fESDfriendExists; }
76   virtual const Text_t* GetTitle()   const { return fPath.Data(); }
77
78   static AliRunLoader* AssertRunLoader();
79   static AliESD*       AssertESD();
80   static AliESDfriend* AssertESDfriend();
81
82   static AliMagF*      AssertMagField();
83
84   static TGeoManager*  AssertGeometry();
85
86   ClassDef(Event, 1);
87 }; // endclass Event
88
89 extern Event* gEvent;
90
91 }
92
93 #endif