AliPhysics  ed43440 (ed43440)
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 #include "TObjArray.h"
16 
17 class AliAODEvent;
18 class AliAODRecoDecayHF;
20 
22 {
23  public:
24 
25 
26  AliRDHFCutsD0toKpi(const char* name="CutsD0toKpi");
27 
28  virtual ~AliRDHFCutsD0toKpi();
29 
32 
34  virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
35  return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
36  }
37  virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
38 
40  virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel)
41  {return IsSelected(obj,selectionLevel,0);}
42  virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent* aod);
43  virtual Int_t PreSelect(TObjArray aodtracks);
45  Int_t IsSelectedCombPID(TObjArray aodTracks);
47  void CalculateBayesianWeights(TObjArray aodTracks);
48 
49  Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
50  Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(1,iPtBin)] : 1.e6);}
51  Int_t CombineSelectionLevels(Int_t selectionvalTrack,Int_t selectionvalCand,Int_t selectionvalPID)const;
52  virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
53  virtual void SetStandardCutsPP2010();
54  virtual void SetStandardCutsPP2010vsMult();
55  virtual void SetStandardCutsPP2011_276TeV();
56  virtual void SetStandardCutsPbPb2010();
57  virtual void SetStandardCutsPbPb2011();
60  Int_t IsSelectedPID(Double_t pt, TObjArray aodTracks);
64  void SetUseSpecialCuts(Bool_t useSpecialCuts) {fUseSpecialCuts=useSpecialCuts;}
67  void SetImpParDCut(UInt_t nPtBins, Float_t *cutval);
68  void SetFlatImpParDCut(Float_t value);
73  void SetLowPt(Bool_t lowpt,Double_t ptlow=2.) {fLowPt=lowpt;fPtLowPID=ptlow;}
75  void SetUseDefaultPID(Bool_t defPID){fDefaultPID=defPID;}
78  void SetUseKF(Bool_t useKF);
79  Bool_t GetIsUsedKF() const {return fUseKF;}
80  void SetWeightsPositive(Double_t* weights){
81  for (Int_t i = 0; i<AliPID::kSPECIES; i++) {
82  fWeightsPositive[i] = weights[i];
83  }
84 }
86  void SetWeightsNegative(Double_t* weights){
87  for (Int_t i = 0; i<AliPID::kSPECIES; i++) {
88  fWeightsNegative[i] = weights[i];
89  }
90  }
94 
100  };
101 
102 
107  };
108 
111  void SetCombPID(Bool_t CombPID){fCombPID=CombPID;}
112  Bool_t GetCombPID() const {return fCombPID;}
115 
117  const Float_t *GetImpParDCut() const {return fMaxImpParD;}
118 
119  virtual void PrintAll()const;
120 
121  protected:
122 
124 
128 
131 //new cuts
133  Float_t *fMaxImpParD; //[fnPtBins] cut values on D0 ImpParXY
135  Float_t *fMaxd0MeasMinusExp;//[fnPtBins] cut values on d0meas-d0exp;
137 
140 
143  Double_t* fWeightsPositive; //[fnSpecies] Bayesian weights for positive track
144  Double_t* fWeightsNegative; //[fnSpecies] Bayesian weights for negative track
145 
146  Double_t fProbThreshold; //Probability threshold for kaon to be accepted in Bayesian method (only applied if fBayesianCondition==kThreshold)
147 
150 
152  ClassDef(AliRDHFCutsD0toKpi,12);
153 };
155 
156 #endif
157 
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)
UInt_t fUseImpParDCut
transverse momentum below which the strong PID is applied
double Double_t
Definition: External.C:58
Bool_t fUseKF
flag to switch on/off the default pid
void SetMaximumPforPID(Double_t p)
Bool_t GetCombPID() const
const Float_t * Getd0MeasMinusExpCut() const
Bool_t fCombPID
max momentum for applying PID
Double_t GetPtForPIDtight() const
virtual void PrintAll() 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:255
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
const Int_t nPtBins
Int_t GetBayesianCondition() const
void Setd0MeasMinusExpCut(UInt_t nPtBins, Float_t *cutval)
int Int_t
Definition: External.C:63
void SetUseKF(Bool_t useKF)
void SetMaximumPtSpecialCuts(Double_t pt)
unsigned int UInt_t
Definition: External.C:33
float Float_t
Definition: External.C:68
Bool_t GetUseSpecialCuts() const
Float_t * fMaxImpParD
switch for cut on D0 ImpParXY; =0 –> not used, >0 value represents array size (it has to coincide wi...
Float_t GetDCACut(Int_t iPtBin=0) const
virtual void CalculateBayesianWeights(AliAODRecoDecayHF *d)
void SetImpParDCut(UInt_t nPtBins, Float_t *cutval)
void SetWeightsNegative(Double_t *weights)
Float_t * fCutsRD
fnVars*fnPtBins
Definition: AliRDHFCuts.h:435
Int_t IsSelectedKF(AliAODRecoDecayHF2Prong *d, AliAODEvent *aod) const
const Float_t * GetImpParDCut() 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
Float_t * fMaxd0MeasMinusExp
switch for cut on d0meas-d0exp; =0 –> not used, >0 value represents array size (it has to coincide w...
void SetBayesianCondition(Int_t cond)
Double_t * GetWeightsPositive() const
Bool_t GetIsUsedKF() const
virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd)
void SetFlatd0MeasMinusExpCut(Float_t value)
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:293
void SetBayesianStrategy(Int_t strat)
void SetFlatImpParDCut(Float_t value)
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.
bool Bool_t
Definition: External.C:53
virtual Int_t PreSelect(TObjArray aodtracks)
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()