]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/AliRDHFCutsD0toKpi.h
Fixes for possible leaks
[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();
fc051756 51 virtual void SetStandardCutsPP2011_276TeV();
0c22e2ac 52 virtual void SetStandardCutsPbPb2010();
53 virtual void SetStandardCutsPbPb2011();
c1235da7 54 void SetStandardCutsPbPb2010Peripherals();
937e1290 55 virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd);
08ea5c32 56 Int_t IsSelectedPIDdefault(AliAODRecoDecayHF *rd);
937e1290 57 Int_t IsSelectedSpecialCuts(AliAODRecoDecayHF *d) const;
58 void SetUseSpecialCuts(Bool_t useSpecialCuts) {fUseSpecialCuts=useSpecialCuts;}
849ad3e5 59 void SetMaximumPtSpecialCuts(Double_t pt) { fPtMaxSpecialCuts=pt; }
1d9bf4ef 60 void SetMaximumPforPID(Double_t p){fmaxPtrackForPID=p;}
61 Double_t GetMaximumPforPID(){return fmaxPtrackForPID;}
849ad3e5 62 Double_t GetMaximumPtSpecialCuts() const { return fPtMaxSpecialCuts; }
39827ef5 63 void SetLowPt(Bool_t lowpt,Double_t ptlow=2.) {fLowPt=lowpt;fPtLowPID=ptlow;}
937e1290 64 Bool_t GetUseSpecialCuts() const {return fUseSpecialCuts;}
08ea5c32 65 void SetUseDefaultPID(Bool_t defPID){fDefaultPID=defPID;}
66 Bool_t GetIsUsedDefPID(){return fDefaultPID;}
39827ef5 67 Double_t GetPtForPIDtight()const {return fPtLowPID;}
5f25117b 68 void SetUseKF(Bool_t useKF);
69 Bool_t GetIsUsedKF() const {return fUseKF;}
e2aa82b6 70 void SetWeightsPositive(Double_t* weights){
71 for (Int_t i = 0; i<AliPID::kSPECIES; i++) {
72 fWeightsPositive[i] = weights[i];
73 }
74}
75 Double_t *GetWeightsPositive() const {return fWeightsPositive;}
76 void SetWeightsNegative(Double_t* weights){
77 for (Int_t i = 0; i<AliPID::kSPECIES; i++) {
78 fWeightsNegative[i] = weights[i];
79 }
80 }
81 Double_t *GetWeightsNegative() const {return fWeightsNegative;}
82 void SetBayesianStrategy(Int_t strat) {fBayesianStrategy=strat;}
83 Int_t GetBayesianStrategy() const {return fBayesianStrategy;}
84
85 enum EBayesianStrategy {
86 kBayesMomentum,
87 kBayesWeight,
88 kBayesWeightNoFilter,
89 kBayesSimple
90 };
c2ec6218 91
b8f433ab 92
93 enum EBayesianCondition {
94 kMaxProb,
95 kAbovePrior,
96 kThreshold
97 };
98
99 void SetBayesianCondition(Int_t cond) {fBayesianCondition=cond;}
100 Int_t GetBayesianCondition() const {return fBayesianCondition;}
e2aa82b6 101 void SetCombPID(Bool_t CombPID){fCombPID=CombPID;}
102 Bool_t GetCombPID() const {return fCombPID;}
b8f433ab 103 void SetBayesProbThreshold(Double_t thresh){fProbThreshold=thresh;}
104 Double_t GetBayesProbThreshold() const {return fProbThreshold;}
105
0c22e2ac 106
650b3ced 107 protected:
c2ec6218 108
5f25117b 109 Int_t IsSelectedKF(AliAODRecoDecayHF2Prong* d,AliAODEvent* aod) const;
110
111 Bool_t fUseSpecialCuts; // flag to switch on/off special cuts
08ea5c32 112 Bool_t fLowPt; // flag to switch on/off different pid for low pt D0
113 Bool_t fDefaultPID; // flag to switch on/off the default pid
e2aa82b6 114
5f25117b 115 Bool_t fUseKF; // flag to switch on/off D0 selection via KF
39827ef5 116 Double_t fPtLowPID; // transverse momentum below which the strong PID is applied
849ad3e5 117 Double_t fPtMaxSpecialCuts; // transverse momentum below which the special cuts are applied
e2aa82b6 118
849ad3e5 119 // if set to zero, used for all pt
1d9bf4ef 120 Double_t fmaxPtrackForPID; // max momentum for applying PID
5f25117b 121
e2aa82b6 122 Bool_t fCombPID; //switch for Bayesian
c2ec6218 123 Int_t fnSpecies; //number of species (used only for array declaration)
124 Double_t* fWeightsPositive; //[fnSpecies] Bayesian weights for positive track
125 Double_t* fWeightsNegative; //[fnSpecies] Bayesian weights for negative track
e2aa82b6 126
b8f433ab 127 Double_t fProbThreshold; //Probability threshold for kaon to be accepted in Bayesian method (only applied if fBayesianCondition==kThreshold)
128
129 Int_t fBayesianStrategy; // Switch for which Bayesian PID strategy to use
130 Int_t fBayesianCondition; //Switch for conition applied to kaons
131
132 ClassDef(AliRDHFCutsD0toKpi,11); // class for cuts on AOD reconstructed D0->Kpi
650b3ced 133};
134
135#endif
aa8d25fe 136