1 #ifndef ALIRDHFCUTSLCTOPKPI_H
2 #define ALIRDHFCUTSLCTOPKPI_H
3 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //***********************************************************
9 // Class AliRDHFCutsLctopKpi
10 // class for cuts on AOD reconstructed Lc->pKpi
11 // Author: A.Dainese, andrea.dainese@pd.infn.it
12 //***********************************************************
14 #include "AliRDHFCuts.h"
15 #include "AliAODPidHF.h"
16 #include "AliAODRecoDecayHF3Prong.h"
18 class AliRDHFCutsLctopKpi : public AliRDHFCuts
36 AliRDHFCutsLctopKpi(const char* name="CutsLctopKpi");
38 virtual ~AliRDHFCutsLctopKpi();
40 AliRDHFCutsLctopKpi(const AliRDHFCutsLctopKpi& source);
41 AliRDHFCutsLctopKpi& operator=(const AliRDHFCutsLctopKpi& source);
43 using AliRDHFCuts::GetCutVarsForOpt;
44 virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
45 return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
47 virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
49 void SetPidpion(AliAODPidHF* pidPion) {
50 if(fPidObjpion) delete fPidObjpion;
51 fPidObjpion=new AliAODPidHF(*pidPion);
53 void SetPidprot(AliAODPidHF* pidProt) {
54 if(fPidObjprot) delete fPidObjprot;
55 fPidObjprot=new AliAODPidHF(*pidProt);
58 virtual void SetStandardCutsPP2010();
59 virtual void SetStandardCutsPbPb2010();
60 virtual void SetStandardCutsPbPb2011();
63 AliAODPidHF* GetPidpion() const {return fPidObjpion;}
64 AliAODPidHF* GetPidprot() const {return fPidObjprot;}
65 void SetPIDStrategy(EPIDStrategy pidStrategy) {
66 fPIDStrategy=pidStrategy;
68 EPIDStrategy GetPIDStrategy() const {
71 void SetCutsStrategy(ECutsStrategy cutsStrategy) {
72 fCutsStrategy=cutsStrategy;
74 ECutsStrategy GetCutsStrategy() const {
77 void SetPIDThreshold(AliPID::EParticleType species,Double_t threshold) {
78 fPIDThreshold[static_cast<Int_t>(species)]=threshold;
80 Double_t GetPIDThreshold(AliPID::EParticleType species) const {
81 return fPIDThreshold[static_cast<Int_t>(species)];
83 Bool_t GetUseSpecialCut(){return fUseSpecialCut;}
84 void SetUseSpecialCut(Bool_t useSpecialCut=kTRUE){fUseSpecialCut=useSpecialCut;}
86 using AliRDHFCuts::IsSelected;
87 virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel)
88 {return IsSelected(obj,selectionLevel,0);}
89 virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent *aod);
90 using AliRDHFCuts::IsSelectedPID;
91 virtual Int_t IsSelectedPID(AliAODRecoDecayHF* obj);
92 Int_t IsSelectedCombinedPID(AliAODRecoDecayHF* obj);
93 Int_t IsSelectedCombinedPIDSoft(AliAODRecoDecayHF* obj);
94 Int_t IsSelectedCombinedPIDpPb(AliAODRecoDecayHF* obj);
95 Int_t IsSelectedCombinedPIDpPb2(AliAODRecoDecayHF* obj);
96 Int_t IsSelectedPIDStrong(AliAODRecoDecayHF* obj);
97 Int_t CombinePIDCuts (Int_t returnvalue, Int_t returnvaluePID) const;
99 virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
101 Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
102 Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(11,iPtBin)] : 1.e6);}
104 void SetUseImpParProdCorrCut(Bool_t use){
105 fUseImpParProdCorrCut=use;
107 Bool_t GetUseImpParProdCorrCut() const {
108 return fUseImpParProdCorrCut;
111 AliKFParticle* ReconstructKF(AliAODRecoDecayHF3Prong *d,Int_t *pdgs,Double_t field,Bool_t constraint) const;
113 AliAODPidHF *fPidObjprot;
114 AliAODPidHF *fPidObjpion;
115 Bool_t fUseImpParProdCorrCut; //switch for cut on d0p*d0K vs. d0K*d0pi
118 EPIDStrategy fPIDStrategy; // PIS strategy (nsigma, combined)
119 Double_t fPIDThreshold[AliPID::kSPECIES]; // PID threshold for each species
120 ECutsStrategy fCutsStrategy; // cut strategy (standard or KF)
121 Bool_t fUseSpecialCut;
123 ClassDef(AliRDHFCutsLctopKpi,7); // class for cuts on AOD reconstructed Lc->pKpi