]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ANALYSIS/AliAnalysisTaskSE.h
040acf9d1905bd785905c1dfa76e6f2b4b1a33be
[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 AliAODCaloCells;
15 class AliMCEvent;
16 class AliInputEventHandler;
17 class AliAnalysisCuts;
18
19 class TTree;
20 class TList;
21
22
23 class AliAnalysisTaskSE : public AliAnalysisTask
24 {
25  public:
26     AliAnalysisTaskSE();
27     AliAnalysisTaskSE(const char* name);
28     AliAnalysisTaskSE(const AliAnalysisTaskSE& obj);
29     AliAnalysisTaskSE& operator=(const AliAnalysisTaskSE& other);
30     virtual ~AliAnalysisTaskSE() {;}
31     // Implementation of interface methods
32     virtual void   ConnectInputData(Option_t *option = "");
33     virtual void   CreateOutputObjects();
34     virtual void   Exec(Option_t* option);
35     virtual void   SetDebugLevel(Int_t level) {fDebug = level;}
36     virtual void   Init() {;}
37     virtual Bool_t Notify();
38     // To be implemented by user
39     virtual void   UserCreateOutputObjects()  {;}
40     virtual void   UserExec(Option_t* /*option*/) {;}
41     virtual Bool_t UserNotify() {return kTRUE;}
42     virtual void   NotifyRun()  {;}
43     
44     // Helpers for adding branches to the AOD
45     virtual void   AddAODBranch(const char* cname, void* addobj, const char *fname="");
46     // Event Selection
47     virtual void   SelectCollisionCandidates() {fSelectCollisions = kTRUE;}
48     static  void   SetCollisionSelector(AliAnalysisCuts* selector) {fgCollisionSelector = selector;}
49 // Getters
50     virtual Int_t        DebugLevel()  {return fDebug;     }
51     virtual AliVEvent*   InputEvent()  {return fInputEvent;}
52     virtual AliAODEvent* AODEvent()    {return fOutputAOD; }
53     virtual TTree*       OutputTree()  {return fTreeA;     }
54     virtual AliMCEvent*  MCEvent()     {return fMCEvent;   }
55     virtual Long64_t     Entry()       {return fEntry;     }
56     virtual const char*  CurrentFileName();
57     virtual Bool_t       IsStandardAOD() const;
58     virtual TList*       GetQAHistos()   const {return fHistosQA;}
59   protected:
60     Int_t                 fDebug;           //  Debug flag
61     // IO
62     Int_t                 fEntry;           //  Current entry in the chain
63     AliVEvent*            fInputEvent;      //! VEvent Input
64     AliInputEventHandler* fInputHandler;    //! Input Handler
65     AliAODEvent*          fOutputAOD;       //! AOD out 
66     AliMCEvent*           fMCEvent;         //! MC
67     TTree*                fTreeA;           //  AOD output Tree
68     Int_t                 fCurrentRunNumber;//! Current run number
69     // Output histos for QA
70     TList*                fHistosQA;        //! Output histos for QA
71     // Provisions for replication
72     static AliAODHeader*    fgAODHeader;        //! Header for replication
73     static TClonesArray*    fgAODTracks;        //! Tracks for replication
74     static TClonesArray*    fgAODVertices;      //! Vertices for replication
75     static TClonesArray*    fgAODV0s;           //! V0s for replication
76     static TClonesArray*    fgAODPMDClusters;   //! PMDClusters for replication
77     static TClonesArray*    fgAODJets;          //! Jets for replication
78     static TClonesArray*    fgAODFMDClusters;   //! FMDClusters for replication
79     static TClonesArray*    fgAODCaloClusters;  //! CaloClusters for replication
80     static TClonesArray*    fgAODMCParticles;   //! MC Particles for replicatio
81     static AliAODTracklets* fgAODTracklets;     //! Tracklets for replication
82     static AliAODCaloCells* fgAODEmcalCells;    //! Emcal Cell replication
83     static AliAODCaloCells* fgAODPhosCells;     //! Phos  Cell replication
84     // Event selection
85     static AliAnalysisCuts* fgCollisionSelector; //! Cuts to select collision events
86     static Bool_t           fgIsCollision;       //! Collision flag 
87     Bool_t                  fSelectCollisions;   //  Task processes collision candidates only
88      
89     ClassDef(AliAnalysisTaskSE, 2); // Analysis task for standard jet analysis
90 };
91  
92 #endif