]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnVAnalysisTask.h
Update
[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
26class AliRsnVAnalysisTask : public AliAnalysisTaskSE
27{
28 public:
29
30 AliRsnVAnalysisTask(const char *name = "AliRsnVAnalysisTask", Bool_t mcOnly = kFALSE);
31 AliRsnVAnalysisTask(const AliRsnVAnalysisTask& copy);
32 AliRsnVAnalysisTask& operator= (const AliRsnVAnalysisTask& /*copy*/) { return *this; }
33 virtual ~AliRsnVAnalysisTask() {/* Does nothing*/;}
34
35 // basic interface methods
36 virtual void LocalInit();
37 virtual Bool_t UserNotify();
38 virtual void ConnectInputData(Option_t *opt);
39 virtual void UserCreateOutputObjects();
40 virtual void UserExec(Option_t* opt);
41 virtual void UserExecMix(Option_t* option = "");
42 virtual void Terminate(Option_t* opt);
43
44 // customized methods (to be implemented in derived classes)
45 virtual void RsnUserCreateOutputObjects();
46 virtual void RsnUserExec(Option_t*);
47 virtual void RsnUserExecMix(Option_t*);
48 virtual void RsnTerminate(Option_t*);
49
50 // event pre-processing functions
51 virtual Bool_t EventProcess();
52
53 // getters
54 AliRsnEvent* GetRsnEvent(Int_t i=0) {return &fRsnEvent[i];}
55 AliRsnVATProcessInfo* GetInfo() {return &fTaskInfo;}
56
57 // setters
58 void SetMCOnly(Bool_t mcOnly = kTRUE) {fMCOnly = mcOnly;}
59 void SetLogType(AliLog::EType_t type, const char *classes = "") {fLogType = type; fLogClassesString = classes;}
60 void SetPrintInfoNumber(const Long64_t &num = 100) {fTaskInfo.SetPrintInfoNumber(num);}
61
62 void SetMixing(Bool_t doMix = kTRUE) {fIsMixing = doMix;}
63 Bool_t IsMixing() { return fIsMixing;}
0294bbe8 64
65 void UseMixingRange(Bool_t useMixRange = kTRUE) {fUseMixingRange = useMixRange;}
66 Bool_t IsUsingMixingRange() { return fUseMixingRange;}
1c7bc43c 67
68 protected:
69
70 AliLog::EType_t fLogType; // log type
71 TString fLogClassesString; // all classes string divided with ":"
72
73 AliESDEvent *fESDEvent[2]; // ESD event
74 AliMCEvent *fMCEvent[2]; // MC event
75 AliAODEvent *fAODEventIn[2]; // AOD event from input
76 AliAODEvent *fAODEventOut[2]; // AOD event from output from previous taks
77
78 Bool_t fIsMixing; // flag is using mixing
79 Bool_t fMCOnly; // use only MC information
80 AliRsnEvent fRsnEvent[2]; // interface to event for RSN package
81
82 TList *fInfoList; //! output list for informations
83 AliRsnVATProcessInfo fTaskInfo; // task info
84
85 AliMixInputEventHandler *fMixedEH; //! mixed event hadnler
0294bbe8 86 Bool_t fUseMixingRange; //
1c7bc43c 87
88 void SetupMixingEvents();
89 void SetDebugForAllClasses();
90
91 ClassDef(AliRsnVAnalysisTask, 1)
92};
93
94#endif