AnalysisTask base class for multi event analysis (mixing).
[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 AliAODEvent;
11 class AliInputEventHandler;
12 class TTree;
13 class AliMultiAODInputHandler;
14
15
16
17 class AliAnalysisTaskME : public AliAnalysisTask
18 {
19  public:
20     AliAnalysisTaskME();
21     AliAnalysisTaskME(const char* name);
22     AliAnalysisTaskME(const AliAnalysisTaskME& obj);
23     AliAnalysisTaskME& operator=(const AliAnalysisTaskME& other);
24     virtual ~AliAnalysisTaskME() {;}
25     // Implementation of interface methods
26     virtual void ConnectInputData(Option_t *option = "");
27     virtual void CreateOutputObjects();
28     virtual void Exec(Option_t* option);
29     virtual void SetDebugLevel(Int_t level) {fDebug = level;}
30     virtual void Init() {;}
31     virtual void RequireFreshBuffer() {fFreshBufferOnly = kTRUE;}
32     // To be implemented by user
33     virtual void UserCreateOutputObjects()  {;}
34     virtual void UserExec(Option_t* /*option*/) {;}
35     // Helpers for adding branches to the AOD
36    virtual void AddAODBranch(const char* cname, void* addobj);
37 // Getters
38     virtual Int_t          DebugLevel()              {return fDebug;     }
39     virtual AliAODEvent*   GetEvent(Int_t iev);
40     virtual AliAODEvent*   AODEvent()                {return fOutputAOD; }
41     virtual TTree*         OutputTree()              {return fTreeA;     }
42     virtual Long64_t       Entry()                   {return fEntry;     }
43     virtual const char*    CurrentFileName();
44   protected:
45     Int_t                    fDebug;           //  Debug flag
46     Int_t                    fEntry;           //  Current entry in the chain
47     Bool_t                   fFreshBufferOnly; //  Flag for Exec call for fresh buffer only
48     AliMultiAODInputHandler* fInputHandler;    //! Input Handler
49     AliAODEvent*             fOutputAOD;       //! AOD out 
50     TTree*                   fTreeA;           //  AOD output Tree
51     ClassDef(AliAnalysisTaskME, 1); // Analysis task for standard jet analysis
52 };
53  
54 #endif