AliPhysics  8bb951a (8bb951a)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliRDHFCutsD0toKpi.h
Go to the documentation of this file.
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 
6 /* $Id$ */
7 
8 //***********************************************************
12 //***********************************************************
13 
14 #include "AliRDHFCuts.h"
15 
16 class AliAODEvent;
17 class AliAODRecoDecayHF;
19 
21 {
22  public:
23 
24 
25  AliRDHFCutsD0toKpi(const char* name="CutsD0toKpi");
26 
27  virtual ~AliRDHFCutsD0toKpi();
28 
31 
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);
37 
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 
43  virtual Int_t IsSelectedCombPID(AliAODRecoDecayHF* d);
45 
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);}
48  Int_t CombineSelectionLevels(Int_t selectionvalTrack,Int_t selectionvalCand,Int_t selectionvalPID)const;
49  virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
50  virtual void SetStandardCutsPP2010();
51  virtual void SetStandardCutsPP2010vsMult();
52  virtual void SetStandardCutsPP2011_276TeV();
53  virtual void SetStandardCutsPbPb2010();
54  virtual void SetStandardCutsPbPb2011();
56  virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd);
59  void SetUseSpecialCuts(Bool_t useSpecialCuts) {fUseSpecialCuts=useSpecialCuts;}
60  void SetMaximumPtSpecialCuts(Double_t pt) { fPtMaxSpecialCuts=pt; }
61  void SetMaximumPforPID(Double_t p){fmaxPtrackForPID=p;}
62  Double_t GetMaximumPforPID(){return fmaxPtrackForPID;}
63  Double_t GetMaximumPtSpecialCuts() const { return fPtMaxSpecialCuts; }
64  void SetLowPt(Bool_t lowpt,Double_t ptlow=2.) {fLowPt=lowpt;fPtLowPID=ptlow;}
65  Bool_t GetUseSpecialCuts() const {return fUseSpecialCuts;}
66  void SetUseDefaultPID(Bool_t defPID){fDefaultPID=defPID;}
67  Bool_t GetIsUsedDefPID(){return fDefaultPID;}
68  Double_t GetPtForPIDtight()const {return fPtLowPID;}
69  void SetUseKF(Bool_t useKF);
70  Bool_t GetIsUsedKF() const {return fUseKF;}
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 
91  };
92 
93 
98  };
99 
100  void SetBayesianCondition(Int_t cond) {fBayesianCondition=cond;}
101  Int_t GetBayesianCondition() const {return fBayesianCondition;}
102  void SetCombPID(Bool_t CombPID){fCombPID=CombPID;}
103  Bool_t GetCombPID() const {return fCombPID;}
104  void SetBayesProbThreshold(Double_t thresh){fProbThreshold=thresh;}
105  Double_t GetBayesProbThreshold() const {return fProbThreshold;}
106 
107 
108  protected:
109 
110  Int_t IsSelectedKF(AliAODRecoDecayHF2Prong* d,AliAODEvent* aod) const;
111 
113  Bool_t fLowPt;
114  Bool_t fDefaultPID;
115 
116  Bool_t fUseKF;
117  Double_t fPtLowPID;
118  Double_t fPtMaxSpecialCuts;
119 
121  Double_t fmaxPtrackForPID;
122 
123  Bool_t fCombPID;
124  Int_t fnSpecies;
125  Double_t* fWeightsPositive; //[fnSpecies] Bayesian weights for positive track
126  Double_t* fWeightsNegative; //[fnSpecies] Bayesian weights for negative track
127 
128  Double_t fProbThreshold; //Probability threshold for kaon to be accepted in Bayesian method (only applied if fBayesianCondition==kThreshold)
129 
132 
134  ClassDef(AliRDHFCutsD0toKpi,11);
135 };
137 
138 #endif
139 
Double_t fPtMaxSpecialCuts
transverse momentum below which the strong PID is applied
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d, Float_t *vars, Int_t nvars, Int_t *pdgdaughters)=0
void SetCombPID(Bool_t CombPID)
Int_t fnSpecies
switch for Bayesian
void SetUseDefaultPID(Bool_t defPID)
Bool_t fUseKF
flag to switch on/off the default pid
void SetMaximumPforPID(Double_t p)
Bool_t GetCombPID() const
Bool_t fCombPID
max momentum for applying PID
Double_t GetPtForPIDtight() const
virtual Int_t IsSelectedCombPID(AliAODRecoDecayHF *d)
Double_t fmaxPtrackForPID
transverse momentum below which the special cuts are applied
const Float_t * GetCuts() const
Definition: AliRDHFCuts.h:238
virtual void SetStandardCutsPP2011_276TeV()
virtual void SetStandardCutsPP2010()
void SetWeightsPositive(Double_t *weights)
AliRDHFCutsD0toKpi(const char *name="CutsD0toKpi")
Bool_t fLowPt
flag to switch on/off special cuts
virtual Bool_t IsInFiducialAcceptance(Double_t pt, Double_t y) const
Float_t GetMassCut(Int_t iPtBin=0) const
Double_t GetMaximumPforPID()
Int_t GetBayesianStrategy() const
Bool_t fDefaultPID
flag to switch on/off different pid for low pt D0
void SetBayesProbThreshold(Double_t thresh)
Double_t GetMaximumPtSpecialCuts() const
Int_t GetBayesianCondition() const
void SetUseKF(Bool_t useKF)
void SetMaximumPtSpecialCuts(Double_t pt)
Bool_t GetUseSpecialCuts() const
Float_t GetDCACut(Int_t iPtBin=0) const
virtual void CalculateBayesianWeights(AliAODRecoDecayHF *d)
void SetWeightsNegative(Double_t *weights)
Float_t * fCutsRD
fnVars*fnPtBins
Definition: AliRDHFCuts.h:387
Int_t IsSelectedKF(AliAODRecoDecayHF2Prong *d, AliAODEvent *aod) const
AliRDHFCutsD0toKpi & operator=(const AliRDHFCutsD0toKpi &source)
Int_t IsSelectedSpecialCuts(AliAODRecoDecayHF *d) const
Int_t CombineSelectionLevels(Int_t selectionvalTrack, Int_t selectionvalCand, Int_t selectionvalPID) const
void SetBayesianCondition(Int_t cond)
Double_t * GetWeightsPositive() const
Bool_t GetIsUsedKF() const
virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd)
Double_t GetBayesProbThreshold() const
void SetUseSpecialCuts(Bool_t useSpecialCuts)
virtual void SetStandardCutsPP2010vsMult()
void SetLowPt(Bool_t lowpt, Double_t ptlow=2.)
Bool_t IsSelected(TObject *obj)
Definition: AliRDHFCuts.h:274
void SetBayesianStrategy(Int_t strat)
Double_t * fWeightsPositive
number of species (used only for array declaration)
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
Int_t fBayesianCondition
Switch for which Bayesian PID strategy to use.
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d, Float_t *vars, Int_t nvars, Int_t *pdgdaughters)
virtual void SetStandardCutsPbPb2010()
Int_t GetGlobalIndex(Int_t iVar, Int_t iPtBin) const
Double_t fPtLowPID
flag to switch on/off D0 selection via KF
Int_t IsSelectedPIDdefault(AliAODRecoDecayHF *rd)
Double_t * GetWeightsNegative() const
virtual void SetStandardCutsPbPb2011()