AliPhysics  0bb4a45 (0bb4a45)
AliRDHFCutsB0toDStarPi.h
Go to the documentation of this file.
1 #ifndef AlIRDHFCUTSB0TODSTARPI_H
2 #define AlIRDHFCUTSB0TODSTARPI_H
3 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 //***********************************************************
10 //
11 // Based on work by A.Grelli, alessandro.grelli@uu.nl
12 // PID method implemented by Y.Wang, yifei@physi.uni-heidelberg.de
13 //***********************************************************
14 
15 #include "AliRDHFCuts.h"
16 
17 class AliAODEvent;
19 class AliAODRecoDecayHF;
20 
22 {
23  public:
24 
27  };
28 
29  AliRDHFCutsB0toDStarPi(const char* name="CutsB0toDStarPi");
30 
31  virtual ~AliRDHFCutsB0toDStarPi();
32 
35 
37  virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
38 
40  virtual Int_t IsSelected(TObject* obj, Int_t selectionLevel, AliAODEvent* aod, Bool_t* bCutArray);
41  virtual Int_t IsSelected(TObject* obj, Int_t selectionLevel) {::Error("AliAnalysisTaskB0toDStarPi", "Old selection function"); return 0;}
42 
43  Int_t IsDStarFromB0Selected(Double_t pt, TObject* obj,Int_t selectionLevel, AliAODEvent* aod, Bool_t* bCutArray);
44  Int_t IsD0FromDStarSelected(Double_t pt, TObject* obj,Int_t selectionLevel, AliAODEvent* aod, Bool_t* bCutArray);
45  Int_t IsD0forD0ptbinSelected(TObject* obj,Int_t selectionLevel, AliAODEvent* aod, Bool_t* bCutArray);
46  Int_t IsD0forDStarptbinSelected(TObject* obj,Int_t selectionLevel, AliAODEvent* aod, Bool_t* bCutArray);
47  Int_t IsDStarforDStarptbinSelected(TObject* obj,Int_t selectionLevel, AliAODEvent* aod, Bool_t* bCutArray);
48 
50  virtual Int_t SelectPID(AliAODTrack *track, Int_t type);
51  virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
52 
53  void SetMaxPtPid(Float_t maxPt){fMaxPtPid = maxPt;}
54 
55  void SetOffHighPtPIDinTPC(Float_t TPCrem =999.){fTPCflag = TPCrem;}
56 
57  void SetGetCutInfo(Bool_t value){fGetCutInfo = value;}
58  void InitializeCuts();
59 
61  void SetCircRadius(Double_t radius) { fCircRadius = radius; }
62 
65 
66  void SetCutsD0forD0ptbin(Int_t nVars,Int_t nPtBins,Float_t **cutsRDD0forD0ptbin);
68  void SetPtBinsD0forD0ptbin(Int_t nPtBinLimits,Float_t *ptBinLimits);
69 
70  void SetCutsD0forDStarptbin(Int_t nVars,Int_t nPtBins,Float_t **cutsRDD0forDStarptbin);
72  void SetPtBinsD0forDStarptbin(Int_t nPtBinLimits,Float_t *ptBinLimits);
73 
74  void SetCutsDStarforDStarptbin(Int_t nVars,Int_t nPtBins,Float_t **cutsRDDStarforDStarptbin);
76  void SetPtBinsDStarforDStarptbin(Int_t nPtBinLimits,Float_t *ptBinLimits);
77 
81  Int_t GetGlobalIndexD0forD0ptbin(Int_t iVar,Int_t iPtBin) const{return iPtBin*fnVarsD0forD0ptbin+iVar;}
85 
89  Int_t GetGlobalIndexD0forDStarptbin(Int_t iVar,Int_t iPtBin) const{return iPtBin*fnVarsD0forDStarptbin+iVar;}
93 
101 
102  void SetIsUpperCut(Int_t nCutIndex, Bool_t isUpperCut){fIsUpperCut[nCutIndex] = isUpperCut; return;}
103  void SetIsUpperCutD0forD0ptbin(Int_t nCutIndex, Bool_t isUpperCut){fIsUpperCutD0forD0ptbin[nCutIndex] = isUpperCut; return;}
104  void SetIsUpperCutD0forDStarptbin(Int_t nCutIndex, Bool_t isUpperCut){fIsUpperCutD0forDStarptbin[nCutIndex] = isUpperCut; return;}
105  void SetIsUpperCutDStarforDStarptbin(Int_t nCutIndex, Bool_t isUpperCut){fIsUpperCutDStarforDStarptbin[nCutIndex] = isUpperCut; return;}
106 
107  Bool_t GetIsUpperCut(Int_t nCutIndex){return fIsUpperCut[nCutIndex];}
111 
112  void SetIsCutUsed(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed){fIsCutUsed[GetGlobalIndex(nCutIndex,ptbin)] = isCutUsed; return;}
113  void SetIsCutUsedD0forD0ptbin(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed){fIsCutUsedD0forD0ptbin[GetGlobalIndexD0forD0ptbin(nCutIndex,ptbin)] = isCutUsed; return;}
114  void SetIsCutUsedD0forDStarptbin(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed){fIsCutUsedD0forDStarptbin[GetGlobalIndexD0forDStarptbin(nCutIndex,ptbin)] = isCutUsed; return;}
115  void SetIsCutUsedDStarforDStarptbin(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed){fIsCutUsedDStarforDStarptbin[GetGlobalIndexDStarforDStarptbin(nCutIndex,ptbin)] = isCutUsed; return;}
116 
117  Bool_t GetIsCutUsed(Int_t nCutIndex, Int_t ptbin){return fIsCutUsed[GetGlobalIndex(nCutIndex,ptbin)];}
121 
122  Int_t ApplyCutOnVariable(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[85]);
123  Int_t ApplyCutOnVariableD0forD0ptbin(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[25]);
124  Int_t ApplyCutOnVariableD0forDStarptbin(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[35]);
125  Int_t ApplyCutOnVariableDStarforDStarptbin(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[25]);
126 
127  void SetVarNamesD0forD0ptbin(Int_t nVars,TString *varNames,Bool_t *isUpperCut);
128  void SetVarNamesD0forDStarptbin(Int_t nVars,TString *varNames,Bool_t *isUpperCut);
129  void SetVarNamesDStarforDStarptbin(Int_t nVars,TString *varNames,Bool_t *isUpperCut);
130 
131 
139 
146  void SetMinPtD0Pion(Double_t value){fMinPtD0Pion = value;}
147 
155 
162  void SetMinPtD0Kaon(Double_t value){fMinPtD0Kaon = value;}
163 
171 
179 
187 
194  void SetMinPtB0Pion(Double_t value){fMinPtB0Pion = value;}
195 
196  void SetCut(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsB0toDStarPi::EUpperCut cutDirection, Float_t cutValue);
197  void SetCutD0forD0ptbin(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsB0toDStarPi::EUpperCut cutDirection, Float_t cutValue);
198  void SetCutD0forDStarptbin(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsB0toDStarPi::EUpperCut cutDirection, Float_t cutValue);
199  void SetCutDStarforDStarptbin(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsB0toDStarPi::EUpperCut cutDirection, Float_t cutValue);
200 
201  protected:
202 
207 
208  Bool_t * fIsCutUsed; //[fGlobalIndex]
209 
213  Float_t * fCutsRDD0forD0ptbin; //[fGlobalIndexD0forD0ptbin]
215  Float_t * fPtBinLimitsD0forD0ptbin; //[fnPtBinsD0forD0ptbin]
216  Bool_t * fIsUpperCutD0forD0ptbin; //[fnVarsD0forD0ptbin]
217  Bool_t * fIsCutUsedD0forD0ptbin; //[fGlobalIndexD0forD0ptbin]
218  TString * fVarNamesD0forD0ptbin; //[fnVarsD0forD0ptbin]
219 
223  Float_t * fCutsRDD0forDStarptbin; //[fGlobalIndexD0forDStarptbin]
225  Float_t * fPtBinLimitsD0forDStarptbin; //[fnPtBinsD0forDStarptbin]
226  Bool_t * fIsUpperCutD0forDStarptbin; //[fnVarsD0forDStarptbin]
227  Bool_t * fIsCutUsedD0forDStarptbin; //[fGlobalIndexD0forDStarptbin]
228  TString * fVarNamesD0forDStarptbin; //[fnVarsD0forDStarptbin]
229 
233  Float_t * fCutsRDDStarforDStarptbin; //[fGlobalIndexDStarforDStarptbin]
235  Float_t * fPtBinLimitsDStarforDStarptbin; //[fnPtBinsDStarforDStarptbin]
236  Bool_t * fIsUpperCutDStarforDStarptbin; //[fnVarsDStarforDStarptbin]
237  Bool_t * fIsCutUsedDStarforDStarptbin; //[fGlobalIndexDStarforDStarptbin]
238  TString * fVarNamesDStarforDStarptbin; //[fnVarsDStarforDStarptbin]
239 
247 
255 
263 
271 
273 
275  ClassDef(AliRDHFCutsB0toDStarPi,1)
277 };
278 
279 #endif
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d, Float_t *vars, Int_t nvars, Int_t *pdgdaughters)=0
void SetVarNamesDStarforDStarptbin(Int_t nVars, TString *varNames, Bool_t *isUpperCut)
Int_t GetGlobalIndexDStarforDStarptbin(Int_t iVar, Int_t iPtBin) const
void SetUseFilterBitB0Pion(Bool_t option)
Bool_t GetIsUpperCutDStarforDStarptbin(Int_t nCutIndex)
virtual Int_t SelectPID(AliAODTrack *track, Int_t type)
double Double_t
Definition: External.C:58
void SetUseITSRefitB0Pion(Bool_t option)
void SetNPtBinsD0forD0ptbin(Int_t nptBins)
void SetNPtBinsD0forDStarptbin(Int_t nptBins)
void SetUseFilterBitD0Kaon(Bool_t option)
void SetCutsD0forDStarptbin(Int_t nVars, Int_t nPtBins, Float_t **cutsRDD0forDStarptbin)
virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd)
void SetCutsDStarforDStarptbin(Int_t nVars, Int_t nPtBins, Float_t **cutsRDDStarforDStarptbin)
Bool_t * fIsUpperCut
Definition: AliRDHFCuts.h:421
void SetIsUpperCut(Int_t nCutIndex, Bool_t isUpperCut)
Bool_t GetIsCutUsedD0forD0ptbin(Int_t nCutIndex, Int_t ptbin)
void SetUseTPCRefitD0Pion(Bool_t option)
Int_t GetNVarsDStarforDStarptbin() const
Bool_t GetIsCutUsed(Int_t nCutIndex, Int_t ptbin)
void SetIsCutUsedD0forDStarptbin(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed)
Int_t IsDStarFromB0Selected(Double_t pt, TObject *obj, Int_t selectionLevel, AliAODEvent *aod, Bool_t *bCutArray)
Int_t ApplyCutOnVariableDStarforDStarptbin(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[25])
Bool_t GetIsUpperCutD0forD0ptbin(Int_t nCutIndex)
Int_t PtBinDStarforDStarptbin(Double_t pt) const
void SetPtBinsDStarforDStarptbin(Int_t nPtBinLimits, Float_t *ptBinLimits)
void SetCutsD0forD0ptbin(Int_t nVars, Int_t nPtBins, Float_t **cutsRDD0forD0ptbin)
Int_t IsD0forD0ptbinSelected(TObject *obj, Int_t selectionLevel, AliAODEvent *aod, Bool_t *bCutArray)
void SetIsUpperCutDStarforDStarptbin(Int_t nCutIndex, Bool_t isUpperCut)
void SetMinPtB0Pion(Double_t value)
void SetMinTPCNclsB0Pion(Int_t value)
void SetCutD0forD0ptbin(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsB0toDStarPi::EUpperCut cutDirection, Float_t cutValue)
void SetUseFilterBitDStarPion(Bool_t option)
void SetCircRadius(Double_t radius)
void SetNVarsD0forDStarptbin(Int_t nVars)
void SetNVarsD0forD0ptbin(Int_t nVars)
void SetMinTPCNclsD0Kaon(Int_t value)
Int_t PtBinD0forDStarptbin(Double_t pt) const
Double_t DeltaInvMassDStarKpipi(AliAODRecoCascadeHF *DStar) const
void SetFilterBitDStarPion(Int_t value)
void SetMaxPtPid(Float_t maxPt)
void SetPtBinsD0forD0ptbin(Int_t nPtBinLimits, Float_t *ptBinLimits)
void SetGetCutInfo(Bool_t value)
void SetFilterBitB0Pion(Int_t value)
AliRDHFCutsB0toDStarPi(const char *name="CutsB0toDStarPi")
const Int_t nPtBins
void SetMinPtD0Pion(Double_t value)
Bool_t GetIsCutUsedD0forDStarptbin(Int_t nCutIndex, Int_t ptbin)
Bool_t GetIsUpperCut(Int_t nCutIndex)
int Int_t
Definition: External.C:63
void SetUseITSRefitD0Kaon(Bool_t option)
Int_t ApplyCutOnVariableD0forD0ptbin(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[25])
void SetCut(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsB0toDStarPi::EUpperCut cutDirection, Float_t cutValue)
void SetIsCutUsedDStarforDStarptbin(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed)
void SetMinITSNclsD0Kaon(Int_t value)
float Float_t
Definition: External.C:68
void SetFilterBitD0Pion(Int_t value)
void SetIsCutUsedD0forD0ptbin(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed)
void SetIsCutUsed(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed)
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel, AliAODEvent *aod, Bool_t *bCutArray)
Int_t ApplyCutOnVariable(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[85])
void SetPtBinsD0forDStarptbin(Int_t nPtBinLimits, Float_t *ptBinLimits)
AliRDHFCutsB0toDStarPi & operator=(const AliRDHFCutsB0toDStarPi &source)
Int_t ApplyCutOnVariableD0forDStarptbin(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[35])
Int_t IsDStarforDStarptbinSelected(TObject *obj, Int_t selectionLevel, AliAODEvent *aod, Bool_t *bCutArray)
Float_t * GetPtBinLimitsDStarforDStarptbin() const
Int_t GetNPtBinsD0forD0ptbin() const
void SetNVarsDStarforDStarptbin(Int_t nVars)
void SetUseTPCRefitD0Kaon(Bool_t option)
void SetMinPtDStarPion(Double_t value)
void SetUseFilterBitD0Pion(Bool_t option)
Float_t * GetPtBinLimitsD0forD0ptbin() const
void SetMinITSNclsB0Pion(Int_t value)
Bool_t GetIsCutUsedDStarforDStarptbin(Int_t nCutIndex, Int_t ptbin)
void SetUseITSRefitD0Pion(Bool_t option)
void SetCutD0forDStarptbin(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsB0toDStarPi::EUpperCut cutDirection, Float_t cutValue)
void SetIsUpperCutD0forDStarptbin(Int_t nCutIndex, Bool_t isUpperCut)
virtual Bool_t IsInFiducialAcceptance(Double_t pt, Double_t y) const
void SetMinITSNclsD0Pion(Int_t value)
void SetMinTPCNclsDStarPion(Int_t value)
void SetMinTPCNclsD0Pion(Int_t value)
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
Bool_t GetIsUpperCutD0forDStarptbin(Int_t nCutIndex)
void SetMinITSNclsDStarPion(Int_t value)
Int_t IsD0FromDStarSelected(Double_t pt, TObject *obj, Int_t selectionLevel, AliAODEvent *aod, Bool_t *bCutArray)
Int_t PtBinD0forD0ptbin(Double_t pt) const
void SetVarNamesD0forDStarptbin(Int_t nVars, TString *varNames, Bool_t *isUpperCut)
void SetVarNamesD0forD0ptbin(Int_t nVars, TString *varNames, Bool_t *isUpperCut)
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d, Float_t *vars, Int_t nvars, Int_t *pdgdaughters)
Int_t GetGlobalIndexD0forD0ptbin(Int_t iVar, Int_t iPtBin) const
void SetCutDStarforDStarptbin(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsB0toDStarPi::EUpperCut cutDirection, Float_t cutValue)
void SetOffHighPtPIDinTPC(Float_t TPCrem=999.)
Int_t GetNPtBinsDStarforDStarptbin() const
void SetNPtBinsDStarforDStarptbin(Int_t nptBins)
Int_t GetGlobalIndexD0forDStarptbin(Int_t iVar, Int_t iPtBin) const
Bool_t IsSelected(TObject *obj)
Definition: AliRDHFCuts.h:290
Double_t DeltaInvMassB0Kpipipi(AliAODRecoCascadeHF *B0) const
void SetMinPtD0Kaon(Double_t value)
Int_t GetNVarsD0forDStarptbin() const
Int_t IsD0forDStarptbinSelected(TObject *obj, Int_t selectionLevel, AliAODEvent *aod, Bool_t *bCutArray)
void SetUseTPCRefitDStarPion(Bool_t option)
Float_t * GetPtBinLimitsD0forDStarptbin() const
Int_t GetNPtBinsD0forDStarptbin() const
void SetUseTPCRefitB0Pion(Bool_t option)
bool Bool_t
Definition: External.C:53
void SetFilterBitD0Kaon(Int_t value)
Bool_t fGetCutInfo
Radius for circular PID nsigma cut.
void SetIsUpperCutD0forD0ptbin(Int_t nCutIndex, Bool_t isUpperCut)
Int_t GetGlobalIndex(Int_t iVar, Int_t iPtBin) const
void SetUseITSRefitDStarPion(Bool_t option)