]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/AliRDHFCutsLctopKpi.h
Updated mass range for Dplus (Renu)
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliRDHFCutsLctopKpi.h
1 #ifndef ALIRDHFCUTSLCTOPKPI_H
2 #define ALIRDHFCUTSLCTOPKPI_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 AliRDHFCutsLctopKpi
10 // class for cuts on AOD reconstructed Lc->pKpi
11 // Author: A.Dainese, andrea.dainese@pd.infn.it
12 //***********************************************************
13
14 #include "AliRDHFCuts.h"
15 #include "AliAODPidHF.h"
16 #include "AliAODRecoDecayHF3Prong.h"
17
18 class AliRDHFCutsLctopKpi : public AliRDHFCuts 
19 {
20  public:
21
22  enum EPIDStrategy {
23   kNSigma,
24   kCombined
25  };
26  enum ECutsStrategy {
27   kStandard,
28   kKF
29  };
30
31
32   AliRDHFCutsLctopKpi(const char* name="CutsLctopKpi");
33   
34   virtual ~AliRDHFCutsLctopKpi();
35
36   AliRDHFCutsLctopKpi(const AliRDHFCutsLctopKpi& source);
37   AliRDHFCutsLctopKpi& operator=(const AliRDHFCutsLctopKpi& source); 
38  
39   using AliRDHFCuts::GetCutVarsForOpt;
40   virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
41     return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
42   }
43   virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
44
45   void SetPidpion(AliAODPidHF* pidPion) { 
46       if(fPidObjpion) delete fPidObjpion;
47       fPidObjpion=new AliAODPidHF(*pidPion);
48       }
49   void SetPidprot(AliAODPidHF* pidProt) {
50       if(fPidObjprot) delete fPidObjprot;
51       fPidObjprot=new AliAODPidHF(*pidProt);
52   }
53
54   virtual void SetStandardCutsPP2010();
55   virtual void SetStandardCutsPbPb2010();
56   virtual void SetStandardCutsPbPb2011();
57
58
59   AliAODPidHF* GetPidpion() const {return fPidObjpion;}
60   AliAODPidHF* GetPidprot() const {return fPidObjprot;}
61   void SetPIDStrategy(EPIDStrategy pidStrategy) {
62    fPIDStrategy=pidStrategy;
63   }
64   EPIDStrategy GetPIDStrategy() const {
65    return fPIDStrategy;
66   }
67   void SetCutsStrategy(ECutsStrategy cutsStrategy) {
68    fCutsStrategy=cutsStrategy;
69   }
70   ECutsStrategy GetCutsStrategy() const {
71    return fCutsStrategy;
72   }
73   void SetPIDThreshold(AliPID::EParticleType species,Double_t threshold) {
74    fPIDThreshold[static_cast<Int_t>(species)]=threshold;
75   }
76  Double_t GetPIDThreshold(AliPID::EParticleType species) const {
77   return fPIDThreshold[static_cast<Int_t>(species)];
78  }
79
80
81   using AliRDHFCuts::IsSelected;
82   virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel)
83                            {return IsSelected(obj,selectionLevel,0);}
84   virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent *aod);
85   using AliRDHFCuts::IsSelectedPID;
86   virtual Int_t IsSelectedPID(AliAODRecoDecayHF* obj);
87   Int_t IsSelectedCombinedPID(AliAODRecoDecayHF* obj);
88   Int_t CombinePIDCuts (Int_t returnvalue, Int_t returnvaluePID) const;
89
90   virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
91   
92   Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
93   Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(11,iPtBin)] : 1.e6);}
94
95   void SetUseImpParProdCorrCut(Bool_t use){
96     fUseImpParProdCorrCut=use;
97   }
98   Bool_t GetUseImpParProdCorrCut() const {
99     return fUseImpParProdCorrCut;
100   }
101
102   AliKFParticle* ReconstructKF(AliAODRecoDecayHF3Prong *d,Int_t *pdgs,Double_t field,Bool_t constraint) const;
103  protected:
104   AliAODPidHF *fPidObjprot;
105   AliAODPidHF *fPidObjpion;
106   Bool_t fUseImpParProdCorrCut; //switch for cut on d0p*d0K vs. d0K*d0pi 
107
108 private:
109   EPIDStrategy fPIDStrategy;                // PIS strategy (nsigma, combined)
110   Double_t fPIDThreshold[AliPID::kSPECIES]; // PID threshold for each species
111   ECutsStrategy fCutsStrategy;              // cut strategy (standard or KF)
112
113   ClassDef(AliRDHFCutsLctopKpi,5);  // class for cuts on AOD reconstructed Lc->pKpi
114 };
115
116 #endif
117