]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnAnalysisTrackEffSE.h
Modifications in analysis tasks for train
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnAnalysisTrackEffSE.h
1 //
2 // Class AliRsnAnalysisTrackEffSE
3 //
4 // Virtual Class derivated from AliRsnVAnalysisTaskSE which will be base class
5 // for all RSN SE tasks
6 //
7 // authors: Martin Vala (martin.vala@cern.ch)
8 //          Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it)
9 //
10 #ifndef ALIRSNANALYSISTRACKEFFSE_H
11 #define ALIRSNANALYSISTRACKEFFSE_H
12
13 #include <TArrayD.h>
14
15 #include "AliRsnVAnalysisTaskSE.h"
16
17 class AliPID;
18
19 class AliCFContainer;
20
21 class AliRsnPairDef;
22 class AliRsnPIDIndex;
23 class AliRsnPIDDefESD;
24 class AliRsnCutSet;
25 class AliRsnFunctionAxis;
26
27 class AliRsnAnalysisManager;
28 class AliRsnAnalysisTrackEffSE : public AliRsnVAnalysisTaskSE
29 {
30
31   public:
32     AliRsnAnalysisTrackEffSE(const char *name = "AliRsnAnalysisTaskEffSE");
33     AliRsnAnalysisTrackEffSE(const AliRsnAnalysisTrackEffSE& copy);
34     virtual ~AliRsnAnalysisTrackEffSE() {;};
35
36     // Implement this
37     virtual void    RsnUserCreateOutputObjects();
38     virtual void    RsnUserExec(Option_t*);
39     virtual void    RsnTerminate(Option_t*);
40
41     // settings
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);}
46
47   private:
48
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);
54
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
62
63     ClassDef(AliRsnAnalysisTrackEffSE, 1)
64 };
65
66 #endif