]>
Commit | Line | Data |
---|---|---|
420bd2ea | 1 | AliAnalysisTask *AddTaskHFEpPb(Bool_t MCthere = kFALSE, |
1af8f786 | 2 | Bool_t isAOD = kFALSE, |
3 | Bool_t kTPCTOF_Ref = kTRUE, | |
420bd2ea | 4 | Bool_t kTPC_Ref = kFALSE, |
1af8f786 | 5 | Bool_t kTPCTOF_Cent = kFALSE, |
6 | Bool_t kTPCTOF_Sys = kFALSE, | |
420bd2ea | 7 | Bool_t kTPCTOF_TPCPID = kFALSE, |
8 | Bool_t kITS_Sys = kFALSE, | |
9 | Bool_t kTPCTOFTRD_Ref = kFALSE, | |
10 | Bool_t kTPCTOFTRD_mbPID = kFALSE, | |
7a35b7aa | 11 | Bool_t kTPCTOFTRD_PID = kFALSE, |
1af8f786 | 12 | int TRDtrigger = 0 |
13 | ){ | |
14 | //get the current analysis manager | |
15 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
16 | if (!mgr) { | |
17 | Error("AddTaskHFEpPb", "No analysis manager found."); | |
18 | return 0; | |
19 | } | |
20 | ||
21 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
22 | ||
23 | //@@ 0 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
24 | ||
25 | // Default settings | |
420bd2ea | 26 | // 15.04.2013 The ITS cut changes now officially from 3 to 4 |
1af8f786 | 27 | const int kDefITScl = 4; |
28 | const int kDefTPCcl = 110; | |
29 | const int kDefTPCclPID = 80; | |
30 | const double kDefDCAr = 1.; | |
31 | const double kDefDCAz = 2.; | |
420bd2ea | 32 | |
1af8f786 | 33 | // 24.02.2013 After the latest fits, mean is 0 and sigma is 1 |
420bd2ea | 34 | const double kDefTPCs = 0.0; |
35 | const double kDefTPCu = 3.0; | |
36 | const double kDefTOFs = 3.0; | |
1af8f786 | 37 | if(!kTPCTOFTRD_Ref) TRDtrigger = 0; |
1af8f786 | 38 | |
8dc7fa14 | 39 | // NEW SPLINES + CORRECTIONS: mean 0, width 1 |
40 | // mean is actually 0.06 (abs(eta)<0.6) | |
41 | Double_t dEdxhm[12] = {3.06,3.06,3.06,3.06,3.06,3.06,3.06,3.06,3.06,3.06,3.06,3.06}; // Above 3 sigma we neglect 0.13% | |
42 | ||
43 | Double_t tpcl0[12] = {-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94,-0.94}; // 84% | |
44 | Double_t tpcl1[12] = {-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44,-0.44}; // 69% | |
45 | Double_t tpcl2[12] = {0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06,0.06}; // 50% | |
46 | ||
47 | Double_t tpcl3[12] = {-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69,-0.69}; // 77.2% | |
48 | Double_t tpcl4[12] = {-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19,-0.19}; // 59.7% | |
49 | Double_t tpcl5[12] = {0.186,0.186,0.186,0.186,0.186,0.186,0.186,0.186,0.186,0.186,0.186,0.186}; // 45% | |
50 | Double_t tpcl6[12] = {0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31,0.31}; // 40% | |
51 | Double_t tpcl7[12] = {0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56,0.56}; // 30.7% | |
52 | ||
1af8f786 | 53 | // For TPC only |
54 | const double kDefTPCs1 = 0.0; | |
55 | const double kDefTPCu1 = 3.0; | |
d44e3c84 | 56 | |
57 | // eta cut | |
58 | Int_t etacut=0; // eta cut off | |
420bd2ea | 59 | |
60 | // 24.02.2013 From now on, use task with centrality by default and keep one without for cross check | |
61 | // 15.04.2013 We do not need the minimum bias task any more, take out by default | |
62 | ||
63 | if(kTPC_Ref){ | |
64 | // Reference, 69% TPC PID, with centrality V0A | |
65 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],0,0,AliHFEextraCuts::kBoth,1); | |
1af8f786 | 66 | } |
67 | ||
8dc7fa14 | 68 | //------------------------------// |
69 | // TPC-TOF analysis | |
70 | //------------------------------// | |
1af8f786 | 71 | |
72 | if(kTPCTOF_Ref){ | |
420bd2ea | 73 | // Reference task, 69% TPC PID, with centrality V0A |
74 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
75 | } | |
76 | ||
77 | if (kTPCTOF_TPCPID){ | |
78 | // TPC PID | |
79 | if (!MCthere){ | |
80 | //TPC only | |
81 | //RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl2[0],&dEdxhm[0],0,0,AliHFEextraCuts::kBoth,1); | |
82 | //RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl0[0],&dEdxhm[0],0,0,AliHFEextraCuts::kBoth,1); | |
83 | ||
84 | //TPC-TOF | |
85 | //RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
86 | //RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl2[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
87 | // new pT bins | |
88 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl0[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
89 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl2[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
90 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl3[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
91 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl4[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
92 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl5[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
93 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl6[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
94 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl7[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
95 | } | |
96 | } | |
97 | ||
98 | if (kITS_Sys){ | |
99 | // ITS hits and SPD request | |
100 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,3,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
101 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,5,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
102 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,3,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kFirst,1); | |
103 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,4,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kFirst,1); | |
104 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,5,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kFirst,1); | |
1af8f786 | 105 | } |
106 | ||
107 | if (kTPCTOF_Cent){ | |
8dc7fa14 | 108 | // For the moment we set V0A as the reference centrality estimator, and test the other ones: |
109 | // 1: V0A, 2: V0M, 3: CL1, 4: ZNA | |
420bd2ea | 110 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,2); // V0M |
111 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,3); // CL1 | |
112 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,4); // ZNA | |
1af8f786 | 113 | } |
114 | ||
115 | if(kTPCTOF_Sys){ | |
8dc7fa14 | 116 | // TOF PID |
420bd2ea | 117 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],2.0,0,AliHFEextraCuts::kBoth,1); |
118 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],2.5,0,AliHFEextraCuts::kBoth,1); | |
119 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],3.5,0,AliHFEextraCuts::kBoth,1); | |
120 | RegisterTask(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],4.0,0,AliHFEextraCuts::kBoth,1); | |
8dc7fa14 | 121 | |
122 | // TPC clusters | |
420bd2ea | 123 | RegisterTask(MCthere,isAOD,80,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); |
124 | RegisterTask(MCthere,isAOD,90,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
125 | RegisterTask(MCthere,isAOD,100,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
126 | RegisterTask(MCthere,isAOD,120,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
127 | RegisterTask(MCthere,isAOD,130,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
128 | RegisterTask(MCthere,isAOD,140,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
129 | ||
8dc7fa14 | 130 | // TPC clusters PID |
420bd2ea | 131 | RegisterTask(MCthere,isAOD,kDefTPCcl,60,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); |
132 | RegisterTask(MCthere,isAOD,kDefTPCcl,90,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
133 | RegisterTask(MCthere,isAOD,kDefTPCcl,100,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
134 | RegisterTask(MCthere,isAOD,kDefTPCcl,110,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],kDefTOFs,0,AliHFEextraCuts::kBoth,1); | |
8dc7fa14 | 135 | } |
420bd2ea | 136 | |
137 | //------------------------------// | |
138 | // TPC-TOF-TRD analysis | |
139 | //------------------------------// | |
8dc7fa14 | 140 | |
420bd2ea | 141 | if(kTPCTOFTRD_Ref){ |
142 | RegisterTaskPID2(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,kDefTPCs,kDefTPCu,kDefTOFs,0,AliHFEextraCuts::kBoth,kFALSE,TRDtrigger); | |
143 | RegisterTaskPID2(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,kDefTPCs,kDefTPCu,0,0,AliHFEextraCuts::kBoth,kFALSE,TRDtrigger); | |
144 | } | |
d44e3c84 | 145 | |
7a35b7aa | 146 | if(kTPCTOFTRD_mbPID){ |
420bd2ea | 147 | // without TOF |
148 | RegisterTaskPID2mbTRD(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,kDefTPCs,kDefTPCu,0,0,AliHFEextraCuts::kBoth,kFALSE,0,6,4,"TRD,TPC",etacut); | |
149 | RegisterTaskPID2mbTRD(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,kDefTPCs,kDefTPCu,0,0,AliHFEextraCuts::kBoth,kFALSE,0,6,4,"TPC,TRD",etacut); | |
150 | RegisterTaskPID2mbTRD(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,kDefTPCs,kDefTPCu,0,0,AliHFEextraCuts::kBoth,kFALSE,0,6,2,"TRD,TPC",etacut); | |
151 | RegisterTaskPID2mbTRD(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,kDefTPCs,kDefTPCu,0,0,AliHFEextraCuts::kBoth,kFALSE,0,5,4,"TRD,TPC",etacut); | |
152 | RegisterTaskPID2mbTRD(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,kDefTPCs,kDefTPCu,0,0,AliHFEextraCuts::kBoth,kFALSE,0,5,4,"TPC,TRD",etacut); | |
153 | RegisterTaskPID2mbTRD(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,kDefTPCs,kDefTPCu,0,0,AliHFEextraCuts::kBoth,kFALSE,0,5,2,"TRD,TPC",etacut); | |
d44e3c84 | 154 | } |
155 | ||
7a35b7aa | 156 | if(kTPCTOFTRD_PID){ |
420bd2ea | 157 | // without TOF |
158 | RegisterTaskPID2TRD(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],0,0,AliHFEextraCuts::kBoth,1,0,5,4,"TRD,TPC"); | |
159 | RegisterTaskPID2TRD(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],0,0,AliHFEextraCuts::kBoth,1,0,5,4,"TPC,TRD"); | |
160 | RegisterTaskPID2TRD(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],0,0,AliHFEextraCuts::kBoth,1,0,6,4,"TRD,TPC"); | |
161 | RegisterTaskPID2TRD(MCthere,isAOD,kDefTPCcl,kDefTPCclPID,kDefITScl,kDefDCAr,kDefDCAz,&tpcl1[0],&dEdxhm[0],0,0,AliHFEextraCuts::kBoth,1,0,6,4,"TPC,TRD"); | |
162 | } | |
7a35b7aa | 163 | |
8dc7fa14 | 164 | return NULL; |
165 | } | |
166 | ||
167 | ||
168 | //=============================================================================== | |
169 | ||
170 | AliAnalysisTask *RegisterTask(Bool_t useMC, Bool_t isAOD, Int_t tpcCls=120, Int_t tpcClsPID = 80, | |
420bd2ea | 171 | Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0, |
172 | Double_t *tpcdEdxcutlow=NULL, | |
173 | Double_t *tpcdEdxcuthigh=NULL, | |
174 | //Double_t tpcs=-0.0113, Double_t tpcu=3.09, | |
175 | Double_t tofs=3., Int_t tofm=0, | |
176 | Int_t itshitpixel = AliHFEextraCuts::kBoth, Int_t icent=1){ | |
8dc7fa14 | 177 | |
178 | Int_t idcaxy = (Int_t)(dcaxy*10.); | |
179 | Int_t idcaz = (Int_t)(dcaz*10.); | |
180 | Int_t tpclow = 0; | |
181 | if(tpcdEdxcutlow) tpclow = (Int_t) (tpcdEdxcutlow[0]*1000.); | |
182 | Int_t itofs = (Int_t)(tofs*10.); | |
183 | Int_t ipixelany = itshitpixel; | |
8dc7fa14 | 184 | |
185 | printf("Argument passed to function to determine the centrality estimator %i\n", icent); | |
186 | ||
187 | if (icent == 2) TString cesti("V0M"); | |
188 | else if (icent == 3) TString cesti("CL1"); | |
189 | else if (icent == 4) TString cesti("ZNA"); | |
190 | else TString cesti("V0A"); | |
191 | ||
0b7c6a7b | 192 | TString appendix(TString::Format("centTPCc%dTPCp%dITS%dDCAr%dz%dTPCs%dTOFs%dm%ipa%dce%s",tpcCls, |
8dc7fa14 | 193 | tpcClsPID,itsCls,idcaxy,idcaz,tpclow,itofs,tofm,ipixelany,cesti.Data())); |
194 | printf("Add macro appendix %s\n", appendix.Data()); | |
420bd2ea | 195 | printf("Centrality estimator %s\n", cesti.Data()); |
8dc7fa14 | 196 | |
197 | gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/pPb/ConfigHFEpPb.C"); | |
198 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
199 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
200 | AliAnalysisTaskHFE *task = ConfigHFEpPb(useMC, isAOD, appendix, tpcCls, tpcClsPID, itsCls, dcaxy, dcaz, | |
201 | tpcdEdxcutlow,tpcdEdxcuthigh, | |
202 | tofs,tofm,itshitpixel,icent); | |
203 | ||
204 | if(isAOD) | |
205 | task->SetAODAnalysis(); | |
206 | else | |
207 | task->SetESDAnalysis(); | |
208 | if (useMC) | |
209 | task->SetHasMCData(kTRUE); | |
210 | else{ | |
211 | task->SetHasMCData(kFALSE); | |
212 | } | |
213 | task->SelectCollisionCandidates(AliVEvent::kINT7); | |
214 | ||
215 | TString containerName = mgr->GetCommonFileName(); | |
216 | containerName += ":HFEtask"; | |
217 | containerName += appendix.Data(); | |
218 | printf("container name: %s\n", containerName.Data()); | |
219 | ||
220 | //create data containers | |
221 | task->ConnectOutput(1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), | |
222 | TList::Class(), AliAnalysisManager::kOutputContainer, | |
223 | containerName.Data())); | |
224 | task->ConnectOutput(2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(), | |
225 | AliAnalysisManager::kOutputContainer, | |
226 | containerName.Data())); | |
227 | mgr->ConnectInput(task, 0, cinput ); | |
228 | ||
229 | mgr->AddTask(task); | |
230 | return NULL; | |
231 | } | |
232 | ||
233 | //=============================================================================== | |
234 | ||
235 | AliAnalysisTask *RegisterTaskPID2(Bool_t useMC, Bool_t isAOD, Int_t tpcCls=120, Int_t tpcClsPID = 80, | |
420bd2ea | 236 | Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0, |
237 | Double_t tpcs=-0.0113, Double_t tpcu=3.09, | |
238 | Double_t tofs=3., Int_t tofm=0, | |
239 | Int_t itshitpixel = AliHFEextraCuts::kBoth, | |
240 | Bool_t withetacorrection = kTRUE, | |
241 | Int_t TRDtrigger=0){ | |
242 | ||
8dc7fa14 | 243 | gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/pPb/ConfigHFEmbpPb.C"); |
244 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
245 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
420bd2ea | 246 | AliAnalysisTaskHFE *task = ConfigHFEmbpPb(useMC, isAOD, tpcCls, tpcClsPID, itsCls, dcaxy, dcaz, |
8dc7fa14 | 247 | tpcs,tpcu,tofs,tofm,3.,kFALSE,kTRUE,kFALSE,itshitpixel,withetacorrection,0,TRDtrigger); |
420bd2ea | 248 | |
8dc7fa14 | 249 | if(isAOD) |
250 | task->SetAODAnalysis(); | |
251 | else | |
252 | task->SetESDAnalysis(); | |
420bd2ea | 253 | |
8dc7fa14 | 254 | if (useMC) |
255 | task->SetHasMCData(kTRUE); | |
256 | else{ | |
257 | task->SetHasMCData(kFALSE); | |
258 | } | |
259 | ||
260 | if(TRDtrigger==0) task->SelectCollisionCandidates(AliVEvent::kINT7); | |
261 | else task->SelectCollisionCandidates(AliVEvent::kTRD); | |
420bd2ea | 262 | |
8dc7fa14 | 263 | Int_t idcaxy = (Int_t)(dcaxy*10.); |
264 | Int_t idcaz = (Int_t)(dcaz*10.); | |
265 | Int_t itpcs = (Int_t)(tpcs*1000.); | |
266 | Int_t itofs = (Int_t)(tofs*10.); | |
267 | Int_t ipixelany = itshitpixel; | |
268 | Int_t ietacorr = 0; | |
269 | if(withetacorrection) ietacorr = 1; | |
270 | ||
271 | TString appendix(TString::Format("mbTPCc%dTPCp%dITS%dDCAr%dz%dTPCs%dTOFs%dm%ipa%dtrdtrg%d",tpcCls, | |
272 | tpcClsPID,itsCls,idcaxy,idcaz,itpcs,itofs,tofm,ipixelany,TRDtrigger)); | |
273 | printf("Add macro appendix %s\n", appendix.Data()); | |
274 | ||
275 | TString containerName = mgr->GetCommonFileName(); | |
276 | containerName += ":HFEtask"; | |
277 | containerName += appendix.Data(); | |
278 | printf("container name: %s\n", containerName.Data()); | |
279 | ||
280 | //create data containers | |
281 | task->ConnectOutput(1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), | |
282 | TList::Class(), AliAnalysisManager::kOutputContainer, | |
283 | containerName.Data())); | |
284 | task->ConnectOutput(2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(), | |
285 | AliAnalysisManager::kOutputContainer, | |
286 | containerName.Data())); | |
287 | mgr->ConnectInput(task, 0, cinput ); | |
288 | ||
289 | mgr->AddTask(task); | |
290 | return NULL; | |
291 | } | |
292 | ||
420bd2ea | 293 | //=============================================================================== |
294 | // TRD PID | |
295 | //=============================================================================== | |
d44e3c84 | 296 | |
7a35b7aa | 297 | AliAnalysisTask *RegisterTaskPID2mbTRD(Bool_t useMC, Bool_t isAOD, Int_t tpcCls=120, Int_t tpcClsPID = 80, |
420bd2ea | 298 | Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0, |
299 | Double_t tpcs=-0.0113, Double_t tpcu=3.09, | |
300 | Double_t tofs=3., Int_t tofm=0, | |
301 | Int_t itshitpixel = AliHFEextraCuts::kBoth, | |
302 | Bool_t withetacorrection = kTRUE, | |
303 | Int_t TRDtrigger=0,Int_t trdl=6, Int_t trde=4,TString detector="TRD,TPC",Int_t etacut=0){ | |
304 | ||
305 | TString detused=detector.Copy(); | |
306 | TPRegexp(",").Substitute(detused,"","g"); | |
307 | printf("detectors in use %s %s \n",detector.Data(),detused.Data()); | |
308 | ||
309 | Int_t idcaxy = (Int_t)(dcaxy*10.); | |
1af8f786 | 310 | Int_t idcaz = (Int_t)(dcaz*10.); |
311 | Int_t itpcs = (Int_t)(tpcs*1000.); | |
312 | Int_t itofs = (Int_t)(tofs*10.); | |
313 | Int_t ipixelany = itshitpixel; | |
314 | Int_t ietacorr = 0; | |
315 | if(withetacorrection) ietacorr = 1; | |
420bd2ea | 316 | |
1af8f786 | 317 | TString appendix(TString::Format("mbTPCc%dTPCp%dITS%dDCAr%dz%dTPCs%dTOFs%dm%ipa%dtrdtrg%dtrdl%itrde%iPID%setacut%i",tpcCls, |
318 | tpcClsPID,itsCls,idcaxy,idcaz,itpcs,itofs,tofm,ipixelany,TRDtrigger,trdl,trde,detused.Data(),etacut)); | |
319 | printf("Add macro appendix %s\n", appendix.Data()); | |
320 | ||
1af8f786 | 321 | gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/pPb/ConfigHFEmbpPbTRD.C"); |
d44e3c84 | 322 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); |
323 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
1af8f786 | 324 | AliAnalysisTaskHFE *task = ConfigHFEmbpPbTRD(useMC, isAOD, appendix, tpcCls, tpcClsPID, itsCls, dcaxy, dcaz, |
420bd2ea | 325 | tpcs,tpcu,tofs,tofm,3.,kFALSE,kTRUE,kFALSE,itshitpixel,withetacorrection,0,TRDtrigger,trdl,trde,detector,etacut); |
d44e3c84 | 326 | |
327 | if(isAOD) | |
328 | task->SetAODAnalysis(); | |
329 | else | |
330 | task->SetESDAnalysis(); | |
331 | ||
1af8f786 | 332 | if(useMC) |
d44e3c84 | 333 | task->SetHasMCData(kTRUE); |
334 | else{ | |
335 | task->SetHasMCData(kFALSE); | |
336 | } | |
337 | ||
338 | if(TRDtrigger==0) task->SelectCollisionCandidates(AliVEvent::kINT7); | |
339 | else task->SelectCollisionCandidates(AliVEvent::kTRD); | |
340 | ||
1af8f786 | 341 | TString containerName = mgr->GetCommonFileName(); |
342 | containerName += ":HFEtask"; | |
343 | containerName += appendix.Data(); | |
344 | printf("container name: %s\n", containerName.Data()); | |
d44e3c84 | 345 | |
346 | //create data containers | |
347 | task->ConnectOutput(1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), | |
348 | TList::Class(), AliAnalysisManager::kOutputContainer, | |
1af8f786 | 349 | containerName.Data())); |
d44e3c84 | 350 | task->ConnectOutput(2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(), |
351 | AliAnalysisManager::kOutputContainer, | |
1af8f786 | 352 | containerName.Data())); |
d44e3c84 | 353 | mgr->ConnectInput(task, 0, cinput ); |
354 | ||
355 | mgr->AddTask(task); | |
1af8f786 | 356 | |
d44e3c84 | 357 | return NULL; |
1af8f786 | 358 | } |
7a35b7aa | 359 | |
360 | //========================================================================= | |
361 | AliAnalysisTask *RegisterTaskPID2TRD(Bool_t useMC, Bool_t isAOD, Int_t tpcCls=120, Int_t tpcClsPID = 80, | |
362 | Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0, | |
363 | Double_t *tpcdEdxcutlow=NULL, | |
364 | Double_t *tpcdEdxcuthigh=NULL, | |
365 | Double_t tofs=3., Int_t tofm=0, | |
366 | Int_t itshitpixel = AliHFEextraCuts::kBoth, Int_t icent=1, | |
367 | Int_t TRDtrigger=0,Int_t trdl=6, Int_t trde=4,TString detector){ | |
368 | ||
420bd2ea | 369 | gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/pPb/ConfigHFEpPbTRD.C"); |
370 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
371 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
372 | ||
373 | TString detused=detector.Copy(); | |
374 | TPRegexp(",").Substitute(detused,"","g"); | |
375 | printf("detectors in use %s %s \n",detector.Data(),detused.Data()); | |
376 | ||
377 | if (icent == 2) TString cesti("V0M"); | |
378 | else if (icent == 3) TString cesti("CL1"); | |
379 | else if (icent == 4) TString cesti("ZNA"); | |
380 | else TString cesti("V0A"); | |
381 | ||
382 | Int_t idcaxy = (Int_t)(dcaxy*10.); | |
383 | Int_t idcaz = (Int_t)(dcaz*10.); | |
384 | Int_t tpclow = 0; | |
385 | if(tpcdEdxcutlow) tpclow = (Int_t) (tpcdEdxcutlow[0]*1000.); | |
386 | Int_t itofs = (Int_t)(tofs*10.); | |
387 | Int_t ipixelany = itshitpixel; | |
388 | ||
389 | TString appendix(TString::Format("mbTPCc%dTPCp%dITS%dDCAr%dz%dTPCs%dTOFs%dm%ipa%dtrdtrg%dtrdl%itrde%iPID%scent%s",tpcCls, | |
390 | tpcClsPID,itsCls,idcaxy,idcaz,tpclow,itofs,tofm,ipixelany,TRDtrigger,trdl,trde,detused.Data(),cesti.Data())); | |
391 | printf("Add macro appendix %s\n", appendix.Data()); | |
392 | ||
393 | AliAnalysisTaskHFE *task = ConfigHFEpPbTRD(useMC, isAOD, appendix, tpcCls, tpcClsPID, itsCls, dcaxy, dcaz, | |
394 | tpcdEdxcutlow,tpcdEdxcuthigh, tofs, tofm, itshitpixel, icent, -0.8, 0.8, TRDtrigger,trdl,trde,detector); | |
395 | ||
7a35b7aa | 396 | if(isAOD) |
397 | task->SetAODAnalysis(); | |
398 | else | |
399 | task->SetESDAnalysis(); | |
400 | ||
401 | if (useMC) | |
402 | task->SetHasMCData(kTRUE); | |
403 | else{ | |
404 | task->SetHasMCData(kFALSE); | |
405 | } | |
406 | ||
407 | if(TRDtrigger<2) task->SelectCollisionCandidates(AliVEvent::kINT7); | |
408 | else task->SelectCollisionCandidates(AliVEvent::kTRD); | |
409 | ||
420bd2ea | 410 | TString containerName = mgr->GetCommonFileName(); |
411 | containerName += ":HFEtask"; | |
412 | containerName += appendix.Data(); | |
413 | printf("container name: %s\n", containerName.Data()); | |
414 | ||
7a35b7aa | 415 | //create data containers |
416 | task->ConnectOutput(1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), | |
417 | TList::Class(), AliAnalysisManager::kOutputContainer, | |
418 | containerName.Data())); | |
419 | task->ConnectOutput(2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(), | |
420 | AliAnalysisManager::kOutputContainer, | |
421 | containerName.Data())); | |
422 | mgr->ConnectInput(task, 0, cinput ); | |
423 | ||
424 | mgr->AddTask(task); | |
425 | return NULL; | |
426 | } |