]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/hfe/macros/configs/pPb/ConfigEMCalHFEpA.C
eb0c4b27c8146d3c7c17a7de6935d0005b26b178
[u/mrichter/AliRoot.git] / PWGHF / hfe / macros / configs / pPb / ConfigEMCalHFEpA.C
1 ///*******************************************************
2 ///Config Description
3
4 ///*******************************************************
5
6 AliAnalysisTaskEMCalHFEpA* ConfigEMCalHFEpA(
7                                                                                         
8                                                                                 
9
10 Bool_t isMC=kFALSE, 
11 Int_t triggerIndex=0, 
12 Int_t configIndex=0, 
13 Int_t centralityIndex=0, 
14 Bool_t isAOD = kFALSE,
15 Bool_t isEMCal = kFALSE,
16 Int_t EMCalThreshould = 0 //0 == EG1, 1 == EG2
17 )
18
19 {
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();
24         
25         //TPC Cuts
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
34         
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
42         
43         hfecuts->SetMinRatioTPCclusters(0.6);                                                               //Number of clusters (Found/Findable)
44         
45         //ITS
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); 
50         
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
56         
57         //Additional Cuts
58         hfecuts->SetPtRange(2, 1e6);                                                                                //Transversal momentum range in GeV/c
59         //hfecuts->SetMaxImpactParam(1,2);                                                                          //DCA to vertex
60         
61         //Event Selection
62         hfecuts->SetVertexRange(10.);                                                                                                   //
63         //hfecuts->SetProductionVertex(0,0.3,0,0.3);                                                                    //
64 ///_______________________________________________________________________________________________________________
65         // new cuts for event selection
66         
67         //hfecuts->SetUseCorrelationVertex();
68         //hfecuts->SetSPDVtxResolutionCut();
69         //hfecuts->SetpApileupCut();
70
71 ///_________________________________________________________________________________________________________________________
72 ///Task config
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);
79         
80         //to separate trigger threshold
81         if(EMCalThreshould==0 && triggerIndex==2) task->SetEMCalTriggerEG1();
82         if(EMCalThreshould==1 && triggerIndex==2) task->SetEMCalTriggerEG2();
83         
84         if(isEMCal) task->SetUseEMCal();
85         
86         
87         if(configIndex==100){
88                 task->SetUseShowerShapeCut(kTRUE);
89                 //task->SetM02Cut(0.0,0.3);
90                 task->SetM20Cut(0.0,0.3);
91         }
92         task->SetBackground(kTRUE);
93         
94         //nonHFE cuts
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);
102         
103         if(configIndex==26) task->SetNonHFEangleCut(0.1);
104         if(configIndex==27) task->SetNonHFEangleCut(0.15);
105         if(configIndex==28) task->SetNonHFEangleCut(0.05);
106         
107         //partner cuts
108         
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);
113         
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);
118          
119          task->SetAdditionalCuts(0.3,80);
120          
121         
122         //eta cuts
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);
136         
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);
142
143         //E/p Cuts
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);
152
153         
154         
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 ///_______________________________________________________________________________________________________________
162
163 ///_______________________________________________________________________________________________________________
164 ///Particle identification
165         AliHFEpid *pid = task->GetPID();
166
167 //______________________________________
168 //In the case of a simulation
169         if(isMC)
170         {
171           pid->SetHasMCData(kTRUE);
172           task->SetMCanalysis();
173         }
174 //______________________________________
175
176 //______________________________________________________
177 //Configure PID
178         //_________________________
179         //TPC PID
180         pid->AddDetector("TPC", 1);                             //Add TPC PID
181         
182         //_________________________
183         //Configure TPC cut
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"
187         
188         Double_t params[4];
189         char *cutmodel;
190         cutmodel = "pol0";
191         
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;
197         else params[0] = -1;
198         
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;
205         
206         pid->ConfigureTPCdefaultCut(cutmodel,params,max); 
207 //_______________________________________________________
208         
209 ///_______________________________________________________________________________________________________________
210 /// New configurations for random cuts -- March, 05, 2014 -- Values in the macro "Random_configurations.C"
211         
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);
223         }
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);
235         }
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);
247         }
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);
259         }
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);
271         }
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);
283         }
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);
295         }
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);
307         }
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);
319         }
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);
331         }
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);
343         }
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);
355         }
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);
367         }
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);
379         }
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);
391         }
392         
393         
394 ///_______________________________________________________________________________________________________________
395
396         printf("*************************************\n");
397         printf("Configuring standard Task:\n");
398         pid->PrintStatus();
399         printf("*************************************\n");
400
401         return task;
402 }