#ifndef ALIRDHFCUTSLCTOV0_H #define ALIRDHFCUTSLCTOV0_H /* Copyright(c) 1998-2010, ALICE Experiment at CERN, All rights reserved. * * See cxx source for full Copyright notice */ /* $Id$ */ //*********************************************************** // Class AliRDHFCutsLctoV0 // class for cuts on AOD reconstructed Lc-> V0 + bachelor //*********************************************************** #include "AliRDHFCuts.h" class AliRDHFCutsLctoV0 : public AliRDHFCuts { public: enum ELctoV0channel { kLcToK0Spr=0x0001, kLcToLBarpi=0x0002, kLcToLpi=0x0004 }; enum ELctoV0pidStrategy { kTOFandTPC=0, kTOForTPCveto=1, kTOFandTPCasym1=2, kTOFandTPCasym2=3, kTPClowTOFhigh=4, kTPClowTOFintermediateTOForTPChigh=5 }; AliRDHFCutsLctoV0(const char* name="CutsLctoV0", Short_t v0channel=0); virtual ~AliRDHFCutsLctoV0(); AliRDHFCutsLctoV0(const AliRDHFCutsLctoV0& source); AliRDHFCutsLctoV0& operator=(const AliRDHFCutsLctoV0& source); using AliRDHFCuts::GetCutVarsForOpt; virtual void GetCutVarsForOpt(AliAODRecoDecayHF *d,Float_t *vars,Int_t nvars,Int_t *pdgdaughters); using AliRDHFCuts::IsSelected; virtual Int_t IsSelected(TObject* obj,Int_t selectionLevel); using AliRDHFCuts::IsSelectedPID; virtual Int_t IsSelectedPID(AliAODRecoDecayHF* obj); Int_t IsSelectedSingleCut(TObject* obj, Int_t selectionLevel, Int_t cutIndex); Int_t CombineCuts (Int_t returnvalueTrack, Int_t returnvalue, Int_t returnvaluePID) const; Float_t GetMassCut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(0,iPtBin)] : 1.e6);} Float_t GetDCACut(Int_t iPtBin=0) const { return (GetCuts() ? fCutsRD[GetGlobalIndex(7,iPtBin)] : 1.e6);} void SetPidSelectionFlag(Int_t a) {fPidSelectionFlag=a;} Int_t GetPidSelectionFlag() {return fPidSelectionFlag;} Bool_t AreLctoV0DaughtersSelected(AliAODRecoDecayHF *rd) const; Int_t GetV0Type(); void SetHighPtCut(Float_t highPtCut) {fHighPtCut=highPtCut;}; Float_t GetHighPtCut() const {return fHighPtCut;}; void SetLowPtCut(Float_t lowPtCut) {fLowPtCut=lowPtCut;}; Float_t GetLowPtCut() const {return fLowPtCut;}; virtual void SetStandardCutsPP2010(); virtual void SetStandardCutsPbPb2010(); virtual void SetStandardCutsPbPb2011(); virtual Bool_t IsInFiducialAcceptance(Double_t pt,Double_t y) const; void AddTrackCutsV0daughters(AliESDtrackCuts* v0daug) { delete fV0daughtersCuts; fV0daughtersCuts = new AliESDtrackCuts(*v0daug); } virtual AliESDtrackCuts *GetTrackCutsV0daughters() const {return fV0daughtersCuts;} virtual void PrintAll() const; protected: void CheckPID(AliAODTrack *bachelor, AliAODTrack * /*v0Neg*/, AliAODTrack * /*v0Pos*/, Bool_t &isBachelorID1, Bool_t &isBachelorID2, Bool_t &isBachelorID4); private: Int_t fPidSelectionFlag; AliESDtrackCuts *fV0daughtersCuts; // cuts for v0 daughters (AOD converted to ESD on the flight!) Float_t fV0Type; // V0 type -- should be defined as in AliRDHFCuts.h Float_t fHighPtCut; // high pT cut separation for proton identification Float_t fLowPtCut; // low pT cut separation for proton identification //UShort_t fV0channel; ClassDef(AliRDHFCutsLctoV0,5); // class for cuts on AOD reconstructed Lc->V0+bachelor }; #endif