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
29 kQualityStd2011HighPt,
31 kFastTPCpidNsigma, //PbPb analysis
33 kTPCTOFpidKstarPP2010,
35 kTOFTPCmismatchKstarPbPb2010,
38 kTOFpidKstarPbPbTRD2010,
39 kTOFpidKstarPbPbNoTRD2010,
40 kTOFMatchTPCpidNsigma,
43 kTOFMatchPPB2011, //pA analysis
46 kTPCTOFpidKstarPPB2011,
47 kTPCTOFtightPidKStarPPB2011, //TPC 2.0 (3.0) sigma pid & TOF at 3.0 (5.0) sigma
48 kTPCpidMatchPPB2011, //Match with nsigma = fNsigmaTPC
49 kTPCpidTOFveto4s, //TPC n sigma + 4.0 sigma TOF veto
50 kTPCpidTOFveto3s, //TPC n sigma + 3.0 sigma TOF veto
51 kCombinedPidBestPtDep,
54 kTPCRejPtDepTOFNsigma,
55 kTPCNsigmaTOFVetoPtDep,
56 kTPCTOFpidLstar,//cuts for L* in pA
60 enum ECustomQualityCuts {
75 AliRsnCutSetDaughterParticle();
76 AliRsnCutSetDaughterParticle(const char *name,
77 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutSetID,
78 AliPID::EParticleType pid,
81 Bool_t useTPCCrossedRows);
82 AliRsnCutSetDaughterParticle(const char *name,
83 AliRsnCutTrackQuality *rsnTrackQualityCut,
84 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutSetID,
85 AliPID::EParticleType pid,
87 AliRsnCutSetDaughterParticle(const AliRsnCutSetDaughterParticle ©);
88 AliRsnCutSetDaughterParticle &operator=(const AliRsnCutSetDaughterParticle ©);
89 virtual ~AliRsnCutSetDaughterParticle();
92 void InitStdQualityCuts(Bool_t useTPCCrossedRows=kTRUE);
93 void SetNsigmaForFastTPCpid(Float_t nsigma) {fNsigmaTPC=nsigma; return;};
94 void SetNsigmaForFastTOFpid(Float_t nsigma) {fNsigmaTOF=nsigma; return;};
95 void SetAODTrackCutFilterBit(Int_t ibit) {fAODTrkCutFilterBit=ibit; return;}
96 void SetUseFilterBitOnly(Bool_t useFilterBitOnly=kTRUE) {fCheckOnlyFilterBit=useFilterBitOnly; return;}
97 void EnableCustomCuts(Bool_t useCustom=kFALSE) {fUseCustomQualityCuts=useCustom; return;}
98 void SetPtRange(Double_t a, Double_t b) {fPtRange[0] = TMath::Min(a, b); fPtRange[1] = TMath::Max(a, b); return;}
99 void SetEtaRange(Double_t a, Double_t b) {fEtaRange[0] = TMath::Min(a, b); fEtaRange[1] = TMath::Max(a, b); return;}
100 void SetUse2011StdQualityCuts(Bool_t use2011=kFALSE) {fIsUse2011stdQualityCuts=use2011; return;}
101 void SetUse2011StdQualityCutsHighPt(Bool_t use2011HighPt=kFALSE) {fIsUse2011stdQualityCutsHighPt=use2011HighPt; return;}
103 const char *GetAppliedDaughterCutSetName() { return GetName();}
104 Int_t GetAppliedDaughterCutSetId() { return fAppliedCutSetID;}
105 const AliRsnCutTrackQuality *GetQualityCut() {return fCutQuality;};
106 void PrintTrackQualityCuts();
110 AliPID::EParticleType fPID; // PID for track
111 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet fAppliedCutSetID; // ID of applied cut
112 Float_t fNsigmaTPC; // number of TPC sigmas for fast pid cut only
113 Float_t fNsigmaTOF; // number of TOF sigmas for fast pid cut only
114 AliRsnCutTrackQuality *fCutQuality; //pointer to quality cut object
115 Int_t fAODTrkCutFilterBit; //AOD filter bit for track cuts
116 Bool_t fCheckOnlyFilterBit; //flag to use only filter bit cut
117 Bool_t fUseCustomQualityCuts; //flag to enable the usage of custom quality cuts
118 Float_t fPtRange[2]; //single track pt range (min, max)
119 Float_t fEtaRange[2]; //single track eta range (min, max)
120 Bool_t fIsUse2011stdQualityCuts;//flag to enalble std quality cuts 2011
121 Bool_t fIsUse2011stdQualityCutsHighPt;//flag to enalble std quality cuts 2011
123 ClassDef(AliRsnCutSetDaughterParticle, 5) // cut definitions for K*