]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosLMEE/LMEECutLibAOD.C
replace old ESD tasks with more flexible ones
[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");
c787ecdf 53 eventCuts->SetVertexType(AliDielectronEventCuts::kVtxSPD); // AOD
840abc7f 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);
9f00b65f 217 anaCuts = cgSecondTrackFilterPIDTPC1;
218 break;
b3a9b3e3 219 case kPbPb2011TPC :
220 AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
221 cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
222 cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignalWide);
b3a9b3e3 223 anaCuts = cgSecondTrackFilterPIDTPC1;
224 break;
225
4118e72c 226 case kPbPb2011TPCandTOFwide :
227 AliDielectronCutGroup* cgSecondTrackFilterPIDTPC1 = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
228 cgSecondTrackFilterPIDTPC1->AddCut(pTPC);
229 cgSecondTrackFilterPIDTPC1->AddCut(pidTPCandTOF);
230 cgSecondTrackFilterPIDTPC1->AddCut(pidTPCsignalWide);
4118e72c 231 anaCuts = cgSecondTrackFilterPIDTPC1;
232 break;
233
9f00b65f 234 case kPbPb2011TPCorTOF :
235 AliDielectronCutGroup* cgSecondTrackFilterPIDTPC2 = new AliDielectronCutGroup("cgPIDTPC2","cgPIDTPC2",AliDielectronCutGroup::kCompAND);
236 cgSecondTrackFilterPIDTPC2->AddCut(pMin);
237 cgSecondTrackFilterPIDTPC2->AddCut(pidTT);
238 cgSecondTrackFilterPIDTPC2->AddCut(pidTPCsignal);
9f00b65f 239 anaCuts = cgSecondTrackFilterPIDTPC2;
240 break;
241 case kpp2010TPCandTOF :
242 AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
243 cgSecondTrackFilterPIDTPC->AddCut(pTPC);
244 //cgSecondTrackFilterPIDTPC->AddCut(pidTPChardTOF);
245 cgSecondTrackFilterPIDTPC->AddCut(pidTPCTOFeOnly);
246 anaCuts = cgSecondTrackFilterPIDTPC;
247 break;
248 case kpp2010TPCorTOF :
249 AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
250 cgSecondTrackFilterPIDTPC->AddCut(pMin);
251 cgSecondTrackFilterPIDTPC->AddCut(pidTT);
252 anaCuts = cgSecondTrackFilterPIDTPC;
253 break;
254 default: cout << "No Analysis PID Cut defined " << endl;
255 }
256 return anaCuts;
257 }
258
259 AliAnalysisCuts* GetPIDCutsPre(Int_t cutSet) {
260 AliAnalysisCuts* anaCuts=0x0;
261 switch (cutSet) {
262 case kPbPb2011TPCandTOF :
b3a9b3e3 263 case kPbPb2011TPC :
4118e72c 264 case kPbPb2011TPCandTOFwide :
9f00b65f 265 case kPbPb2011TPCorTOF :
266 case kpp2010TPCandTOF :
267 case kpp2010TPCorTOF :
268 AliDielectronCutGroup* cgSecondTrackFilterPIDTPC = new AliDielectronCutGroup("cgPIDTPC","cgPIDTPC",AliDielectronCutGroup::kCompAND);
269 AliDielectronCutGroup* cgITSTPC = new AliDielectronCutGroup("cgITSTPC","cgITSTPC",AliDielectronCutGroup::kCompAND);
270 AliDielectronPID *pidITSTPC = new AliDielectronPID("TPCpre","TPCpre");
271 pidITSTPC->AddCut(AliDielectronPID::kTPC,AliPID::kElectron,-3.,3.);
272 cgITSTPC->AddCut(pidITSTPC);
f88c2b26 273
9f00b65f 274
275 AliDielectronCutGroup* cgITSSA = new AliDielectronCutGroup("cgITSSA","cgITSSA",AliDielectronCutGroup::kCompAND);
276 AliDielectronPID *pidITSSA = new AliDielectronPID("pidITSSA","pidITSSA");
277 pidITSSA->AddCut(AliDielectronPID::kITS,AliPID::kElectron,-3.,3.);
278 cgITSSA->AddCut(pidITSSA);
279 // cgITSSA->AddCut(GetTrackCutsPre(cutSet));
280
281 AliDielectronCutGroup* cgInitialTrackFilter = new AliDielectronCutGroup("cgInitialTrackFilter","cgInitialTrackFilter",AliDielectronCutGroup::kCompOR);
282 cgInitialTrackFilter->AddCut(cgITSTPC);
283 cgInitialTrackFilter->AddCut(cgITSSA);
284 anaCuts = cgInitialTrackFilter;
285 break;
286 default: cout << "No Pre-PID Cut defined " << endl;
287 }
288 return anaCuts;
289 }
290
291
4118e72c 292
293 AliAnalysisCuts* GetPairCuts2(Int_t cutSet, Bool_t togglePC /*=kFALSE*/) {
294 AliAnalysisCuts* pairCuts=0x0;
295 switch (cutSet) {
296 case kPbPb2011TPCorTOF :
297 case kpp2010TPCandTOF :
298 AliDielectronVarCuts* pairCutsV= new AliDielectronVarCuts("InvMass","InvMass > 150 MeV");
299 pairCutsV->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE);
300 pairCuts = pairCutsV;
301 break;
302 case kPbPb2011TPCandTOF :
b3a9b3e3 303 case kPbPb2011TPC :
4118e72c 304 case kPbPb2011TPCandTOFwide :
305 case kpp2010TPCorTOF :
306 if (!togglePC) {
307
308 AliDielectronCutGroup* pairCutsCG2 =new AliDielectronCutGroup("pairCutsCG2","pairCutsCG2",AliDielectronCutGroup::kCompOR);
309 AliDielectronCutGroup* pairCutsCG =new AliDielectronCutGroup("pairCutsCG","pairCutsCG",AliDielectronCutGroup::kCompAND);
310 pairCutsPhiv =new AliDielectronVarCuts("Phiv Cuts","Phiv<2.0rad");
311 pairCutsPhiv->AddCut(AliDielectronVarManager::kPhivPair, 0.0, 2.0);
312 pairCutsInvM =new AliDielectronVarCuts("InvM Cuts","InvM<0.3");
313 pairCutsInvM->AddCut(AliDielectronVarManager::kM, 0.0, 0.3);
314 pairCutsInvMgood =new AliDielectronVarCuts("InvM Cuts good","InvM>0.3");
315 pairCutsInvMgood->AddCut(AliDielectronVarManager::kM, 0.3, 99999.);
316 pairCutsCG->AddCut(pairCutsPhiv);
317 pairCutsCG->AddCut(pairCutsInvM);
318 pairCutsCG2->AddCut(pairCutsInvMgood);
319 pairCutsCG2->AddCut(pairCutsCG);
320 pairCuts = pairCutsCG2;
321 }
322 else {
323 AliDielectronVarCuts* pairCutsV =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad");
324 pairCutsV->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035,kTRUE);
325 pairCuts = pairCutsV;
326 }
327 break;
328 default: cout << "No Pair Cuts defined " << endl;
329 }
330 return pairCuts;
331 }
332
333
9f00b65f 334 AliAnalysisCuts* GetPairCuts(Int_t cutSet) {
335 AliDielectronVarCuts* pairCuts=0x0;
336 switch (cutSet) {
337 case kPbPb2011TPCorTOF :
338 case kpp2010TPCandTOF :
339 pairCuts = new AliDielectronVarCuts("InvMass","InvMass > 150 MeV");
340 pairCuts->AddCut(AliDielectronVarManager::kM,0.15,100.,kTRUE);
341 break;
342 case kPbPb2011TPCandTOF :
b3a9b3e3 343 case kPbPb2011TPC :
4118e72c 344 case kPbPb2011TPCandTOFwide :
9f00b65f 345 case kpp2010TPCorTOF :
346 pairCuts =new AliDielectronVarCuts("OpeningAngle","Opening angle > .035rad");
347 pairCuts->AddCut(AliDielectronVarManager::kOpeningAngle, 0. , 0.035);
348 break;
349 default: cout << "No Pair Cuts defined " << endl;
350 }
351 return pairCuts;
352 }
353
c787ecdf 354 AliAnalysisCuts* GetESDTrackCutsAna(Int_t cutSet) {
355 AliESDtrackCuts* esdTrackCutsH = 0x0;
356 switch (cutSet) {
357 case kPbPb2011TPCandTOF :
358 case kPbPb2011TPC :
359 case kPbPb2011TPCandTOFwide :
360 case kPbPb2011TPCorTOF :
361 case kpp2010TPCandTOF :
362 case kpp2010TPCorTOF :
363 // standard cuts with very loose DCA: Bit4 (Int: 16), AOD095&115
364
365 esdTrackCutsH = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kFALSE);
366 esdTrackCutsH->SetMaxDCAToVertexXY(2.4);
367 esdTrackCutsH->SetMaxDCAToVertexZ(3.2);
368 esdTrackCutsH->SetDCAToVertex2D(kTRUE);
369 /*
370
371 esdTrackCutsH = new AliESDtrackCuts();
372 esdTrackCutsH->SetAcceptKinkDaughters(kFALSE);
373 //Not done so far via dielectron cuts:
374 */
375 /*
376 esdTrackCuts->SetDCAToVertex2D(kFALSE);
377 esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
378 esdTrackCuts->SetMaxChi2PerClusterITS(36);
379 */
380
381 break;
382 default: cout << "No Analysis Track Cut defined " << endl;
383 }
384 return esdTrackCutsH;
385 }
386
9f00b65f 387 AliAnalysisCuts* GetTrackCutsAna(Int_t cutSet) {
388 AliDielectronCutGroup* trackCuts=0x0;
389 switch (cutSet) {
390 case kPbPb2011TPCandTOF :
b3a9b3e3 391 case kPbPb2011TPC :
4118e72c 392 case kPbPb2011TPCandTOFwide :
9f00b65f 393 case kPbPb2011TPCorTOF :
394 case kpp2010TPCandTOF :
395 case kpp2010TPCorTOF :
396 trackCuts = new AliDielectronCutGroup("cgPIDTPC1","cgPIDTPC1",AliDielectronCutGroup::kCompAND);
5520ccf0 397
c787ecdf 398 trackCutsAOD =new AliDielectronVarCuts("trackCutsAOD","trackCutsAOD");
399 trackCutsAOD->AddCut(AliDielectronVarManager::kPt,0.05,6.);
9f00b65f 400 trackCutsAOD->AddCut(AliDielectronVarManager::kEta,-0.84,0.84);
c787ecdf 401 //DCA Cut
9f00b65f 402 trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParXY, -1.0, 1.0);
403 trackCutsAOD->AddCut(AliDielectronVarManager::kImpactParZ, -3.0, 3.0);
ee00eb9d 404 trackCutsAOD->AddCut(AliDielectronVarManager::kNclsITS, 3.0, 100.0);
f88c2b26 405 trackCutsAOD->AddCut(AliDielectronVarManager::kTPCchi2Cl, 0.0, 3.5);
9f00b65f 406 AliDielectronTrackCuts *trackCutsDiel = new AliDielectronTrackCuts("trackCutsDiel","trackCutsDiel");
c787ecdf 407 trackCutsDiel->SetAODFilterBit(16); //does nothing for ESDs
9f00b65f 408 trackCutsDiel->SetRequireITSRefit(kTRUE);
409 trackCutsDiel->SetRequireTPCRefit(kTRUE);
c787ecdf 410
0332d10a 411 trackCutsDiel->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
c787ecdf 412// trackCutsAOD->AddCut(AliDielectronVarManager::kNclsTPC, 80., 140.0);
b3a9b3e3 413 trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCr, 110.0, 160.0);
c787ecdf 414 trackCutsAOD->AddCut(AliDielectronVarManager::kNFclsTPCfCross, 0.8, 1.0);//tighter than before,
415 //due to AOD production
9f00b65f 416 trackCuts->AddCut(trackCutsDiel);
417 trackCuts->AddCut(trackCutsAOD);
9f00b65f 418 break;
419 default: cout << "No Analysis Track Cut defined " << endl;
420 }
421 return trackCuts;
422 }
423
424 AliAnalysisCuts* GetTrackCutsPre(Int_t cutSet) {
425 AliESDtrackCuts* trackCuts=0x0;
426 switch (cutSet) {
427 case kPbPb2011TPCandTOF :
428 case kPbPb2011TPCorTOF :
429 case kpp2010TPCandTOF :
430 case kpp2010TPCorTOF :
431/*
deb910b5 432 trackCuts = new AliESDtrackCuts();
433 trackCuts->SetDCAToVertex2D(kTRUE);
434 trackCuts->SetMaxDCAToVertexZ(3.0);
435 trackCuts->SetMaxDCAToVertexXY(1.0);
9f00b65f 436 trackCuts->SetEtaRange( -0.84 , 0.84 );
437 trackCuts->SetPtRange( 0.05 , 0.5);
438 trackCuts->SetAcceptKinkDaughters(kFALSE);
439 trackCuts->SetRequireITSRefit(kTRUE);
440 trackCuts->SetRequireITSStandAlone(kTRUE);
441 trackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,AliESDtrackCuts::kFirst);
442 trackCuts->SetMinNClustersITS(3); //PhotonGroup-Dalitz: 2?!
443*/
444 cout << "No Pre-Track Cut defined for AODs at the moment " << endl;
445 break;
446 default: cout << "No Pre-Track Cut defined " << endl;
447 }
448 return trackCuts;
449 }
450
451};