1 #ifndef ALIANALYSISTASKSE_H
2 #define ALIANALYSISTASKSE_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
9 #include "AliAnalysisTask.h"
10 #include "AliVEvent.h"
14 class AliAODTracklets;
15 class AliAODCaloCells;
17 class AliMCEventHandler;
18 class AliInputEventHandler;
19 class AliMultiInputEventHandler;
20 class AliAnalysisCuts;
28 class AliAnalysisTaskSE : public AliAnalysisTask
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 void ConnectInputData(Option_t *option = "");
38 virtual void CreateOutputObjects();
39 virtual void Exec(Option_t* option);
40 virtual void SetDebugLevel(Int_t level) {fDebug = level;}
41 virtual void Init() {;}
42 virtual Bool_t Notify();
43 // To be implemented by user
44 virtual void UserCreateOutputObjects() {;}
45 virtual void UserExec(Option_t* /*option*/) {;}
46 virtual Bool_t UserNotify() {return kTRUE;}
47 virtual void NotifyRun() {;}
49 // Helpers for adding branches to the AOD
50 virtual void AddAODBranch(const char* cname, void* addobj, const char *fname="");
52 virtual void SelectCollisionCandidates(UInt_t offlineTriggerMask = AliVEvent::kMB) {fOfflineTriggerMask = offlineTriggerMask;}
53 // Loading the declared input branches
54 void LoadBranches() const;
56 virtual Int_t DebugLevel() {return fDebug; }
57 virtual AliVEvent* InputEvent() {return fInputEvent;}
58 virtual AliESDfriend* ESDfriend() {return fESDfriend; }
59 virtual AliAODEvent* AODEvent() {return fOutputAOD; }
60 virtual TTree* OutputTree() {return fTreeA; }
61 virtual AliMCEvent* MCEvent() {return fMCEvent; }
62 virtual Long64_t Entry() {return fEntry; }
63 virtual const AliEventTag *EventTag() const;
64 virtual const char* CurrentFileName();
65 virtual Bool_t IsStandardAOD() const;
66 virtual TList* GetQAHistos() const {return fHistosQA;}
67 virtual Bool_t IsEventInBinZero() { return kFALSE;}
69 void ConnectMultiHandler();
70 void DisconnectMultiHandler();
73 Int_t fDebug; // Debug flag
75 Int_t fEntry; // Current entry in the chain
76 AliVEvent* fInputEvent; //! VEvent Input
77 AliESDfriend* fESDfriend; //! ESD friend
78 AliInputEventHandler* fInputHandler; //! Input Handler
79 AliAODEvent* fOutputAOD; //! AOD out
80 AliMCEvent* fMCEvent; //! MC
81 TTree* fTreeA; // AOD output Tree
82 Int_t fCurrentRunNumber;//! Current run number
83 // Output histos for QA
84 TList* fHistosQA; //! Output histos for QA
85 // Provisions for replication
86 static AliAODHeader* fgAODHeader; //! Header for replication
87 static TClonesArray* fgAODTracks; //! Tracks for replication
88 static TClonesArray* fgAODVertices; //! Vertices for replication
89 static TClonesArray* fgAODV0s; //! V0s for replication
90 static TClonesArray* fgAODPMDClusters; //! PMDClusters for replication
91 static TClonesArray* fgAODJets; //! Jets for replication
92 static TClonesArray* fgAODFMDClusters; //! FMDClusters for replication
93 static TClonesArray* fgAODCaloClusters; //! CaloClusters for replication
94 static TClonesArray* fgAODMCParticles; //! MC Particles for replicatio
95 static AliAODTracklets* fgAODTracklets; //! Tracklets for replication
96 static AliAODCaloCells* fgAODEmcalCells; //! Emcal Cell replication
97 static AliAODCaloCells* fgAODPhosCells; //! Phos Cell replication
98 static TClonesArray* fgAODDimuons; //! Dimuons replication
100 UInt_t fOfflineTriggerMask; // Task processes collision candidates only
102 AliMultiInputEventHandler *fMultiInputHandler; //! pointer to multihandler
103 AliMCEventHandler *fMCEventHandler; //! pointer to MCEventHandler
104 ClassDef(AliAnalysisTaskSE, 4); // Analysis task for standard jet analysis