Changes for report #69974: Virtual class for calorimeter analysis objects
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskME.h
1 #ifndef ALIANALYSISTASKME_H
2 #define ALIANALYSISTASKME_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 #include "AliAnalysisTask.h"
10 class AliVEvent;
11 class AliAODEvent;
12 class AliInputEventHandler;
13 class TTree;
14 class AliMultiEventInputHandler;
15
16
17
18 class AliAnalysisTaskME : public AliAnalysisTask
19 {
20  public:
21     AliAnalysisTaskME();
22     AliAnalysisTaskME(const char* name);
23     AliAnalysisTaskME(const AliAnalysisTaskME& obj);
24     AliAnalysisTaskME& operator=(const AliAnalysisTaskME& other);
25     virtual ~AliAnalysisTaskME() {;}
26     // Implementation of interface methods
27     virtual void ConnectInputData(Option_t *option = "");
28     virtual void CreateOutputObjects();
29     virtual void Exec(Option_t* option);
30     virtual void SetDebugLevel(Int_t level) {fDebug = level;}
31     virtual void Init() {;}
32     virtual void RequireFreshBuffer() {fFreshBufferOnly = kTRUE;}
33     // To be implemented by user
34     virtual void UserCreateOutputObjects()  {;}
35     virtual void UserExec(Option_t* /*option*/) {;}
36     // Helpers for adding branches to the AOD
37     virtual void   AddAODBranch(const char* cname, void* addobj, const char *fname="");
38     // Getters
39     virtual Int_t          DebugLevel()              {return fDebug;     }
40     virtual AliVEvent*     GetEvent(Int_t iev);
41     virtual AliAODEvent*   AODEvent()                {return fOutputAOD; }
42     virtual TTree*         OutputTree()              {return fTreeA;     }
43     virtual Long64_t       Entry()                   {return fEntry;     }
44     virtual const char*    CurrentFileName();
45     
46   protected:
47     Int_t                      fDebug;           //  Debug flag
48     Int_t                      fEntry;           //  Current entry in the chain
49     Bool_t                     fFreshBufferOnly; //  Flag for Exec call for fresh buffer only
50     AliMultiEventInputHandler* fInputHandler;    //! Input Handler
51     AliAODEvent*               fOutputAOD;       //! AOD out 
52     TTree*                     fTreeA;           //  AOD output Tree
53     ClassDef(AliAnalysisTaskME, 1); // Analysis task for standard jet analysis
54 };
55  
56 #endif