2 // Class AliRsnAnalysisTrackEffSE
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 ALIRSNANALYSISTRACKEFFSE_H
11 #define ALIRSNANALYSISTRACKEFFSE_H
15 #include "AliRsnVAnalysisTaskSE.h"
23 class AliRsnPIDDefESD;
25 class AliRsnFunctionAxis;
27 class AliRsnAnalysisManager;
28 class AliRsnAnalysisTrackEffSE : public AliRsnVAnalysisTaskSE
32 AliRsnAnalysisTrackEffSE(const char *name = "AliRsnAnalysisTaskEffSE");
33 AliRsnAnalysisTrackEffSE(const AliRsnAnalysisTrackEffSE& copy);
34 virtual ~AliRsnAnalysisTrackEffSE() {;};
37 virtual void RsnUserCreateOutputObjects();
38 virtual void RsnUserExec(Option_t*);
39 virtual void RsnTerminate(Option_t*);
42 void SetEventCuts(AliRsnCutSet *const cuts) {fEventCuts = cuts;}
43 void AddStepMC(AliRsnCutSet *cuts) {fStepListMC.AddLast(cuts);}
44 void AddStepESD(AliRsnCutSet *cuts) {fStepListESD.AddLast(cuts);}
45 void AddAxis(AliRsnFunctionAxis *axis) {fAxisList.AddLast(axis);}
49 AliRsnAnalysisTrackEffSE& operator=(const AliRsnAnalysisTrackEffSE& /*copy*/) {return *this;}
50 void ProcessEventMC();
51 void ProcessEventESD();
52 Bool_t PassedAllCutsMC();
53 void FillContainer(const TObjArray *stepList, Int_t firstOutStep);
55 AliRsnCutSet *fEventCuts; // event cuts
56 TObjArray fStepListMC; // list of cut steps with MC
57 TObjArray fStepListESD; // list of cut steps with ESD
58 TObjArray fAxisList; // list of axes of efficiency plots
59 AliCFContainer *fContainer[AliPID::kSPECIES+1]; // one container per particle type + 1 global
60 TArrayD fVar; // list of variables of the container
61 AliRsnDaughter fDaughter; // interface to track
63 ClassDef(AliRsnAnalysisTrackEffSE, 1)