]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGLF/RESONANCES/AliRsnCutSetDaughterParticle.h
K0s code update (Matt Steinpreis)
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnCutSetDaughterParticle.h
1 #ifndef ALIRSNCUTSETDAUGHTERPARTICLE_H
2 #define ALIRSNCUTSETDAUGHTERPARTICLE_H
3
4 //
5 // Cuts collection for selecting good daughter candidates for rsn analysis
6 //Requires:
7 // 1) choice of existing cuts among the enum list
8 // 2) PID ipothesis for the daughter particle
9 //
10 // Author: Francesca Bellini (fbellini@cern.ch)
11 //
12
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"
20
21 class AliRsnCutSetDaughterParticle : public AliRsnCutSet {
22
23 public:
24
25   enum ERsnDaughterCutSet {
26     kNoCuts,
27     kQualityStd2010,//quality only
28     kQualityStd2011,    
29     kTOFMatch,  
30     kFastTPCpidNsigma, //PbPb analysis
31     kFastTOFpidNsigma,
32     kTPCTOFpidKstarPP2010,
33     kTOFpidKstarPbPb2010,
34     kTOFTPCmismatchKstarPbPb2010,
35     kTOFMatchTRD2010,
36     kTOFMatchNoTRD2010,
37     kTOFpidKstarPbPbTRD2010,
38     kTOFpidKstarPbPbNoTRD2010,
39     kTOFMatchTPCpidNsigma,     
40     kQualityStd2010TRD,
41     kQualityStd2010NoTRD,    
42     kTOFMatchPPB2011, //pA analysis
43     kTPCpidKstarPPB2011,
44     kTOFpidKstarPPB2011,
45     kTPCTOFpidKstarPPB2011,
46     kTPCpidTOFvetoKStarPPB2011, //TPC pid with TOF veto
47     kTPCpidMatchPPB2011, //Match with nsigma = fNsigmaTPC
48     kNDaughterCuts
49   };
50
51   enum ECustomQualityCuts { 
52     kDisableCustom = -1,
53     kFilterBitCustom,
54     kStdLooserDCAXY, 
55     kStdLooserDCAZ, 
56     kStdCrossedRows60, 
57     kStdCrossedRows80, 
58     kStdRowsToCls075, 
59     kStdRowsToCls085, 
60     kStdCls70, 
61     kStdChi2TPCCls35,
62     kNcustomQualityCuts
63   };
64   
65    AliRsnCutSetDaughterParticle();
66    AliRsnCutSetDaughterParticle(const char *name,
67                                 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutSetID,
68                                 AliPID::EParticleType pid,
69                                 Float_t nsigmaFast,
70                                 Int_t AODfilterBit);
71    AliRsnCutSetDaughterParticle(const char *name, 
72                                 AliRsnCutTrackQuality *rsnTrackQualityCut, 
73                                 AliRsnCutSetDaughterParticle::ERsnDaughterCutSet cutSetID, 
74                                 AliPID::EParticleType pid, 
75                                 Float_t nSigmaFast);
76    AliRsnCutSetDaughterParticle(const AliRsnCutSetDaughterParticle &copy);
77    AliRsnCutSetDaughterParticle &operator=(const AliRsnCutSetDaughterParticle &copy);
78    virtual ~AliRsnCutSetDaughterParticle();
79
80    void           Init();
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;}
89
90    //getters
91    const char   *GetAppliedDaughterCutSetName() { return GetName();}
92    Int_t         GetAppliedDaughterCutSetId() { return fAppliedCutSetID;}
93    const AliRsnCutTrackQuality *GetQualityCut() {return fCutQuality;};
94    void          PrintTrackQualityCuts();
95
96  private:
97    
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)
108
109    ClassDef(AliRsnCutSetDaughterParticle, 4) // cut definitions for K*
110
111 };
112
113 #endif
114