]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnAnalysisEffSE.h
Modifications in analysis tasks for train
[u/mrichter/AliRoot.git] / PWG2 / RESONANCES / AliRsnAnalysisEffSE.h
1 //
2 // Class AliRsnAnalysisEffSE
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 ALIRSNANALYSISEFFSE_H
11 #define ALIRSNANALYSISEFFSE_H
12
13 #include <TArrayD.h>
14
15 #include "AliRsnVAnalysisTaskSE.h"
16 #include "AliRsnEvent.h"
17 #include "AliRsnPairParticle.h"
18 #include "AliRsnPIDIndex.h"
19
20 class AliPID;
21
22 class AliCFContainer;
23
24 class AliRsnPairDef;
25 class AliRsnPIDIndex;
26 class AliRsnPIDDefESD;
27 class AliRsnCutSet;
28 class AliRsnCutMgr;
29 class AliRsnFunctionAxis;
30
31 class AliRsnAnalysisManager;
32 class AliRsnAnalysisEffSE : public AliRsnVAnalysisTaskSE
33 {
34
35   public:
36     AliRsnAnalysisEffSE(const char *name = "AliRsnAnalysisTaskEffSE");
37     AliRsnAnalysisEffSE(const AliRsnAnalysisEffSE& copy);
38     virtual ~AliRsnAnalysisEffSE() {;};
39
40     // Implement this
41     virtual void    RsnUserCreateOutputObjects();
42     virtual void    RsnUserExec(Option_t*);
43     virtual void    RsnTerminate(Option_t*);
44
45     // settings
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);}
51
52   private:
53
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);
58
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
68
69     ClassDef(AliRsnAnalysisEffSE, 1)
70 };
71
72 #endif