]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/STEERBase/AliVEventHandler.h
Temporary splines for LHC12b-e anchored MC
[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
17 class AliVEventHandler : public TNamed {
18
19  public:
20 enum EEventHandlerFlags {
21    kHandlerLocked       = BIT(14)
22 };
23     AliVEventHandler();
24     AliVEventHandler(const char* name, const char* title);
25     virtual ~AliVEventHandler();
26     // Handled tree
27     virtual TTree       *GetTree() const { return NULL; }
28     virtual Option_t    *GetDataType() const { return NULL; }
29     virtual Bool_t       GetFillAOD() const {return kTRUE;}
30     virtual Bool_t       GetFillExtension() const {return kTRUE;}
31     virtual void         SetFillAOD(Bool_t) {}
32     virtual void         SetFillExtension(Bool_t) {}
33     // Input
34     virtual void         SetInputFileName(const char*) {}
35     virtual const char*  GetInputFileName() const {return 0;}
36     // Output
37     virtual void         SetOutputFileName(const char* fname)   = 0;
38     virtual const char*  GetOutputFileName() const        = 0;
39     // Extra outputs as a string separated by commas
40     virtual const char*  GetExtraOutputs(Bool_t merge=kFALSE) const;
41     // Input
42     virtual void         SetInputTree(TTree* tree)        = 0;
43     // Steering 
44     virtual Bool_t       Init(Option_t* opt)              = 0;
45     virtual Bool_t       Init(TTree* tree, Option_t* opt) = 0;
46     virtual Bool_t       BeginEvent(Long64_t entry)       = 0;
47     virtual Bool_t       GetEntry()                       = 0;
48     virtual Bool_t       Notify(const char *path)         = 0;
49     virtual Bool_t       FinishEvent()                    = 0;
50     virtual Bool_t       Terminate()                      = 0;
51     virtual Bool_t       TerminateIO()                    = 0;
52     //
53     virtual Bool_t       Notify() { return TNamed::Notify(); };
54     // Security
55     Bool_t               IsLocked() const {return TObject::TestBit(kHandlerLocked);}
56     void                 Lock();
57     void                 UnLock();
58     void                 Changed();
59     virtual void         SetCacheSize(Long64_t) {}
60     virtual TList        *GetUserInfo() const {return 0x0;};
61  private :
62   ClassDef(AliVEventHandler, 1);
63 };
64
65 #endif