]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/AliRDHFCutsLctopKpi.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliRDHFCutsLctopKpi.h
CommitLineData
e3d40058 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
27de2dfb 6/* $Id$ */
7
e3d40058 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"
7ad4b782 15#include "AliAODPidHF.h"
16#include "AliAODRecoDecayHF3Prong.h"
e3d40058 17
18class AliRDHFCutsLctopKpi : public AliRDHFCuts
19{
20 public:
21
c1234468 22 enum EPIDStrategy {
23 kNSigma,
a4b982a5 24 kCombined,
ef5f00b2 25 kCombinedSoft,
31ae915b 26 kNSigmaStrong,
27 kCombinedpPb,
7e6f4f22 28 kCombinedpPb2,
29 kNSigmaPbPb
c1234468 30 };
31 enum ECutsStrategy {
32 kStandard,
33 kKF
34 };
35
36
a9b75906 37 AliRDHFCutsLctopKpi(const char* name="CutsLctopKpi");
e3d40058 38
7ad4b782 39 virtual ~AliRDHFCutsLctopKpi();
e3d40058 40
41 AliRDHFCutsLctopKpi(const AliRDHFCutsLctopKpi& source);
42 AliRDHFCutsLctopKpi& operator=(const AliRDHFCutsLctopKpi& source);
43
ed2d2734 44 using AliRDHFCuts::GetCutVarsForOpt;
e0fb900a 45 virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters){
46 return GetCutVarsForOpt(d,vars,nvars,pdgdaughters,0x0);
47 }
48 virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters,AliAODEvent *aod);
a6003e0a 49
7ad4b782 50 void SetPidpion(AliAODPidHF* pidPion) {
51 if(fPidObjpion) delete fPidObjpion;
52 fPidObjpion=new AliAODPidHF(*pidPion);
53 }
54 void SetPidprot(AliAODPidHF* pidProt) {
55 if(fPidObjprot) delete fPidObjprot;
56 fPidObjprot=new AliAODPidHF(*pidProt);
57 }
58
59 virtual void SetStandardCutsPP2010();
a8b8e864 60 virtual void SetStandardCutsPbPb2010();
0c22e2ac 61 virtual void SetStandardCutsPbPb2011();
7d020878 62 virtual void SetStandardCutsPPb2013();
7ad4b782 63
7ad4b782 64
65 AliAODPidHF* GetPidpion() const {return fPidObjpion;}
66 AliAODPidHF* GetPidprot() const {return fPidObjprot;}
c1234468 67 void SetPIDStrategy(EPIDStrategy pidStrategy) {
68 fPIDStrategy=pidStrategy;
69 }
70 EPIDStrategy GetPIDStrategy() const {
71 return fPIDStrategy;
72 }
73 void SetCutsStrategy(ECutsStrategy cutsStrategy) {
74 fCutsStrategy=cutsStrategy;
75 }
76 ECutsStrategy GetCutsStrategy() const {
77 return fCutsStrategy;
78 }
79 void SetPIDThreshold(AliPID::EParticleType species,Double_t threshold) {
80 fPIDThreshold[static_cast<Int_t>(species)]=threshold;
81 }
82 Double_t GetPIDThreshold(AliPID::EParticleType species) const {
83 return fPIDThreshold[static_cast<Int_t>(species)];
84 }
a4b982a5 85 Bool_t GetUseSpecialCut(){return fUseSpecialCut;}
86 void SetUseSpecialCut(Bool_t useSpecialCut=kTRUE){fUseSpecialCut=useSpecialCut;}
e3d40058 87
88 using AliRDHFCuts::IsSelected;
7ad4b782 89 virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel)
90 {return IsSelected(obj,selectionLevel,0);}
91 virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel,AliAODEvent *aod);
92 using AliRDHFCuts::IsSelectedPID;
93 virtual Int_t IsSelectedPID(AliAODRecoDecayHF* obj);
11690a06 94 Int_t IsSelectedCombinedPID(AliAODRecoDecayHF* obj);
a4b982a5 95 Int_t IsSelectedCombinedPIDSoft(AliAODRecoDecayHF* obj);
31ae915b 96 Int_t IsSelectedCombinedPIDpPb(AliAODRecoDecayHF* obj);
97 Int_t IsSelectedCombinedPIDpPb2(AliAODRecoDecayHF* obj);
ef5f00b2 98 Int_t IsSelectedPIDStrong(AliAODRecoDecayHF* obj);
7d020878 99 Int_t IsSelectedNSigmaPbPb(AliAODRecoDecayHF* obj);
7ad4b782 100 Int_t CombinePIDCuts (Int_t returnvalue, Int_t returnvaluePID) const;
c1234468 101
102 virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
e3d40058 103
104 Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
105 Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(11,iPtBin)] : 1.e6);}
106
43d2fecc 107 void SetUseImpParProdCorrCut(Bool_t use){
108 fUseImpParProdCorrCut=use;
109 }
110 Bool_t GetUseImpParProdCorrCut() const {
111 return fUseImpParProdCorrCut;
112 }
113
c1234468 114 AliKFParticle* ReconstructKF(AliAODRecoDecayHF3Prong *d,Int_t *pdgs,Double_t field,Bool_t constraint) const;
e3d40058 115 protected:
7ad4b782 116 AliAODPidHF *fPidObjprot;
117 AliAODPidHF *fPidObjpion;
43d2fecc 118 Bool_t fUseImpParProdCorrCut; //switch for cut on d0p*d0K vs. d0K*d0pi
e3d40058 119
c1234468 120private:
cc4bd7b4 121 EPIDStrategy fPIDStrategy; // PIS strategy (nsigma, combined)
122 Double_t fPIDThreshold[AliPID::kSPECIES]; // PID threshold for each species
123 ECutsStrategy fCutsStrategy; // cut strategy (standard or KF)
a4b982a5 124 Bool_t fUseSpecialCut;
c1234468 125
7e6f4f22 126 ClassDef(AliRDHFCutsLctopKpi,9); // class for cuts on AOD reconstructed Lc->pKpi
e3d40058 127};
128
129#endif
a8b8e864 130
31ae915b 131