]>
Commit | Line | Data |
---|---|---|
239e1e7a | 1 | // |
2 | // This cut implements all the checks done to accept a track as a Kaon | |
3 | // for the PbPb analysis using 2010 runs. | |
4 | // It is based on standard cuts on track quality and nsigma cuts | |
5 | // with respect to the TPC and TOF signals for the PID. | |
6 | // | |
7 | ||
8 | #include <Riostream.h> | |
9 | ||
10 | #include "AliLog.h" | |
11 | #include "AliPID.h" | |
12 | #include "AliPIDResponse.h" | |
13 | #include "AliESDpid.h" | |
14 | #include "AliAODpidUtil.h" | |
15 | #include "AliRsnCutPhiRAA.h" | |
16 | #include "AliESDtrackCuts.h" | |
17 | ||
18 | ClassImp(AliRsnCutPhiRAA) | |
19 | ||
20 | //__________________________________________________________________________________________________ | |
21 | AliRsnCutPhiRAA::AliRsnCutPhiRAA | |
22 | (const char *name) : | |
23 | AliRsnCut(name, AliRsnTarget::kDaughter), | |
24 | fMode(k2011_1), | |
25 | fCutQuality(Form("%s_quality", name)) | |
26 | { | |
27 | // | |
28 | // Constructor | |
29 | // Initialize the contained cuts and sets defaults | |
30 | // | |
31 | cut1 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE, 1); | |
32 | cut1->SetEtaRange(-0.8, 0.8); | |
33 | cut1->SetPtRange(0.30,1e10); | |
34 | cut2 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE, 0); | |
35 | cut2->SetEtaRange(-0.8, 0.8); | |
36 | cut2->SetPtRange(0.30,1e10); | |
37 | cut3 = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(); | |
38 | cut3->SetEtaRange(-0.8, 0.8); | |
39 | cut3->SetPtRange(0.30,1e10); | |
40 | ||
41 | cut4 = new AliESDtrackCuts("AliESDtrackCuts", "Loose"); | |
42 | //TPC only | |
43 | cut4->SetMinNClustersTPC(70);//70 | |
44 | cut4->SetMaxChi2PerClusterTPC(4); //4 | |
45 | cut4->SetAcceptKinkDaughters(kFALSE); | |
46 | cut4->SetRequireTPCRefit(kTRUE); | |
47 | cut4->SetMaxDCAToVertexXY(2.4); | |
48 | cut4->SetMaxDCAToVertexZ(3.2); | |
49 | cut4->SetDCAToVertex2D(kFALSE); | |
50 | cut4->SetRequireSigmaToVertex(kFALSE); | |
51 | cut4->SetPtRange(0.3,30); | |
52 | cut4->SetEtaRange(-0.8,0.8); // normally, |eta|<0.8 | |
53 | //V end | |
54 | ||
55 | } | |
56 | ||
57 | //__________________________________________________________________________________________________ | |
58 | AliRsnCutPhiRAA::AliRsnCutPhiRAA(const AliRsnCutPhiRAA ©) : | |
59 | AliRsnCut(copy), | |
60 | fMode(copy.fMode), | |
61 | fCutQuality(copy.fCutQuality) | |
62 | { | |
63 | // | |
64 | // Copy constructor | |
65 | // | |
66 | } | |
67 | ||
68 | //__________________________________________________________________________________________________ | |
69 | AliRsnCutPhiRAA &AliRsnCutPhiRAA::operator=(const AliRsnCutPhiRAA ©) | |
70 | { | |
71 | // | |
72 | // Assignment operator | |
73 | // | |
74 | ||
75 | AliRsnCut::operator=(copy); | |
76 | if (this == ©) | |
77 | return *this; | |
78 | fMode = copy.fMode; | |
79 | fCutQuality = copy.fCutQuality; | |
80 | ||
81 | return *this; | |
82 | } | |
83 | ||
84 | //__________________________________________________________________________________________________ | |
85 | Bool_t AliRsnCutPhiRAA::IsSelected(TObject *obj) | |
86 | { | |
87 | // | |
88 | // Global check | |
89 | // | |
90 | ||
91 | // coherence check | |
92 | if (!TargetOK(obj)) return kFALSE; | |
93 | ||
94 | // check track | |
95 | AliVTrack *track = fDaughter->Ref2Vtrack(); | |
96 | if (!track) { | |
97 | if (!fDaughter->GetRef()) AliWarning("NULL ref"); | |
98 | return kFALSE; | |
99 | } | |
100 | ||
101 | // initialize check variables | |
102 | Bool_t accept = kFALSE; | |
103 | ||
104 | // decide cut result depending on mode | |
105 | switch (fMode) { | |
106 | case k2010: | |
107 | fCutQuality.SetESDtrackCuts(cut3); | |
108 | if (fCutQuality.IsSelected(obj)) accept = kTRUE; | |
109 | ::Info("AnalysisSetup", "ESD cut 2010!!! "); | |
110 | break; | |
111 | case k2011_0: | |
112 | fCutQuality.SetESDtrackCuts(cut2); | |
113 | if (fCutQuality.IsSelected(obj)) accept = kTRUE; | |
114 | break; | |
115 | case kTPC: | |
116 | fCutQuality.SetESDtrackCuts(cut4); | |
117 | if (fCutQuality.IsSelected(obj)) accept = kTRUE; | |
118 | break; | |
119 | case k2011_1: | |
120 | fCutQuality.SetESDtrackCuts(cut1); | |
121 | if (fCutQuality.IsSelected(obj)) accept = kTRUE; | |
122 | ::Info("AnalysisSetup", "ESD cut 2011 "); | |
123 | break; | |
124 | case k2011_1_05: | |
125 | cut1->SetPtRange(0.50,1e10); | |
126 | fCutQuality.SetESDtrackCuts(cut1); | |
127 | if (fCutQuality.IsSelected(obj)) accept = kTRUE; | |
128 | ::Info("AnalysisSetup", "ESD cut 2011 pT > 0.5 GeV/c"); | |
129 | break; | |
130 | case k2011_1_075: | |
131 | cut1->SetPtRange(0.75,1e10); | |
132 | fCutQuality.SetESDtrackCuts(cut1); | |
133 | if (fCutQuality.IsSelected(obj)) accept = kTRUE; | |
134 | ::Info("AnalysisSetup", "ESD cut 2011 pT > 0.75 GeV/c "); | |
135 | break; | |
136 | default: | |
137 | AliDebugClass(1, Form("[%s] Wrong mode", GetName())); | |
138 | accept = kFALSE; | |
139 | } | |
140 | ||
141 | AliDebugClass(1, Form("[%s] Track %s", GetName(), (accept ? "accepted" : "rejected"))); | |
142 | return accept; | |
143 | } |