Added support for creating both standard AOD and several deltaAOD's in the same
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskSE.h
1 #ifndef ALIANALYSISTASKSE_H
2 #define ALIANALYSISTASKSE_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 AliAODHeader;
13 class AliAODTracklets;
14 class AliMCEvent;
15 class AliInputEventHandler;
16 class TTree;
17
18
19
20 class AliAnalysisTaskSE : public AliAnalysisTask
21 {
22  public:
23     AliAnalysisTaskSE();
24     AliAnalysisTaskSE(const char* name);
25     AliAnalysisTaskSE(const AliAnalysisTaskSE& obj);
26     AliAnalysisTaskSE& operator=(const AliAnalysisTaskSE& other);
27     virtual ~AliAnalysisTaskSE() {;}
28     // Implementation of interface methods
29     virtual void ConnectInputData(Option_t *option = "");
30     virtual void CreateOutputObjects();
31     virtual void Exec(Option_t* option);
32     virtual void SetDebugLevel(Int_t level) {fDebug = level;}
33     virtual void Init() {;}
34     // To be implemented by user
35     virtual void UserCreateOutputObjects()  {;}
36     virtual void UserExec(Option_t* /*option*/) {;}
37     // Helpers for adding branches to the AOD
38    virtual void AddAODBranch(const char* cname, void* addobj, const char *fname="");
39 // Getters
40     virtual Int_t        DebugLevel()  {return fDebug;     }
41     virtual AliVEvent*   InputEvent()  {return fInputEvent;}
42     virtual AliAODEvent* AODEvent()    {return fOutputAOD; }
43     virtual TTree*       OutputTree()  {return fTreeA;     }
44     virtual AliMCEvent*  MCEvent()     {return fMCEvent;   }
45     virtual Long64_t     Entry()       {return fEntry;     }
46     virtual const char*  CurrentFileName();
47     virtual Bool_t       IsStandardAOD() const;
48   protected:
49     Int_t                 fDebug;           //  Debug flag
50     Int_t                 fEntry;           //  Current entry in the chain
51     AliVEvent*            fInputEvent;      //! VEvent Input
52     AliInputEventHandler* fInputHandler;    //! Input Handler
53     AliAODEvent*          fOutputAOD;       //! AOD out 
54     AliMCEvent*           fMCEvent;         //! MC
55     TTree*                fTreeA;           //  AOD output Tree
56     static AliAODHeader*    fgAODHeader;        //! Header for replication
57     static TClonesArray*    fgAODTracks;        //! Tracks for replication
58     static TClonesArray*    fgAODVertices;      //! Vertices for replication
59     static TClonesArray*    fgAODV0s;           //! V0s for replication
60     static TClonesArray*    fgAODPMDClusters;   //! PMDClusters for replication
61     static TClonesArray*    fgAODJets;          //! Jets for replication
62     static TClonesArray*    fgAODFMDClusters;   //! FMDClusters for replication
63     static TClonesArray*    fgAODCaloClusters;  //! CaloClusters for replication
64     static AliAODTracklets* fgAODTracklets;     //! Tracklets for replication
65     ClassDef(AliAnalysisTaskSE, 1); // Analysis task for standard jet analysis
66 };
67  
68 #endif