]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnVAnalysisTaskSE.h
Upgrades for setting up a working version of ME task
[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 #ifndef ALIRSNVANALYSISTASKSE_H
11 #define ALIRSNVANALYSISTASKSE_H
12
13 #include <TH1.h>
14
15 #include "AliLog.h"
16
17 #include "AliAnalysisTaskSE.h"
18
19 #include "AliRsnEvent.h"
20 #include "AliRsnPIDIndex.h"
21 #include "AliRsnVATProcessInfo.h"
22
23 class AliESDEvent;
24 class AliAODEvent;
25 class AliMCEvent;
26
27 class AliRsnVAnalysisTaskSE : public AliAnalysisTaskSE
28 {
29   public:
30     enum {
31       kMaxNumberOfOutputs=10
32     };
33
34     AliRsnVAnalysisTaskSE(const char *name = "AliRsnVAnalysisTaskSE", Int_t numOfOutputs = 1, Bool_t mcOnly = kFALSE);
35     AliRsnVAnalysisTaskSE(const AliRsnVAnalysisTaskSE& copy);
36     AliRsnVAnalysisTaskSE& operator= (const AliRsnVAnalysisTaskSE& /*copy*/) { return *this; }
37     virtual ~AliRsnVAnalysisTaskSE() {/* Does nothing*/;}
38
39     virtual void    LocalInit();
40     virtual Bool_t  Notify();
41     virtual void    ConnectInputData(Option_t *opt);
42     // Implementation of interface methods
43     virtual void    UserCreateOutputObjects();
44     virtual void    UserExec(Option_t* opt);
45     virtual void    Terminate(Option_t* opt);
46
47     // Implement this
48     virtual void    RsnUserCreateOutputObjects();
49     virtual void    RsnUserExec(Option_t*);
50     virtual void    RsnTerminate(Option_t*);
51
52     virtual void    FillInfo();
53
54     // Prior probs
55     AliRsnPIDIndex* GetPIDIndex() {return &fRsnPIDIndex;}
56     AliRsnEvent*    GetRsnEvent() {return &fRsnEvent;}
57     void            SetPriorProbability(AliPID::EParticleType type, Double_t p) {fRsnEvent.SetPriorProbability(type, p);}
58     void            DumpPriors() {fRsnEvent.DumpPriors();}
59     void            GetPriorProbability(Double_t *out) const {fRsnEvent.GetPriorProbability(out);}
60
61     void SetMCOnly(Bool_t mcOnly = kTRUE) {fMCOnly = mcOnly;}
62     void SetLogType(AliLog::EType_t type, TString allClasses = "");
63     void SetPrintInfoNumber(const Long64_t &num = 100) { fTaskInfo.SetPrintInfoNumber(num); }
64
65   protected:
66
67     AliLog::EType_t         fLogType;         // log type
68     TString                 fLogClassesString;// all classes string divided with ":"
69
70     AliESDEvent            *fESDEvent;        // ESD event
71     AliMCEvent             *fMCEvent;         // MC event
72     AliAODEvent            *fAODEventIn;      // AOD event from input
73     AliAODEvent            *fAODEventOut;     // AOD event from output from previous taks
74
75     Bool_t                  fMCOnly;          // use only MC information
76     AliRsnEvent             fRsnEvent;        // interface to event for RSN package
77     AliRsnPIDIndex          fRsnPIDIndex;     // PID method sorter
78
79     Int_t                   fNumberOfOutputs; // number of outputs
80     TList                  *fOutList[kMaxNumberOfOutputs+1]; //!
81     AliRsnVATProcessInfo    fTaskInfo;        // task info
82
83     void                    SetDebugForAllClasses();
84
85     ClassDef(AliRsnVAnalysisTaskSE, 1)
86 };
87
88 #endif