]>
Commit | Line | Data |
---|---|---|
2dab9030 | 1 | // |
32992791 | 2 | // *** Class AliRsnCutESD2010 *** |
2dab9030 | 3 | // |
32992791 | 4 | // This class implements all cuts which have to be used for the 2010 runs |
5 | // for phi and generic resonance analysis. | |
6 | // It contains an AliESDtrackCuts object for track quality selection | |
7 | // and some criteria for particle identification with ITS, TPC and TOF. | |
2dab9030 | 8 | // |
9 | // authors: Martin Vala (martin.vala@cern.ch) | |
10 | // Alberto Pulvirenti (alberto.pulvirenti@ct.infn.it) | |
11 | // | |
12 | ||
13 | #ifndef ALIRSNCUTESD2010_H | |
14 | #define ALIRSNCUTESD2010_H | |
15 | ||
a5ccc095 | 16 | #include "AliPID.h" |
32992791 | 17 | #include "AliESDtrack.h" |
2dab9030 | 18 | #include "AliESDtrackCuts.h" |
5faf5a07 | 19 | #include "AliESDpid.h" |
2dab9030 | 20 | #include "AliRsnCut.h" |
21 | ||
22 | class AliESDpid; | |
2dab9030 | 23 | |
2a1c7696 | 24 | class AliRsnCutESD2010 : public AliRsnCut { |
25 | public: | |
26 | ||
27 | AliRsnCutESD2010(const char *name = "cutESD2010", Bool_t isMC = kFALSE); | |
28 | AliRsnCutESD2010(const AliRsnCutESD2010& copy); | |
29 | AliRsnCutESD2010& operator=(const AliRsnCutESD2010& copy); | |
30 | virtual ~AliRsnCutESD2010() {;}; | |
31 | ||
32 | AliESDpid* GetESDpid() {return &fESDpid;} | |
33 | AliESDtrackCuts* GetCutsTPC() {return &fESDtrackCutsTPC;} | |
34 | AliESDtrackCuts* GetCutsITS() {return &fESDtrackCutsITS;} | |
35 | void CopyCutsTPC(const AliESDtrackCuts *cuts) {fESDtrackCutsTPC = (*cuts);} | |
36 | void CopyCutsITS(const AliESDtrackCuts *cuts) {fESDtrackCutsITS = (*cuts);} | |
37 | void CopyCutsTPC(AliESDtrackCuts cuts) {fESDtrackCutsTPC = cuts;} | |
38 | void CopyCutsITS(AliESDtrackCuts cuts) {fESDtrackCutsITS = cuts;} | |
39 | virtual Bool_t IsSelected(TObject *object); | |
40 | virtual void Print(const Option_t *option = "") const; | |
41 | ||
42 | void SetMC(Bool_t yn = kTRUE); | |
43 | void SetCheckITS(Bool_t yn = kTRUE) {fCheckITS = yn;} | |
44 | void SetCheckTPC(Bool_t yn = kTRUE) {fCheckTPC = yn;} | |
45 | void SetCheckTOF(Bool_t yn = kTRUE) {fCheckTOF = yn;} | |
46 | void SetUseITSTPC(Bool_t yn = kTRUE) {fUseITSTPC = yn;} | |
47 | void SetUseITSSA(Bool_t yn = kTRUE) {fUseITSSA = yn;} | |
48 | void SetPID(AliPID::EParticleType t) {fPID = t;} | |
49 | ||
50 | void SetMaxITSPIDmom(Double_t v) {fMaxITSPIDmom = v;} | |
51 | void SetITSband(Double_t v) {fMaxITSband = v;} | |
52 | ||
53 | void SetTPCpLimit(Double_t v) {fTPCpLimit = v;} | |
54 | void SetTPCrange(Double_t min, Double_t max) {fMinTPCband = min; fMaxTPCband = max;} | |
55 | void SetTPCpar(Double_t p0, Double_t p1, Double_t p2, Double_t p3, Double_t p4) | |
56 | {fTPCpar[0] = p0; fTPCpar[1] = p1; fTPCpar[2] = p2; fTPCpar[3] = p3; fTPCpar[4] = p4;} | |
57 | ||
58 | void SetTOFrange(Double_t v1, Double_t v2) {fMinTOF = v1; fMaxTOF = v2;} | |
2a1c7696 | 59 | |
60 | protected: | |
61 | ||
62 | Bool_t OkQuality(AliESDtrack *d); // check track quality parameters and DCA | |
63 | Bool_t OkITSPID(AliESDtrack *d); // check ITS PID | |
64 | Bool_t OkTPCPID(AliESDtrack *d); // check TPC PID | |
65 | Bool_t OkTOFPID(AliESDtrack *d); // check TOF PID | |
66 | Bool_t IsITSTPC(AliESDtrack *d); // check that the track is TPC+ITS | |
67 | Bool_t IsITSSA(AliESDtrack *d); // check that the track is ITS standalone | |
68 | Bool_t MatchTOF(AliESDtrack *d); // check that the track matches the TOF | |
69 | ||
70 | Bool_t fIsMC; // switch for MC analysis | |
71 | Bool_t fCheckITS; // switch for ITS dE/dx check | |
72 | Bool_t fCheckTPC; // switch for TPC dE/dx check | |
73 | Bool_t fCheckTOF; // switch for TOF time check | |
74 | Bool_t fUseITSTPC; // switch to use TPC global tracks | |
75 | Bool_t fUseITSSA; // switch to use ITS standalone tracks | |
76 | AliPID::EParticleType fPID; // PID reference type used for checks | |
77 | ||
78 | Double_t fMaxITSPIDmom; // maximum momentum where ITS PID is used for TPC+ITS tracks | |
79 | Double_t fMaxITSband; // range for ITS de/dx band | |
80 | ||
81 | Double_t fTPCpLimit; // limit to choose what band to apply | |
82 | Double_t fTPCpar[5]; // parameters for TPC bethe-Bloch | |
83 | Double_t fMinTPCband; // range for TPC de/dx band - min | |
84 | Double_t fMaxTPCband; // range for TPC de/dx band - max | |
85 | ||
86 | AliESDpid fESDpid; // ESD PID object | |
87 | AliESDtrackCuts fESDtrackCutsTPC; // ESD standard defined track cuts for TPC tracks | |
88 | AliESDtrackCuts fESDtrackCutsITS; // ESD standard defined track cuts for ITS-SA tracks | |
89 | Double_t fMinTOF; // range for TOF PID (min) | |
90 | Double_t fMaxTOF; // range for TOF PID (max) | |
91 | ||
2a1c7696 | 92 | ClassDef(AliRsnCutESD2010, 1) |
2dab9030 | 93 | }; |
94 | ||
32992791 | 95 | inline Bool_t AliRsnCutESD2010::IsITSTPC(AliESDtrack *vtrack) |
96 | { | |
97 | // | |
98 | // Checks if the track has the status flags required for a global track | |
99 | // | |
100 | ||
2a1c7696 | 101 | if (!vtrack) { |
102 | AliWarning("NULL argument: impossible to check status"); | |
103 | return kFALSE; | |
104 | } | |
105 | ||
106 | return vtrack->IsOn(AliESDtrack::kTPCin); | |
107 | ||
108 | return kTRUE; | |
32992791 | 109 | } |
110 | ||
111 | inline Bool_t AliRsnCutESD2010::IsITSSA(AliESDtrack *vtrack) | |
112 | { | |
113 | // | |
114 | // Checks if the track has the status flags required for an ITS standalone track | |
115 | // | |
116 | ||
2a1c7696 | 117 | if (!vtrack) { |
118 | AliWarning("NULL argument: impossible to check status"); | |
119 | return kFALSE; | |
120 | } | |
121 | ||
122 | Bool_t isTPCin = vtrack->IsOn(AliESDtrack::kTPCin); | |
123 | Bool_t isITSrefit = vtrack->IsOn(AliESDtrack::kITSrefit); | |
124 | Bool_t isITSpureSA = vtrack->IsOn(AliESDtrack::kITSpureSA); | |
125 | Bool_t isITSpid = vtrack->IsOn(AliESDtrack::kITSpid); | |
126 | ||
127 | return ((!isTPCin) && isITSrefit && (!isITSpureSA) && isITSpid); | |
128 | ||
129 | return kTRUE; | |
32992791 | 130 | } |
131 | ||
132 | ||
133 | inline Bool_t AliRsnCutESD2010::MatchTOF(AliESDtrack *vtrack) | |
134 | { | |
135 | // | |
136 | // Checks if the track has matched the TOF detector | |
137 | // | |
138 | ||
2a1c7696 | 139 | if (!vtrack) { |
140 | AliWarning("NULL argument: impossible to check status"); | |
141 | return kFALSE; | |
142 | } | |
143 | ||
144 | // require a minimum length to have meaningful match | |
145 | if (vtrack->GetIntegratedLength() < 350.) return kFALSE; | |
146 | ||
147 | Bool_t isTOFout = vtrack->IsOn(AliESDtrack::kTOFout); | |
148 | Bool_t isTIME = vtrack->IsOn(AliESDtrack::kTIME); | |
149 | ||
150 | return (isTOFout && isTIME); | |
151 | ||
152 | return kTRUE; | |
32992791 | 153 | } |
154 | ||
2dab9030 | 155 | #endif |