2 // Class AliRsnAnalysisEffSE
4 // Virtual Class derivated from AliRsnVAnalysisTaskSE which will be base class
5 // for all RSN SE tasks
7 // authors: Martin Vala (martin.vala@cern.ch)
8 // Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
10 #ifndef ALIRSNANALYSISEFFSE_H
11 #define ALIRSNANALYSISEFFSE_H
15 #include "AliRsnVAnalysisTaskSE.h"
16 #include "AliRsnEvent.h"
17 #include "AliRsnPairParticle.h"
18 #include "AliRsnPIDIndex.h"
26 class AliRsnPIDDefESD;
29 class AliRsnFunctionAxis;
31 class AliRsnAnalysisManager;
32 class AliRsnAnalysisEffSE : public AliRsnVAnalysisTaskSE
36 AliRsnAnalysisEffSE(const char *name = "AliRsnAnalysisTaskEffSE");
37 AliRsnAnalysisEffSE(const AliRsnAnalysisEffSE& copy);
38 virtual ~AliRsnAnalysisEffSE() {;};
41 virtual void RsnUserCreateOutputObjects();
42 virtual void RsnUserExec(Option_t*);
43 virtual void RsnTerminate(Option_t*);
46 void SetEventCuts(AliRsnCutSet *const cuts) {fEventCuts = cuts;}
47 void AddPairDef(AliRsnPairDef *pairDef);
48 void AddStepMC(AliRsnCutMgr *mgr) {fStepListMC.AddLast(mgr);}
49 void AddStepESD(AliRsnCutMgr *mgr) {fStepListESD.AddLast(mgr);}
50 void AddAxis(AliRsnFunctionAxis *axis) {fAxisList.AddLast(axis);}
54 AliRsnAnalysisEffSE& operator=(const AliRsnAnalysisEffSE& /*copy*/) {return *this;}
55 void ProcessEventMC(AliRsnPairDef *pairDef);
56 void ProcessEventESD(AliRsnPairDef *pairDef);
57 void FillContainer(AliCFContainer *cont, const TObjArray *stepList, AliRsnPairDef *pd, Int_t firstOutStep);
59 AliRsnCutSet *fEventCuts; // event cuts
60 TObjArray fStepListMC; // list of cut managers for all steps with MC
61 TObjArray fStepListESD; // list of cut managers for all steps with ESD
62 TObjArray fAxisList; // list of axes of efficiency plots
63 TObjArray fPairDefList; // decay channels
64 TList *fContainerList; // list of CF containers
65 TArrayD fVar; // list of variables of the container
66 AliRsnPairParticle fPair; // interface to pair
67 AliRsnDaughter fDaughter[2]; // interface to tracks
69 ClassDef(AliRsnAnalysisEffSE, 1)