ROOT logo
#ifndef ALIVEVENTHANDLER_H
#define ALIVEVENTHANDLER_H
/* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

//-------------------------------------------------------------------------
//     Event Handler base class
//     Author: Andreas Morsch, CERN
//-------------------------------------------------------------------------

#include <TNamed.h>

class TTree;
class TObjArray;
class AliVEvent;
class AliVfriendEvent;

class AliVEventHandler : public TNamed {

 public:
enum EEventHandlerFlags {
   kHandlerLocked       = BIT(14)
};
    AliVEventHandler();
    AliVEventHandler(const char* name, const char* title);
    virtual ~AliVEventHandler();
    // Handled tree
    virtual TTree       *GetTree() const { return NULL; }
    virtual Option_t    *GetDataType() const { return NULL; }
    virtual Bool_t       GetFillAOD() const {return kTRUE;}
    virtual Bool_t       GetFillExtension() const {return kTRUE;}
    virtual void         SetFillAOD(Bool_t) {}
    virtual void         SetFillExtension(Bool_t) {}
    // Input
    virtual void         SetInputFileName(const char*) {}
    virtual const char*  GetInputFileName() const {return 0;}
    // Output
    virtual void         SetOutputFileName(const char* fname)   = 0;
    virtual const char*  GetOutputFileName() const        = 0;
    // Extra outputs as a string separated by commas
    virtual const char*  GetExtraOutputs(Bool_t merge=kFALSE) const;
    // Input
    virtual void         SetInputTree(TTree* tree)        = 0;
    // Steering 
    virtual Bool_t       Init(Option_t* opt)              = 0;
    virtual Bool_t       Init(TTree* tree, Option_t* opt) = 0;
    virtual Bool_t       BeginEvent(Long64_t entry)       = 0;
    virtual Bool_t       GetEntry()                       = 0;
    virtual Bool_t       Notify(const char *path)         = 0;
    virtual Bool_t       FinishEvent()                    = 0;
    virtual Bool_t       Terminate()                      = 0;
    virtual Bool_t       TerminateIO()                    = 0;
    //
    virtual Bool_t       Notify() { return TNamed::Notify(); };
    // Security
    Bool_t               IsLocked() const {return TObject::TestBit(kHandlerLocked);}
    void                 Lock();
    void                 UnLock();
    void                 Changed();
    virtual void         SetCacheSize(Long64_t) {}
    virtual TList        *GetUserInfo() const {return 0x0;};

    // HLT
    virtual Bool_t              InitTaskInputData(AliVEvent* /*event*/, AliVfriendEvent* /*esdFriend*/, TObjArray* /*arrTasks*/) {return kTRUE;};
    virtual AliVEvent*          GetEvent() const {return 0x0;};
    virtual AliVfriendEvent*   GetVfriendEvent() const {return 0x0;};

 private :
  ClassDef(AliVEventHandler, 1);
};

#endif
 AliVEventHandler.h:1
 AliVEventHandler.h:2
 AliVEventHandler.h:3
 AliVEventHandler.h:4
 AliVEventHandler.h:5
 AliVEventHandler.h:6
 AliVEventHandler.h:7
 AliVEventHandler.h:8
 AliVEventHandler.h:9
 AliVEventHandler.h:10
 AliVEventHandler.h:11
 AliVEventHandler.h:12
 AliVEventHandler.h:13
 AliVEventHandler.h:14
 AliVEventHandler.h:15
 AliVEventHandler.h:16
 AliVEventHandler.h:17
 AliVEventHandler.h:18
 AliVEventHandler.h:19
 AliVEventHandler.h:20
 AliVEventHandler.h:21
 AliVEventHandler.h:22
 AliVEventHandler.h:23
 AliVEventHandler.h:24
 AliVEventHandler.h:25
 AliVEventHandler.h:26
 AliVEventHandler.h:27
 AliVEventHandler.h:28
 AliVEventHandler.h:29
 AliVEventHandler.h:30
 AliVEventHandler.h:31
 AliVEventHandler.h:32
 AliVEventHandler.h:33
 AliVEventHandler.h:34
 AliVEventHandler.h:35
 AliVEventHandler.h:36
 AliVEventHandler.h:37
 AliVEventHandler.h:38
 AliVEventHandler.h:39
 AliVEventHandler.h:40
 AliVEventHandler.h:41
 AliVEventHandler.h:42
 AliVEventHandler.h:43
 AliVEventHandler.h:44
 AliVEventHandler.h:45
 AliVEventHandler.h:46
 AliVEventHandler.h:47
 AliVEventHandler.h:48
 AliVEventHandler.h:49
 AliVEventHandler.h:50
 AliVEventHandler.h:51
 AliVEventHandler.h:52
 AliVEventHandler.h:53
 AliVEventHandler.h:54
 AliVEventHandler.h:55
 AliVEventHandler.h:56
 AliVEventHandler.h:57
 AliVEventHandler.h:58
 AliVEventHandler.h:59
 AliVEventHandler.h:60
 AliVEventHandler.h:61
 AliVEventHandler.h:62
 AliVEventHandler.h:63
 AliVEventHandler.h:64
 AliVEventHandler.h:65
 AliVEventHandler.h:66
 AliVEventHandler.h:67
 AliVEventHandler.h:68
 AliVEventHandler.h:69
 AliVEventHandler.h:70
 AliVEventHandler.h:71
 AliVEventHandler.h:72
 AliVEventHandler.h:73
 AliVEventHandler.h:74