]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/AliRDHFCutsD0toKpi.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliRDHFCutsD0toKpi.h
CommitLineData
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 16class AliAODEvent;
17class AliAODRecoDecayHF;
5f25117b 18class AliAODRecoDecayHF2Prong;
937e1290 19
650b3ced 20class 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