]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnVAnalysisTask.h
Fix of a bug that arises when adding more than 1 function to AliRsnPairFunctions
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnVAnalysisTask.h
CommitLineData
1c7bc43c 1//
2// Class AliRsnVAnalysisTask
3//
4// Virtual Class derivated from AliAnalysisTaskSE which will be base class
5// for all RSN Multi tasks
6//
7// authors: Martin Vala (martin.vala@cern.ch)
8// Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
9//
10
11#ifndef ALIRSNVANALYSISTASK_H
12#define ALIRSNVANALYSISTASK_H
13
14#include <TH1.h>
15
16#include "AliAnalysisTaskSE.h"
17
18#include "AliRsnEvent.h"
19#include "AliRsnVATProcessInfo.h"
20#include <AliMixInputEventHandler.h>
21
22class AliESDEvent;
23class AliAODEvent;
24class AliMCEvent;
25
2a1c7696 26class AliRsnVAnalysisTask : public AliAnalysisTaskSE {
27public:
28
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*/;}
33
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);
42
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*);
48
49 // event pre-processing functions
50 virtual Bool_t EventProcess();
51
52 // getters
53 AliRsnEvent* GetRsnEvent(Int_t i = 0) {return &fRsnEvent[i];}
54 AliRsnVATProcessInfo* GetInfo() {return &fTaskInfo;}
55
56 // setters
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);}
60
61 void SetMixing(Bool_t doMix = kTRUE) {fIsMixing = doMix;}
62 Bool_t IsMixing() { return fIsMixing;}
63
64 void UseMixingRange(Bool_t useMixRange = kTRUE) {fUseMixingRange = useMixRange;}
65 Bool_t IsUsingMixingRange() { return fUseMixingRange;}
66
67protected:
68
69 AliLog::EType_t fLogType; // log type
70 TString fLogClassesString; // all classes string divided with ":"
71
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
76
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
80
81 TList *fInfoList; //! output list for informations
82 AliRsnVATProcessInfo fTaskInfo; // task info
83
84 AliMixInputEventHandler *fMixedEH; //! mixed event hadnler
85 Bool_t fUseMixingRange; //
86
87 void SetupMixingEvents();
88 void SetDebugForAllClasses();
89
90 ClassDef(AliRsnVAnalysisTask, 1)
1c7bc43c 91};
92
93#endif