]>
Commit | Line | Data |
---|---|---|
e3d40058 | 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 */ | |
5 | ||
27de2dfb | 6 | /* $Id$ */ |
7 | ||
e3d40058 | 8 | //*********************************************************** |
9 | // Class AliRDHFCutsLctopKpi | |
10 | // class for cuts on AOD reconstructed Lc->pKpi | |
11 | // Author: A.Dainese, andrea.dainese@pd.infn.it | |
12 | //*********************************************************** | |
13 | ||
14 | #include "AliRDHFCuts.h" | |
7ad4b782 | 15 | #include "AliAODPidHF.h" |
16 | #include "AliAODRecoDecayHF3Prong.h" | |
e3d40058 | 17 | |
18 | class AliRDHFCutsLctopKpi : public AliRDHFCuts | |
19 | { | |
20 | public: | |
21 | ||
c1234468 | 22 | enum EPIDStrategy { |
23 | kNSigma, | |
a4b982a5 | 24 | kCombined, |
ef5f00b2 | 25 | kCombinedSoft, |
31ae915b | 26 | kNSigmaStrong, |
27 | kCombinedpPb, | |
7e6f4f22 | 28 | kCombinedpPb2, |
29 | kNSigmaPbPb | |
c1234468 | 30 | }; |
31 | enum ECutsStrategy { | |
32 | kStandard, | |
33 | kKF | |
34 | }; | |
35 | ||
36 | ||
a9b75906 | 37 | AliRDHFCutsLctopKpi(const char* name="CutsLctopKpi"); |
e3d40058 | 38 | |
7ad4b782 | 39 | virtual ~AliRDHFCutsLctopKpi(); |
e3d40058 | 40 | |
41 | AliRDHFCutsLctopKpi(const AliRDHFCutsLctopKpi& source); | |
42 | AliRDHFCutsLctopKpi& operator=(const AliRDHFCutsLctopKpi& source); | |
43 | ||
ed2d2734 | 44 | using AliRDHFCuts::GetCutVarsForOpt; |
e0fb900a | 45 | virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){ |
46 | return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0); | |
47 | } | |
48 | virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod); | |
a6003e0a | 49 | |
7ad4b782 | 50 | void SetPidpion(AliAODPidHF* pidPion) { |
51 | if(fPidObjpion) delete fPidObjpion; | |
52 | fPidObjpion=new AliAODPidHF(*pidPion); | |
53 | } | |
54 | void SetPidprot(AliAODPidHF* pidProt) { | |
55 | if(fPidObjprot) delete fPidObjprot; | |
56 | fPidObjprot=new AliAODPidHF(*pidProt); | |
57 | } | |
58 | ||
59 | virtual void SetStandardCutsPP2010(); | |
a8b8e864 | 60 | virtual void SetStandardCutsPbPb2010(); |
0c22e2ac | 61 | virtual void SetStandardCutsPbPb2011(); |
7d020878 | 62 | virtual void SetStandardCutsPPb2013(); |
7ad4b782 | 63 | |
7ad4b782 | 64 | |
65 | AliAODPidHF* GetPidpion() const {return fPidObjpion;} | |
66 | AliAODPidHF* GetPidprot() const {return fPidObjprot;} | |
c1234468 | 67 | void SetPIDStrategy(EPIDStrategy pidStrategy) { |
68 | fPIDStrategy=pidStrategy; | |
69 | } | |
70 | EPIDStrategy GetPIDStrategy() const { | |
71 | return fPIDStrategy; | |
72 | } | |
73 | void SetCutsStrategy(ECutsStrategy cutsStrategy) { | |
74 | fCutsStrategy=cutsStrategy; | |
75 | } | |
76 | ECutsStrategy GetCutsStrategy() const { | |
77 | return fCutsStrategy; | |
78 | } | |
79 | void SetPIDThreshold(AliPID::EParticleType species,Double_t threshold) { | |
80 | fPIDThreshold[static_cast<Int_t>(species)]=threshold; | |
81 | } | |
82 | Double_t GetPIDThreshold(AliPID::EParticleType species) const { | |
83 | return fPIDThreshold[static_cast<Int_t>(species)]; | |
84 | } | |
a4b982a5 | 85 | Bool_t GetUseSpecialCut(){return fUseSpecialCut;} |
86 | void SetUseSpecialCut(Bool_t useSpecialCut=kTRUE){fUseSpecialCut=useSpecialCut;} | |
e3d40058 | 87 | |
88 | using AliRDHFCuts::IsSelected; | |
7ad4b782 | 89 | virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel) |
90 | {return IsSelected(obj,selectionLevel,0);} | |
91 | virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent *aod); | |
92 | using AliRDHFCuts::IsSelectedPID; | |
93 | virtual Int_t IsSelectedPID(AliAODRecoDecayHF* obj); | |
11690a06 | 94 | Int_t IsSelectedCombinedPID(AliAODRecoDecayHF* obj); |
a4b982a5 | 95 | Int_t IsSelectedCombinedPIDSoft(AliAODRecoDecayHF* obj); |
31ae915b | 96 | Int_t IsSelectedCombinedPIDpPb(AliAODRecoDecayHF* obj); |
97 | Int_t IsSelectedCombinedPIDpPb2(AliAODRecoDecayHF* obj); | |
ef5f00b2 | 98 | Int_t IsSelectedPIDStrong(AliAODRecoDecayHF* obj); |
7d020878 | 99 | Int_t IsSelectedNSigmaPbPb(AliAODRecoDecayHF* obj); |
7ad4b782 | 100 | Int_t CombinePIDCuts (Int_t returnvalue, Int_t returnvaluePID) const; |
c1234468 | 101 | |
102 | virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const; | |
e3d40058 | 103 | |
104 | Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);} | |
105 | Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(11,iPtBin)] : 1.e6);} | |
106 | ||
43d2fecc | 107 | void SetUseImpParProdCorrCut(Bool_t use){ |
108 | fUseImpParProdCorrCut=use; | |
109 | } | |
110 | Bool_t GetUseImpParProdCorrCut() const { | |
111 | return fUseImpParProdCorrCut; | |
112 | } | |
113 | ||
c1234468 | 114 | AliKFParticle* ReconstructKF(AliAODRecoDecayHF3Prong *d,Int_t *pdgs,Double_t field,Bool_t constraint) const; |
e3d40058 | 115 | protected: |
7ad4b782 | 116 | AliAODPidHF *fPidObjprot; |
117 | AliAODPidHF *fPidObjpion; | |
43d2fecc | 118 | Bool_t fUseImpParProdCorrCut; //switch for cut on d0p*d0K vs. d0K*d0pi |
e3d40058 | 119 | |
c1234468 | 120 | private: |
cc4bd7b4 | 121 | EPIDStrategy fPIDStrategy; // PIS strategy (nsigma, combined) |
122 | Double_t fPIDThreshold[AliPID::kSPECIES]; // PID threshold for each species | |
123 | ECutsStrategy fCutsStrategy; // cut strategy (standard or KF) | |
a4b982a5 | 124 | Bool_t fUseSpecialCut; |
c1234468 | 125 | |
7e6f4f22 | 126 | ClassDef(AliRDHFCutsLctopKpi,9); // class for cuts on AOD reconstructed Lc->pKpi |
e3d40058 | 127 | }; |
128 | ||
129 | #endif | |
a8b8e864 | 130 | |
31ae915b | 131 |