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 "AliAODPidHF.h"
14 #include "AliRDHFCuts.h"
16 class AliRDHFCutsLctoV0 : public AliRDHFCuts
26 enum ELctoV0pidStrategy {
33 AliRDHFCutsLctoV0(const char* name="CutsLctoV0", Short_t v0channel=0);
35 virtual ~AliRDHFCutsLctoV0();
37 AliRDHFCutsLctoV0(const AliRDHFCutsLctoV0& source);
38 AliRDHFCutsLctoV0& operator=(const AliRDHFCutsLctoV0& source);
40 using AliRDHFCuts::GetCutVarsForOpt;
41 virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters);
43 using AliRDHFCuts::IsSelected;
44 virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel);
46 using AliRDHFCuts::IsSelectedPID;
47 virtual Int_t IsSelectedPID(AliAODRecoDecayHF* obj);
49 Int_t IsSelectedSingleCut(TObject* obj, Int_t selectionLevel, Int_t cutIndex);
51 Int_t CombinePIDCuts (Int_t returnvalue, Int_t returnvaluePID) const;
53 Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);}
54 Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(7,iPtBin)] : 1.e6);}
56 void SetPidSelectionFlag(Int_t a) {fPidSelectionFlag=a;}
57 Int_t GetPidSelectionFlag() {return fPidSelectionFlag;}
61 virtual void SetStandardCutsPP2010();
62 virtual void SetStandardCutsPbPb2010();
63 virtual void SetStandardCutsPbPb2011();
65 virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const;
67 void SetPidV0pos(AliAODPidHF* pidV0pos) {
68 if (fPidHFV0pos) delete fPidHFV0pos;
69 fPidHFV0pos = new AliAODPidHF(*pidV0pos);
71 void SetPidV0neg(AliAODPidHF* pidV0neg) {
72 if (fPidHFV0neg) delete fPidHFV0neg;
73 fPidHFV0neg = new AliAODPidHF(*pidV0neg);
76 AliAODPidHF * GetPidV0pos() { return fPidHFV0pos; }
77 AliAODPidHF * GetPidV0neg() { return fPidHFV0neg; }
79 void AddTrackCutsV0daughters(AliESDtrackCuts* v0daug) {
80 fV0daughtersCuts = new AliESDtrackCuts(*v0daug);
82 virtual AliESDtrackCuts *GetTrackCutsV0daughters() const {return fV0daughtersCuts;}
84 virtual void PrintAll() const;
87 void CheckPID(AliAODTrack *bachelor, AliAODTrack *v0Neg, AliAODTrack *v0Pos,
88 Bool_t &isBachelorID1, Bool_t &isV0NegID2, Bool_t &isV0PosID4);
92 Int_t fPidSelectionFlag;
93 AliAODPidHF *fPidHFV0pos;
94 AliAODPidHF *fPidHFV0neg;
95 AliESDtrackCuts *fV0daughtersCuts; // cuts for v0 daughters (AOD converted to ESD on the flight!)
96 Float_t fV0Type; // V0 type -- should be defined as in AliRDHFCuts.h
98 //UShort_t fV0channel;
100 ClassDef(AliRDHFCutsLctoV0,4); // class for cuts on AOD reconstructed Lc->V0+bachelor