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