1 #ifndef ALIRDHFCUTSDPLUSTOKPIPI_H
2 #define ALIRDHFCUTSDPLUSTOKPIPI_H
3 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
9 /////////////////////////////////////////////////////////////
11 // Class for cuts on AOD reconstructed D+->Kpipi
13 // Author: R. Bala bala@to.infn.it
14 // G. Ortona ortona@to.infn.it
15 /////////////////////////////////////////////////////////////
18 #include "AliRDHFCuts.h"
21 class AliRDHFCutsDplustoKpipi : public AliRDHFCuts
25 AliRDHFCutsDplustoKpipi(const char* name="CutsDplustoKpipi");
27 virtual ~AliRDHFCutsDplustoKpipi(){};
28 AliRDHFCutsDplustoKpipi(const AliRDHFCutsDplustoKpipi& source);
29 AliRDHFCutsDplustoKpipi& operator=(const AliRDHFCutsDplustoKpipi& source);
31 using AliRDHFCuts::GetCutVarsForOpt;
32 virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
33 return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
35 virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
37 using AliRDHFCuts::IsSelected;
38 virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel){
39 return IsSelected(obj,selectionLevel,0x0);
41 virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent* aod);
42 virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd);
44 virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
45 virtual void SetStandardCutsPP2010();
46 virtual void SetStandardCutsPbPb2010();
47 virtual void SetStandardCutsPbPb2011();
49 Int_t GetPIDBitMask(AliAODRecoDecayHF *rd);
50 UInt_t GetPIDTrackTPCTOFBitMap(AliAODTrack *track) const;
51 Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
52 Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(1,iPtBin)] : 1.e6);}
53 void SetUseStrongPid(Int_t spid){fUseStrongPid=spid;}
54 void SetMaxPtStrongPid(Float_t spid){fMaxPtStrongPid=spid;}
55 void SetMaxPStrongPidK(Float_t spid){fMaxPStrongPidK=spid;}
56 void SetMaxPStrongPidpi(Float_t spid){fMaxPStrongPidpi=spid;}
57 Int_t GetStrongPid() const {return fUseStrongPid;}
58 Float_t GetMaxPtStrongPid() const {return fMaxPtStrongPid;}
59 Float_t GetMaxPtStrongPidK() const {return fMaxPStrongPidK;}
60 Float_t GetMaxPtStrongPidpi() const {return fMaxPStrongPidpi;}
61 void SetUseImpParProdCorrCut(Bool_t use){
62 fUseImpParProdCorrCut=use;
64 Bool_t GetUseImpParProdCorrCut() const {
65 return fUseImpParProdCorrCut;
68 enum TrackPIDBit{kTPCPionLess1,kTPCPionMore1Less2,kTPCPionMore2Less3,kTPCPionMore3,
69 kTPCKaonLess1,kTPCKaonMore1Less2,kTPCKaonMore2Less3,kTPCKaonMore3,
70 kTPCProtonLess1,kTPCProtonMore1Less2,kTPCProtonMore2Less3,kTPCProtonMore3,
71 kTOFPionLess1,kTOFPionMore1Less2,kTOFPionMore2Less3,kTOFPionMore3,
72 kTOFKaonLess1,kTOFKaonMore1Less2,kTOFKaonMore2Less3,kTOFKaonMore3,
73 kTOFProtonLess1,kTOFProtonMore1Less2,kTOFProtonMore2Less3,kTOFProtonMore3};
77 Int_t fUseStrongPid; //use strong pid 0 no,1 only for K,2 pi 3 both
78 Float_t fMaxPtStrongPid;//Maximum pt of candidate to apply strong Pid
79 Float_t fMaxPStrongPidK;//Maximum P of track to apply strong Pid on K
80 Float_t fMaxPStrongPidpi;//Maximum P of track to apply strong Pid on pi
81 Bool_t fUseImpParProdCorrCut; //switch for d0K*d0pi1 vs. d0K*d0pi2 cut
83 ClassDef(AliRDHFCutsDplustoKpipi,6); // class for cuts on AOD reconstructed