1 #ifndef ALIRDHFCUTSLCTOV0_H
2 #define ALIRDHFCUTSLCTOV0_H
3 /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
8 //***********************************************************
9 // Class AliRDHFCutsLctoV0
10 // class for cuts on AOD reconstructed Lc-> V0 + bachelor
11 //***********************************************************
13 #include "AliRDHFCuts.h"
15 class AliRDHFCutsLctoV0 : public AliRDHFCuts
25 enum ELctoV0pidStrategy {
31 kTPClowTOFintermediateTOForTPChigh=5
34 AliRDHFCutsLctoV0(const char* name="CutsLctoV0", Short_t v0channel=0);
36 virtual ~AliRDHFCutsLctoV0();
38 AliRDHFCutsLctoV0(const AliRDHFCutsLctoV0& source);
39 AliRDHFCutsLctoV0& operator=(const AliRDHFCutsLctoV0& source);
41 using AliRDHFCuts::GetCutVarsForOpt;
42 virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
44 using AliRDHFCuts::IsSelected;
45 virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel);
47 using AliRDHFCuts::IsSelectedPID;
48 virtual Int_t IsSelectedPID(AliAODRecoDecayHF* obj);
50 Int_t IsSelectedSingleCut(TObject* obj, Int_t selectionLevel, Int_t cutIndex);
52 Int_t CombineCuts (Int_t returnvalueTrack, Int_t returnvalue, Int_t returnvaluePID) const;
54 Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
55 Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(7,iPtBin)] : 1.e6);}
57 void SetPidSelectionFlag(Int_t a) {fPidSelectionFlag=a;}
58 Int_t GetPidSelectionFlag() {return fPidSelectionFlag;}
60 Bool_t AreLctoV0DaughtersSelected(AliAODRecoDecayHF *rd) const;
64 void SetHighPtCut(Float_t highPtCut) {fHighPtCut=highPtCut;};
65 Float_t GetHighPtCut() const {return fHighPtCut;};
67 void SetLowPtCut(Float_t lowPtCut) {fLowPtCut=lowPtCut;};
68 Float_t GetLowPtCut() const {return fLowPtCut;};
70 virtual void SetStandardCutsPP2010();
71 virtual void SetStandardCutsPbPb2010();
72 virtual void SetStandardCutsPbPb2011();
74 virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
76 void AddTrackCutsV0daughters(AliESDtrackCuts* v0daug)
77 { delete fV0daughtersCuts; fV0daughtersCuts = new AliESDtrackCuts(*v0daug); }
78 virtual AliESDtrackCuts *GetTrackCutsV0daughters() const {return fV0daughtersCuts;}
80 virtual void PrintAll() const;
83 void CheckPID(AliAODTrack *bachelor, AliAODTrack * /*v0Neg*/, AliAODTrack * /*v0Pos*/,
84 Bool_t &isBachelorID1, Bool_t &isBachelorID2, Bool_t &isBachelorID4);
88 Int_t fPidSelectionFlag;
89 AliESDtrackCuts *fV0daughtersCuts; // cuts for v0 daughters (AOD converted to ESD on the flight!)
90 Float_t fV0Type; // V0 type -- should be defined as in AliRDHFCuts.h
91 Float_t fHighPtCut; // high pT cut separation for proton identification
92 Float_t fLowPtCut; // low pT cut separation for proton identification
94 //UShort_t fV0channel;
96 ClassDef(AliRDHFCutsLctoV0,5); // class for cuts on AOD reconstructed Lc->V0+bachelor