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