]>
Commit | Line | Data |
---|---|---|
9f00b65f | 1 | class LMEECutLib { |
2 | ||
3 | public: | |
4 | static enum LMMECutSet { | |
5 | kPbPb2011TPCandTOF, | |
4118e72c | 6 | kPbPb2011TPCandTOFwide, //TOF required, more relaxed cut on TPC |
9f00b65f | 7 | kPbPb2011TPCorTOF, |
8 | kpp2010TPCandTOF, | |
9 | kpp2010TPCorTOF, | |
10 | kCUTSETMAX | |
11 | }; | |
12 | ||
13 | static enum LMMECentSel { | |
14 | kPbPb2011Central, | |
15 | kPbPb2011SemiCentral, | |
16 | kPbPb2011Peripheral, | |
17 | kCENTSELMAX | |
18 | }; | |
19 | ||
20 | //char* LMEECutNames[kCUTSETMAX] = { "PbPb2011TPCandTOF","PbPb2011TPCorTOF"}; | |
21 | ||
22 | ||
23 | LMEECutLib() {} | |
24 | ||
25 | AliDielectronEventCuts* GetEventCuts(Int_t cutSet); | |
26 | AliAnalysisCuts* GetCentralityCuts(Int_t centSel); | |
27 | AliDielectronTrackRotator* GetTrackRotator(Int_t cutSet); | |
28 | AliDielectronMixingHandler* GetMixingHandler(Int_t cutSet); | |
29 | ||
30 | AliAnalysisCuts* GetPIDCutsAna(Int_t cutSet); | |
31 | AliAnalysisCuts* GetPIDCutsPre(Int_t cutSet); | |
32 | ||
4118e72c | 33 | AliAnalysisCuts* GetPairCuts2(Int_t cutSet,Bool_t tooglePC=kFALSE); |
9f00b65f | 34 | AliAnalysisCuts* GetPairCuts(Int_t cutSet); |
35 | ||
36 | AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet); | |
37 | AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet); | |
38 | ||
39 | ||
40 | ||
41 | ||
42 | AliDielectronEventCuts* GetEventCuts(Int_t cutSet) { | |
43 | AliDielectronEventCuts* eventCuts = 0x0; | |
44 | switch (cutSet) { | |
45 | case kPbPb2011TPCandTOF : | |
4118e72c | 46 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 47 | case kPbPb2011TPCorTOF : |
48 | case kpp2010TPCandTOF : | |
49 | case kpp2010TPCorTOF : | |
50 | eventCuts=new AliDielectronEventCuts("eventCuts","Vertex Track && |vtxZ|<10 && ncontrib>0"); | |
ee00eb9d | 51 | eventCuts->SetVertexType(AliDielectronEventCuts::kVtxAny); // AOD |
52 | // eventCuts->SetCentralityRange(0.0,80.0); | |
9f00b65f | 53 | eventCuts->SetRequireVertex(); |
54 | eventCuts->SetMinVtxContributors(1); | |
55 | eventCuts->SetVertexZ(-10.,10.); | |
56 | break; | |
57 | default: cout << "No Event Cut defined" << endl; | |
58 | } | |
59 | return eventCuts; | |
60 | } | |
61 | ||
62 | AliAnalysisCuts* GetCentralityCuts(Int_t centSel) { | |
63 | AliDielectronVarCuts* centCuts = 0x0; | |
64 | switch (centSel) { | |
65 | case kPbPb2011Central: | |
66 | centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011Central"); | |
67 | centCuts->AddCut(AliDielectronVarManager::kCentrality,0.,10.); | |
68 | break; | |
69 | case kPbPb2011SemiCentral: | |
70 | centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011SemiCentral"); | |
71 | //Restrict to 50%, Trigger selction | |
4118e72c | 72 | centCuts->AddCut(AliDielectronVarManager::kCentrality,20.,50.); |
9f00b65f | 73 | break; |
74 | case kPbPb2011Peripheral: | |
75 | centCuts = new AliDielectronVarCuts("centCuts","CentralityPbPb2011Peripheral"); | |
76 | centCuts->AddCut(AliDielectronVarManager::kCentrality,50.,90.); | |
77 | break; | |
78 | default: cout << "No Centrality selected" << endl; | |
79 | } | |
80 | return centCuts; | |
81 | } | |
82 | ||
83 | ||
84 | AliDielectronTrackRotator* GetTrackRotator(Int_t cutSet) { | |
85 | AliDielectronTrackRotator* trackRotator = 0x0; | |
86 | switch (cutSet) { | |
87 | case kPbPb2011TPCandTOF : | |
4118e72c | 88 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 89 | case kPbPb2011TPCorTOF : |
90 | case kpp2010TPCandTOF : | |
91 | case kpp2010TPCorTOF : | |
92 | trackRotator = new AliDielectronTrackRotator(); | |
93 | trackRotator->SetIterations(20); | |
94 | trackRotator->SetConeAnglePhi(TMath::Pi()/180*165); | |
95 | trackRotator->SetStartAnglePhi(TMath::Pi()); | |
96 | break; | |
97 | default: cout << "No Rotator defined" << endl; | |
98 | } | |
99 | return trackRotator; | |
100 | } | |
101 | ||
102 | ||
103 | AliDielectronMixingHandler* GetMixingHandler(Int_t cutSet) { | |
104 | AliDielectronMixingHandler* mixingHandler = 0x0; | |
105 | switch (cutSet) { | |
106 | case kPbPb2011TPCorTOF : | |
4118e72c | 107 | /* |
9f00b65f | 108 | mixingHandler = new AliDielectronMixingHandler; |
109 | mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10"); | |
110 | mixingHandler->AddVariable(AliDielectronVarManager::kCentrality,"0,5,10,20,40,80"); | |
111 | mixingHandler->SetDepth(25); | |
112 | mixingHandler->SetMixType(AliDielectronMixingHandler::kAll); | |
4118e72c | 113 | break; |
114 | */ | |
9f00b65f | 115 | case kPbPb2011TPCandTOF : |
4118e72c | 116 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 117 | mixingHandler = new AliDielectronMixingHandler; |
118 | mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10"); | |
119 | mixingHandler->AddVariable(AliDielectronVarManager::kCentrality,"0,5,10,20,40,80"); | |
120 | mixingHandler->AddVariable(AliDielectronVarManager::kv0ACrpH2,"-6*(TMath::Pi()/6),-5*(TMath::Pi()/6),-4*(TMath::Pi()/6),-3*(TMath::Pi()/6),-2*(TMath::Pi()/6),-1*(TMath::Pi()/6),0,1*(TMath::Pi()/6),2*(TMath::Pi()/6),3*(TMath::Pi()/6),4*(TMath::Pi()/6),5*(TMath::Pi()/6),6*(TMath::Pi()/6)"); | |
121 | //mixingHandler->SetDepth(50); | |
4118e72c | 122 | mixingHandler->SetDepth(15); |
9f00b65f | 123 | mixingHandler->SetMixType(AliDielectronMixingHandler::kAll); |
124 | break; | |
125 | case kpp2010TPCandTOF : | |
126 | case kpp2010TPCorTOF : | |
127 | mixingHandler = new AliDielectronMixingHandler; | |
128 | mixingHandler->AddVariable(AliDielectronVarManager::kZvPrim,"-10,-5,0,5,10"); | |
129 | mixingHandler->AddVariable(AliDielectronVarManager::kNacc,"0,10000"); | |
130 | //might want to add multiplicity? | |
131 | mixingHandler->SetDepth(50); | |
132 | mixingHandler->SetMixType(AliDielectronMixingHandler::kAll); | |
133 | break; | |
134 | default: cout << "No Rotator defined" << endl; | |
135 | } | |
136 | return mixingHandler; | |
137 | } | |
138 | ||
139 | ||
140 | AliAnalysisCuts* GetPIDCutsAna(Int_t cutSet) { | |
141 | AliAnalysisCuts* anaCuts=0x0; | |
142 | ||
143 | // + [2] added for Dec2010 Cut! | |
144 | TF1 *lowerCut = new TF1("lowerCut", "[0] * TMath::Exp([1]*x) + [2]", 0, 20); | |
145 | /* until Nov2010 | |
146 | lowerCut->SetParameter(0, -2.7); | |
147 | lowerCut->SetParameter(1, -0.4357); | |
148 | */ | |
149 | /* 18.01.2011 ALiHFEpid.cxx */ | |
150 | lowerCut->SetParameter(0,-3.7); | |
151 | lowerCut->SetParameter(1,-0.8); | |
152 | lowerCut->SetParameter(2,-0.35); | |
153 | ||
154 | if (MCenabled) { //overwrite parameters | |
155 | lowerCut->SetParameter(0,-2.5); | |
156 | lowerCut->SetParameter(2,-2.2); | |
157 | } | |
158 | ||
159 | //--------------------------------------------- | |
160 | AliDielectronPID *pidTPCTOFeOnly = new AliDielectronPID("TPC-TOF","TPC-TOF"); | |
161 | pidTPCTOFeOnly->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3,3.,0.0,100.,kFALSE); | |
162 | pidTPCTOFeOnly->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE ); | |
163 | ||
4118e72c | 164 | |
165 | AliDielectronPID *pidTPCandTOF = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE"); | |
166 | pidTPCandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.,0.0,100.,kFALSE); | |
167 | pidTPCandTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3.,3.,0.,100.,kTRUE); | |
168 | pidTPCandTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE ); | |
169 | ||
9f00b65f | 170 | AliDielectronPID *pidTPChardTOF = new AliDielectronPID("TPC-TOF-HFE","TPC-TOF-HFE"); |
171 | pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,lowerCut,3.,0.0,100.,kFALSE); | |
172 | pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,0.,100.,kTRUE); | |
173 | pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.,0.,100.,kTRUE); | |
174 | pidTPChardTOF->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.,0.,100.,kTRUE); | |
175 | pidTPChardTOF->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.0 , 100., kFALSE ); | |
176 | //___________________________________________ | |
177 | AliDielectronPID *pidTT = new AliDielectronPID("TPC-TOF","TPC-TOF"); | |
178 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-1.5,3.,0.2,0.4,kFALSE); | |
179 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3,3.,0.4,100.,kFALSE); | |
4118e72c | 180 | pidTT->AddCut(AliDielectronPID::kTOF ,AliPID::kElectron , -3. , 3. , 0.2 , 100., kFALSE ); |
9f00b65f | 181 | |
182 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kPion,-3,3.,0.,100.,kTRUE); | |
183 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kProton,-3.,3.,0.,100.,kTRUE); | |
184 | pidTT->AddCut(AliDielectronPID::kTPC,AliPID::kKaon,-3.,3.,0.,100.,kTRUE); | |
185 | //___________________________________________ | |
186 | AliDielectronVarCuts *pidTPCsignal = new AliDielectronVarCuts("pidTPCsignal","cut on the TPC signal"); | |
4118e72c | 187 | if (MCenabled) { |
188 | pidTPCsignal->AddCut(AliDielectronVarManager::kTPCsignal,65.,85.); | |
189 | } | |
190 | else { | |
9f00b65f | 191 | pidTPCsignal->AddCut(AliDielectronVarManager::kTPCsignal,75.,90.); |
4118e72c | 192 | } |
9f00b65f | 193 | //___________________________________________ |
194 | ||
4118e72c | 195 | AliDielectronVarCuts *pidTPCsignalWide = new AliDielectronVarCuts("pidTPCsignalWide","cut on the TPC signal"); |
196 | pidTPCsignalWide->AddCut(AliDielectronVarManager::kTPCsignal,70.,90.); | |
197 | ||
198 | ||
9f00b65f | 199 | AliDielectronVarCuts *pTPC = new AliDielectronVarCuts("P>.4","P>.4"); |
4118e72c | 200 | pTPC->AddCut(AliDielectronVarManager::kPt,.4,5.); |
9f00b65f | 201 | |
202 | AliDielectronVarCuts *pMin = new AliDielectronVarCuts("P>.2","P>.2"); | |
4118e72c | 203 | pMin->AddCut(AliDielectronVarManager::kPt,.2,5.); |
9f00b65f | 204 | |
205 | switch (cutSet) { | |
206 | case kPbPb2011TPCandTOF : | |
207 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND); | |
208 | cgSecondTrackFilterPIDTPC1->AddCut(pTPC); | |
209 | //cgSecondTrackFilterPIDTPC1->AddCut(pidTPChardTOF); | |
210 | cgSecondTrackFilterPIDTPC1->AddCut(pidTPCTOFeOnly); | |
211 | cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignal); | |
212 | cgSecondTrackFilterPIDTPC1->AddCut(GetTrackCutsAna(cutSet)); | |
213 | anaCuts = cgSecondTrackFilterPIDTPC1; | |
214 | break; | |
4118e72c | 215 | case kPbPb2011TPCandTOFwide : |
216 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND); | |
217 | cgSecondTrackFilterPIDTPC1->AddCut(pTPC); | |
218 | cgSecondTrackFilterPIDTPC1->AddCut(pidTPCandTOF); | |
219 | cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignalWide); | |
220 | cgSecondTrackFilterPIDTPC1->AddCut(GetTrackCutsAna(cutSet)); | |
221 | anaCuts = cgSecondTrackFilterPIDTPC1; | |
222 | break; | |
223 | ||
9f00b65f | 224 | case kPbPb2011TPCorTOF : |
225 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC2 = new AliDielectronCutGroup("cgPIDTPC2","cgPIDTPC2",AliDielectronCutGroup::kCompAND); | |
226 | cgSecondTrackFilterPIDTPC2->AddCut(pMin); | |
227 | cgSecondTrackFilterPIDTPC2->AddCut(pidTT); | |
228 | cgSecondTrackFilterPIDTPC2->AddCut(pidTPCsignal); | |
229 | cgSecondTrackFilterPIDTPC2->AddCut(GetTrackCutsAna(cutSet)); | |
230 | anaCuts = cgSecondTrackFilterPIDTPC2; | |
231 | break; | |
232 | case kpp2010TPCandTOF : | |
233 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND); | |
234 | cgSecondTrackFilterPIDTPC->AddCut(pTPC); | |
235 | //cgSecondTrackFilterPIDTPC->AddCut(pidTPChardTOF); | |
236 | cgSecondTrackFilterPIDTPC->AddCut(pidTPCTOFeOnly); | |
237 | anaCuts = cgSecondTrackFilterPIDTPC; | |
238 | break; | |
239 | case kpp2010TPCorTOF : | |
240 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND); | |
241 | cgSecondTrackFilterPIDTPC->AddCut(pMin); | |
242 | cgSecondTrackFilterPIDTPC->AddCut(pidTT); | |
243 | anaCuts = cgSecondTrackFilterPIDTPC; | |
244 | break; | |
245 | default: cout << "No Analysis PID Cut defined " << endl; | |
246 | } | |
247 | return anaCuts; | |
248 | } | |
249 | ||
250 | AliAnalysisCuts* GetPIDCutsPre(Int_t cutSet) { | |
251 | AliAnalysisCuts* anaCuts=0x0; | |
252 | switch (cutSet) { | |
253 | case kPbPb2011TPCandTOF : | |
4118e72c | 254 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 255 | case kPbPb2011TPCorTOF : |
256 | case kpp2010TPCandTOF : | |
257 | case kpp2010TPCorTOF : | |
258 | AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND); | |
259 | AliDielectronCutGroup* cgITSTPC = new AliDielectronCutGroup("cgITSTPC","cgITSTPC",AliDielectronCutGroup::kCompAND); | |
260 | AliDielectronPID *pidITSTPC = new AliDielectronPID("TPCpre","TPCpre"); | |
261 | pidITSTPC->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.); | |
262 | cgITSTPC->AddCut(pidITSTPC); | |
263 | // cgITSTPC->AddCut(GetTrackCutsAna(cutSet)); | |
264 | ||
265 | AliDielectronCutGroup* cgITSSA = new AliDielectronCutGroup("cgITSSA","cgITSSA",AliDielectronCutGroup::kCompAND); | |
266 | AliDielectronPID *pidITSSA = new AliDielectronPID("pidITSSA","pidITSSA"); | |
267 | pidITSSA->AddCut(AliDielectronPID::kITS,AliPID::kElectron,-3.,3.); | |
268 | cgITSSA->AddCut(pidITSSA); | |
269 | // cgITSSA->AddCut(GetTrackCutsPre(cutSet)); | |
270 | ||
271 | AliDielectronCutGroup* cgInitialTrackFilter = new AliDielectronCutGroup("cgInitialTrackFilter","cgInitialTrackFilter",AliDielectronCutGroup::kCompOR); | |
272 | cgInitialTrackFilter->AddCut(cgITSTPC); | |
273 | cgInitialTrackFilter->AddCut(cgITSSA); | |
274 | anaCuts = cgInitialTrackFilter; | |
275 | break; | |
276 | default: cout << "No Pre-PID Cut defined " << endl; | |
277 | } | |
278 | return anaCuts; | |
279 | } | |
280 | ||
281 | ||
4118e72c | 282 | |
283 | AliAnalysisCuts* GetPairCuts2(Int_t cutSet, Bool_t togglePC /*=kFALSE*/) { | |
284 | AliAnalysisCuts* pairCuts=0x0; | |
285 | switch (cutSet) { | |
286 | case kPbPb2011TPCorTOF : | |
287 | case kpp2010TPCandTOF : | |
288 | AliDielectronVarCuts* pairCutsV= new AliDielectronVarCuts("InvMass","InvMass > 150 MeV"); | |
289 | pairCutsV->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE); | |
290 | pairCuts = pairCutsV; | |
291 | break; | |
292 | case kPbPb2011TPCandTOF : | |
293 | case kPbPb2011TPCandTOFwide : | |
294 | case kpp2010TPCorTOF : | |
295 | if (!togglePC) { | |
296 | ||
297 | AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR); | |
298 | AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND); | |
299 | pairCutsPhiv =new AliDielectronVarCuts("Phiv Cuts","Phiv<2.0rad"); | |
300 | pairCutsPhiv->AddCut(AliDielectronVarManager::kPhivPair, 0.0, 2.0); | |
301 | pairCutsInvM =new AliDielectronVarCuts("InvM Cuts","InvM<0.3"); | |
302 | pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.3); | |
303 | pairCutsInvMgood =new AliDielectronVarCuts("InvM Cuts good","InvM>0.3"); | |
304 | pairCutsInvMgood->AddCut(AliDielectronVarManager::kM, 0.3, 99999.); | |
305 | pairCutsCG->AddCut(pairCutsPhiv); | |
306 | pairCutsCG->AddCut(pairCutsInvM); | |
307 | pairCutsCG2->AddCut(pairCutsInvMgood); | |
308 | pairCutsCG2->AddCut(pairCutsCG); | |
309 | pairCuts = pairCutsCG2; | |
310 | } | |
311 | else { | |
312 | AliDielectronVarCuts* pairCutsV =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad"); | |
313 | pairCutsV->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035,kTRUE); | |
314 | pairCuts = pairCutsV; | |
315 | } | |
316 | break; | |
317 | default: cout << "No Pair Cuts defined " << endl; | |
318 | } | |
319 | return pairCuts; | |
320 | } | |
321 | ||
322 | ||
9f00b65f | 323 | AliAnalysisCuts* GetPairCuts(Int_t cutSet) { |
324 | AliDielectronVarCuts* pairCuts=0x0; | |
325 | switch (cutSet) { | |
326 | case kPbPb2011TPCorTOF : | |
327 | case kpp2010TPCandTOF : | |
328 | pairCuts = new AliDielectronVarCuts("InvMass","InvMass > 150 MeV"); | |
329 | pairCuts->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE); | |
330 | break; | |
331 | case kPbPb2011TPCandTOF : | |
4118e72c | 332 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 333 | case kpp2010TPCorTOF : |
334 | pairCuts =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad"); | |
335 | pairCuts->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035); | |
336 | break; | |
337 | default: cout << "No Pair Cuts defined " << endl; | |
338 | } | |
339 | return pairCuts; | |
340 | } | |
341 | ||
342 | AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet) { | |
343 | AliDielectronCutGroup* trackCuts=0x0; | |
344 | switch (cutSet) { | |
345 | case kPbPb2011TPCandTOF : | |
4118e72c | 346 | case kPbPb2011TPCandTOFwide : |
9f00b65f | 347 | case kPbPb2011TPCorTOF : |
348 | case kpp2010TPCandTOF : | |
349 | case kpp2010TPCorTOF : | |
350 | trackCuts = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND); | |
351 | ||
352 | trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD"); | |
353 | ||
354 | //Not necessary for AOD? | |
355 | //-AOD-trackCuts->SetDCAToVertex2D(kTRUE); | |
356 | ||
9f00b65f | 357 | |
5520ccf0 | 358 | |
9f00b65f | 359 | //-AOD-trackCuts->SetMinNCrossedRowsTPC(110); |
360 | //-AOD-trackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.7); | |
4118e72c | 361 | //Legacy cut: Use Crossed Rows in ESD, in AOD ASAP |
362 | trackCutsAOD->AddCut(AliDielectronVarManager::kNclsTPC, 60.0, 160.0); | |
363 | ||
9f00b65f | 364 | trackCutsAOD->AddCut(AliDielectronVarManager::kPt,0.05,200.); |
365 | trackCutsAOD->AddCut(AliDielectronVarManager::kEta,-0.84,0.84); | |
366 | ||
4118e72c | 367 | //DCA Cut |
9f00b65f | 368 | trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0, 1.0); |
369 | trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ, -3.0, 3.0); | |
5520ccf0 | 370 | trackCutsAOD->AddCut(AliDielectronVarManager::kTPCchi2Cl, 0.0, 3.5); |
9f00b65f | 371 | |
5520ccf0 | 372 | |
373 | ||
ee00eb9d | 374 | trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS, 3.0, 100.0); |
5520ccf0 | 375 | |
9f00b65f | 376 | trackCutsAOD->AddCut(AliDielectronVarManager::kKinkIndex0, 0.0); |
377 | ||
9f00b65f | 378 | |
379 | ||
380 | ||
381 | AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel"); | |
382 | trackCutsDiel->SetRequireITSRefit(kTRUE); | |
383 | trackCutsDiel->SetRequireTPCRefit(kTRUE); | |
5520ccf0 | 384 | |
385 | //-AOD-trackCuts->SetMinNClustersITS(3); | |
386 | trackCutsDiel->SetITSclusterCut(AliDielectronTrackCuts::kAtLeast,7); //>=3 | |
ee00eb9d | 387 | trackCutsDiel->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst) |
388 | // trackCutsAOD->AddCut(AliDielectronVarManager::kITSLayerFirstCls,-0.01,0.5); //ITS(0) = SPDfirst | |
389 | ||
9f00b65f | 390 | trackCuts->AddCut(trackCutsDiel); |
391 | trackCuts->AddCut(trackCutsAOD); | |
392 | ||
393 | break; | |
394 | default: cout << "No Analysis Track Cut defined " << endl; | |
395 | } | |
396 | return trackCuts; | |
397 | } | |
398 | ||
399 | AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet) { | |
400 | AliESDtrackCuts* trackCuts=0x0; | |
401 | switch (cutSet) { | |
402 | case kPbPb2011TPCandTOF : | |
403 | case kPbPb2011TPCorTOF : | |
404 | case kpp2010TPCandTOF : | |
405 | case kpp2010TPCorTOF : | |
406 | /* | |
407 | // trackCuts = new AliESDtrackCuts(); | |
408 | // trackCuts->SetDCAToVertex2D(kTRUE); | |
409 | // trackCuts->SetMaxDCAToVertexZ(3.0); | |
410 | // trackCuts->SetMaxDCAToVertexXY(1.0); | |
411 | trackCuts->SetEtaRange( -0.84 , 0.84 ); | |
412 | trackCuts->SetPtRange( 0.05 , 0.5); | |
413 | trackCuts->SetAcceptKinkDaughters(kFALSE); | |
414 | trackCuts->SetRequireITSRefit(kTRUE); | |
415 | trackCuts->SetRequireITSStandAlone(kTRUE); | |
416 | trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst); | |
417 | trackCuts->SetMinNClustersITS(3); //PhotonGroup-Dalitz: 2?! | |
418 | */ | |
419 | cout << "No Pre-Track Cut defined for AODs at the moment " << endl; | |
420 | break; | |
421 | default: cout << "No Pre-Track Cut defined " << endl; | |
422 | } | |
423 | return trackCuts; | |
424 | } | |
425 | ||
426 | }; |