]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG2/RESONANCES/AliRsnAnalysisEffSE.h
Update TPCCEda to write output file in parts (to avoid too big files produced in...
[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 #include <TArrayI.h>
15 #include <TClonesArray.h>
16
17 #include "AliRsnVAnalysisTaskSE.h"
18 #include "AliRsnEvent.h"
19 #include "AliRsnMother.h"
20 #include "AliRsnDaughter.h"
21
22 class AliPID;
23
24 class AliCFContainer;
25
26 class AliRsnPairDef;
27 class AliRsnPIDIndex;
28 class AliRsnPIDDefESD;
29 class AliRsnCutSet;
30 class AliRsnCutManager;
31 class AliRsnValue;
32
33 class AliRsnAnalysisManager;
34 class AliRsnAnalysisEffSE : public AliRsnVAnalysisTaskSE
35 {
36
37   public:
38     AliRsnAnalysisEffSE(const char *name = "AliRsnAnalysisTaskEffSE");
39     AliRsnAnalysisEffSE(const AliRsnAnalysisEffSE& copy);
40     virtual ~AliRsnAnalysisEffSE() {;};
41
42     // Implement this
43     virtual void    RsnUserCreateOutputObjects();
44     virtual void    RsnUserExec(Option_t*);
45     virtual void    RsnTerminate(Option_t*);
46
47     // settings
48     AliRsnCutSet*   GetEventCuts() {return &fEventCuts;}
49     void            AddPairDef(AliRsnPairDef *pairDef);
50     void            AddStepMC(AliRsnCutManager *mgr);
51     void            AddStepESD(AliRsnCutManager *mgr);
52     void            AddAxis(AliRsnValue *axis);
53
54   private:
55
56     AliRsnAnalysisEffSE& operator=(const AliRsnAnalysisEffSE& /*copy*/) {return *this;}
57     void                 ProcessEventESD(AliRsnPairDef *pairDef);
58     void                 ProcessEventAOD(AliRsnPairDef *pairDef);
59     void                 FillContainer(AliCFContainer *cont, const TObjArray *stepList, AliRsnPairDef *pd, Int_t firstOutStep);
60     Int_t                FindESDtrack (Int_t label, AliESDEvent *esd, Bool_t rejectFakes);
61     TArrayI              FindESDtracks(Int_t label, AliESDEvent *esd);
62     Int_t                FindAODtrack (Int_t label, AliAODEvent *aod, Bool_t rejectFakes);
63     TArrayI              FindAODtracks(Int_t label, AliAODEvent *aod);
64
65     Bool_t                fUseITSSA;                // switch to use ITS standalone tracks
66     Bool_t                fUseGlobal;               // switch to use global tracks
67     TObjArray             fStepListMC;              // list of cut managers for all steps with MC
68     TObjArray             fStepListESD;             // list of cut managers for all steps with ESD
69     TClonesArray          fAxisList;                // list of axes of efficiency plots
70     TObjArray             fPairDefList;             // decay channels
71     TList                *fContainerList;           // list of CF containers
72     TList                *fOutList;                 // global output list
73     TArrayD               fVar;                     // list of variables of the container
74     AliRsnMother          fPair;                    // interface to pair
75     AliRsnDaughter        fDaughter[2];             // interface to tracks
76     AliRsnCutSet          fEventCuts;               // event cuts
77
78     ClassDef(AliRsnAnalysisEffSE, 1)
79 };
80
81 #endif