AliPhysics  ff07904 (ff07904)
AliRDHFCutsBPlustoD0Pi.h
Go to the documentation of this file.
1 #ifndef AlIRDHFCUTSBPlustoD0Pi_H
2 #define AlIRDHFCUTSBPlustoD0Pi_H
3 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
11 //
12 // Author Lennart van Doremalen
13 // Utrecht University - l.v.r.vandoremalen@uu.nl
14 //
15 // Several AliPhysics classes have been used as a basis for this code
16 //
18 
19 #include "AliRDHFCuts.h"
20 
21 class AliAODEvent;
23 class AliAODRecoDecayHF;
24 
26 {
27  public:
28 
31  };
32 
33  AliRDHFCutsBPlustoD0Pi(const char* name="BPlustoD0PiCuts");
34 
35  virtual ~AliRDHFCutsBPlustoD0Pi();
36 
39 
41  virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
42 
44  virtual Int_t IsSelected(TObject* obj, Int_t selectionLevel, AliAODEvent* aod, Bool_t* bCutArray);
45  virtual Int_t IsSelected(TObject* obj, Int_t selectionLevel) {::Error("AliAnalysisTaskBPlustoD0Pi", "Old selection function"); return 0;}
46  Int_t IsD0FromBPlusSelected(Double_t ptBPlus, TObject* obj,Int_t selectionLevel, AliAODEvent* aod, Bool_t bCutArray[68]);
47  Int_t IsD0forD0ptbinSelected(TObject* obj,Int_t selectionLevel, AliAODEvent* aod, Bool_t* bCutArray);
48 
49 
51  virtual Int_t SelectPID(AliAODTrack *track, Int_t type);
52  virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
53 
54  void SetMaxPtPid(Float_t maxPt){fMaxPtPid = maxPt;}
55 
56  void SetOffHighPtPIDinTPC(Float_t TPCrem =999.){fTPCflag = TPCrem;}
57 
58  void SetGetCutInfo(Bool_t value){fGetCutInfo = value;}
59  void InitializeCuts();
60 
62  void SetCircRadius(Double_t radius) { fCircRadius = radius; }
63 
65 
66  void SetCutsD0forD0ptbin(Int_t nVars,Int_t nPtBins,Float_t **cutsRDD0forD0ptbin);
67  void SetCutsD0forD0ptbin(Int_t glIndex,Float_t *cutsRDD0forD0ptbin);
69  void SetPtBinsD0forD0ptbin(Int_t nPtBinLimits,Float_t *ptBinLimits);
70 
74  Int_t GetGlobalIndexD0forD0ptbin(Int_t iVar,Int_t iPtBin) const{return iPtBin*fnVarsD0forD0ptbin+iVar;}
76  void SetNPtBinsD0forD0ptbin(Int_t nptBins){fnPtBinsD0forD0ptbin=nptBins; return;}
77  void SetNVarsD0forD0ptbin(Int_t nVars){fnVarsD0forD0ptbin=nVars; return;}
78 
79  void SetIsUpperCut(Int_t nCutIndex, Bool_t isUpperCut){fIsUpperCut[nCutIndex] = isUpperCut; return;}
80  void SetIsUpperCutD0forD0ptbin(Int_t nCutIndex, Bool_t isUpperCut){fIsUpperCutD0forD0ptbin[nCutIndex] = isUpperCut; return;}
81 
82  Bool_t GetIsUpperCut(Int_t nCutIndex){return fIsUpperCut[nCutIndex];}
84 
85  void SetIsCutUsed(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed){fIsCutUsed[GetGlobalIndex(nCutIndex,ptbin)] = isCutUsed; return;}
86  void SetIsCutUsedD0forD0ptbin(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed){fIsCutUsedD0forD0ptbin[GetGlobalIndexD0forD0ptbin(nCutIndex,ptbin)] = isCutUsed; return;}
87 
88  Bool_t GetIsCutUsed(Int_t nCutIndex, Int_t ptbin) const {return fIsCutUsed[GetGlobalIndex(nCutIndex,ptbin)];}
90 
91  Int_t ApplyCutOnVariable(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[68]);
92  Int_t ApplyCutOnVariableD0forD0ptbin(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[29]);
93 
94  void SetVarNamesD0forD0ptbin(Int_t nVars,TString *varNames,Bool_t *isUpperCut);
95 
104  void GetHardSelectionArrayITSD0FirstDaughter(Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){array[i] = fHardSelectionArrayITSD0FirstDaughter[i];} return;}
105  void GetSoftSelectionArrayITSD0FirstDaughter(Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){array[i] = fSoftSelectionArrayITSD0FirstDaughter[i];} return;}
107 
116  void SetHardSelectionArrayITSD0FirstDaughter(const Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){fHardSelectionArrayITSD0FirstDaughter[i] = array[i];} return;}
117  void SetSoftSelectionArrayITSD0FirstDaughter(const Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){fSoftSelectionArrayITSD0FirstDaughter[i] = array[i];} return;}
119 
128  void GetHardSelectionArrayITSD0SecondDaughter(Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){array[i] = fHardSelectionArrayITSD0SecondDaughter[i];} return;}
129  void GetSoftSelectionArrayITSD0SecondDaughter(Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){array[i] = fSoftSelectionArrayITSD0SecondDaughter[i];} return;}
131 
140  void SetHardSelectionArrayITSD0SecondDaughter(const Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){fHardSelectionArrayITSD0SecondDaughter[i] = array[i];} return;}
141  void SetSoftSelectionArrayITSD0SecondDaughter(const Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){fSoftSelectionArrayITSD0SecondDaughter[i] = array[i];} return;}
143 
152  void GetHardSelectionArrayITSBPlusPion(Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){array[i] = fHardSelectionArrayITSBPlusPion[i];} return;}
153  void GetSoftSelectionArrayITSBPlusPion(Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){array[i] = fSoftSelectionArrayITSBPlusPion[i];} return;}
155 
156  void SetMinITSNclsBPlusPion(Int_t value){fMinITSNclsBPlusPion = value; return;}
157  void SetMinTPCNclsBPlusPion(Int_t value){fMinTPCNclsBPlusPion = value; return;}
158  void SetUseITSRefitBPlusPion(Bool_t option){fUseITSRefitBPlusPion = option; return;}
159  void SetUseTPCRefitBPlusPion(Bool_t option){fUseTPCRefitBPlusPion = option; return;}
161  void SetFilterBitBPlusPion(Int_t value){fFilterBitBPlusPion = value; return;}
162  void SetMinPtBPlusPion(Double_t value){fMinPtBPlusPion = value; return;}
163  void SetMaxAbsEtaBPlusPion(Double_t value){fMaxAbsEtaBPlusPion = value; return;}
164  void SetHardSelectionArrayITSBPlusPion(const Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){fHardSelectionArrayITSBPlusPion[i] = array[i];}}
165  void SetSoftSelectionArrayITSBPlusPion(const Bool_t array[7] = 0){for(Int_t i=0;i<7;i++){fSoftSelectionArrayITSBPlusPion[i] = array[i];}}
167 
168  void SetCut(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsBPlustoD0Pi::EUpperCut cutDirection, Float_t cutValue);
169  void SetCutD0forD0ptbin(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsBPlustoD0Pi::EUpperCut cutDirection, Float_t cutValue);
170 
174 
177  void SetMind0BPlusPion(Double_t value){fMind0BPlusPion = value; return;}
178 
179  protected:
180 
185 
186  Bool_t * fIsCutUsed; //[fGlobalIndex]
187 
191  Float_t * fCutsRDD0forD0ptbin; //[fGlobalIndexD0forD0ptbin]
193  Float_t * fPtBinLimitsD0forD0ptbin; //[fnPtBinLimitsD0forD0ptbin]
194  Bool_t * fIsUpperCutD0forD0ptbin; //[fnVarsD0forD0ptbin]
195  Bool_t * fIsCutUsedD0forD0ptbin; //[fGlobalIndexD0forD0ptbin]
196  TString * fVarNamesD0forD0ptbin; //[fnVarsD0forD0ptbin]
197 
209 
221 
233 
237 
239  ClassDef(AliRDHFCutsBPlustoD0Pi,1)
240 };
242 
243 #endif
244 
245 
Bool_t GetIsCutUsed(Int_t nCutIndex, Int_t ptbin) const
void SetUseTPCRefitBPlusPion(Bool_t option)
Int_t IsD0FromBPlusSelected(Double_t ptBPlus, TObject *obj, Int_t selectionLevel, AliAODEvent *aod, Bool_t bCutArray[68])
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d, Float_t *vars, Int_t nvars, Int_t *pdgdaughters)=0
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel, AliAODEvent *aod, Bool_t *bCutArray)
double Double_t
Definition: External.C:58
Float_t * GetPtBinLimitsD0forD0ptbin() const
Bool_t GetIsCutUsedD0forD0ptbin(Int_t nCutIndex, Int_t ptbin) const
Bool_t GetIsUpperCutD0forD0ptbin(Int_t nCutIndex)
void SetMinITSNclsD0FirstDaughter(Int_t value)
void SetHardSelectionArrayITSD0SecondDaughter(const Bool_t array[7]=0)
void SetMind0BPlusPion(Double_t value)
Int_t GetGlobalIndexD0forD0ptbin(Int_t iVar, Int_t iPtBin) const
void GetSoftSelectionArrayITSD0SecondDaughter(Bool_t array[7]=0)
void SetIsUpperCutD0forD0ptbin(Int_t nCutIndex, Bool_t isUpperCut)
Bool_t * fIsUpperCut
Definition: AliRDHFCuts.h:433
virtual Bool_t IsInFiducialAcceptance(Double_t pt, Double_t y) const
Double_t DeltaInvMassBPlusKpipi(AliAODRecoDecayHF2Prong *BPlus) const
void SetVarNamesD0forD0ptbin(Int_t nVars, TString *varNames, Bool_t *isUpperCut)
void SetCircRadius(Double_t radius)
Bool_t fHardSelectionArrayITSD0SecondDaughter[7]
void SetIsCutUsedD0forD0ptbin(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed)
void SetUseITSRefitD0FirstDaughter(Bool_t option)
void SetNSoftITSCutD0SecondDaughter(Int_t value)
Int_t IsD0forD0ptbinSelected(TObject *obj, Int_t selectionLevel, AliAODEvent *aod, Bool_t *bCutArray)
void SetMind0D0SecondDaughter(Double_t value)
void SetFilterBitD0SecondDaughter(Int_t value)
void SetNSoftITSCutD0FirstDaughter(Int_t value)
virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d, Float_t *vars, Int_t nvars, Int_t *pdgdaughters)
void SetMinTPCNclsBPlusPion(Int_t value)
const Int_t nPtBins
void SetUseITSRefitD0SecondDaughter(Bool_t option)
Int_t ApplyCutOnVariableD0forD0ptbin(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[29])
void SetNPtBinsD0forD0ptbin(Int_t nptBins)
Int_t PtBinD0forD0ptbin(Double_t pt) const
int Int_t
Definition: External.C:63
virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd)
void GetHardSelectionArrayITSD0FirstDaughter(Bool_t array[7]=0)
void SetSoftSelectionArrayITSD0SecondDaughter(const Bool_t array[7]=0)
float Float_t
Definition: External.C:68
virtual Int_t IsSelected(TObject *obj, Int_t selectionLevel)
void SetMaxAbsEtaD0SecondDaughter(Double_t value)
void SetCut(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsBPlustoD0Pi::EUpperCut cutDirection, Float_t cutValue)
void SetIsCutUsed(Int_t nCutIndex, Int_t ptbin, Bool_t isCutUsed)
AliRDHFCutsBPlustoD0Pi(const char *name="BPlustoD0PiCuts")
virtual Int_t SelectPID(AliAODTrack *track, Int_t type)
void SetMaxAbsEtaBPlusPion(Double_t value)
void SetSoftSelectionArrayITSBPlusPion(const Bool_t array[7]=0)
void SetOffHighPtPIDinTPC(Float_t TPCrem=999.)
void SetUseFilterBitD0FirstDaughter(Bool_t option)
void GetHardSelectionArrayITSD0SecondDaughter(Bool_t array[7]=0)
void SetMinITSNclsD0SecondDaughter(Int_t value)
void SetMaxAbsEtaD0FirstDaughter(Double_t value)
void SetUseTPCRefitD0FirstDaughter(Bool_t option)
void SetMinITSNclsBPlusPion(Int_t value)
Bool_t GetIsUpperCut(Int_t nCutIndex)
void SetFilterBitD0FirstDaughter(Int_t value)
void SetMinPtD0FirstDaughter(Double_t value)
void SetHardSelectionArrayITSD0FirstDaughter(const Bool_t array[7]=0)
void SetNSoftITSCutBPlusPion(Int_t value)
void SetGetCutInfo(Bool_t value)
void SetMinPtBPlusPion(Double_t value)
void GetSoftSelectionArrayITSD0FirstDaughter(Bool_t array[7]=0)
void SetMaxPtPid(Float_t maxPt)
void SetUseTPCRefitD0SecondDaughter(Bool_t option)
void GetSoftSelectionArrayITSBPlusPion(Bool_t array[7]=0)
void GetHardSelectionArrayITSBPlusPion(Bool_t array[7]=0)
void SetHardSelectionArrayITSBPlusPion(const Bool_t array[7]=0)
void SetSoftSelectionArrayITSD0FirstDaughter(const Bool_t array[7]=0)
void SetUseITSRefitBPlusPion(Bool_t option)
Bool_t IsSelected(TObject *obj)
Definition: AliRDHFCuts.h:292
void SetMinPtD0SecondDaughter(Double_t value)
void SetNVarsD0forD0ptbin(Int_t nVars)
void SetPtBinsD0forD0ptbin(Int_t nPtBinLimits, Float_t *ptBinLimits)
AliRDHFCutsBPlustoD0Pi & operator=(const AliRDHFCutsBPlustoD0Pi &source)
bool Bool_t
Definition: External.C:53
void SetMinTPCNclsD0FirstDaughter(Int_t value)
void SetMinTPCNclsD0SecondDaughter(Int_t value)
Int_t GetNPtBinsD0forD0ptbin() const
void SetUseFilterBitD0SecondDaughter(Bool_t option)
Bool_t fSoftSelectionArrayITSD0SecondDaughter[7]
void SetFilterBitBPlusPion(Int_t value)
void SetCutD0forD0ptbin(Int_t nCutIndex, Int_t ptBin, AliRDHFCutsBPlustoD0Pi::EUpperCut cutDirection, Float_t cutValue)
Int_t GetGlobalIndex(Int_t iVar, Int_t iPtBin) const
Int_t ApplyCutOnVariable(Int_t nCutIndex, Int_t ptbin, Float_t cutVariableValue, Bool_t bCutArray[68])
void SetCutsD0forD0ptbin(Int_t nVars, Int_t nPtBins, Float_t **cutsRDD0forD0ptbin)
void SetUseFilterBitBPlusPion(Bool_t option)
Bool_t fGetCutInfo
Radius for circular PID nsigma cut.
void SetIsUpperCut(Int_t nCutIndex, Bool_t isUpperCut)
void SetMind0D0FirstDaughter(Double_t value)