]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGLF/RESONANCES/AliRsnCutDaughterD0.h
Non-implemented method are commented out or moved to the private part of the class
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnCutDaughterD0.h
CommitLineData
3e6c5c16 1#ifndef ALIRSNCUTDAUGHTERD0_H
2#define ALIRSNCUTDAUGHTERD0_H
3
4//
5// Cuts for selecting good pion candidates for D0 analysis
6// with the data samples from pp/PbPb/pPb runs in 2010/2011/2012/2013.
7// Applies track quality selection plus PID selection,
8// with different tolerance ranges depending on the momentum.
9//
10
11#include "AliVTrack.h"
57b34356 12#include "AliPID.h"
13#include "AliPIDResponse.h"
3e6c5c16 14#include "AliRsnCut.h"
15#include "AliRsnCutTrackQuality.h"
16
17class AliRsnCutDaughterD0 : public AliRsnCut {
18
19 public:
20
21 AliRsnCutDaughterD0(const char *name = "", AliPID::EParticleType pid = AliPID::kPion);
3e6c5c16 22 virtual ~AliRsnCutDaughterD0() { }
23
24 void SetNoPID(Bool_t yn = kTRUE) {fNoPID = yn;}
57b34356 25 //void SetIsCheckOnMother(Bool_t yn = kTRUE) {fIsCheckOnMother = yn;}
670857a6 26 void SetPtDependentPIDCut(Bool_t yn = kTRUE) {fPtDepPIDCut = yn;}
3e6c5c16 27 void SetPID(AliPID::EParticleType type) {fPID = type;}
28
29 void SetTPCPionPIDCut(Double_t value) {fPionTPCPIDCut = value;}
30 void SetTPCKaonPIDCut(Double_t value) {fKaonTPCPIDCut = value;}
31
32 void SetTOFPionPIDCut(Double_t value) {fPionTOFPIDCut = value;}
33 void SetTOFKaonPIDCut(Double_t value) {fKaonTOFPIDCut = value;}
34
35 AliRsnCutTrackQuality *CutQuality() {return &fCutQuality;}
36 Bool_t MatchTOF(const AliVTrack *vtrack);
57b34356 37 Bool_t MatchTPC(const AliVTrack *vtrack);
3e6c5c16 38 virtual Bool_t IsSelected(TObject *obj);
39
40 private:
cbc51d28 41 AliRsnCutDaughterD0(const AliRsnCutDaughterD0 &copy); // Not implemented
42 AliRsnCutDaughterD0 &operator=(const AliRsnCutDaughterD0 &copy); // Not implemented
3e6c5c16 43 Bool_t fNoPID; // flag to switch off PID check
57b34356 44 //Bool_t fIsCheckOnMother; // flag to switch off tracks check
3e6c5c16 45 AliPID::EParticleType fPID; // PID for track
46 AliRsnCutTrackQuality fCutQuality; // track quality cut
47
48 protected:
49 Double_t fPionTPCPIDCut; // TPC nsigmas for pions
50 Double_t fKaonTPCPIDCut; // TPC nsigmas for kaons
51 Double_t fPionTOFPIDCut; // TOF nsigmas for pions
52 Double_t fKaonTOFPIDCut; // TOF nsigmas for kaons
670857a6 53 Bool_t fPtDepPIDCut; // flag for setting a pt dependent or independent PID cut
3e6c5c16 54
57b34356 55 ClassDef(AliRsnCutDaughterD0, 3) // cut definitions for D0
3e6c5c16 56 };
57
58//__________________________________________________________________________________________________
59inline Bool_t AliRsnCutDaughterD0::MatchTOF(const AliVTrack *vtrack)
60{
61 //
62 // Checks if the track has matched the TOF detector
63 //
64
65 if (!vtrack) {
66 AliWarning("NULL argument: impossible to check status");
67 return kFALSE;
68 }
57b34356 69 AliPIDResponse *fPidResponse = fEvent->GetPIDResponse();
70 if (!fPidResponse) {
71 AliFatal("NULL PID response");
72 return kFALSE;
73 }
74
75 AliPIDResponse::EDetPidStatus status = fPidResponse->CheckPIDStatus(AliPIDResponse::kTOF,vtrack);
76 if (status != AliPIDResponse::kDetPidOk) return kFALSE;
77 Float_t probMis = fPidResponse->GetTOFMismatchProbability(vtrack);
78 if (probMis > 0.01) return kFALSE;
79 if ((vtrack->GetStatus()&AliESDtrack::kTOFpid )==0 && vtrack->GetStatus()&AliESDtrack::kITSrefit ) return kFALSE;
80 return kTRUE;
81
3e6c5c16 82
57b34356 83 //if (!(vtrack->GetStatus() & AliESDtrack::kTOFout)) return kFALSE;
84 //if (!(vtrack->GetStatus() & AliESDtrack::kTIME )) return kFALSE;
3e6c5c16 85
86 return kTRUE;
87}
88
57b34356 89//___________________________________________________________________________________________________
90inline Bool_t AliRsnCutDaughterD0::MatchTPC(const AliVTrack *vtrack)
91{
92 // Check if the track is good for TPC PID
93
94
95 if (!vtrack) {
96 AliWarning("NULL argument: impossible to check status");
97 return kFALSE;
98 }
99 AliPIDResponse *fPidResponse = fEvent->GetPIDResponse();
100 if (!fPidResponse) {
101 AliFatal("NULL PID response");
102 return kFALSE;
103 }
104
105 AliPIDResponse::EDetPidStatus status = fPidResponse->CheckPIDStatus(AliPIDResponse::kTPC,vtrack);
106 if (status != AliPIDResponse::kDetPidOk) return kFALSE;
b5f44293 107 /* UInt_t nclsTPCPID = vtrack->GetTPCsignalN(); */
108 /* if(nclsTPCPID<0) return kFALSE; */
57b34356 109 return kTRUE;
110}
111
3e6c5c16 112#endif