2 // Class AliRsnAnalysisTaskSEBase
\r
6 // authors: Martin Vala (martin.vala@cern.ch)
\r
7 // Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
\r
9 #ifndef ALIRSNANALYSISTASKSEBASE_H
\r
10 #define ALIRSNANALYSISTASKSEBASE_H
\r
14 #include "AliAnalysisTaskSE.h"
\r
15 #include "AliRsnReader.h"
\r
17 class AliAnalysisManager;
\r
23 #include "AliESDInputHandler.h"
\r
24 #include "AliMCEventHandler.h"
\r
25 #include "AliAODInputHandler.h"
\r
27 class AliRsnAnalysisTaskSEBase : public AliAnalysisTaskSE
\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
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
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
58 TChain* GetChain(const Int_t& index = 0) const { return fChain[index]; }
\r
60 AliRsnEvent *GetRSNEvent(Int_t index = 0) { return fRSN[index]; }
\r
62 void SetAnalysisMgr(AliAnalysisManager* theValue) { fAnalysisMgr = theValue; }
\r
63 AliAnalysisManager* GetAnalysisMgr() const { return fAnalysisMgr; }
\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
69 AliRsnReader *GetReader() { return &fReader; }
\r
70 AliRsnPID *GetPID() { return &fPID;}
\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
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
83 AliESDInputHandler *fRsnESDEH[2]; // ESD event handler
\r
84 AliMCEventHandler *fRsnMCEH[2]; // ESD event handler
\r
85 AliAODInputHandler *fRsnAODEH[2]; // AOD event handler
\r
87 AliRsnReader fReader; // Reader
\r
88 AliRsnPID fPID; // PID
\r
90 AliAnalysisManager *fAnalysisMgr; // pointer to current AnalysisMgr
\r
92 virtual void UseAutoHandler(const Bool_t& theValue) {fUseAutoHandler = theValue;}
\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
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
107 ClassDef(AliRsnAnalysisTaskSEBase, 1)
\r