8b23f56bb5ab51bcc3c3a51ddddd9b550d656400
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliVEventHandler.h
1 #ifndef ALIVEVENTHANDLER_H
2 #define ALIVEVENTHANDLER_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //-------------------------------------------------------------------------
9 //     Event Handler base class
10 //     Author: Andreas Morsch, CERN
11 //-------------------------------------------------------------------------
12
13 #include <TNamed.h>
14
15 class TTree;
16 class TObjArray;
17 class AliVEvent;
18
19 class AliVEventHandler : public TNamed {
20
21  public:
22 enum EEventHandlerFlags {
23    kHandlerLocked       = BIT(14)
24 };
25     AliVEventHandler();
26     AliVEventHandler(const char* name, const char* title);
27     virtual ~AliVEventHandler();
28     // Handled tree
29     virtual TTree       *GetTree() const { return NULL; }
30     virtual Option_t    *GetDataType() const { return NULL; }
31     virtual Bool_t       GetFillAOD() const {return kTRUE;}
32     virtual Bool_t       GetFillExtension() const {return kTRUE;}
33     virtual void         SetFillAOD(Bool_t) {}
34     virtual void         SetFillExtension(Bool_t) {}
35     // Input
36     virtual void         SetInputFileName(const char*) {}
37     virtual const char*  GetInputFileName() const {return 0;}
38     // Output
39     virtual void         SetOutputFileName(const char* fname)   = 0;
40     virtual const char*  GetOutputFileName() const        = 0;
41     // Extra outputs as a string separated by commas
42     virtual const char*  GetExtraOutputs(Bool_t merge=kFALSE) const;
43     // Input
44     virtual void         SetInputTree(TTree* tree)        = 0;
45     // Steering 
46     virtual Bool_t       Init(Option_t* opt)              = 0;
47     virtual Bool_t       Init(TTree* tree, Option_t* opt) = 0;
48     virtual Bool_t       BeginEvent(Long64_t entry)       = 0;
49     virtual Bool_t       GetEntry()                       = 0;
50     virtual Bool_t       Notify(const char *path)         = 0;
51     virtual Bool_t       FinishEvent()                    = 0;
52     virtual Bool_t       Terminate()                      = 0;
53     virtual Bool_t       TerminateIO()                    = 0;
54     //
55     virtual Bool_t       Notify() { return TNamed::Notify(); };
56     // Security
57     Bool_t               IsLocked() const {return TObject::TestBit(kHandlerLocked);}
58     void                 Lock();
59     void                 UnLock();
60     void                 Changed();
61     virtual void         SetCacheSize(Long64_t) {}
62     virtual TList        *GetUserInfo() const {return 0x0;};
63     // HLT
64     virtual Bool_t       InitTaskInputData(AliVEvent* /*event*/, TObjArray* /*arrTasks*/) {printf("OOOOPS!!!\n"); return kTRUE;};
65     virtual AliVEvent*   GetEvent() const {return 0x0;};
66
67
68  private :
69   ClassDef(AliVEventHandler, 1);
70 };
71
72 #endif