- Reduce number of bins in order to decrease memory consumption
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / AliAnalysisTaskSEPicoV0Maker.h
1 #ifndef ALIANALYSISTASKSEPICOV0MAKER_H
2 #define ALIANALYSISTASKSEPICOV0MAKER_H
3
4 //*************************************************************************
5 // Class AliAnalysisTaskSEPicoV0Maker
6 // AliAnalysisTaskSE for V0s (K0 short, Lambda... ) filtering
7 // Author: X-M. Zhang, xmzhang@lbl.gov
8 //*************************************************************************
9
10 #include "AliAnalysisTaskSE.h"
11
12 class TClonesArray;
13
14 class AliAODv0;
15 class AliESDv0;
16 class AliAODEvent;
17 class AliESDEvent;
18 class AliCentrality;
19 class AliPIDResponse;
20 class AliAnalysisUtils;
21
22 class AliAnalysisTaskSEPicoV0Maker : public AliAnalysisTaskSE {
23
24  public :
25
26   AliAnalysisTaskSEPicoV0Maker();
27   AliAnalysisTaskSEPicoV0Maker(const char *name, Bool_t bIsMC);
28   virtual ~AliAnalysisTaskSEPicoV0Maker();
29
30   virtual void Init();
31   virtual void LocalInit() { Init(); }
32   virtual void UserCreateOutputObjects();
33   virtual void UserExec(Option_t *opt);
34   virtual void Terminate(Option_t *opt);
35   virtual void NotifyRun();
36 //=============================================================================
37
38   void SetTriggerMask(UInt_t w)       { fTriggerMask   = w; }
39   void SetCollitionType(UInt_t w)     { fCollisionType = w; }
40   void SetVertexContributorN(Int_t i) {  fCutMinEventVtxContr = i; }
41   void SetCentralityEstimator(TString s) { fCentEst = s; }
42
43   void SetRefitV0ESD()   { fIsRefitV0sESD  = kTRUE; }
44   void SetSkipFastOnly() { fIsSkipFastOnly = kTRUE; }
45   void SetDMPjetMC()     { fIsDPMjetMC     = kTRUE; }
46
47   void SetV0PtRange(Double_t  dMin, Double_t dMax) { fCutMinV0Pt  = dMin; fCutMaxV0Pt  = dMax; }
48   void SetV0RapRange(Double_t dMin, Double_t dMax) { fCutMinV0Rap = dMin; fCutMaxV0Rap = dMax; }
49
50   void SetDauPtRange(Double_t d) { fCutMinDauPt = d; }
51   void SetDauEtaRange(Double_t dMin, Double_t dMax) { fCutMinDauEta = dMin; fCutMaxDauEta = dMax; }
52 //=============================================================================
53
54  private :
55
56   AliAnalysisTaskSEPicoV0Maker(const AliAnalysisTaskSEPicoV0Maker &);
57   AliAnalysisTaskSEPicoV0Maker& operator=(const AliAnalysisTaskSEPicoV0Maker &);
58 //=============================================================================
59
60   void FillPicoV0s();
61
62   AliPicoV0RD* SelectV0CandidateRD(AliAODv0 const *pV0);
63   AliPicoV0RD* SelectV0CandidateRD(AliESDv0 const *pV0);
64
65   AliPicoV0MC* SelectV0CandidateMC(AliAODv0 const *pV0);
66   AliPicoV0MC* SelectV0CandidateMC(AliESDv0 const *pV0);
67
68   Bool_t IsEventNotAcpt();
69   Bool_t IsEventNotINEL();
70   Bool_t IsEventNotMBsa();
71
72   void FillHistogramsEH();
73   void FillHistogramsMC();
74
75   void CreateHistogramsEH();
76   void CreateHistogramsMC();
77
78   void InitAnalysis();
79   void InitParamsPP();
80   void InitParamsPA();
81   void InitParamsAP();
82   void InitParamsAA();
83 //=============================================================================
84
85   AliAODEvent      *fEventAOD;  //!
86   AliESDEvent      *fEventESD;  //!
87   AliCentrality    *fCentInfo;  //!
88   AliPIDResponse   *fRespoPID;  //!
89   AliAnalysisUtils *fAnaUtils;  //!
90
91   UInt_t fEventAcptMask;    //
92   Double_t fPrimaryVtx[3];  //!
93 //=============================================================================
94
95   UInt_t fTriggerMask;    //
96   UInt_t fCollisionType;  //
97
98   TString fCentEst;  //
99
100   Bool_t fIsAnaInfoMC;     //
101   Bool_t fIsRefitV0sESD;   //
102   Bool_t fIsSkipFastOnly;  //
103   Bool_t fIsDPMjetMC;      //
104 //=============================================================================
105
106   Double_t fRapidityShift;  //
107
108   Int_t   fCutMinEventVtxContr;  //
109   Float_t fCutMaxEventVzAbs;     //
110
111   Double_t fCutMinV0Pt;   //
112   Double_t fCutMaxV0Pt;   //
113   Double_t fCutMinV0Rap;  //
114   Double_t fCutMaxV0Rap;  //
115
116   Double_t fCutMinDauPt;   //
117   Double_t fCutMinDauEta;  //
118   Double_t fCutMaxDauEta;  //
119
120   Double_t fCutMaxV0Chi2;    //
121   Double_t fCutMinV0Radius;  //
122   Double_t fCutMaxV0Radius;  //
123
124   Double_t fCutMaxDausDCA;      //
125   Double_t fCutMinDauDCAtoPV;   //
126   Float_t  fCutMinDauXrowsTPC;  //
127   Double_t fCutMinDauXrowsOverFindableClusTPC;  //
128
129   Float_t  fCutMaxKshortSigmaTPC;  //
130   Double_t fCutMinKshortCosPA;     //
131   Double_t fCutMaxKshortCtau;      //
132   Double_t fCutMaxKshortArmFrac;   //
133   Double_t fCutMinKshortDeltaM;    //
134
135   Float_t  fCutMaxLambdaSigmaTPC;  //
136   Double_t fCutMinLambdaCosPA;     //
137   Double_t fCutMaxLambdaCtau;      //
138   Double_t fCutMaxLambdaArmFrac;   //
139   Double_t fCutMinLambdaDeletaM;   //
140 //=============================================================================
141
142   static const Double_t fgkMassPion;    //
143   static const Double_t fgkMassKshort;  //
144   static const Double_t fgkMassLambda;  //
145   static const Double_t fgkMassProton;  //
146 //=============================================================================
147
148   TClonesArray *fPicoV0sClArr;  //!
149
150   TList *fOutputListEH;  //!
151   TList *fOutputListMC;  //!
152
153   ClassDef(AliAnalysisTaskSEPicoV0Maker, 5)
154 };
155
156 #endif