2 // Class AliRsnVAnalysisTask
4 // Virtual Class derivated from AliAnalysisTaskSE which will be base class
5 // for all RSN Multi tasks
7 // authors: Martin Vala (martin.vala@cern.ch)
8 // Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
11 #ifndef ALIRSNVANALYSISTASK_H
12 #define ALIRSNVANALYSISTASK_H
16 #include "AliAnalysisTaskSE.h"
18 #include "AliRsnEvent.h"
19 #include "AliRsnVATProcessInfo.h"
20 #include <AliMixInputEventHandler.h>
26 class AliRsnVAnalysisTask : public AliAnalysisTaskSE {
29 AliRsnVAnalysisTask(const char *name = "AliRsnVAnalysisTask", Bool_t mcOnly = kFALSE);
30 AliRsnVAnalysisTask(const AliRsnVAnalysisTask& copy);
31 AliRsnVAnalysisTask& operator= (const AliRsnVAnalysisTask& /*copy*/) { return *this; }
32 virtual ~AliRsnVAnalysisTask() {/* Does nothing*/;}
34 // basic interface methods
35 virtual void LocalInit();
36 virtual Bool_t UserNotify();
37 virtual void ConnectInputData(Option_t *opt);
38 virtual void UserCreateOutputObjects();
39 virtual void UserExec(Option_t* opt);
40 virtual void UserExecMix(Option_t* option = "");
41 virtual void Terminate(Option_t* opt);
43 // customized methods (to be implemented in derived classes)
44 virtual void RsnUserCreateOutputObjects();
45 virtual void RsnUserExec(Option_t*);
46 virtual void RsnUserExecMix(Option_t*);
47 virtual void RsnTerminate(Option_t*);
49 // event pre-processing functions
50 virtual Bool_t EventProcess();
53 AliRsnEvent* GetRsnEvent(Int_t i = 0) {return &fRsnEvent[i];}
54 AliRsnVATProcessInfo* GetInfo() {return &fTaskInfo;}
57 void SetMCOnly(Bool_t mcOnly = kTRUE) {fMCOnly = mcOnly;}
58 void SetLogType(AliLog::EType_t type, const char *classes = "") {fLogType = type; fLogClassesString = classes;}
59 void SetPrintInfoNumber(const Long64_t &num = 100) {fTaskInfo.SetPrintInfoNumber(num);}
61 void SetMixing(Bool_t doMix = kTRUE) {fIsMixing = doMix;}
62 Bool_t IsMixing() { return fIsMixing;}
64 void UseMixingRange(Bool_t useMixRange = kTRUE) {fUseMixingRange = useMixRange;}
65 Bool_t IsUsingMixingRange() { return fUseMixingRange;}
69 AliLog::EType_t fLogType; // log type
70 TString fLogClassesString; // all classes string divided with ":"
72 AliESDEvent *fESDEvent[2]; // ESD event
73 AliMCEvent *fMCEvent[2]; // MC event
74 AliAODEvent *fAODEventIn[2]; // AOD event from input
75 AliAODEvent *fAODEventOut[2]; // AOD event from output from previous taks
77 Bool_t fIsMixing; // flag is using mixing
78 Bool_t fMCOnly; // use only MC information
79 AliRsnEvent fRsnEvent[2]; // interface to event for RSN package
81 TList *fInfoList; //! output list for informations
82 AliRsnVATProcessInfo fTaskInfo; // task info
84 AliMixInputEventHandler *fMixedEH; //! mixed event hadnler
85 Bool_t fUseMixingRange; //
87 void SetupMixingEvents();
88 void SetDebugForAllClasses();
90 ClassDef(AliRsnVAnalysisTask, 1)