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