]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/RESONANCES/AliRsnAnalysisTaskSEBase.h
Package revised - New AnalysisTask's - Added more functions
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnAnalysisTaskSEBase.h
CommitLineData
aec0ec32 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
17class AliAnalysisManager;\r
18class AliESDEvent;\r
19class AliAODEvent;\r
20class AliRsnEvent;\r
21class AliMCEvent;\r
22\r
23#include "AliESDInputHandler.h"\r
24#include "AliMCEventHandler.h"\r
25#include "AliAODInputHandler.h"\r
26\r
27class 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