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