1 ///*******************************************************
4 ///*******************************************************
6 AliAnalysisTaskEMCalHFEpA* ConfigEMCalHFEpA(
13 Int_t centralityIndex=0,
14 Bool_t isAOD = kFALSE,
15 Bool_t isEMCal = kFALSE,
16 Int_t EMCalThreshould = 0 //0 == EG1, 1 == EG2
20 ///_______________________________________________________________________________________________________________
21 ///Track selection: Cuts used to ensure a minimum quality level of the tracks selected to perform the analysis
22 AliHFEcuts *hfecuts = new AliHFEcuts("hfeCutsMinBias","HFE Cuts");
23 hfecuts->CreateStandardCuts();
26 hfecuts->SetTPCmodes(AliHFEextraCuts::kFound, AliHFEextraCuts::kFoundOverFindable);
27 if(configIndex==1) hfecuts->SetMinNClustersTPC(90); //Minimum number of clusters on TPC
28 else if(configIndex==2) hfecuts->SetMinNClustersTPC(110);
29 else if(configIndex==3) hfecuts->SetMinNClustersTPC(80);
30 else if(configIndex==4) hfecuts->SetMinNClustersTPC(85);
31 else if(configIndex==5) hfecuts->SetMinNClustersTPC(115);
32 else if(configIndex==6) hfecuts->SetMinNClustersTPC(120); //Minimum number of clusters on TPC
33 else hfecuts->SetMinNClustersTPC(100); //Minimum number of clusters on TPC
35 if(configIndex==7) hfecuts->SetMinNClustersTPCPID(70);
36 else if (configIndex==8) hfecuts->SetMinNClustersTPCPID(90);
37 else if (configIndex==9) hfecuts->SetMinNClustersTPCPID(60);
38 else if (configIndex==10) hfecuts->SetMinNClustersTPCPID(65);
39 else if (configIndex==11) hfecuts->SetMinNClustersTPCPID(100);
40 else if (configIndex==12) hfecuts->SetMinNClustersTPCPID(95);
41 else hfecuts->SetMinNClustersTPCPID(80); //Minimum number of clusters for dE/dx
43 hfecuts->SetMinRatioTPCclusters(0.6); //Number of clusters (Found/Findable)
46 if(configIndex==13) hfecuts->SetCutITSpixel(AliHFEextraCuts::kBoth); //Require at least one cluster on SPD
47 else hfecuts->SetCutITSpixel(AliHFEextraCuts::kAny); //Require at least one cluster on SPD
48 //hfecuts->SetCutITSdrift(AliHFEextraCuts::kAny); //Require at least one cluster on SDD
49 hfecuts->SetCheckITSLayerStatus(kFALSE);
51 if(configIndex==14) hfecuts->SetMinNClustersITS(2); //Minimum number of clusters on ITS
52 else if(configIndex==15) hfecuts->SetMinNClustersITS(4);
53 else if(configIndex==16) hfecuts->SetMinNClustersITS(1);
54 else if(configIndex==17) hfecuts->SetMinNClustersITS(5);
55 else hfecuts->SetMinNClustersITS(3); //Minimum number of clusters on ITS
58 hfecuts->SetPtRange(2, 1e6); //Transversal momentum range in GeV/c
59 //hfecuts->SetMaxImpactParam(1,2); //DCA to vertex
62 hfecuts->SetVertexRange(10.); //
63 //hfecuts->SetProductionVertex(0,0.3,0,0.3); //
64 ///_______________________________________________________________________________________________________________
65 // new cuts for event selection
67 //hfecuts->SetUseCorrelationVertex();
68 //hfecuts->SetSPDVtxResolutionCut();
69 //hfecuts->SetpApileupCut();
71 ///_________________________________________________________________________________________________________________________
73 AliAnalysisTaskEMCalHFEpA *task = new AliAnalysisTaskEMCalHFEpA(Form("HFECuts%d_%d_%d",triggerIndex,configIndex,centralityIndex));
74 printf("task ------------------------ %p\n ", task);
75 task->SetHFECuts(hfecuts);
76 task->SetCorrelationAnalysis(kFALSE);
77 task->SetAODanalysis(isAOD);
78 task->SetEventMixing(kTRUE);
80 //to separate trigger threshold
81 if(EMCalThreshould==0 && triggerIndex==2) task->SetEMCalTriggerEG1();
82 if(EMCalThreshould==1 && triggerIndex==2) task->SetEMCalTriggerEG2();
84 if(isEMCal) task->SetUseEMCal();
88 task->SetUseShowerShapeCut(kTRUE);
89 //task->SetM02Cut(0.0,0.3);
90 task->SetM20Cut(0.0,0.3);
92 task->SetBackground(kTRUE);
95 if(configIndex==20) task->SetNonHFEmassCut(0.05);
96 else if(configIndex==21) task->SetNonHFEmassCut(0.15);
97 else if(configIndex==22) task->SetNonHFEmassCut(0.03);
98 else if(configIndex==23) task->SetNonHFEmassCut(0.18);
99 else if(configIndex==24) task->SetNonHFEmassCut(0.01);
100 else if(configIndex==25) task->SetNonHFEmassCut(0.2);
101 else task->SetNonHFEmassCut(0.1);
103 if(configIndex==26) task->SetNonHFEangleCut(0.1);
104 if(configIndex==27) task->SetNonHFEangleCut(0.15);
105 if(configIndex==28) task->SetNonHFEangleCut(0.05);
109 if(configIndex==29) task->SetAdditionalCuts(0,80);
110 if(configIndex==30) task->SetAdditionalCuts(0.5,80);
111 if(configIndex==31) task->SetAdditionalCuts(0.7,80);
112 if(configIndex==32) task->SetAdditionalCuts(0.9,80);
114 if(configIndex==33) task->SetAdditionalCuts(0.3,60);
115 if(configIndex==34) task->SetAdditionalCuts(0.3,70);
116 if(configIndex==35) task->SetAdditionalCuts(0.3,90);
117 if(configIndex==36) task->SetAdditionalCuts(0.3,100);
119 task->SetAdditionalCuts(0.3,80);
123 if(configIndex==37) task->SetEtaCut(-0.6,0);
124 else if (configIndex==38) task->SetEtaCut(0,0.6);
125 else if (configIndex==39) task->SetEtaCut(-0.5,0.5);
126 else if (configIndex==40) task->SetEtaCut(-0.6,-0.2);
127 else if (configIndex==41) task->SetEtaCut(-0.5,-0.1);
128 else if (configIndex==42) task->SetEtaCut(-0.4,0);
129 else if (configIndex==43) task->SetEtaCut(-0.3,0.1);
130 else if (configIndex==44) task->SetEtaCut(-0.2,0.2);
131 else if (configIndex==45) task->SetEtaCut(-0.1,0.3);
132 else if (configIndex==46) task->SetEtaCut(0,0.4);
133 else if (configIndex==47) task->SetEtaCut(-0.4,0.4);
134 else if (configIndex==48) task->SetEtaCut(-0.3,0.3);
135 else task->SetEtaCut(-0.6,0.6);
137 //track matching cuts
138 if(configIndex==50) task->SetdPhidEtaCut(0.02,0.02);
139 else if (configIndex==51) task->SetdPhidEtaCut(0.03,0.03);
140 else if (configIndex==52) task->SetdPhidEtaCut(0.04,0.04);
141 else task->SetdPhidEtaCut(0.05,0.05);
144 if (configIndex==60) task->SetEoverPCut(0.85,1.2);
145 else if (configIndex==61) task->SetEoverPCut(0.75,1.25);
146 else if (configIndex==62) task->SetEoverPCut(0.70,1.2);
147 else if (configIndex==63) task->SetEoverPCut(0.80,1.25);
148 else if (configIndex==64) task->SetEoverPCut(0.9,1.3);
149 else if (configIndex==65) task->SetEoverPCut(0.95,1.3);
150 else if (configIndex==66) task->SetEoverPCut(0.75,1.2);
151 else task->SetEoverPCut(0.8,1.2);
155 if(centralityIndex==0) task->SetCentrality(0,20);
156 if(centralityIndex==1) task->SetCentrality(20,40);
157 if(centralityIndex==2) task->SetCentrality(40,60);
158 if(centralityIndex==3) task->SetCentrality(60,80);
159 if(centralityIndex==4) task->SetCentrality(80,100);
160 if(centralityIndex==5) task->SetCentrality(0,100);
161 ///_______________________________________________________________________________________________________________
163 ///_______________________________________________________________________________________________________________
164 ///Particle identification
165 AliHFEpid *pid = task->GetPID();
167 //______________________________________
168 //In the case of a simulation
171 pid->SetHasMCData(kTRUE);
172 task->SetMCanalysis();
174 //______________________________________
176 //______________________________________________________
178 //_________________________
180 pid->AddDetector("TPC", 1); //Add TPC PID
182 //_________________________
184 //Defaul = -1 to 3 sigmas
185 //Note that it is also possible to define a model instead of a constant
186 //--------->For this change the "cut model"
192 if(configIndex==70) params[0] = -1.5;
193 else if (configIndex==71) params[0] = -0.5;
194 else if (configIndex==72) params[0] = -1.25;
195 else if (configIndex==73) params[0] = -0.75;
196 else if (configIndex==74) params[0] = -1.75;
199 if(configIndex==75)Double_t max=1.5;
200 else if(configIndex==76)Double_t max=2.0;
201 else if(configIndex==77)Double_t max=2.5;
202 else if(configIndex==78)Double_t max=3.5;
203 else if(configIndex==79)Double_t max=4.0;
204 else Double_t max=3.0;
206 pid->ConfigureTPCdefaultCut(cutmodel,params,max);
207 //_______________________________________________________
209 ///_______________________________________________________________________________________________________________
210 /// New configurations for random cuts -- March, 05, 2014 -- Values in the macro "Random_configurations.C"
212 if (configIndex==80){
213 hfecuts->SetMinNClustersTPC(86);
214 hfecuts->SetMinNClustersTPCPID(76);
215 hfecuts->SetMinNClustersITS(3);
216 task->SetNonHFEmassCut(0.087);
217 task->SetNonHFEangleCut(0.069);
218 task->SetAdditionalCuts(0.152, 91);
219 task->SetdPhidEtaCut(0.019, 0.044);
220 task->SetEoverPCut(0.798, 1.225);
221 Double_t params[0]=-0.61;
222 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
224 if (configIndex==81){
225 hfecuts->SetMinNClustersTPC(95);
226 hfecuts->SetMinNClustersTPCPID(99);
227 hfecuts->SetMinNClustersITS(3);
228 task->SetNonHFEmassCut(0.057);
229 task->SetNonHFEangleCut(0.135);
230 task->SetAdditionalCuts(0.351, 61);
231 task->SetdPhidEtaCut(0.012, 0.044);
232 task->SetEoverPCut(0.792, 1.235);
233 Double_t params[0]=-1.17;
234 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
236 if (configIndex==82){
237 hfecuts->SetMinNClustersTPC(117);
238 hfecuts->SetMinNClustersTPCPID(69);
239 hfecuts->SetMinNClustersITS(2);
240 task->SetNonHFEmassCut(0.054);
241 task->SetNonHFEangleCut(0.062);
242 task->SetAdditionalCuts(0.842, 91);
243 task->SetdPhidEtaCut(0.018, 0.033);
244 task->SetEoverPCut(0.818, 1.212);
245 Double_t params[0]=-1.15;
246 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
248 if (configIndex==83){
249 hfecuts->SetMinNClustersTPC(98);
250 hfecuts->SetMinNClustersTPCPID(93);
251 hfecuts->SetMinNClustersITS(3);
252 task->SetNonHFEmassCut(0.083);
253 task->SetNonHFEangleCut(0.051);
254 task->SetAdditionalCuts(0.415, 83);
255 task->SetdPhidEtaCut(0.047, 0.016);
256 task->SetEoverPCut(0.826, 1.225);
257 Double_t params[0]=-1.06;
258 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
260 if (configIndex==84){
261 hfecuts->SetMinNClustersTPC(99);
262 hfecuts->SetMinNClustersTPCPID(99);
263 hfecuts->SetMinNClustersITS(3);
264 task->SetNonHFEmassCut(0.058);
265 task->SetNonHFEangleCut(0.145);
266 task->SetAdditionalCuts(0.654, 99);
267 task->SetdPhidEtaCut(0.025, 0.014);
268 task->SetEoverPCut(0.757, 1.228);
269 Double_t params[0]=-1.29;
270 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
272 if (configIndex==85){
273 hfecuts->SetMinNClustersTPC(85);
274 hfecuts->SetMinNClustersTPCPID(91);
275 hfecuts->SetMinNClustersITS(2);
276 task->SetNonHFEmassCut(0.167);
277 task->SetNonHFEangleCut(0.144);
278 task->SetAdditionalCuts(0.897, 78);
279 task->SetdPhidEtaCut(0.046, 0.043);
280 task->SetEoverPCut(0.771, 1.238);
281 Double_t params[0]=-1.16;
282 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
284 if (configIndex==86){
285 hfecuts->SetMinNClustersTPC(104);
286 hfecuts->SetMinNClustersTPCPID(75);
287 hfecuts->SetMinNClustersITS(2);
288 task->SetNonHFEmassCut(0.078);
289 task->SetNonHFEangleCut(0.112);
290 task->SetAdditionalCuts(0.036, 93);
291 task->SetdPhidEtaCut(0.019, 0.013);
292 task->SetEoverPCut(0.824, 1.211);
293 Double_t params[0]=-1.24;
294 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
296 if (configIndex==87){
297 hfecuts->SetMinNClustersTPC(108);
298 hfecuts->SetMinNClustersTPCPID(93);
299 hfecuts->SetMinNClustersITS(2);
300 task->SetNonHFEmassCut(0.128);
301 task->SetNonHFEangleCut(0.140);
302 task->SetAdditionalCuts(0.814, 89);
303 task->SetdPhidEtaCut(0.041, 0.022);
304 task->SetEoverPCut(0.762, 1.205);
305 Double_t params[0]=-0.93;
306 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
308 if (configIndex==88){
309 hfecuts->SetMinNClustersTPC(80);
310 hfecuts->SetMinNClustersTPCPID(82);
311 hfecuts->SetMinNClustersITS(2);
312 task->SetNonHFEmassCut(0.064);
313 task->SetNonHFEangleCut(0.102);
314 task->SetAdditionalCuts(0.092, 97);
315 task->SetdPhidEtaCut(0.014, 0.031);
316 task->SetEoverPCut(0.784, 1.216);
317 Double_t params[0]=-1.10;
318 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
320 if (configIndex==89){
321 hfecuts->SetMinNClustersTPC(100);
322 hfecuts->SetMinNClustersTPCPID(66);
323 hfecuts->SetMinNClustersITS(2);
324 task->SetNonHFEmassCut(0.100);
325 task->SetNonHFEangleCut(0.082);
326 task->SetAdditionalCuts(0.339, 76);
327 task->SetdPhidEtaCut(0.040, 0.011);
328 task->SetEoverPCut(0.811, 1.223);
329 Double_t params[0]=-0.61;
330 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
332 if (configIndex==90){
333 hfecuts->SetMinNClustersTPC(106);
334 hfecuts->SetMinNClustersTPCPID(90);
335 hfecuts->SetMinNClustersITS(3);
336 task->SetNonHFEmassCut(0.175);
337 task->SetNonHFEangleCut(0.098);
338 task->SetAdditionalCuts(0.630, 91);
339 task->SetdPhidEtaCut(0.034, 0.026);
340 task->SetEoverPCut(0.771, 1.249);
341 Double_t params[0]=-0.64;
342 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
344 if (configIndex==91){
345 hfecuts->SetMinNClustersTPC(84);
346 hfecuts->SetMinNClustersTPCPID(80);
347 hfecuts->SetMinNClustersITS(2);
348 task->SetNonHFEmassCut(0.083);
349 task->SetNonHFEangleCut(0.098);
350 task->SetAdditionalCuts(0.594, 66);
351 task->SetdPhidEtaCut(0.013, 0.043);
352 task->SetEoverPCut(0.809, 1.246);
353 Double_t params[0]=-0.57;
354 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
356 if (configIndex==92){
357 hfecuts->SetMinNClustersTPC(112);
358 hfecuts->SetMinNClustersTPCPID(80);
359 hfecuts->SetMinNClustersITS(3);
360 task->SetNonHFEmassCut(0.090);
361 task->SetNonHFEangleCut(0.069);
362 task->SetAdditionalCuts(0.803, 91);
363 task->SetdPhidEtaCut(0.043, 0.031);
364 task->SetEoverPCut(0.805, 1.227);
365 Double_t params[0]=-1.29;
366 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
368 if (configIndex==93){
369 hfecuts->SetMinNClustersTPC(115);
370 hfecuts->SetMinNClustersTPCPID(82);
371 hfecuts->SetMinNClustersITS(3);
372 task->SetNonHFEmassCut(0.075);
373 task->SetNonHFEangleCut(0.113);
374 task->SetAdditionalCuts(0.637, 86);
375 task->SetdPhidEtaCut(0.043, 0.032);
376 task->SetEoverPCut(0.760, 1.204);
377 Double_t params[0]=-0.84;
378 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
380 if (configIndex==94){
381 hfecuts->SetMinNClustersTPC(81);
382 hfecuts->SetMinNClustersTPCPID(63);
383 hfecuts->SetMinNClustersITS(3);
384 task->SetNonHFEmassCut(0.105);
385 task->SetNonHFEangleCut(0.050);
386 task->SetAdditionalCuts(0.529, 87);
387 task->SetdPhidEtaCut(0.026, 0.047);
388 task->SetEoverPCut(0.789, 1.200);
389 Double_t params[0]=-1.15;
390 pid->ConfigureTPCdefaultCut(cutmodel,params,3.0);
394 ///_______________________________________________________________________________________________________________
396 printf("*************************************\n");
397 printf("Configuring standard Task:\n");
399 printf("*************************************\n");