]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnVAnalysisTaskSE.h
Update macros
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnVAnalysisTaskSE.h
1 //
2 // Class AliRsnVAnalysisTaskSE
3 //
4 // Virtual Class derivated from AliAnalysisTaskSE which will be base class
5 // for all RSN SE tasks
6 //
7 // authors: Martin Vala (martin.vala@cern.ch)
8 //          Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
9 //
10
11 #ifndef ALIRSNVANALYSISTASKSE_H
12 #define ALIRSNVANALYSISTASKSE_H
13
14 #include <TH1.h>
15
16 #include "AliAnalysisTaskSE.h"
17
18 #include "AliRsnEvent.h"
19 #include "AliRsnVATProcessInfo.h"
20
21 class AliESDEvent;
22 class AliAODEvent;
23 class AliMCEvent;
24
25 class AliRsnVAnalysisTaskSE : public AliAnalysisTaskSE
26 {
27   public:
28   
29     AliRsnVAnalysisTaskSE(const char *name = "AliRsnVAnalysisTaskSE", Bool_t mcOnly = kFALSE);
30     AliRsnVAnalysisTaskSE(const AliRsnVAnalysisTaskSE& copy);
31     AliRsnVAnalysisTaskSE& operator= (const AliRsnVAnalysisTaskSE& /*copy*/) { return *this; }
32     virtual ~AliRsnVAnalysisTaskSE() {/* 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    Terminate(Option_t* opt);
41
42     // customized methods (to be implemented in derived classes)
43     virtual void    RsnUserCreateOutputObjects();
44     virtual void    RsnUserExec(Option_t*);
45     virtual void    RsnTerminate(Option_t*);
46
47     // event pre-processing functions
48     virtual Bool_t  EventProcess();
49
50     // getters
51     AliRsnEvent*           GetRsnEvent() {return &fRsnEvent;}
52     AliRsnVATProcessInfo*  GetInfo()     {return &fTaskInfo;}
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);}
58
59   protected:
60
61     AliLog::EType_t         fLogType;          //  log type
62     TString                 fLogClassesString; //  all classes string divided with ":"
63
64     AliESDEvent            *fESDEvent;         //  ESD event
65     AliMCEvent             *fMCEvent;          //  MC event
66     AliAODEvent            *fAODEventIn;       //  AOD event from input
67     AliAODEvent            *fAODEventOut;      //  AOD event from output from previous taks
68
69     Bool_t                  fMCOnly;           //  use only MC information
70     AliRsnEvent             fRsnEvent;         //  interface to event for RSN package
71
72     TList                  *fInfoList;         //! output list for informations
73     AliRsnVATProcessInfo    fTaskInfo;         //  task info
74
75     void                    SetDebugForAllClasses();
76
77     ClassDef(AliRsnVAnalysisTaskSE, 1)
78 };
79
80 #endif