]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnAnalysisTaskSEBase.h
Package revised - New AnalysisTask's - Added more functions
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnAnalysisTaskSEBase.h
1 //\r
2 // Class AliRsnAnalysisTaskSEBase\r
3 //\r
4 // TODO\r
5 //\r
6 // authors: Martin Vala (martin.vala@cern.ch)\r
7 //          Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)\r
8 //\r
9 #ifndef ALIRSNANALYSISTASKSEBASE_H\r
10 #define ALIRSNANALYSISTASKSEBASE_H\r
11 \r
12 #include <TChain.h>\r
13 \r
14 #include "AliAnalysisTaskSE.h"\r
15 #include "AliRsnReader.h"\r
16 \r
17 class AliAnalysisManager;\r
18 class AliESDEvent;\r
19 class AliAODEvent;\r
20 class AliRsnEvent;\r
21 class AliMCEvent;\r
22 \r
23 #include "AliESDInputHandler.h"\r
24 #include "AliMCEventHandler.h"\r
25 #include "AliAODInputHandler.h"\r
26 \r
27 class AliRsnAnalysisTaskSEBase : public AliAnalysisTaskSE\r
28 {\r
29   public:\r
30     AliRsnAnalysisTaskSEBase(const char *name = "AliRsnAnalysisTaskSEBase");\r
31     AliRsnAnalysisTaskSEBase(const AliRsnAnalysisTaskSEBase& copy) :\r
32         AliAnalysisTaskSE(copy),fUseAutoHandler(kFALSE),fReader(),fPID(),fAnalysisMgr(0x0) {}\r
33     AliRsnAnalysisTaskSEBase& operator= (const AliRsnAnalysisTaskSEBase& /*copy*/) {return *this;}\r
34     virtual ~AliRsnAnalysisTaskSEBase() {/* Does nothing*/}\r
35 \r
36     enum EInputType\r
37     {\r
38         kAOD = 0,\r
39         kESD,\r
40         kESDMC,\r
41         kMC,\r
42         kRSN,\r
43         kLastIndex\r
44     };\r
45 \r
46     virtual void   InitIOVars();\r
47     virtual void   LocalInit();\r
48     virtual Bool_t Notify();\r
49     virtual void   ConnectInputData(Option_t *);\r
50     // Implementation of interface methods\r
51     virtual void   UserCreateOutputObjects() {;};\r
52     virtual void   UserExec(Option_t*) {;};\r
53     virtual void   Terminate(Option_t*) {;};\r
54 \r
55     void SetInputType(EInputType type, AliAnalysisManager* am, Bool_t autohandler = kFALSE, Short_t inputIndex = 0);\r
56     EInputType GetInputType(Short_t inputIndex = 0) { return fInputType[inputIndex]; }\r
57 \r
58     TChain* GetChain(const Int_t& index = 0) const { return fChain[index]; }\r
59 \r
60     AliRsnEvent *GetRSNEvent(Int_t index = 0) { return fRSN[index]; }\r
61 \r
62     void SetAnalysisMgr(AliAnalysisManager* theValue) { fAnalysisMgr = theValue; }\r
63     AliAnalysisManager* GetAnalysisMgr() const { return fAnalysisMgr; }\r
64 \r
65     AliESDInputHandler* GetESDHandler(const Int_t& theValue = 0) const { return fRsnESDEH[theValue]; }\r
66     AliMCEventHandler* GetMCHandler(const Int_t& theValue = 0) const { return fRsnMCEH[theValue]; }\r
67     AliAODInputHandler* GetAODHandler(const Int_t& theValue = 0) const { return fRsnAODEH[theValue]; }\r
68 \r
69     AliRsnReader *GetReader() { return &fReader; }\r
70     AliRsnPID *GetPID() { return &fPID;}\r
71 \r
72   protected:\r
73 \r
74     TChain       *fChain[2];          // input chain\r
75     EInputType    fInputType[2];      // input type\r
76     Bool_t        fUseAutoHandler;    // flag if should create handler\r
77 \r
78     AliRsnEvent   *fRSN[2];           // RSN (internal format) event\r
79     AliESDEvent   *fRsnESD[2];        // ESD event\r
80     AliMCEvent    *fRsnMC[2];         // ESD event\r
81     AliAODEvent   *fRsnAOD[2];        // AOD event\r
82 \r
83     AliESDInputHandler   *fRsnESDEH[2];  // ESD event handler\r
84     AliMCEventHandler    *fRsnMCEH[2];   // ESD event handler\r
85     AliAODInputHandler   *fRsnAODEH[2];  // AOD event handler\r
86 \r
87     AliRsnReader  fReader;               // Reader\r
88     AliRsnPID     fPID;                  // PID\r
89 \r
90     AliAnalysisManager *fAnalysisMgr; // pointer to current AnalysisMgr\r
91 \r
92     virtual void  UseAutoHandler(const Bool_t& theValue) {fUseAutoHandler = theValue;}\r
93 \r
94     virtual void  ConnectInputDataByInputType(EInputType type ,Short_t inputIndex=0);\r
95     virtual void  ConnectRSN(Short_t inputIndex);\r
96     virtual void  ConnectESD(Short_t inputIndex);\r
97     virtual void  ConnectESDMC(Short_t inputIndex);\r
98     virtual void  ConnectAOD(Short_t inputIndex);\r
99 \r
100     virtual AliRsnEvent*  GetRsnEventFromInputType(const Short_t &index=0);\r
101     virtual AliRsnEvent*  GetRsnFromAOD(const Short_t &index=0);\r
102     virtual AliRsnEvent*  GetRsnFromESD(const Short_t &index=0);\r
103     virtual AliRsnEvent*  GetRsnFromESDMC(const Short_t &index=0);\r
104     virtual AliRsnEvent*  GetRsnFromRSN(const Short_t &index=0);\r
105     virtual AliRsnEvent*  GetRsnFromMC(const Short_t &index=0);\r
106 \r
107     ClassDef(AliRsnAnalysisTaskSEBase, 1)\r
108 };\r
109 \r
110 #endif\r