]>
Commit | Line | Data |
---|---|---|
650b3ced | 1 | #ifndef ALIRDHFCUTSD0TOKPI_H |
2 | #define ALIRDHFCUTSD0TOKPI_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 | ||
650b3ced | 8 | //*********************************************************** |
9 | // Class AliRDHFCutsD0toKpi | |
10 | // class for cuts on AOD reconstructed D0->Kpi | |
11 | // Author: A.Dainese, andrea.dainese@pd.infn.it | |
12 | //*********************************************************** | |
13 | ||
14 | #include "AliRDHFCuts.h" | |
15 | ||
937e1290 | 16 | class AliAODEvent; |
17 | class AliAODRecoDecayHF; | |
5f25117b | 18 | class AliAODRecoDecayHF2Prong; |
937e1290 | 19 | |
650b3ced | 20 | class AliRDHFCutsD0toKpi : public AliRDHFCuts |
21 | { | |
22 | public: | |
23 | ||
c2ec6218 | 24 | |
a9b75906 | 25 | AliRDHFCutsD0toKpi(const char* name="CutsD0toKpi"); |
650b3ced | 26 | |
e2aa82b6 | 27 | virtual ~AliRDHFCutsD0toKpi(); |
650b3ced | 28 | |
29 | AliRDHFCutsD0toKpi(const AliRDHFCutsD0toKpi& source); | |
30 | AliRDHFCutsD0toKpi& operator=(const AliRDHFCutsD0toKpi& source); | |
a6003e0a | 31 | |
32 | using AliRDHFCuts::GetCutVarsForOpt; | |
33 | virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){ | |
34 | return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0); | |
35 | } | |
36 | virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod); | |
650b3ced | 37 | |
38 | using AliRDHFCuts::IsSelected; | |
937e1290 | 39 | virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel) |
40 | {return IsSelected(obj,selectionLevel,0);} | |
41 | virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent* aod); | |
42 | ||
e2aa82b6 | 43 | virtual Int_t IsSelectedCombPID(AliAODRecoDecayHF* d); |
e2aa82b6 | 44 | virtual void CalculateBayesianWeights(AliAODRecoDecayHF* d); |
45 | ||
3cbc09cd | 46 | Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);} |
47 | Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(1,iPtBin)] : 1.e6);} | |
937e1290 | 48 | Int_t CombineSelectionLevels(Int_t selectionvalTrack,Int_t selectionvalCand,Int_t selectionvalPID)const; |
c96634a2 | 49 | virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const; |
b14fe7f1 | 50 | virtual void SetStandardCutsPP2010(); |
e0dfdb1a | 51 | virtual void SetStandardCutsPP2010vsMult(); |
fc051756 | 52 | virtual void SetStandardCutsPP2011_276TeV(); |
0c22e2ac | 53 | virtual void SetStandardCutsPbPb2010(); |
54 | virtual void SetStandardCutsPbPb2011(); | |
c1235da7 | 55 | void SetStandardCutsPbPb2010Peripherals(); |
937e1290 | 56 | virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd); |
08ea5c32 | 57 | Int_t IsSelectedPIDdefault(AliAODRecoDecayHF *rd); |
937e1290 | 58 | Int_t IsSelectedSpecialCuts(AliAODRecoDecayHF *d) const; |
59 | void SetUseSpecialCuts(Bool_t useSpecialCuts) {fUseSpecialCuts=useSpecialCuts;} | |
849ad3e5 | 60 | void SetMaximumPtSpecialCuts(Double_t pt) { fPtMaxSpecialCuts=pt; } |
1d9bf4ef | 61 | void SetMaximumPforPID(Double_t p){fmaxPtrackForPID=p;} |
62 | Double_t GetMaximumPforPID(){return fmaxPtrackForPID;} | |
849ad3e5 | 63 | Double_t GetMaximumPtSpecialCuts() const { return fPtMaxSpecialCuts; } |
39827ef5 | 64 | void SetLowPt(Bool_t lowpt,Double_t ptlow=2.) {fLowPt=lowpt;fPtLowPID=ptlow;} |
937e1290 | 65 | Bool_t GetUseSpecialCuts() const {return fUseSpecialCuts;} |
08ea5c32 | 66 | void SetUseDefaultPID(Bool_t defPID){fDefaultPID=defPID;} |
67 | Bool_t GetIsUsedDefPID(){return fDefaultPID;} | |
39827ef5 | 68 | Double_t GetPtForPIDtight()const {return fPtLowPID;} |
5f25117b | 69 | void SetUseKF(Bool_t useKF); |
70 | Bool_t GetIsUsedKF() const {return fUseKF;} | |
e2aa82b6 | 71 | void SetWeightsPositive(Double_t* weights){ |
72 | for (Int_t i = 0; i<AliPID::kSPECIES; i++) { | |
73 | fWeightsPositive[i] = weights[i]; | |
74 | } | |
75 | } | |
76 | Double_t *GetWeightsPositive() const {return fWeightsPositive;} | |
77 | void SetWeightsNegative(Double_t* weights){ | |
78 | for (Int_t i = 0; i<AliPID::kSPECIES; i++) { | |
79 | fWeightsNegative[i] = weights[i]; | |
80 | } | |
81 | } | |
82 | Double_t *GetWeightsNegative() const {return fWeightsNegative;} | |
83 | void SetBayesianStrategy(Int_t strat) {fBayesianStrategy=strat;} | |
84 | Int_t GetBayesianStrategy() const {return fBayesianStrategy;} | |
85 | ||
86 | enum EBayesianStrategy { | |
87 | kBayesMomentum, | |
88 | kBayesWeight, | |
89 | kBayesWeightNoFilter, | |
90 | kBayesSimple | |
91 | }; | |
c2ec6218 | 92 | |
b8f433ab | 93 | |
94 | enum EBayesianCondition { | |
95 | kMaxProb, | |
96 | kAbovePrior, | |
97 | kThreshold | |
98 | }; | |
99 | ||
100 | void SetBayesianCondition(Int_t cond) {fBayesianCondition=cond;} | |
101 | Int_t GetBayesianCondition() const {return fBayesianCondition;} | |
e2aa82b6 | 102 | void SetCombPID(Bool_t CombPID){fCombPID=CombPID;} |
103 | Bool_t GetCombPID() const {return fCombPID;} | |
b8f433ab | 104 | void SetBayesProbThreshold(Double_t thresh){fProbThreshold=thresh;} |
105 | Double_t GetBayesProbThreshold() const {return fProbThreshold;} | |
106 | ||
0c22e2ac | 107 | |
650b3ced | 108 | protected: |
c2ec6218 | 109 | |
5f25117b | 110 | Int_t IsSelectedKF(AliAODRecoDecayHF2Prong* d,AliAODEvent* aod) const; |
111 | ||
112 | Bool_t fUseSpecialCuts; // flag to switch on/off special cuts | |
08ea5c32 | 113 | Bool_t fLowPt; // flag to switch on/off different pid for low pt D0 |
114 | Bool_t fDefaultPID; // flag to switch on/off the default pid | |
e2aa82b6 | 115 | |
5f25117b | 116 | Bool_t fUseKF; // flag to switch on/off D0 selection via KF |
39827ef5 | 117 | Double_t fPtLowPID; // transverse momentum below which the strong PID is applied |
849ad3e5 | 118 | Double_t fPtMaxSpecialCuts; // transverse momentum below which the special cuts are applied |
e2aa82b6 | 119 | |
849ad3e5 | 120 | // if set to zero, used for all pt |
1d9bf4ef | 121 | Double_t fmaxPtrackForPID; // max momentum for applying PID |
5f25117b | 122 | |
e2aa82b6 | 123 | Bool_t fCombPID; //switch for Bayesian |
c2ec6218 | 124 | Int_t fnSpecies; //number of species (used only for array declaration) |
125 | Double_t* fWeightsPositive; //[fnSpecies] Bayesian weights for positive track | |
126 | Double_t* fWeightsNegative; //[fnSpecies] Bayesian weights for negative track | |
e2aa82b6 | 127 | |
b8f433ab | 128 | Double_t fProbThreshold; //Probability threshold for kaon to be accepted in Bayesian method (only applied if fBayesianCondition==kThreshold) |
129 | ||
130 | Int_t fBayesianStrategy; // Switch for which Bayesian PID strategy to use | |
131 | Int_t fBayesianCondition; //Switch for conition applied to kaons | |
132 | ||
133 | ClassDef(AliRDHFCutsD0toKpi,11); // class for cuts on AOD reconstructed D0->Kpi | |
650b3ced | 134 | }; |
135 | ||
136 | #endif | |
aa8d25fe | 137 |