Updates in PbPb cuts (Andrea Rossi)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliRDHFCutsD0toKpi.h
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 //***********************************************************
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
16 class AliAODEvent;
17 class AliAODRecoDecayHF;
18 class AliAODRecoDecayHF2Prong;
19
20 class AliRDHFCutsD0toKpi : public AliRDHFCuts 
21 {
22  public:
23
24   AliRDHFCutsD0toKpi(const char* name="CutsD0toKpi");
25   
26   virtual ~AliRDHFCutsD0toKpi(){}
27
28   AliRDHFCutsD0toKpi(const AliRDHFCutsD0toKpi& source);
29   AliRDHFCutsD0toKpi& operator=(const AliRDHFCutsD0toKpi& source); 
30
31   using AliRDHFCuts::GetCutVarsForOpt;
32   virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
33     return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
34   }
35   virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
36
37   using AliRDHFCuts::IsSelected;
38   virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel) 
39                          {return IsSelected(obj,selectionLevel,0);}
40   virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent* aod);
41
42   Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
43   Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(1,iPtBin)] : 1.e6);}
44   Int_t CombineSelectionLevels(Int_t selectionvalTrack,Int_t selectionvalCand,Int_t selectionvalPID)const;
45   virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
46   virtual void SetStandardCutsPP2010();
47   virtual void SetStandardCutsPbPb2010();  
48   virtual Int_t IsSelectedPID(AliAODRecoDecayHF *rd);
49   Int_t IsSelectedPIDdefault(AliAODRecoDecayHF *rd);
50   Int_t IsSelectedSpecialCuts(AliAODRecoDecayHF *d) const;
51   void SetUseSpecialCuts(Bool_t useSpecialCuts) {fUseSpecialCuts=useSpecialCuts;}
52   void SetLowPt(Bool_t lowpt) {fLowPt=lowpt;}
53   Bool_t GetUseSpecialCuts() const {return fUseSpecialCuts;}
54   void SetUseDefaultPID(Bool_t defPID){fDefaultPID=defPID;}
55   Bool_t GetIsUsedDefPID(){return fDefaultPID;}
56   void SetUseKF(Bool_t useKF);
57   Bool_t GetIsUsedKF() const {return fUseKF;}
58   
59   
60  protected:
61   Int_t IsSelectedKF(AliAODRecoDecayHF2Prong* d,AliAODEvent* aod) const;
62
63   Bool_t fUseSpecialCuts;  // flag to switch on/off special cuts
64   Bool_t fLowPt;           // flag to switch on/off different pid for low pt D0
65   Bool_t fDefaultPID;      // flag to switch on/off the default pid
66   Bool_t fUseKF;           // flag to switch on/off D0 selection via KF 
67
68   ClassDef(AliRDHFCutsD0toKpi,5);  // class for cuts on AOD reconstructed D0->Kpi
69 };
70
71 #endif
72