AliPhysics  9fe175b (9fe175b)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnalysisVertexingHF.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISVERTEXINGHF_H
2 #define ALIANALYSISVERTEXINGHF_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /* $Id$ */
7 
8 //-------------------------------------------------------------------------
14 //-------------------------------------------------------------------------
15 
16 #include <TNamed.h>
17 #include <TList.h>
18 
19 #include "AliAnalysisFilter.h"
20 #include "AliESDtrackCuts.h"
21 
22 class AliPIDResponse;
23 class AliESDVertex;
24 class AliAODRecoDecay;
25 class AliAODRecoDecayHF;
30 class AliAnalysisFilter;
31 class AliRDHFCuts;
32 class AliRDHFCutsD0toKpi;
37 class AliRDHFCutsLctoV0;
40 class AliESDtrack;
41 class AliVEvent;
42 class AliAODVertex;
43 class AliVertexerTracks;
44 class AliESDv0;
45 class AliAODv0;
46 
47 //-----------------------------------------------------------------------------
48 class AliAnalysisVertexingHF : public TNamed {
49  public:
50  //
54  virtual ~AliAnalysisVertexingHF();
55 
56  void FindCandidates(AliVEvent *event,
57  TClonesArray *aodVerticesHFTClArr,
58  TClonesArray *aodD0toKpiTClArr,
59  TClonesArray *aodJPSItoEleTClArr,
60  TClonesArray *aodCharm3ProngTClArr,
61  TClonesArray *aodCharm4ProngTClArr,
62  TClonesArray *aodDstarTClArr,
63  TClonesArray *aodCascadesTClArr,
64  TClonesArray *aodLikeSign2ProngTClArr,
65  TClonesArray *aodLikeSign3ProngTClArr);
66 
67  TList* FillListOfCuts();
68  void FixReferences(AliAODEvent *aod);
69  Bool_t FillRecoCand(AliVEvent *event,AliAODRecoDecayHF3Prong *rd3);
70  Bool_t FillRecoCand(AliVEvent *event,AliAODRecoDecayHF2Prong *rd2);
71  Bool_t FillRecoCasc(AliVEvent *event,AliAODRecoCascadeHF *rc,Bool_t isDStar);
72  void PrintStatus() const;
73  void SetSecVtxWithKF() { fSecVtxWithKF=kTRUE; }
74  void SetD0toKpiOn() { fD0toKpi=kTRUE; }
75  void SetD0toKpiOff() { fD0toKpi=kFALSE; }
76  void SetJPSItoEleOn() { fJPSItoEle=kTRUE; }
77  void SetJPSItoEleOff() { fJPSItoEle=kFALSE; }
78  void Set3ProngOn() { f3Prong=kTRUE; }
79  void Set3ProngOff() { f3Prong=kFALSE; }
80  void Set4ProngOn() { f4Prong=kTRUE; }
81  void Set4ProngOff() { f4Prong=kFALSE; }
82  void SetDstarOn() { fDstar=kTRUE; }
83  void SetDstarOff() { fDstar=kFALSE; }
84  void SetCascadesOn() { fCascades=kTRUE; }
85  void SetCascadesOff() { fCascades=kFALSE; }
86  void SetLikeSignOn() { fLikeSign=kTRUE; }
87  void SetLikeSignOff() {fLikeSign=kFALSE; fLikeSign3prong=kFALSE;}
90  void SetMixEventOn() { fMixEvent=kTRUE; }
91  void SetMixEventOff() { fMixEvent=kFALSE; }
92  void SetInputAOD() { fInputAOD=kTRUE; }
93  void SetMakeReducedRHF(Bool_t makeredAOD=kFALSE) { fMakeReducedRHF=makeredAOD; }
94  Bool_t GetD0toKpi() const { return fD0toKpi; }
95  Bool_t GetJPSItoEle() const { return fJPSItoEle; }
96  Bool_t Get3Prong() const { return f3Prong; }
97  Bool_t Get4Prong() const { return f4Prong; }
98  Bool_t GetDstar() const { return fDstar; }
99  Bool_t GetCascades() const { return fCascades; }
100  Bool_t GetLikeSign() const { return fLikeSign; }
101  Bool_t GetLikeSign3prong() const { return fLikeSign3prong; }
102  Bool_t GetMixEvent() const { return fMixEvent; }
103  Bool_t GetInputAOD() const { return fInputAOD; }
105  Bool_t GetRmTrksFromPrimVtx() const {return fRmTrksFromPrimVtx;}
106  Bool_t GetMakeReducedRHF() const {return fMakeReducedRHF;}
107  void SetFindVertexForDstar(Bool_t vtx=kTRUE) { fFindVertexForDstar=vtx; }
108  void SetFindVertexForCascades(Bool_t vtx=kTRUE) { fFindVertexForCascades=vtx; }
109 
112 
119  void SetTrackFilter(AliAnalysisFilter* trackF) {
121  TList *l = (TList*)trackF->GetCuts();
122  AliESDtrackCuts *tcuts = (AliESDtrackCuts*)l->FindObject("AliESDtrackCuts");
123  if(tcuts->GetFlagCutTOFdistance()) tcuts->SetFlagCutTOFdistance(kFALSE);
124  fTrackFilter = trackF;
125  }
126  void SetTrackFilter2prongPbCentral(Float_t maxPercentile, AliAnalysisFilter* trackF) {
128  TList *l = (TList*)trackF->GetCuts();
129  AliESDtrackCuts *tcuts = (AliESDtrackCuts*)l->FindObject("AliESDtrackCuts");
130  if(tcuts->GetFlagCutTOFdistance()) tcuts->SetFlagCutTOFdistance(kFALSE);
131  fTrackFilter2prongCentral = trackF;
132  fMaxCentPercentileForTightCuts=maxPercentile;
133  }
134  void SetTrackFilter3prongPbCentral(Float_t maxPercentile, AliAnalysisFilter* trackF) {
136  TList *l = (TList*)trackF->GetCuts();
137  AliESDtrackCuts *tcuts = (AliESDtrackCuts*)l->FindObject("AliESDtrackCuts");
138  if(tcuts->GetFlagCutTOFdistance()) tcuts->SetFlagCutTOFdistance(kFALSE);
139  fTrackFilter3prongCentral = trackF;
140  fMaxCentPercentileForTightCuts=maxPercentile;
141  }
142  void SetTrackFilterSoftPi(AliAnalysisFilter* trackF) {
144  TList *l = (TList*)trackF->GetCuts();
145  AliESDtrackCuts *tcuts = (AliESDtrackCuts*)l->FindObject("AliESDtrackCuts");
146  if(tcuts->GetFlagCutTOFdistance()) tcuts->SetFlagCutTOFdistance(kFALSE);
147  fTrackFilterSoftPi = trackF;
148  }
149  void SetTrackFilterBachelor(AliAnalysisFilter* trackF) {
151  TList *l = (TList*)trackF->GetCuts();
152  AliESDtrackCuts *tcuts = (AliESDtrackCuts*)l->FindObject("AliESDtrackCuts");
153  if(tcuts->GetFlagCutTOFdistance()) tcuts->SetFlagCutTOFdistance(kFALSE);
154  fTrackFilterBachelor = trackF;
155  }
156  AliAnalysisFilter* GetTrackFilter() const { return fTrackFilter; }
157  AliAnalysisFilter* GetTrackFilterSoftPi() const { return fTrackFilterSoftPi; }
175 
176  void SetMasses();
177  Bool_t CheckCutsConsistency();
178 
179  void SetUseTPCPID(Bool_t opt=kTRUE){fUseTPCPID=opt;}
180  void SetUseTOFPID(Bool_t opt=kTRUE){fUseTOFPID=opt;}
181  void SetUseTPCPIDOnlyIfNoTOF(Bool_t opt=kTRUE){fUseTPCPIDOnlyIfNoTOF=opt;}
182  void SetMaxMomForTPCPid(Double_t mom){fMaxMomForTPCPid=mom;}
183  void SetUsePidTag(Bool_t opt=kTRUE){fUsePidTag=opt;}
184  void SetnSigmaTPCforPionSel(Double_t nsl, Double_t nsh){
186  void SetnSigmaTOFforPionSel(Double_t nsl, Double_t nsh){
188  void SetnSigmaTPCforKaonSel(Double_t nsl, Double_t nsh){
190  void SetnSigmaTOFforKaonSel(Double_t nsl, Double_t nsh){
192  void SetnSigmaTPCforProtonSel(Double_t nsl, Double_t nsh){
194  void SetnSigmaTOFforProtonSel(Double_t nsl, Double_t nsh){
196 
197  void SetUseKaonPIDfor3Prong(Bool_t opt=kTRUE){fUseKaonPIDfor3Prong=opt;}
201  void SetUseKaonPIDforDs(Bool_t opt=kTRUE){fUseKaonPIDforDs=opt;}
202 
205 
206 
207 
208  void GetnSigmaTOFforPionSel(Double_t& minnsigma, Double_t& maxnsigma) const {
209  minnsigma=fnSigmaTOFPionLow;maxnsigma=fnSigmaTOFPionHi;
210  }
211  void GetnSigmaTPCforPionSel(Double_t& minnsigma, Double_t& maxnsigma) const {
212  minnsigma=fnSigmaTPCPionLow;maxnsigma=fnSigmaTPCPionHi;
213  }
214  void GetnSigmaTOFforKaonSel(Double_t& minnsigma, Double_t& maxnsigma) const {
215  minnsigma=fnSigmaTOFKaonLow;maxnsigma=fnSigmaTOFKaonHi;
216  }
217  void GetnSigmaTPCforKaonSel(Double_t& minnsigma, Double_t& maxnsigma) const {
218  minnsigma=fnSigmaTPCKaonLow;maxnsigma=fnSigmaTPCKaonHi;
219  }
220  void GetnSigmaTOFforProtonSel(Double_t& minnsigma, Double_t& maxnsigma) const {
221  minnsigma=fnSigmaTOFProtonLow;maxnsigma=fnSigmaTOFProtonHi;
222  }
223  void GetnSigmaTPCforProtonSel(Double_t& minnsigma, Double_t& maxnsigma) const {
224  minnsigma=fnSigmaTPCProtonLow;maxnsigma=fnSigmaTPCProtonHi;
225  }
226 
227  Bool_t GetUseTPCPID() const {return fUseTPCPID;}
228  Bool_t GetUseTOFPID() const {return fUseTOFPID;}
230  Double_t GetMaxMomForTPCPid() const {return fMaxMomForTPCPid;}
231 
233  Int_t GetUseProtonPIDforLambdaC() const {return fUsePIDforLc;}
234  Bool_t GetUseKaonPIDforDs() const {return fUseKaonPIDforDs;}
236 
237  void SetPidResponse(AliPIDResponse* p){fPidResponse=p;}
238 
239  //
240  private:
241  //
243 
244  Bool_t fInputAOD;
245  Int_t fAODMapSize;
246  Int_t *fAODMap; //[fAODMapSize] map between index and ID for AOD tracks
248 
249  AliVertexerTracks* fVertexerTracks;
250  Double_t fBzkG;
251 
252  Bool_t fSecVtxWithKF;
253 
255  Bool_t fRmTrksFromPrimVtx;
257 
259  AliESDVertex *fV1;
260 
262  Bool_t fD0toKpi;
263  Bool_t fJPSItoEle;
264  Bool_t f3Prong;
265  Bool_t f4Prong;
266  Bool_t fDstar;
267  Bool_t fCascades;
268  Bool_t fLikeSign;
270  Bool_t fMixEvent;
271 
272  AliPIDResponse* fPidResponse;
274  Int_t fUsePIDforLc;
277  Bool_t fUseTPCPID;
278  Bool_t fUseTOFPID;
280  Double_t fMaxMomForTPCPid;
281  Bool_t fUsePidTag;
282  Double_t fnSigmaTPCPionLow;
283  Double_t fnSigmaTPCPionHi;
284  Double_t fnSigmaTOFPionLow;
285  Double_t fnSigmaTOFPionHi;
286  Double_t fnSigmaTPCKaonLow;
287  Double_t fnSigmaTPCKaonHi;
288  Double_t fnSigmaTOFKaonLow;
289  Double_t fnSigmaTOFKaonHi;
294 
296 
297  // single-track cuts
298  AliAnalysisFilter *fTrackFilter;
299  AliAnalysisFilter *fTrackFilter2prongCentral;
300  AliAnalysisFilter *fTrackFilter3prongCentral;
301  AliAnalysisFilter *fTrackFilterSoftPi;
302  AliAnalysisFilter *fTrackFilterBachelor;
303  // candidates cuts
312 
313  TList *fListOfCuts;
318  // dummies for invariant mass calculation
319  AliAODRecoDecay *fMassCalc2;
320  AliAODRecoDecay *fMassCalc3;
321  AliAODRecoDecay *fMassCalc4;
322  Bool_t fOKInvMassD0;
323  Bool_t fOKInvMassJpsi;
325  Bool_t fOKInvMassDs;
326  Bool_t fOKInvMassLc;
330 
331  Int_t fnTrksTotal;
333  Bool_t fMakeReducedRHF;// switch the reduction of dAOD size on/off
334 
335  Double_t fMassDzero;
336  Double_t fMassDplus;
337  Double_t fMassDs;
338  Double_t fMassLambdaC;
339  Double_t fMassDstar;
340  Double_t fMassJpsi;
341 
342 
343  //
344  void AddRefs(AliAODVertex *v,AliAODRecoDecayHF *rd,const AliVEvent *event,
345  const TObjArray *trkArray) const;
346  void AddDaughterRefs(AliAODVertex *v,const AliVEvent *event,
347  const TObjArray *trkArray) const;
348  AliAODRecoDecayHF2Prong* Make2Prong(TObjArray *twoTrackArray1,AliVEvent *event,
349  AliAODVertex *secVert,Double_t dcap1n1,
350  Bool_t &okD0,Bool_t &okJPSI,Bool_t &okD0fromDstar, Bool_t refill=kFALSE, AliAODRecoDecayHF2Prong *rd=0x0);
351  AliAODRecoDecayHF3Prong* Make3Prong(TObjArray *threeTrackArray,AliVEvent *event,
352  AliAODVertex *secVert,
353  Double_t dispersion,
354  const AliAODVertex *vertexp1n1,
355  const AliAODVertex *vertexp2n1,
356  Double_t dcap1n1,Double_t dcap2n1,Double_t dcap1p2,
357  Bool_t useForLc, Bool_t useForDs,
358  Bool_t &ok3Prong);
359  AliAODRecoDecayHF3Prong* Make3Prong(TObjArray *threeTrackArray,AliVEvent *event,
360  AliAODVertex *secVert,
361  Double_t dispersion,
362  Double32_t dist12,
363  Double32_t dist23,
364  Double_t dcap1n1,Double_t dcap2n1,Double_t dcap1p2,
366  AliAODRecoDecayHF4Prong* Make4Prong(TObjArray *fourTrackArray,AliVEvent *event,
367  AliAODVertex *secVert,
368  const AliAODVertex *vertexp1n1,
369  const AliAODVertex *vertexp1n1p2,
370  Double_t dcap1n1,Double_t dcap1n2,
371  Double_t dcap2n1,Double_t dcap2n2,
372  Bool_t &ok4Prong);
373  AliAODRecoCascadeHF* MakeCascade(TObjArray *twoTrackArray,AliVEvent *event,
374  AliAODVertex *secVert,
375  AliAODRecoDecayHF2Prong *rd2Prong,
376  Double_t dca,
377  Bool_t &okDstar);
378  AliAODRecoCascadeHF* MakeCascade(TObjArray *twoTrackArray,AliVEvent *event,
379  AliAODVertex *secVert,
380  AliAODv0 *v0,
381  Double_t dca,
382  Bool_t &okCascades);
383 
384  void MapAODtracks(AliVEvent *aod);
385  AliAODVertex* PrimaryVertex(const TObjArray *trkArray=0x0,AliVEvent *event=0x0) const;
386  AliAODVertex* ReconstructSecondaryVertex(TObjArray *trkArray,Double_t &dispersion,Bool_t useTRefArray=kTRUE) const;
387 
388  Bool_t SelectInvMassAndPt3prong(Double_t *px,Double_t *py,Double_t *pz, Int_t pidLcStatus=3);
389  Bool_t SelectInvMassAndPt4prong(Double_t *px,Double_t *py,Double_t *pz);
390  Bool_t SelectInvMassAndPtD0Kpi(Double_t *px,Double_t *py,Double_t *pz);
391  Bool_t SelectInvMassAndPtJpsiee(Double_t *px,Double_t *py,Double_t *pz);
392  Bool_t SelectInvMassAndPtDstarD0pi(Double_t *px,Double_t *py,Double_t *pz);
393  Bool_t SelectInvMassAndPtCascade(Double_t *px,Double_t *py,Double_t *pz);
394 
395  Bool_t SelectInvMassAndPt3prong(TObjArray *trkArray);
396  Bool_t SelectInvMassAndPt4prong(TObjArray *trkArray);
397  Bool_t SelectInvMassAndPtDstarD0pi(TObjArray *trkArray);
398 
399  void SelectTracksAndCopyVertex(const AliVEvent *event,Int_t trkEntries,
400  TObjArray &seleTrksArray,
401  TObjArray &tracksAtVertex,
402  Int_t &nSeleTrks,
403  UChar_t *seleFlags,Int_t *evtNumber);
404  void SetParametersAtVertex(AliESDtrack* esdt, const AliExternalTrackParam* extpar) const;
405 
406  Bool_t SingleTrkCuts(AliESDtrack *trk,Float_t centralityperc, Bool_t &okDisplaced,Bool_t &okSoftPi, Bool_t &ok3prong, Bool_t &okBachelor) const;
407 
408  void SetSelectionBitForPID(AliRDHFCuts *cuts,AliAODRecoDecayHF *rd,Int_t bit);
409 
410  AliAODv0* TransformESDv0toAODv0(AliESDv0 *esdv0,
411  TObjArray *twoTrackArrayV0);
412 
414  ClassDef(AliAnalysisVertexingHF,26); // Reconstruction of HF decay candidates
416 };
417 
418 #endif
AliAODRecoDecay * fMassCalc4
for 3 prong
Bool_t fUsePidTag
upper momentum limit to apply TPC PID
void SetPidResponse(AliPIDResponse *p)
AliAnalysisFilter * GetTrackFilterSoftPi() const
void SetUseTPCPIDOnlyIfNoTOF(Bool_t opt=kTRUE)
AliAnalysisFilter * fTrackFilterSoftPi
Track Filter for displaced vertices in PbPb central events (tighter cuts) for 3 prong (D+...
void GetnSigmaTOFforKaonSel(Double_t &minnsigma, Double_t &maxnsigma) const
void SetCutsJpsitoee(AliRDHFCutsJpsitoee *cuts)
AliRDHFCutsDplustoKpipi * GetCutsDplustoKpipi() const
Bool_t GetUseProtonPIDforLambdaC2V0() const
AliVertexerTracks * fVertexerTracks
AliPIDResponse * fPidResponse
event mixing
Int_t GetUseProtonPIDforLambdaC() const
AliAODVertex * ReconstructSecondaryVertex(TObjArray *trkArray, Double_t &dispersion, Bool_t useTRefArray=kTRUE) const
Double_t fnSigmaTOFPionHi
Low cut value on n. of sigmas for pi TOF PID.
Double_t fnSigmaTOFProtonHi
Low cut value on n. of sigmas for p TOF PID.
void SetTrackFilterSoftPi(AliAnalysisFilter *trackF)
void SetTrackFilter(AliAnalysisFilter *trackF)
AliAODVertex * PrimaryVertex(const TObjArray *trkArray=0x0, AliVEvent *event=0x0) const
AliAnalysisFilter * fTrackFilter3prongCentral
Track Filter for displaced vertices in PbPb central events (tighter cuts) for 2 prong (D0->Kpi) ...
AliAnalysisVertexingHF & operator=(const AliAnalysisVertexingHF &source)
void GetnSigmaTPCforProtonSel(Double_t &minnsigma, Double_t &maxnsigma) const
AliRDHFCutsDstoKKpi * fCutsDstoKKpi
D+->Kpipi cuts.
AliRDHFCutsJpsitoee * GetCutsJpsitoee() const
void SetCutsDstoKKpi(AliRDHFCutsDstoKKpi *cuts)
Bool_t fSecVtxWithKF
z componenent of field in kG
void SetCutsLctopKpi(AliRDHFCutsLctopKpi *cuts)
AliRDHFCutsDStartoKpipi * GetCutsDStartoKpipi() const
void SetMassCutBeforeVertexing(Bool_t flag)
AliRDHFCutsLctopKpi * fCutsLctopKpi
Ds->KKpi cuts.
Bool_t GetUseKaonPIDfor3Prong() const
AliRDHFCutsDstoKKpi * GetCutsDstoKKpi() const
Bool_t SelectInvMassAndPt3prong(Double_t *px, Double_t *py, Double_t *pz, Int_t pidLcStatus=3)
Int_t fnTrksTotal
triplet fullfilling Lc inv mass selection
Double_t fnSigmaTOFProtonLow
High cut value on n. of sigmas for p TPC PID.
Bool_t fOKInvMassDplus
pair fullfilling Jpsi inv mass selection
Double_t fnSigmaTPCKaonLow
High cut value on n. of sigmas for pi TOF PID.
Bool_t SingleTrkCuts(AliESDtrack *trk, Float_t centralityperc, Bool_t &okDisplaced, Bool_t &okSoftPi, Bool_t &ok3prong, Bool_t &okBachelor) const
Bool_t FillRecoCand(AliVEvent *event, AliAODRecoDecayHF3Prong *rd3)
Bool_t fUseTPCPIDOnlyIfNoTOF
switch use/not use TOF PID
void SetnSigmaTOFforProtonSel(Double_t nsl, Double_t nsh)
AliRDHFCutsD0toKpi * fCutsD0toKpi
Track Filter for bachelor.
Bool_t fMixEvent
Like-sign triplets.
void SetFindVertexForCascades(Bool_t vtx=kTRUE)
Bool_t fUseTOFPID
switch use/not use TPC PID
void SetV0TypeForCascadeVertex(Int_t type)
void SetTrackFilterBachelor(AliAnalysisFilter *trackF)
Bool_t fOKInvMassD0to4p
combination fullfilling D* inv mass selection
Bool_t fOKInvMassLc
triplet fullfilling Ds inv mass selection
Int_t * fAODMap
map between index and ID for AOD tracks
Double_t fnSigmaTPCPionLow
flag to control usage of PID tagging
Bool_t fFindVertexForCascades
reconstruct a secondary vertex or assume it's from the primary vertex
void GetnSigmaTPCforPionSel(Double_t &minnsigma, Double_t &maxnsigma) const
Double_t fnSigmaTPCKaonHi
Low cut value on n. of sigmas for K TPC PID.
Bool_t fUseKaonPIDfor3Prong
PID response.
AliRDHFCutsLctopKpi * GetCutsLctopKpi() const
Bool_t FillRecoCasc(AliVEvent *event, AliAODRecoCascadeHF *rc, Bool_t isDStar)
AliRDHFCutsDplustoKpipi * fCutsDplustoKpipi
J/psi->ee cuts.
AliRDHFCutsD0toKpipipi * fCutsD0toKpipipi
Lc –> v0 + bachelor cuts.
void SetnSigmaTOFforPionSel(Double_t nsl, Double_t nsh)
Bool_t fLikeSign3prong
Like-sign pairs.
Bool_t SelectInvMassAndPtCascade(Double_t *px, Double_t *py, Double_t *pz)
void SetCutsD0toKpi(AliRDHFCutsD0toKpi *cuts)
AliAODRecoDecayHF4Prong * Make4Prong(TObjArray *fourTrackArray, AliVEvent *event, AliAODVertex *secVert, const AliAODVertex *vertexp1n1, const AliAODVertex *vertexp1n1p2, Double_t dcap1n1, Double_t dcap1n2, Double_t dcap2n1, Double_t dcap2n2, Bool_t &ok4Prong)
Class for cuts on AOD reconstructed D+->Kpipi.
Double_t fnSigmaTPCProtonLow
High cut value on n. of sigmas for K TOF PID.
void SetParametersAtVertex(AliESDtrack *esdt, const AliExternalTrackParam *extpar) const
Double_t fMaxMomForTPCPid
use TPC PID only for tracks that without TOF
void SetMakeReducedRHF(Bool_t makeredAOD=kFALSE)
void SetnSigmaTPCforKaonSel(Double_t nsl, Double_t nsh)
AliAnalysisFilter * fTrackFilter2prongCentral
Track Filter for displaced vertices.
Double_t fnSigmaTOFKaonLow
High cut value on n. of sigmas for K TPC PID.
void SetUseKaonPIDforDs(Bool_t opt=kTRUE)
Double_t GetMaxMomForTPCPid() const
Float_t fMaxCentPercentileForTightCuts
High cut value on n. of sigmas for p TOF PID.
Bool_t fOKInvMassDstar
triplet fullfilling Lc inv mass selection
Double_t fBzkG
vertexer, to compute secondary vertices
void GetnSigmaTOFforPionSel(Double_t &minnsigma, Double_t &maxnsigma) const
Bool_t fUsePIDforLc2V0
PID for Lambdac: 0=no, 1=proton, 2=p and pi.
void SetUsePidTag(Bool_t opt=kTRUE)
void SetUseTOFPID(Bool_t opt=kTRUE)
Bool_t fUseKaonPIDforDs
PID for Lambdac 2 V0: 0=no, 1=proton,.
AliRDHFCutsLctoV0 * GetCutsLctoV0() const
Bool_t fUseTPCPID
Kaon PID usage for Ds.
Bool_t fOKInvMassLctoV0
4tracks fullfilling D0 inv mass selection
Bool_t GetUseTPCPIDOnlyIfNoTOF() const
Bool_t fFindVertexForDstar
pointer to list of cuts for output file
Double_t fnSigmaTOFKaonHi
Low cut value on n. of sigmas for K TOF PID.
AliAODRecoDecay * fMassCalc2
to go faster in PbPb
void SetMaxMomForTPCPid(Double_t mom)
void FindCandidates(AliVEvent *event, TClonesArray *aodVerticesHFTClArr, TClonesArray *aodD0toKpiTClArr, TClonesArray *aodJPSItoEleTClArr, TClonesArray *aodCharm3ProngTClArr, TClonesArray *aodCharm4ProngTClArr, TClonesArray *aodDstarTClArr, TClonesArray *aodCascadesTClArr, TClonesArray *aodLikeSign2ProngTClArr, TClonesArray *aodLikeSign3ProngTClArr)
Bool_t GetRmTrksFromPrimVtx() const
void AddDaughterRefs(AliAODVertex *v, const AliVEvent *event, const TObjArray *trkArray) const
Int_t fUsePIDforLc
Kaon PID usage for 3 prongs.
Bool_t fLikeSign
cascades, Lc –> v0+track
void GetnSigmaTPCforKaonSel(Double_t &minnsigma, Double_t &maxnsigma) const
AliRDHFCutsJpsitoee * fCutsJpsitoee
D0->Kpi cuts.
void SetUseTPCPID(Bool_t opt=kTRUE)
Bool_t SelectInvMassAndPtJpsiee(Double_t *px, Double_t *py, Double_t *pz)
Bool_t fOKInvMassD0
for 4 prong
Bool_t fOKInvMassJpsi
pair fullfilling D0 inv mass selection
void SetnSigmaTPCforPionSel(Double_t nsl, Double_t nsh)
AliRDHFCutsD0toKpi * GetCutsD0toKpi() const
Bool_t SelectInvMassAndPtDstarD0pi(Double_t *px, Double_t *py, Double_t *pz)
Int_t fV0TypeForCascadeVertex
reconstruct a secondary vertex or assume it's from the primary vertex
void SetnSigmaTPCforProtonSel(Double_t nsl, Double_t nsh)
AliAnalysisFilter * fTrackFilterBachelor
Track Filter for D* soft pion.
Bool_t fMassCutBeforeVertexing
Select which V0 type we want to use for the cascas.
void SetCutsLctoV0(AliRDHFCutsLctoV0 *cuts)
Int_t fAODMapSize
input from AOD (kTRUE) or ESD (kFALSE)
void FixReferences(AliAODEvent *aod)
void SetSelectionBitForPID(AliRDHFCuts *cuts, AliAODRecoDecayHF *rd, Int_t bit)
AliAODRecoCascadeHF * MakeCascade(TObjArray *twoTrackArray, AliVEvent *event, AliAODVertex *secVert, AliAODRecoDecayHF2Prong *rd2Prong, Double_t dca, Bool_t &okDstar)
Bool_t GetRecoPrimVtxSkippingTrks() const
void SelectTracksAndCopyVertex(const AliVEvent *event, Int_t trkEntries, TObjArray &seleTrksArray, TObjArray &tracksAtVertex, Int_t &nSeleTrks, UChar_t *seleFlags, Int_t *evtNumber)
void GetnSigmaTOFforProtonSel(Double_t &minnsigma, Double_t &maxnsigma) const
Bool_t fRecoPrimVtxSkippingTrks
if kTRUE use KF vertexer, else AliVertexerTracks
void SetTrackFilter2prongPbCentral(Float_t maxPercentile, AliAnalysisFilter *trackF)
AliAODRecoDecay * fMassCalc3
for 2 prong
TList * fListOfCuts
Dstar->D0pi cuts.
Double_t fnSigmaTPCProtonHi
Low cut value on n. of sigmas for p TPC PID.
AliRDHFCutsLctoV0 * fCutsLctoV0
Lc->pKpi cuts.
AliAnalysisFilter * GetTrackFilter() const
void MapAODtracks(AliVEvent *aod)
AliAODRecoDecayHF3Prong * Make3Prong(TObjArray *threeTrackArray, AliVEvent *event, AliAODVertex *secVert, Double_t dispersion, const AliAODVertex *vertexp1n1, const AliAODVertex *vertexp2n1, Double_t dcap1n1, Double_t dcap2n1, Double_t dcap1p2, Bool_t useForLc, Bool_t useForDs, Bool_t &ok3Prong)
AliRDHFCutsDStartoKpipi * fCutsDStartoKpipi
D0->Kpipipi cuts.
void SetFindVertexForDstar(Bool_t vtx=kTRUE)
AliAnalysisFilter * fTrackFilter
max. centrality percentile for using tight cuts
Bool_t SelectInvMassAndPtD0Kpi(Double_t *px, Double_t *py, Double_t *pz)
void SetTrackFilter3prongPbCentral(Float_t maxPercentile, AliAnalysisFilter *trackF)
AliAODv0 * TransformESDv0toAODv0(AliESDv0 *esdv0, TObjArray *twoTrackArrayV0)
Bool_t SelectInvMassAndPt4prong(Double_t *px, Double_t *py, Double_t *pz)
Double_t fnSigmaTPCPionHi
Low cut value on n. of sigmas for pi TPC PID.
Bool_t fD0toKpi
primary vertex
void SetCutsDStartoKpipi(AliRDHFCutsDStartoKpipi *cuts)
void SetCutsDplustoKpipi(AliRDHFCutsDplustoKpipi *cuts)
AliRDHFCutsD0toKpipipi * GetCutsD0toKpipipi() const
Bool_t fOKInvMassDs
triplet fullfilling D+ inv mass selection
void SetCutsD0toKpipipi(AliRDHFCutsD0toKpipipi *cuts)
void SetUseKaonPIDfor3Prong(Bool_t opt=kTRUE)
void AddRefs(AliAODVertex *v, AliAODRecoDecayHF *rd, const AliVEvent *event, const TObjArray *trkArray) const
void SetnSigmaTOFforKaonSel(Double_t nsl, Double_t nsh)
AliAODRecoDecayHF2Prong * Make2Prong(TObjArray *twoTrackArray1, AliVEvent *event, AliAODVertex *secVert, Double_t dcap1n1, Bool_t &okD0, Bool_t &okJPSI, Bool_t &okD0fromDstar, Bool_t refill=kFALSE, AliAODRecoDecayHF2Prong *rd=0x0)
Double_t fnSigmaTOFPionLow
High cut value on n. of sigmas for pi TPC PID.