1 #ifndef ALIRSNCUTSETDAUGHTERPARTICLE_H
2 #define ALIRSNCUTSETDAUGHTERPARTICLE_H
5 // Cuts collection for selecting good daughter candidates for rsn analysis
7 // 1) choice of existing cuts among the enum list
8 // 2) PID ipothesis for the daughter particle
10 // Author: Francesca Bellini (fbellini@cern.ch)
13 #include "AliVTrack.h"
14 #include "AliRsnCut.h"
15 #include "AliRsnCutSet.h"
16 #include "AliRsnCutTrackQuality.h"
17 #include "AliRsnCutPIDNSigma.h"
18 #include "AliRsnCutTOFMatch.h"
19 #include "AliRsnCutPhi.h"
21 class AliRsnCutSetDaughterParticle : public AliRsnCutSet {
25 enum ERsnDaughterCutSet {
27 kQualityStd2010,//quality only
30 kFastTPCpidNsigma, //PbPb analysis
32 kTPCTOFpidKstarPP2010,
34 kTOFTPCmismatchKstarPbPb2010,
37 kTOFpidKstarPbPbTRD2010,
38 kTOFpidKstarPbPbNoTRD2010,
39 kTOFMatchTPCpidNsigma,
42 kTOFMatchPPB2011, //pA analysis
45 kTPCTOFpidKstarPPB2011,
46 kTPCpidTOFvetoKStarPPB2011, //TPC pid with TOF veto
47 kTPCpidMatchPPB2011, //Match with nsigma = fNsigmaTPC
51 enum ECustomQualityCuts {
65 AliRsnCutSetDaughterParticle();
66 AliRsnCutSetDaughterParticle(const char *name,
67 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutSetID,
68 AliPID::EParticleType pid,
71 AliRsnCutSetDaughterParticle(const char *name,
72 AliRsnCutTrackQuality *rsnTrackQualityCut,
73 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutSetID,
74 AliPID::EParticleType pid,
76 AliRsnCutSetDaughterParticle(const AliRsnCutSetDaughterParticle ©);
77 AliRsnCutSetDaughterParticle &operator=(const AliRsnCutSetDaughterParticle ©);
78 virtual ~AliRsnCutSetDaughterParticle();
81 void InitStdQualityCuts();
82 void SetNsigmaForFastTPCpid(Float_t nsigma) {fNsigmaTPC=nsigma; return;};
83 void SetNsigmaForFastTOFpid(Float_t nsigma) {fNsigmaTOF=nsigma; return;};
84 void SetAODTrackCutFilterBit(Int_t ibit) {fAODTrkCutFilterBit=ibit; return;}
85 void SetUseFilterBitOnly(Bool_t useFilterBitOnly=kTRUE) {fCheckOnlyFilterBit=useFilterBitOnly; return;}
86 void EnableCustomCuts(Bool_t useCustom=kFALSE) {fUseCustomQualityCuts=useCustom; return;}
87 void SetPtRange(Double_t a, Double_t b) {fPtRange[0] = TMath::Min(a, b); fPtRange[1] = TMath::Max(a, b); return;}
88 void SetEtaRange(Double_t a, Double_t b) {fEtaRange[0] = TMath::Min(a, b); fEtaRange[1] = TMath::Max(a, b); return;}
91 const char *GetAppliedDaughterCutSetName() { return GetName();}
92 Int_t GetAppliedDaughterCutSetId() { return fAppliedCutSetID;}
93 const AliRsnCutTrackQuality *GetQualityCut() {return fCutQuality;};
94 void PrintTrackQualityCuts();
98 AliPID::EParticleType fPID; // PID for track
99 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet fAppliedCutSetID; // ID of applied cut
100 Float_t fNsigmaTPC; // number of TPC sigmas for fast pid cut only
101 Float_t fNsigmaTOF; // number of TOF sigmas for fast pid cut only
102 AliRsnCutTrackQuality *fCutQuality; //pointer to quality cut object
103 Int_t fAODTrkCutFilterBit; //AOD filter bit for track cuts
104 Bool_t fCheckOnlyFilterBit; //flag to use only filter bit cut
105 Bool_t fUseCustomQualityCuts; //flag to enable the usage of custom quality cuts
106 Float_t fPtRange[2]; //single track pt range (min, max)
107 Float_t fEtaRange[2]; //single track eta range (min, max)
109 ClassDef(AliRsnCutSetDaughterParticle, 4) // cut definitions for K*