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