]>
Commit | Line | Data |
---|---|---|
c683985a | 1 | AliAnalysisTask *AddTaskHFEnpePbPb(Bool_t MCthere, |
2 | Bool_t isAOD, | |
465ff082 | 3 | Bool_t kNPERef = kTRUE, |
4 | Bool_t kNPEkAny = kFALSE, | |
5 | Bool_t kNPERefTPConly = kFALSE, | |
6 | Bool_t kNPETOFITS = kFALSE, | |
7 | Bool_t kNPETOFlast = kFALSE, | |
8 | Bool_t kNPEw = kFALSE, | |
9 | Bool_t kNPEkf = kFALSE) | |
10 | ||
c683985a | 11 | { |
12 | // Default settings (TOF-TPC PbPb) | |
13 | const int kDefTPCcl = 130; | |
14 | const int kDefTPCclPID = 80; | |
15 | const int kDefTPCclshared = 1.1; | |
16 | const int kDefITScl = 4; | |
17 | const int kDefITSchi2percluster = -1; // cleanup removes badly matching tracks - effects high pt (cut value = 36) | |
18 | const double kDefDCAr = 1.; | |
19 | const double kDefDCAz = 2.; | |
20 | const double kDefTOFs = 3.; | |
21 | const double kDefEtaIncMin = -0.8; | |
22 | const double kDefEtaIncMax = 0.8; | |
23 | const Bool_t etacorrection = kFALSE; | |
24 | const Bool_t multicorrection = kTRUE; | |
25 | ||
26 | Double_t dEdxhm[12] = {3.11,3.11,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0,3.0}; | |
27 | Double_t tpcl1[12] = {-0.14,-0.14,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3}; | |
28 | ||
29 | // Default setting for the associated electron for the NonPhotonic Analysis | |
30 | const double kassETAm = -0.8; | |
31 | const double kassETAp = 0.8; | |
32 | const int kassITS = 2; | |
33 | const int kassTPCcl = 60; | |
34 | const int kassTPCPIDcl = 60; | |
35 | const double kassDCAr = 1.0; | |
36 | const double kassDCAz = 2.0; | |
37 | const double kassTPCSminus = -3.0; | |
38 | const double kassTPCSplus = 3.0; | |
39 | ||
465ff082 | 40 | Int_t kWei = -1; |
41 | /* | |
42 | if (MCthere) kWei = 9; // default Pb-Pb | |
43 | enum { | |
44 | ||
45 | k11a10abisweiData = 6, // LHC11a10abis weights | |
46 | k11a10bplusweiData = 7, // LHC11a10b_plus weights | |
47 | k11a10bpluswei11a10abis = 8, // LHC11a10b_plus weights for LHC11a10abis | |
48 | k11a10bbisweiData = 9, // LHC11a10bbis weights | |
49 | }; | |
50 | */ | |
51 | ||
c683985a | 52 | //get the current analysis manager |
53 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); | |
54 | if (!mgr) { | |
55 | Error("AddTask_hfe_HFE", "No analysis manager found."); | |
56 | return 0; | |
57 | } | |
58 | ||
59 | //mgr->AddClassDebug("AliAnalysisTaskHFE",12); | |
60 | ||
61 | ||
62 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
63 | ||
64 | //@@ 0 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ | |
65 | ||
66 | Double_t dEdxaclm[12], dEdxachm[12]; | |
67 | for(int icent = 0; icent < 12; icent++){ | |
68 | dEdxaclm[icent] = kassTPCSminus; | |
69 | dEdxachm[icent] = kassTPCSplus; | |
70 | } | |
71 | ||
465ff082 | 72 | |
73 | const Bool_t isBeauty = kFALSE; // should be false to prevent inclusive analysis | |
74 | ||
c683985a | 75 | if(kNPERef){ |
76 | // ************************************************************** | |
77 | // | |
78 | // Reference task | |
79 | // | |
80 | // ************************************************************** | |
465ff082 | 81 | RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs,0., AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax, |
82 | kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1); | |
83 | } | |
84 | ||
85 | if(kNPETOFlast){ | |
86 | // ************************************************************** | |
87 | // | |
88 | // Apply TOF after TPC for mismatch background studies | |
89 | // | |
90 | // ************************************************************** | |
91 | RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs,0., AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kTRUE, kDefEtaIncMin, kDefEtaIncMax, | |
92 | kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1); | |
c683985a | 93 | } |
94 | ||
95 | if(kNPEkAny){ | |
96 | // ************************************************************** | |
97 | // | |
98 | // task for kAny instead of kBoth | |
99 | // | |
100 | // ************************************************************** | |
465ff082 | 101 | RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs,0., AliHFEextraCuts::kAny, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax, |
102 | kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1); | |
c683985a | 103 | } |
465ff082 | 104 | |
105 | if(kNPEw && MCthere){ | |
c683985a | 106 | // ************************************************************** |
107 | // | |
465ff082 | 108 | // Reference task |
c683985a | 109 | // |
110 | // ************************************************************** | |
465ff082 | 111 | RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs,0., AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax, |
112 | kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE, 0,kWei); | |
c683985a | 113 | } |
114 | ||
115 | if(kNPERefTPConly){ | |
116 | // ************************************************************** | |
117 | // | |
118 | // Reference task | |
119 | // | |
120 | // ************************************************************** | |
465ff082 | 121 | RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, 0.,0., AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax, |
122 | kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1); | |
123 | } | |
124 | ||
125 | ||
126 | if(kNPETOFITS){ | |
127 | // ************************************************************** | |
128 | // | |
129 | // Reference task | |
130 | // | |
131 | // ************************************************************** | |
132 | RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs, kDefITSs, AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax, | |
133 | kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1); | |
134 | } | |
135 | ||
136 | ||
137 | if(kNPEkf){ | |
138 | // ************************************************************** | |
139 | // | |
140 | // Use KF particle | |
141 | // | |
142 | // ************************************************************** | |
143 | RegisterTaskNPEPbPb( MCthere, isAOD, isBeauty, kDefTPCcl, kDefTPCclPID, kDefITScl, kDefDCAr, kDefDCAz, tpcl1, dEdxhm, kDefTOFs,0., AliHFEextraCuts::kBoth, kDefITSchi2percluster, kDefTPCclshared, etacorrection, multicorrection, kFALSE, kDefEtaIncMin, kDefEtaIncMax, | |
144 | kassETAm, kassETAp, kassITS, kassTPCcl, kassTPCPIDcl, kassDCAr, kassDCAz, dEdxaclm, dEdxachm, kTRUE, kFALSE,-1,2,kFALSE,kFALSE,kFALSE,kTRUE); | |
c683985a | 145 | } |
146 | ||
465ff082 | 147 | |
c683985a | 148 | return NULL; |
465ff082 | 149 | |
c683985a | 150 | } |
151 | ||
152 | //=============================================================================== | |
465ff082 | 153 | |
154 | //=============================================================================== | |
155 | AliAnalysisTask *RegisterTaskNPEPbPb(Bool_t useMC, Bool_t isAOD, Bool_t beauty, | |
156 | Int_t tpcCls=120, Int_t tpcClsPID=80, | |
157 | Int_t itsCls=4, Double_t dcaxy=1.0, Double_t dcaz=2.0, | |
158 | Double_t *tpcdEdxcutlow=NULL, Double_t *tpcdEdxcuthigh=NULL, | |
159 | Double_t tofs=3., Double_t itss=0., Int_t itshitpixel =AliHFEextraCuts::kBoth, | |
160 | Double_t itschi2percluster = -1, Double_t tpcsharedcluster = 1.1, | |
161 | Bool_t etacorr=kFALSE, Bool_t multicorr = kFALSE, Bool_t toflast = kFALSE, | |
162 | Double_t etaIncMin = -0.8, Double_t etaIncMax = 0.8, | |
163 | Double_t assETAm=-0.8, Double_t assETAp=0.8, Int_t assITS=2, Int_t assTPCcl=100, | |
164 | Int_t assTPCPIDcl=80, Double_t assDCAr=1.0, Double_t assDCAz=2.0, | |
165 | Double_t *assTPCSminus = NULL, Double_t *assTPCSplus=NULL, | |
166 | Bool_t useCat1Tracks = kTRUE, Bool_t useCat2Tracks = kTRUE, | |
167 | Int_t weightlevelback = -1,Int_t wei = 2, | |
168 | Bool_t releasemcvx = kFALSE, | |
169 | Bool_t ipCharge = kFALSE, | |
170 | Bool_t ipOpp = kFALSE, | |
171 | Bool_t usekfparticle = kFALSE) | |
c683985a | 172 | { |
173 | ||
174 | // | |
175 | // Cuts on the inclusive leg | |
176 | // | |
177 | Int_t idcaxy = (Int_t)(dcaxy*10.); | |
178 | Int_t idcaz = (Int_t)(dcaz*10.); | |
179 | Int_t tpclow = 0; | |
180 | if(tpcdEdxcutlow) tpclow = (Int_t) (tpcdEdxcutlow[0]*1000.); | |
181 | Int_t itofs = (Int_t)(tofs*10.); | |
465ff082 | 182 | Int_t iitss = (Int_t)(itss*10.); |
c683985a | 183 | Int_t ipixelany = itshitpixel; |
184 | Int_t imult = multicorr ? 1 : 0; | |
465ff082 | 185 | Int_t itofpos = toflast ? 1 : 0; |
c683985a | 186 | |
187 | // | |
188 | // Cuts on the associated leg | |
189 | // | |
190 | Int_t iassDCAr = (Int_t)(assDCAr*10); | |
191 | Int_t iassDCAz = (Int_t)(assDCAz*10); | |
192 | Int_t iassTPCSplus = assTPCSplus ? (Int_t)(assTPCSplus[0]*1000) : 0; | |
193 | Int_t icat1 = useCat1Tracks ? 1 : 0; | |
194 | Int_t icat2 = useCat2Tracks ? 1 : 0; | |
465ff082 | 195 | |
196 | Bool_t nondefaultcentr = kFALSE; | |
c683985a | 197 | |
465ff082 | 198 | TString cweightsback(""); |
199 | if(weightlevelback>=0) { | |
200 | cweightsback += "Wa"; | |
201 | cweightsback += weightlevelback; | |
202 | } | |
c683985a | 203 | |
465ff082 | 204 | TString cmvx(""); |
205 | if(releasemcvx) { | |
206 | cmvx += "MCVR"; | |
207 | } | |
c683985a | 208 | |
465ff082 | 209 | TString kfp(""); |
210 | if(usekfparticle) { | |
211 | kfp += "kf"; | |
212 | } | |
213 | ||
214 | if(beauty) { | |
215 | if(ipCharge && ipOpp) TString cbeauty("BeautyIPopp"); | |
216 | else if(ipCharge) TString cbeauty("BeautyIPcrg"); | |
217 | else if(!ipCharge) TString cbeauty("Beauty"); | |
218 | else TString cbeauty("BeautyWrong"); | |
219 | } | |
220 | else TString cbeauty(""); | |
221 | ||
222 | TString appendix(TString::Format("SPD%d_incTPCc%dTPCp%dITS%dDCAr%dz%dTPCs%dTOFs%dITSs%dm%dt%d_photTPCc%dTPCp%dITS%dDCAr%dDCAz%dTPCs%d%s%s%s%s",ipixelany,tpcCls,tpcClsPID,itsCls,idcaxy,idcaz,tpclow,itofs,iitss,imult,itofpos,assTPCcl,assTPCPIDcl,assITS,iassDCAr,iassDCAz,iassTPCSplus,cweightsback.Data(),cmvx.Data(),cbeauty.Data(),kfp.Data())); | |
223 | ||
224 | printf("Add macro appendix %s\n", appendix.Data()); | |
225 | ||
52a564ee | 226 | if(useMC&&!gROOT->GetListOfGlobalFunctions()->FindObject("ConfigWeightFactors")) gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigWeightFactors.C"); |
227 | if(!gROOT->GetListOfGlobalFunctions()->FindObject("ConfigHFEnpePbPb"))gROOT->LoadMacro("$ALICE_ROOT/PWGHF/hfe/macros/configs/PbPb/ConfigHFEnpePbPb.C"); | |
465ff082 | 228 | |
c683985a | 229 | AliAnalysisManager *mgr = AliAnalysisManager::GetAnalysisManager(); |
230 | AliAnalysisDataContainer *cinput = mgr->GetCommonInputContainer(); | |
465ff082 | 231 | AliAnalysisTaskHFE *task = ConfigHFEnpePbPb(useMC, isAOD, appendix, tpcCls, tpcClsPID, itsCls, dcaxy, dcaz, tpcdEdxcutlow, tpcdEdxcuthigh, tofs, 0, itss, itshitpixel, itschi2percluster, tpcsharedcluster, etacorr, multicorr, toflast, etaIncMin, etaIncMax, |
232 | assETAm, assETAp, assITS, assTPCcl, assTPCPIDcl, | |
233 | assDCAr, assDCAz, assTPCSminus, assTPCSplus, | |
234 | useCat1Tracks, useCat2Tracks, weightlevelback,usekfparticle); | |
c683985a | 235 | if(isAOD) |
236 | task->SetAODAnalysis(); | |
237 | else | |
238 | task->SetESDAnalysis(); | |
465ff082 | 239 | |
c683985a | 240 | if (useMC) task->SetHasMCData(kTRUE); |
241 | else task->SetHasMCData(kFALSE); | |
242 | ||
465ff082 | 243 | if(useMC&&(beauty || (weightlevelback>=0))) ConfigWeightFactors(task,kFALSE,wei);//2;For default PbPb |
c683985a | 244 | task->SelectCollisionCandidates(AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral); |
245 | ||
c683985a | 246 | //create data containers |
465ff082 | 247 | task->ConnectOutput(1, mgr->CreateContainer(Form("HFE_Results_%s", appendix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, Form("HFE%s.root", appendix.Data()))); |
248 | task->ConnectOutput(2, mgr->CreateContainer(Form("HFE_QA_%s", appendix.Data()), TList::Class(), AliAnalysisManager::kOutputContainer, Form("HFE%s.root", appendix.Data()))); | |
c683985a | 249 | mgr->ConnectInput(task, 0, cinput ); |
465ff082 | 250 | |
c683985a | 251 | mgr->AddTask(task); |
252 | ||
253 | return NULL; | |
254 | } |