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