#ifndef ALIRSNCUTKAON_H #define ALIRSNCUTKAON_H // // Cuts for selecting good pion candidates for rsn analysis // Applies track quality selection plus PID selection, // with different tolerance ranges depending on the momentum. // #include "AliVTrack.h" #include "AliRsnCut.h" #include "AliRsnCutTrackQuality.h" class AliRsnCutKaon : public AliRsnCut { public: enum ERsnKaonCut { kQualityStd2010, kTOFMatchStd2010, kFastTPCpidNsigma, kFastTPCpid1point5sigma, kFastTPCpid2sigma, kFastTPCpid3sigma, kFastTOFpidNsigma, kFastTOFpid1point5sigma, kFastTOFpid2sigma, kFastTOFpid3sigma, kTPCTOFpidDefaultKstarPP2010, kNkaonCuts }; AliRsnCutKaon(const char *name = "", AliRsnCutKaon::ERsnKaonCut cutID = AliRsnCutKaon::kQualityStd2010 , AliPID::EParticleType pid = AliPID::kKaon); virtual ~AliRsnCutKaon() { } void SetNoPID(Bool_t yn = kTRUE) {fNoPID = yn;} AliRsnCutTrackQuality *CutQuality() {return &fCutQuality;} Bool_t MatchTOF(const AliVTrack *vtrack); Bool_t IsSelected(TObject *obj); Bool_t IsSelectedByQualityStd2010(TObject *obj, Bool_t requireTPCin, Bool_t requireTPCrefit, Bool_t requireITSrefit ); Bool_t IsSelectedByTOFMatchStd2010(TObject *obj); Bool_t IsSelectedByFastTPCpidNsigma(TObject *obj,Float_t nSigmaCut); Bool_t IsSelectedByFastTPCpid1point5sigma(TObject *obj) {return IsSelectedByFastTPCpidNsigma(obj, 1.5);} Bool_t IsSelectedByFastTPCpid2sigma(TObject *obj) {return IsSelectedByFastTPCpidNsigma(obj, 2.0);} Bool_t IsSelectedByFastTPCpid3sigma(TObject *obj) {return IsSelectedByFastTPCpidNsigma(obj, 3.0);} Bool_t IsSelectedByFastTOFpidNsigma(TObject *obj,Float_t nSigmaCut); Bool_t IsSelectedByFastTOFpid1point5sigma(TObject *obj) {return IsSelectedByFastTOFpidNsigma(obj, 1.5);} Bool_t IsSelectedByFastTOFpid2sigma(TObject *obj) {return IsSelectedByFastTOFpidNsigma(obj, 2.0);} Bool_t IsSelectedByFastTOFpid3sigma(TObject *obj) {return IsSelectedByFastTOFpidNsigma(obj, 3.0);} Bool_t IsSelectedByTPCTOFpidDefaultKstarPP2010(TObject *obj); //setters void SetNsigmaCutTPC(Float_t nMaxSigmaCut=1E6) {fNsigmaCutTPC=nMaxSigmaCut; return;} void SetNsigmaCutTOF(Float_t nMaxSigmaCut=1E6) {fNsigmaCutTOF=nMaxSigmaCut; return;} //getters const char *GetAppliedKaonCutName() { if (fAppliedCutID>0) { return fgkCutName[fAppliedCutID];} else {return "none";}} Int_t GetAppliedKaonCutId() { return fAppliedCutID;} const char *GetKaonCutName(const AliRsnCutKaon::ERsnKaonCut cutID) { return fgkCutName[cutID];} private: Bool_t fNoPID; // flag to switch off PID check AliPID::EParticleType fPID; // PID for track AliRsnCutTrackQuality fCutQuality; // track quality cut Int_t fAppliedCutID; // ID of applied cut static const char *fgkCutName[kNkaonCuts]; //array with cuts names Float_t fNsigmaCutTPC; // max sigma for TPC dE/dx fast cut Float_t fNsigmaCutTOF; // max sigma for TOF t-t0-t_exp fast cut ClassDef(AliRsnCutKaon, 1) // cut definitions for K* }; #endif