37 #include <TParticle.h>
38 #include <TParticlePDG.h>
42 #include <THnSparse.h>
43 #include <TLorentzVector.h>
47 #include <TDatabasePDG.h>
48 #include <AliAnalysisDataSlot.h>
49 #include <AliAnalysisDataContainer.h>
51 #include "AliMCEvent.h"
52 #include "AliAnalysisManager.h"
53 #include "AliAODMCHeader.h"
54 #include "AliAODHandler.h"
56 #include "AliExternalTrackParam.h"
57 #include "AliAODVertex.h"
58 #include "AliESDVertex.h"
59 #include "AliAODRecoDecay.h"
62 #include "AliESDtrack.h"
63 #include "AliAODTrack.h"
65 #include "AliAODcascade.h"
66 #include "AliAODMCParticle.h"
67 #include "AliAnalysisTaskSE.h"
69 #include "AliPIDResponse.h"
70 #include "AliPIDCombined.h"
71 #include "AliTOFPIDResponse.h"
73 #include "AliInputEventHandler.h"
74 #include "AliESDtrackCuts.h"
75 #include "AliNeutralTrackParam.h"
76 #include "AliKFParticle.h"
77 #include "AliKFVertex.h"
78 #include "AliExternalTrackParam.h"
79 #include "AliESDtrack.h"
80 #include "AliCentrality.h"
81 #include "AliVertexerTracks.h"
82 #include "AliEventPoolManager.h"
103 fIsEventSelected(kFALSE),
104 fWriteVariableTree(kFALSE),
105 fWriteEachVariableTree(kFALSE),
106 fWriteMCVariableTree(kFALSE),
108 fEleVariablesTree(0),
111 fMCEleVariablesTree(0),
112 fMCV0VariablesTree(0),
113 fReconstructPrimVert(kFALSE),
119 fCandidateVariables(),
120 fCandidateEleVariables(),
121 fCandidateV0Variables(),
122 fCandidateMCVariables(),
123 fCandidateMCEleVariables(),
124 fCandidateMCV0Variables(),
132 fUseCentralityV0M(kFALSE),
135 fHistoEleLambdaMass(0),
136 fHistoEleLambdaMassRS(0),
137 fHistoEleLambdaMassWS(0),
138 fHistoEleLambdaMassRSMix(0),
139 fHistoEleLambdaMassWSMix(0),
140 fHistoEleLambdaMassRSSide(0),
141 fHistoEleLambdaMassWSSide(0),
142 fHistoEleLambdaMassvsElePtRS(0),
143 fHistoEleLambdaMassvsElePtWS(0),
144 fHistoEleLambdaMassvsElePtRSMix(0),
145 fHistoEleLambdaMassvsElePtWSMix(0),
146 fHistoEleLambdaMassvsElePtRSSide(0),
147 fHistoEleLambdaMassvsElePtWSSide(0),
148 fHistoEleLambdaMassvsElePtRS1(0),
149 fHistoEleLambdaMassvsElePtWS1(0),
150 fHistoEleLambdaMassvsElePtRSMix1(0),
151 fHistoEleLambdaMassvsElePtWSMix1(0),
152 fHistoEleLambdaMassvsElePtRSSide1(0),
153 fHistoEleLambdaMassvsElePtWSSide1(0),
154 fHistoEleLambdaMassvsElePtRS2(0),
155 fHistoEleLambdaMassvsElePtWS2(0),
156 fHistoEleLambdaMassvsElePtRSMix2(0),
157 fHistoEleLambdaMassvsElePtWSMix2(0),
158 fHistoEleLambdaMassvsElePtRSSide2(0),
159 fHistoEleLambdaMassvsElePtWSSide2(0),
164 fHistoEleLambdaMassMCS(0),
165 fHistoEleLambdaMassMCGen(0),
166 fHistoEleLambdaMassvsElePtMCS(0),
167 fHistoEleLambdaMassvsElePtMCGen(0),
168 fHistoEleLambdaMassvsElePtMCS1(0),
169 fHistoEleLambdaMassvsElePtMCGen1(0),
170 fHistoEleLambdaMassvsElePtMCS2(0),
171 fHistoEleLambdaMassvsElePtMCGen2(0),
174 fHistoElePtvsEtaRS(0),
175 fHistoElePtvsEtaWS(0),
176 fHistoElePtvsEtaRSMix(0),
177 fHistoElePtvsEtaWSMix(0),
178 fHistoElePtvsEtaMCS(0),
179 fHistoElePtvsEtaMCGen(0),
180 fHistoElePtvsLambdaPtRS(0),
181 fHistoElePtvsLambdaPtWS(0),
182 fHistoElePtvsLambdaPtRSMix(0),
183 fHistoElePtvsLambdaPtWSMix(0),
184 fHistoElePtvsLambdaPtMCS(0),
185 fHistoElePtvsLambdaPtvsLcPtMCS(0),
186 fHistoElePtvsLambdaPtMCGen(0),
187 fHistoElePtvsLambdaPtvsLcPtMCGen(0),
188 fHistoElePtvsLambdaPtMCLcGen(0),
189 fHistoElePtvsd0RS(0),
190 fHistoElePtvsd0WS(0),
191 fHistoElePtvsd0RSMix(0),
192 fHistoElePtvsd0WSMix(0),
193 fHistoElePtvsd0MCS(0),
194 fHistoElePtvsd0PromptMCS(0),
195 fHistoElePtvsd0BFeeddownMCS(0),
196 fHistoEleLambdaMassFeeddownXic0MCS(0),
197 fHistoEleLambdaMassFeeddownXic0MCGen(0),
198 fHistoEleLambdaMassvsElePtFeeddownXic0MCS(0),
199 fHistoEleLambdaMassvsElePtFeeddownXic0MCGen(0),
200 fHistoEleLambdaMassvsElePtFeeddownXic0MCS1(0),
201 fHistoEleLambdaMassvsElePtFeeddownXic0MCGen1(0),
202 fHistoEleLambdaMassvsElePtFeeddownXic0MCS2(0),
203 fHistoEleLambdaMassvsElePtFeeddownXic0MCGen2(0),
204 fHistoElePtFeeddownXic0MCS(0),
205 fHistoElePtFeeddownXic0MCGen(0),
206 fHistoElePtvsEtaFeeddownXic0MCS(0),
207 fHistoElePtvsEtaFeeddownXic0MCGen(0),
208 fHistoElePtvsLambdaPtFeeddownXic0MCS(0),
209 fHistoElePtvsLambdaPtFeeddownXic0MCGen(0),
210 fHistoEleLambdaMassFeeddownXicPlusMCS(0),
211 fHistoEleLambdaMassFeeddownXicPlusMCGen(0),
212 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCS(0),
213 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCGen(0),
214 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCS1(0),
215 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCGen1(0),
216 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCS2(0),
217 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCGen2(0),
218 fHistoElePtFeeddownXicPlusMCS(0),
219 fHistoElePtFeeddownXicPlusMCGen(0),
220 fHistoElePtvsEtaFeeddownXicPlusMCS(0),
221 fHistoElePtvsEtaFeeddownXicPlusMCGen(0),
222 fHistoElePtvsLambdaPtFeeddownXicPlusMCS(0),
223 fHistoElePtvsLambdaPtFeeddownXicPlusMCGen(0),
226 fHistoBachPtMCGen(0),
228 fHistoLambdaMassvsPt(0),
229 fHistoLambdaMassvsPtMCS(0),
230 fHistoLambdaMassvsPtMCGen(0),
231 fHistoLambdaPtvsDl(0),
232 fHistoLambdaPtvsDlSide(0),
233 fHistoLambdaPtvsDlMCS(0),
234 fHistoLambdaPtvsDlFeeddownXi0MCS(0),
235 fHistoLambdaPtvsDlFeeddownXiMinusMCS(0),
236 fHistoLambdaPtvsDlFeeddownOmegaMCS(0),
237 fHistoK0sMassvsPt(0),
238 fHistoElectronTPCPID(0),
239 fHistoElectronTOFPID(0),
240 fHistoElectronTPCSelPID(0),
241 fHistoElectronTOFSelPID(0),
242 fHistoElectronTPCPIDSelTOF(0),
243 fHistoElectronTPCPIDSelTOFSmallEta(0),
244 fHistoElectronTPCPIDSelTOFLargeEta(0),
245 fHistoElectronQovPtvsPhi(0),
246 fHistoLambdaQovPtvsPhi(0),
253 fHistoFeedDownXic0MCGen(0),
254 fHistoFeedDownXic0MCGen1(0),
255 fHistoFeedDownXic0MCGen2(0),
256 fHistoFeedDownXic0MCS(0),
257 fHistoFeedDownXic0MCS1(0),
258 fHistoFeedDownXic0MCS2(0),
259 fHistoFeedDownXicPlusMCGen(0),
260 fHistoFeedDownXicPlusMCGen1(0),
261 fHistoFeedDownXicPlusMCGen2(0),
262 fHistoFeedDownXicPlusMCS(0),
263 fHistoFeedDownXicPlusMCS1(0),
264 fHistoFeedDownXicPlusMCS2(0),
265 fHistoLcElectronMCGen(0),
266 fHistoLcElectronMCGen1(0),
267 fHistoLcElectronMCGen2(0),
268 fHistoLcElectronMCS(0),
269 fHistoLcElectronMCS1(0),
270 fHistoLcElectronMCS2(0),
271 fHistoElectronFeedDownXic0MCGen(0),
272 fHistoElectronFeedDownXic0MCGen1(0),
273 fHistoElectronFeedDownXic0MCGen2(0),
274 fHistoElectronFeedDownXic0MCS(0),
275 fHistoElectronFeedDownXic0MCS1(0),
276 fHistoElectronFeedDownXic0MCS2(0),
277 fHistoElectronFeedDownXicPlusMCGen(0),
278 fHistoElectronFeedDownXicPlusMCGen1(0),
279 fHistoElectronFeedDownXicPlusMCGen2(0),
280 fHistoElectronFeedDownXicPlusMCS(0),
281 fHistoElectronFeedDownXicPlusMCS1(0),
282 fHistoElectronFeedDownXicPlusMCS2(0),
283 fHistoElectronMCGen(0),
284 fHistoLambdaMCGen(0),
285 fHistoElePtvsV0dlRS(0),
286 fHistoElePtvsV0dlRS1(0),
287 fHistoElePtvsV0dlRS2(0),
288 fHistoElePtvsV0dlRSSide(0),
289 fHistoElePtvsV0dlRSSide1(0),
290 fHistoElePtvsV0dlRSSide2(0),
291 fHistoElePtvsV0dlRSMix(0),
292 fHistoElePtvsV0dlRSMix1(0),
293 fHistoElePtvsV0dlRSMix2(0),
294 fHistoElePtvsV0dlWS(0),
295 fHistoElePtvsV0dlWS1(0),
296 fHistoElePtvsV0dlWS2(0),
297 fHistoElePtvsV0dlWSSide(0),
298 fHistoElePtvsV0dlWSSide1(0),
299 fHistoElePtvsV0dlWSSide2(0),
300 fHistoElePtvsV0dlWSMix(0),
301 fHistoElePtvsV0dlWSMix1(0),
302 fHistoElePtvsV0dlWSMix2(0),
303 fHistoElePtvsV0dlMCS(0),
304 fHistoElePtvsV0dlMCS1(0),
305 fHistoElePtvsV0dlMCS2(0),
306 fHistoElePtvsV0dlFeedDownXic0MCS(0),
307 fHistoElePtvsV0dlFeedDownXic0MCS1(0),
308 fHistoElePtvsV0dlFeedDownXic0MCS2(0),
309 fHistoElePtvsV0dlFeedDownXicPlusMCS(0),
310 fHistoElePtvsV0dlFeedDownXicPlusMCS1(0),
311 fHistoElePtvsV0dlFeedDownXicPlusMCS2(0),
312 fHistoElePtvsV0dcaRS(0),
313 fHistoElePtvsV0dcaRS1(0),
314 fHistoElePtvsV0dcaRS2(0),
315 fHistoElePtvsV0dcaRSSide(0),
316 fHistoElePtvsV0dcaRSSide1(0),
317 fHistoElePtvsV0dcaRSSide2(0),
318 fHistoElePtvsV0dcaRSMix(0),
319 fHistoElePtvsV0dcaRSMix1(0),
320 fHistoElePtvsV0dcaRSMix2(0),
321 fHistoElePtvsV0dcaWS(0),
322 fHistoElePtvsV0dcaWS1(0),
323 fHistoElePtvsV0dcaWS2(0),
324 fHistoElePtvsV0dcaWSSide(0),
325 fHistoElePtvsV0dcaWSSide1(0),
326 fHistoElePtvsV0dcaWSSide2(0),
327 fHistoElePtvsV0dcaWSMix(0),
328 fHistoElePtvsV0dcaWSMix1(0),
329 fHistoElePtvsV0dcaWSMix2(0),
330 fHistoElePtvsV0dcaMCS(0),
331 fHistoElePtvsV0dcaMCS1(0),
332 fHistoElePtvsV0dcaMCS2(0),
333 fHistoElePtvsV0dcaFeedDownXic0MCS(0),
334 fHistoElePtvsV0dcaFeedDownXic0MCS1(0),
335 fHistoElePtvsV0dcaFeedDownXic0MCS2(0),
336 fHistoElePtvsV0dcaFeedDownXicPlusMCS(0),
337 fHistoElePtvsV0dcaFeedDownXicPlusMCS1(0),
338 fHistoElePtvsV0dcaFeedDownXicPlusMCS2(0),
339 fHistoEleLambdaPtvsV0dlRS(0),
340 fHistoEleLambdaPtvsV0dlRS1(0),
341 fHistoEleLambdaPtvsV0dlRS2(0),
342 fHistoEleLambdaPtvsV0dlRSSide(0),
343 fHistoEleLambdaPtvsV0dlRSSide1(0),
344 fHistoEleLambdaPtvsV0dlRSSide2(0),
345 fHistoEleLambdaPtvsV0dlRSMix(0),
346 fHistoEleLambdaPtvsV0dlRSMix1(0),
347 fHistoEleLambdaPtvsV0dlRSMix2(0),
348 fHistoEleLambdaPtvsV0dlWS(0),
349 fHistoEleLambdaPtvsV0dlWS1(0),
350 fHistoEleLambdaPtvsV0dlWS2(0),
351 fHistoEleLambdaPtvsV0dlWSSide(0),
352 fHistoEleLambdaPtvsV0dlWSSide1(0),
353 fHistoEleLambdaPtvsV0dlWSSide2(0),
354 fHistoEleLambdaPtvsV0dlWSMix(0),
355 fHistoEleLambdaPtvsV0dlWSMix1(0),
356 fHistoEleLambdaPtvsV0dlWSMix2(0),
357 fHistoEleLambdaPtvsV0dlMCS(0),
358 fHistoEleLambdaPtvsV0dlMCS1(0),
359 fHistoEleLambdaPtvsV0dlMCS2(0),
360 fHistoEleLambdaPtvsV0dlFeedDownXic0MCS(0),
361 fHistoEleLambdaPtvsV0dlFeedDownXic0MCS1(0),
362 fHistoEleLambdaPtvsV0dlFeedDownXic0MCS2(0),
363 fHistoEleLambdaPtvsV0dlFeedDownXicPlusMCS(0),
364 fHistoEleLambdaPtvsV0dlFeedDownXicPlusMCS1(0),
365 fHistoEleLambdaPtvsV0dlFeedDownXicPlusMCS2(0),
366 fHistoResponseElePt(0),
367 fHistoResponseElePt1(0),
368 fHistoResponseElePt2(0),
369 fHistoResponseEleLambdaPt(0),
370 fHistoResponseEleLambdaPt1(0),
371 fHistoResponseEleLambdaPt2(0),
372 fHistoResponseEleLambdaPtFeeddownXic0(0),
373 fHistoResponseEleLambdaPtFeeddownXic01(0),
374 fHistoResponseEleLambdaPtFeeddownXic02(0),
375 fHistoResponseEleLambdaPtFeeddownXicPlus(0),
376 fHistoResponseEleLambdaPtFeeddownXicPlus1(0),
377 fHistoResponseEleLambdaPtFeeddownXicPlus2(0),
378 fHistoLcPtvseleLambdaPtvsElePtvsLambdaPt(0),
380 fHistonEvtvsRunNumber(0),
381 fHistonElevsRunNumber(0),
382 fHistonLambdavsRunNumber(0),
383 fHistoMCEventType(0),
385 fNumberOfEventsForMixing (5),
391 fElectronTracks(0x0),
402 for(Int_t i=0;i<17;i++){
407 for(Int_t i=0;i<8;i++){
415 Bool_t writeVariableTree) :
416 AliAnalysisTaskSE(name),
425 fIsEventSelected(kFALSE),
426 fWriteVariableTree(writeVariableTree),
427 fWriteEachVariableTree(kFALSE),
428 fWriteMCVariableTree(kFALSE),
430 fEleVariablesTree(0),
433 fMCEleVariablesTree(0),
434 fMCV0VariablesTree(0),
435 fReconstructPrimVert(kFALSE),
441 fCandidateVariables(),
442 fCandidateEleVariables(),
443 fCandidateV0Variables(),
444 fCandidateMCVariables(),
445 fCandidateMCEleVariables(),
446 fCandidateMCV0Variables(),
454 fUseCentralityV0M(kFALSE),
457 fHistoEleLambdaMass(0),
458 fHistoEleLambdaMassRS(0),
459 fHistoEleLambdaMassWS(0),
460 fHistoEleLambdaMassRSMix(0),
461 fHistoEleLambdaMassWSMix(0),
462 fHistoEleLambdaMassRSSide(0),
463 fHistoEleLambdaMassWSSide(0),
464 fHistoEleLambdaMassvsElePtRS(0),
465 fHistoEleLambdaMassvsElePtWS(0),
466 fHistoEleLambdaMassvsElePtRSMix(0),
467 fHistoEleLambdaMassvsElePtWSMix(0),
468 fHistoEleLambdaMassvsElePtRSSide(0),
469 fHistoEleLambdaMassvsElePtWSSide(0),
470 fHistoEleLambdaMassvsElePtRS1(0),
471 fHistoEleLambdaMassvsElePtWS1(0),
472 fHistoEleLambdaMassvsElePtRSMix1(0),
473 fHistoEleLambdaMassvsElePtWSMix1(0),
474 fHistoEleLambdaMassvsElePtRSSide1(0),
475 fHistoEleLambdaMassvsElePtWSSide1(0),
476 fHistoEleLambdaMassvsElePtRS2(0),
477 fHistoEleLambdaMassvsElePtWS2(0),
478 fHistoEleLambdaMassvsElePtRSMix2(0),
479 fHistoEleLambdaMassvsElePtWSMix2(0),
480 fHistoEleLambdaMassvsElePtRSSide2(0),
481 fHistoEleLambdaMassvsElePtWSSide2(0),
486 fHistoEleLambdaMassMCS(0),
487 fHistoEleLambdaMassMCGen(0),
488 fHistoEleLambdaMassvsElePtMCS(0),
489 fHistoEleLambdaMassvsElePtMCGen(0),
490 fHistoEleLambdaMassvsElePtMCS1(0),
491 fHistoEleLambdaMassvsElePtMCGen1(0),
492 fHistoEleLambdaMassvsElePtMCS2(0),
493 fHistoEleLambdaMassvsElePtMCGen2(0),
496 fHistoElePtvsEtaRS(0),
497 fHistoElePtvsEtaWS(0),
498 fHistoElePtvsEtaRSMix(0),
499 fHistoElePtvsEtaWSMix(0),
500 fHistoElePtvsEtaMCS(0),
501 fHistoElePtvsEtaMCGen(0),
502 fHistoElePtvsLambdaPtRS(0),
503 fHistoElePtvsLambdaPtWS(0),
504 fHistoElePtvsLambdaPtRSMix(0),
505 fHistoElePtvsLambdaPtWSMix(0),
506 fHistoElePtvsLambdaPtMCS(0),
507 fHistoElePtvsLambdaPtvsLcPtMCS(0),
508 fHistoElePtvsLambdaPtMCGen(0),
509 fHistoElePtvsLambdaPtvsLcPtMCGen(0),
510 fHistoElePtvsLambdaPtMCLcGen(0),
511 fHistoElePtvsd0RS(0),
512 fHistoElePtvsd0WS(0),
513 fHistoElePtvsd0RSMix(0),
514 fHistoElePtvsd0WSMix(0),
515 fHistoElePtvsd0MCS(0),
516 fHistoElePtvsd0PromptMCS(0),
517 fHistoElePtvsd0BFeeddownMCS(0),
518 fHistoEleLambdaMassFeeddownXic0MCS(0),
519 fHistoEleLambdaMassFeeddownXic0MCGen(0),
520 fHistoEleLambdaMassvsElePtFeeddownXic0MCS(0),
521 fHistoEleLambdaMassvsElePtFeeddownXic0MCGen(0),
522 fHistoEleLambdaMassvsElePtFeeddownXic0MCS1(0),
523 fHistoEleLambdaMassvsElePtFeeddownXic0MCGen1(0),
524 fHistoEleLambdaMassvsElePtFeeddownXic0MCS2(0),
525 fHistoEleLambdaMassvsElePtFeeddownXic0MCGen2(0),
526 fHistoElePtFeeddownXic0MCS(0),
527 fHistoElePtFeeddownXic0MCGen(0),
528 fHistoElePtvsEtaFeeddownXic0MCS(0),
529 fHistoElePtvsEtaFeeddownXic0MCGen(0),
530 fHistoElePtvsLambdaPtFeeddownXic0MCS(0),
531 fHistoElePtvsLambdaPtFeeddownXic0MCGen(0),
532 fHistoEleLambdaMassFeeddownXicPlusMCS(0),
533 fHistoEleLambdaMassFeeddownXicPlusMCGen(0),
534 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCS(0),
535 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCGen(0),
536 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCS1(0),
537 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCGen1(0),
538 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCS2(0),
539 fHistoEleLambdaMassvsElePtFeeddownXicPlusMCGen2(0),
540 fHistoElePtFeeddownXicPlusMCS(0),
541 fHistoElePtFeeddownXicPlusMCGen(0),
542 fHistoElePtvsEtaFeeddownXicPlusMCS(0),
543 fHistoElePtvsEtaFeeddownXicPlusMCGen(0),
544 fHistoElePtvsLambdaPtFeeddownXicPlusMCS(0),
545 fHistoElePtvsLambdaPtFeeddownXicPlusMCGen(0),
548 fHistoBachPtMCGen(0),
550 fHistoLambdaMassvsPt(0),
551 fHistoLambdaMassvsPtMCS(0),
552 fHistoLambdaMassvsPtMCGen(0),
553 fHistoLambdaPtvsDl(0),
554 fHistoLambdaPtvsDlSide(0),
555 fHistoLambdaPtvsDlMCS(0),
556 fHistoLambdaPtvsDlFeeddownXi0MCS(0),
557 fHistoLambdaPtvsDlFeeddownXiMinusMCS(0),
558 fHistoLambdaPtvsDlFeeddownOmegaMCS(0),
559 fHistoK0sMassvsPt(0),
560 fHistoElectronTPCPID(0),
561 fHistoElectronTOFPID(0),
562 fHistoElectronTPCSelPID(0),
563 fHistoElectronTOFSelPID(0),
564 fHistoElectronTPCPIDSelTOF(0),
565 fHistoElectronTPCPIDSelTOFSmallEta(0),
566 fHistoElectronTPCPIDSelTOFLargeEta(0),
567 fHistoElectronQovPtvsPhi(0),
568 fHistoLambdaQovPtvsPhi(0),
575 fHistoFeedDownXic0MCGen(0),
576 fHistoFeedDownXic0MCGen1(0),
577 fHistoFeedDownXic0MCGen2(0),
578 fHistoFeedDownXic0MCS(0),
579 fHistoFeedDownXic0MCS1(0),
580 fHistoFeedDownXic0MCS2(0),
581 fHistoFeedDownXicPlusMCGen(0),
582 fHistoFeedDownXicPlusMCGen1(0),
583 fHistoFeedDownXicPlusMCGen2(0),
584 fHistoFeedDownXicPlusMCS(0),
585 fHistoFeedDownXicPlusMCS1(0),
586 fHistoFeedDownXicPlusMCS2(0),
587 fHistoLcElectronMCGen(0),
588 fHistoLcElectronMCGen1(0),
589 fHistoLcElectronMCGen2(0),
590 fHistoLcElectronMCS(0),
591 fHistoLcElectronMCS1(0),
592 fHistoLcElectronMCS2(0),
593 fHistoElectronFeedDownXic0MCGen(0),
594 fHistoElectronFeedDownXic0MCGen1(0),
595 fHistoElectronFeedDownXic0MCGen2(0),
596 fHistoElectronFeedDownXic0MCS(0),
597 fHistoElectronFeedDownXic0MCS1(0),
598 fHistoElectronFeedDownXic0MCS2(0),
599 fHistoElectronFeedDownXicPlusMCGen(0),
600 fHistoElectronFeedDownXicPlusMCGen1(0),
601 fHistoElectronFeedDownXicPlusMCGen2(0),
602 fHistoElectronFeedDownXicPlusMCS(0),
603 fHistoElectronFeedDownXicPlusMCS1(0),
604 fHistoElectronFeedDownXicPlusMCS2(0),
605 fHistoElectronMCGen(0),
606 fHistoLambdaMCGen(0),
607 fHistoElePtvsV0dlRS(0),
608 fHistoElePtvsV0dlRS1(0),
609 fHistoElePtvsV0dlRS2(0),
610 fHistoElePtvsV0dlRSSide(0),
611 fHistoElePtvsV0dlRSSide1(0),
612 fHistoElePtvsV0dlRSSide2(0),
613 fHistoElePtvsV0dlRSMix(0),
614 fHistoElePtvsV0dlRSMix1(0),
615 fHistoElePtvsV0dlRSMix2(0),
616 fHistoElePtvsV0dlWS(0),
617 fHistoElePtvsV0dlWS1(0),
618 fHistoElePtvsV0dlWS2(0),
619 fHistoElePtvsV0dlWSSide(0),
620 fHistoElePtvsV0dlWSSide1(0),
621 fHistoElePtvsV0dlWSSide2(0),
622 fHistoElePtvsV0dlWSMix(0),
623 fHistoElePtvsV0dlWSMix1(0),
624 fHistoElePtvsV0dlWSMix2(0),
625 fHistoElePtvsV0dlMCS(0),
626 fHistoElePtvsV0dlMCS1(0),
627 fHistoElePtvsV0dlMCS2(0),
628 fHistoElePtvsV0dlFeedDownXic0MCS(0),
629 fHistoElePtvsV0dlFeedDownXic0MCS1(0),
630 fHistoElePtvsV0dlFeedDownXic0MCS2(0),
631 fHistoElePtvsV0dlFeedDownXicPlusMCS(0),
632 fHistoElePtvsV0dlFeedDownXicPlusMCS1(0),
633 fHistoElePtvsV0dlFeedDownXicPlusMCS2(0),
634 fHistoElePtvsV0dcaRS(0),
635 fHistoElePtvsV0dcaRS1(0),
636 fHistoElePtvsV0dcaRS2(0),
637 fHistoElePtvsV0dcaRSSide(0),
638 fHistoElePtvsV0dcaRSSide1(0),
639 fHistoElePtvsV0dcaRSSide2(0),
640 fHistoElePtvsV0dcaRSMix(0),
641 fHistoElePtvsV0dcaRSMix1(0),
642 fHistoElePtvsV0dcaRSMix2(0),
643 fHistoElePtvsV0dcaWS(0),
644 fHistoElePtvsV0dcaWS1(0),
645 fHistoElePtvsV0dcaWS2(0),
646 fHistoElePtvsV0dcaWSSide(0),
647 fHistoElePtvsV0dcaWSSide1(0),
648 fHistoElePtvsV0dcaWSSide2(0),
649 fHistoElePtvsV0dcaWSMix(0),
650 fHistoElePtvsV0dcaWSMix1(0),
651 fHistoElePtvsV0dcaWSMix2(0),
652 fHistoElePtvsV0dcaMCS(0),
653 fHistoElePtvsV0dcaMCS1(0),
654 fHistoElePtvsV0dcaMCS2(0),
655 fHistoElePtvsV0dcaFeedDownXic0MCS(0),
656 fHistoElePtvsV0dcaFeedDownXic0MCS1(0),
657 fHistoElePtvsV0dcaFeedDownXic0MCS2(0),
658 fHistoElePtvsV0dcaFeedDownXicPlusMCS(0),
659 fHistoElePtvsV0dcaFeedDownXicPlusMCS1(0),
660 fHistoElePtvsV0dcaFeedDownXicPlusMCS2(0),
661 fHistoEleLambdaPtvsV0dlRS(0),
662 fHistoEleLambdaPtvsV0dlRS1(0),
663 fHistoEleLambdaPtvsV0dlRS2(0),
664 fHistoEleLambdaPtvsV0dlRSSide(0),
665 fHistoEleLambdaPtvsV0dlRSSide1(0),
666 fHistoEleLambdaPtvsV0dlRSSide2(0),
667 fHistoEleLambdaPtvsV0dlRSMix(0),
668 fHistoEleLambdaPtvsV0dlRSMix1(0),
669 fHistoEleLambdaPtvsV0dlRSMix2(0),
670 fHistoEleLambdaPtvsV0dlWS(0),
671 fHistoEleLambdaPtvsV0dlWS1(0),
672 fHistoEleLambdaPtvsV0dlWS2(0),
673 fHistoEleLambdaPtvsV0dlWSSide(0),
674 fHistoEleLambdaPtvsV0dlWSSide1(0),
675 fHistoEleLambdaPtvsV0dlWSSide2(0),
676 fHistoEleLambdaPtvsV0dlWSMix(0),
677 fHistoEleLambdaPtvsV0dlWSMix1(0),
678 fHistoEleLambdaPtvsV0dlWSMix2(0),
679 fHistoEleLambdaPtvsV0dlMCS(0),
680 fHistoEleLambdaPtvsV0dlMCS1(0),
681 fHistoEleLambdaPtvsV0dlMCS2(0),
682 fHistoEleLambdaPtvsV0dlFeedDownXic0MCS(0),
683 fHistoEleLambdaPtvsV0dlFeedDownXic0MCS1(0),
684 fHistoEleLambdaPtvsV0dlFeedDownXic0MCS2(0),
685 fHistoEleLambdaPtvsV0dlFeedDownXicPlusMCS(0),
686 fHistoEleLambdaPtvsV0dlFeedDownXicPlusMCS1(0),
687 fHistoEleLambdaPtvsV0dlFeedDownXicPlusMCS2(0),
688 fHistoResponseElePt(0),
689 fHistoResponseElePt1(0),
690 fHistoResponseElePt2(0),
691 fHistoResponseEleLambdaPt(0),
692 fHistoResponseEleLambdaPt1(0),
693 fHistoResponseEleLambdaPt2(0),
694 fHistoResponseEleLambdaPtFeeddownXic0(0),
695 fHistoResponseEleLambdaPtFeeddownXic01(0),
696 fHistoResponseEleLambdaPtFeeddownXic02(0),
697 fHistoResponseEleLambdaPtFeeddownXicPlus(0),
698 fHistoResponseEleLambdaPtFeeddownXicPlus1(0),
699 fHistoResponseEleLambdaPtFeeddownXicPlus2(0),
700 fHistoLcPtvseleLambdaPtvsElePtvsLambdaPt(0),
702 fHistonEvtvsRunNumber(0),
703 fHistonElevsRunNumber(0),
704 fHistonLambdavsRunNumber(0),
705 fHistoMCEventType(0),
707 fNumberOfEventsForMixing (5),
713 fElectronTracks(0x0),
724 Info(
"AliAnalysisTaskSELc2eleLambdafromAODtracks",
"Calling Constructor");
726 for(Int_t i=0;i<17;i++){
731 for(Int_t i=0;i<8;i++){
735 DefineOutput(1,TList::Class());
736 DefineOutput(2,TList::Class());
737 DefineOutput(3,TList::Class());
738 DefineOutput(4,TTree::Class());
739 DefineOutput(5,TTree::Class());
740 DefineOutput(6,TTree::Class());
741 DefineOutput(7,TTree::Class());
742 DefineOutput(8,AliNormalizationCounter::Class());
743 DefineOutput(9,TTree::Class());
744 DefineOutput(10,TTree::Class());
752 Info(
"~AliAnalysisTaskSELc2eleLambdafromAODtracks",
"Calling Destructor");
826 if (fDebug > 1) AliInfo(
"Init");
845 AliError(
"NO EVENT FOUND!");
848 AliAODEvent* aodEvent =
dynamic_cast<AliAODEvent*
>(fInputEvent);
856 fBzkG = (Double_t)aodEvent->GetMagneticField();
857 AliKFParticle::SetField(
fBzkG);
858 if (TMath::Abs(
fBzkG)<0.001) {
869 TClonesArray *mcArray = 0;
870 AliAODMCHeader *mcHeader=0;
873 mcArray =
dynamic_cast<TClonesArray*
>(aodEvent->FindListObject(AliAODMCParticle::StdBranchName()));
875 AliError(
"Could not find Monte-Carlo in AOD");
881 mcHeader = (AliAODMCHeader*)aodEvent->GetList()->FindObject(AliAODMCHeader::StdBranchName());
883 AliError(
"AliAnalysisTaskSELc2eleLambdafromAODtracks::UserExec: MC header branch not found!\n");
888 Double_t zMCVertex = mcHeader->GetVtxZ();
890 AliDebug(2,Form(
"Event rejected: abs(zVtxMC)=%f > fAnalCuts->GetMaxVtxZ()=%f",zMCVertex,
fAnalCuts->
GetMaxVtxZ()));
904 fVtx1 = (AliAODVertex*)aodEvent->GetPrimaryVertex();
907 Double_t pos[3],cov[6];
909 fVtx1->GetCovarianceMatrix(cov);
910 fV1 =
new AliESDVertex(pos,cov,100.,100,
fVtx1->GetName());
914 if(!fIsTriggerNotOK)
fCEvents->Fill(3);
921 fIsMB=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kMB)==(AliVEvent::kMB);
922 fIsSemi=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kSemiCentral)==(AliVEvent::kSemiCentral);
923 fIsCent=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kCentral)==(AliVEvent::kCentral);
924 fIsINT7=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kINT7)==(AliVEvent::kINT7);
925 fIsEMC7=(((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))->IsEventSelected()&AliVEvent::kEMC7)==(AliVEvent::kEMC7);
939 AliCentrality *cent = aodEvent->GetCentrality();
940 fCentrality = cent->GetCentralityPercentile(
"V0M");
944 if(fCentrality<0.||fCentrality>100.-0.0000001) {
951 Int_t runnumber_offset = 0;
952 Int_t runnumber = aodEvent->GetRunNumber();
953 if(runnumber<=131000&&runnumber>=114000){
954 runnumber_offset = 114000;
955 }
else if(runnumber<=196000&&runnumber>=195000){
956 runnumber_offset = 195000;
957 }
else if(runnumber<=170593&&runnumber>=167902){
958 runnumber_offset = 167902;
999 AliAnalysisTaskSE::Terminate();
1001 fOutput =
dynamic_cast<TList*
> (GetOutputData(1));
1003 AliError(
"fOutput not available");
1007 fOutputAll =
dynamic_cast<TList*
> (GetOutputData(3));
1009 AliError(
"fOutputAll not available");
1058 TString normName=
"NormalizationCounter";
1059 AliAnalysisDataContainer *cont = GetOutputSlot(8)->GetContainer();
1060 if(cont)normName=(TString)cont->GetName();
1076 fEventBuffer[i]=
new TTree(Form(
"EventBuffer_%d",i),
"Temporary buffer for event mixing");
1096 AliAODEvent *aodEvent, TClonesArray *mcArray
1103 if(fElectronTracks) fElectronTracks->Delete();
1104 if(fV0Tracks1) fV0Tracks1->Delete();
1105 if(fV0Tracks2) fV0Tracks2->Delete();
1106 fV0dlArray1.clear();
1107 fV0dlArray2.clear();
1108 fV0dcaArray1.clear();
1109 fV0dcaArray2.clear();
1116 Int_t nV0s= aodEvent->GetNumberOfV0s();
1117 Int_t nTracks= aodEvent->GetNumberOfTracks();
1119 Bool_t seleTrkFlags[nTracks];
1121 SelectTrack(aodEvent,nTracks,nSeleTrks,seleTrkFlags,mcArray);
1123 Bool_t seleV0Flags[nV0s];
1125 SelectV0(aodEvent,nV0s,nSeleV0,seleV0Flags,mcArray);
1127 Int_t runnumber_offset = 0;
1128 Int_t runnumber = aodEvent->GetRunNumber();
1129 if(runnumber<=131000&&runnumber>=114000){
1130 runnumber_offset = 114000;
1131 }
else if(runnumber<=196000&&runnumber>=195000){
1132 runnumber_offset = 195000;
1133 }
else if(runnumber<=170593&&runnumber>=167902){
1134 runnumber_offset = 167902;
1136 fHistonElevsRunNumber->Fill(runnumber-runnumber_offset,nSeleTrks);
1137 fHistonLambdavsRunNumber->Fill(runnumber-runnumber_offset,nSeleV0);
1142 for (Int_t iv0 = 0; iv0<nV0s; iv0++) {
1143 if(!seleV0Flags[iv0])
continue;
1144 AliAODv0 *v0 = aodEvent->GetV0(iv0);
1147 AliAODTrack *cptrack = (AliAODTrack*)(v0->GetDaughter(0));
1148 AliAODTrack *cntrack = (AliAODTrack*)(v0->GetDaughter(1));
1153 for (Int_t itrk = 0; itrk<nTracks; itrk++) {
1154 if(!seleTrkFlags[itrk])
continue;
1155 AliAODTrack *trk = (AliAODTrack*)aodEvent->GetTrack(itrk);
1156 if(trk->GetID()<0)
continue;
1158 Int_t cpid = cptrack->GetID();
1159 Int_t cnid = cntrack->GetID();
1160 Int_t lpid = trk->GetID();
1161 if((cpid==lpid)||(cnid==lpid))
continue;
1165 AliAODVertex *secVert = ReconstructSecondaryVertex(v0,trk,aodEvent);
1166 if(!secVert)
continue;
1173 FillROOTObjects(elobj, v0,trk,mcArray);
1175 elobj->GetSecondaryVtx()->RemoveDaughters();
1177 delete elobj;elobj=NULL;
1183 fEventInfo->SetString(Form(
"Ev%d_esd%d_E%d_V%d",AliAnalysisManager::GetAnalysisManager()->GetNcalls(),((AliAODHeader*)aodEvent->GetHeader())->GetEventNumberESDFile(),fElectronTracks->GetEntries(),fV0Tracks1->GetEntries()+fV0Tracks2->GetEntries()));
1184 Int_t ind=GetPoolIndex(fVtxZ,fCentrality);
1185 if(ind>=0 && ind<fNOfPools){
1186 if(fEventBuffer[ind]->GetEntries() >= fNumberOfEventsForMixing){
1187 DoEventMixingWithPools(ind);
1188 if(fEventBuffer[ind]->GetEntries() >= 20*fNumberOfEventsForMixing){
1192 fEventBuffer[ind]->Fill();
1203 const char* nameoutput = GetOutputSlot(4)->GetContainer()->GetName();
1204 fVariablesTree =
new TTree(nameoutput,
"Candidates variables tree");
1207 TString * fCandidateVariableNames =
new TString[nVar];
1209 fCandidateVariableNames[ 0]=
"Centrality";
1210 fCandidateVariableNames[ 1]=
"InvMassEleLambda";
1211 fCandidateVariableNames[ 2]=
"EleLambdaPt";
1212 fCandidateVariableNames[ 3]=
"EleLambdaPx";
1213 fCandidateVariableNames[ 4]=
"EleLambdaPy";
1214 fCandidateVariableNames[ 5]=
"EleLambdaPz";
1215 fCandidateVariableNames[ 6]=
"ElePx";
1216 fCandidateVariableNames[ 7]=
"ElePy";
1217 fCandidateVariableNames[ 8]=
"ElePz";
1218 fCandidateVariableNames[ 9]=
"V0Px";
1219 fCandidateVariableNames[10]=
"V0Py";
1220 fCandidateVariableNames[11]=
"V0Pz";
1221 fCandidateVariableNames[12]=
"AntiLambdaFlag";
1222 fCandidateVariableNames[13]=
"MassLambda";
1223 fCandidateVariableNames[14]=
"MassAntiLambda";
1224 fCandidateVariableNames[15]=
"Eled0";
1225 fCandidateVariableNames[16]=
"V0d0";
1226 fCandidateVariableNames[17]=
"nSigmaTPCele";
1227 fCandidateVariableNames[18]=
"nSigmaTOFele";
1228 fCandidateVariableNames[19]=
"nSigmaTPCv0pr";
1229 fCandidateVariableNames[20]=
"nSigmaTOFv0pr";
1230 fCandidateVariableNames[21]=
"EleCharge";
1231 fCandidateVariableNames[22]=
"ProtonPx";
1232 fCandidateVariableNames[23]=
"ProtonPy";
1233 fCandidateVariableNames[24]=
"ProtonPz";
1234 fCandidateVariableNames[25]=
"PiPx";
1235 fCandidateVariableNames[26]=
"PiPy";
1236 fCandidateVariableNames[27]=
"PiPz";
1237 fCandidateVariableNames[28]=
"mcpdglc";
1238 fCandidateVariableNames[29]=
"mclablc";
1239 fCandidateVariableNames[30]=
"mcpdgmomele";
1240 fCandidateVariableNames[31]=
"mcpdgmomv0";
1241 fCandidateVariableNames[32]=
"Mixing";
1242 fCandidateVariableNames[33]=
"mcpdgele";
1243 fCandidateVariableNames[34]=
"nSigmaTPCpr_etrk";
1244 fCandidateVariableNames[35]=
"nSigmaTOFpr_etrk";
1245 fCandidateVariableNames[36]=
"nSigmaTPCka_etrk";
1246 fCandidateVariableNames[37]=
"nSigmaTOFka_etrk";
1247 fCandidateVariableNames[38]=
"MassK0Short";
1248 fCandidateVariableNames[39]=
"mcpdggrmomele";
1249 fCandidateVariableNames[40]=
"mcpdggrmomv0";
1250 fCandidateVariableNames[41]=
"mcngenele";
1251 fCandidateVariableNames[42]=
"mcngenv0";
1252 fCandidateVariableNames[43]=
"mclcpx";
1253 fCandidateVariableNames[44]=
"mclcpy";
1254 fCandidateVariableNames[45]=
"mclcpz";
1255 fCandidateVariableNames[46]=
"mcelepx";
1256 fCandidateVariableNames[47]=
"mcelepy";
1257 fCandidateVariableNames[48]=
"mcelepz";
1258 fCandidateVariableNames[49]=
"mcv0px";
1259 fCandidateVariableNames[50]=
"mcv0py";
1260 fCandidateVariableNames[51]=
"mcv0pz";
1261 fCandidateVariableNames[52]=
"nSigmaTPCpi_etrk";
1262 fCandidateVariableNames[53]=
"nSigmaTOFpi_etrk";
1263 fCandidateVariableNames[54]=
"PrimVertx";
1264 fCandidateVariableNames[55]=
"PrimVerty";
1265 fCandidateVariableNames[56]=
"PrimVertz";
1266 fCandidateVariableNames[57]=
"V0Vertx";
1267 fCandidateVariableNames[58]=
"V0Verty";
1268 fCandidateVariableNames[59]=
"V0Vertz";
1270 fCandidateVariableNames[60]=
"DcaV0PrToPrimVertex";
1271 fCandidateVariableNames[61]=
"DcaV0PiToPrimVertex";
1272 fCandidateVariableNames[62]=
"DcaV0daughters";
1273 fCandidateVariableNames[63]=
"V0CosPointingAngle";
1274 fCandidateVariableNames[64]=
"V0ProperDecayLength";
1275 fCandidateVariableNames[65]=
"MassK0Short2";
1277 fCandidateVariableNames[66]=
"nSigmaTPCv0pi";
1278 fCandidateVariableNames[67]=
"nSigmaTOFv0pi";
1280 fCandidateVariableNames[68]=
"EleITSMatch";
1281 fCandidateVariableNames[69]=
"V0PosITSMatch";
1282 fCandidateVariableNames[70]=
"V0NegITSMatch";
1283 fCandidateVariableNames[71]=
"IsV0PeakRegion";
1285 fCandidateVariableNames[72]=
"EvNumber";
1286 fCandidateVariableNames[73]=
"RunNumber";
1288 for (Int_t ivar=0; ivar<nVar; ivar++) {
1304 for(Int_t i=0;i<74;i++){
1308 Bool_t anti_lambda_flag = kFALSE;
1311 AliAODTrack *cptrack = (AliAODTrack*)(v0->GetDaughter(0));
1312 AliAODTrack *cntrack = (AliAODTrack*)(v0->GetDaughter(1));
1313 if(cptrack->Charge()<0 && cntrack->Charge()>0){
1314 cptrack = (AliAODTrack*)(v0->GetDaughter(1));
1315 cntrack = (AliAODTrack*)(v0->GetDaughter(0));
1319 UInt_t pdgdg[2]={11,3122};
1337 Double_t nSigmaTPCele=-9999.;
1338 Double_t nSigmaTOFele=-9999.;
1339 Double_t nSigmaTPCv0pr=-9999.;
1340 Double_t nSigmaTOFv0pr=-9999.;
1341 Double_t nSigmaTPCv0pi=-9999.;
1342 Double_t nSigmaTOFv0pi=-9999.;
1353 if(anti_lambda_flag){
1371 if(anti_lambda_flag){
1387 AliAODMCParticle *mclc = 0;
1388 AliAODMCParticle *mcele = 0;
1389 AliAODMCParticle *mcv0 = 0;
1391 Int_t mcpdgele_array[100];
1392 Int_t mcpdgv0_array[100];
1393 Int_t mclabelele_array[100];
1394 Int_t mclabelv0_array[100];
1395 Int_t mcngen_ele=-9999;
1396 Int_t mcngen_v0=-9999;
1400 mclablc =
MatchToMC(elobj,mcArray,mcpdgele_array, mcpdgv0_array,mclabelele_array,mclabelv0_array,mcngen_ele,mcngen_v0);
1403 mclc = (AliAODMCParticle*) mcArray->At(mclablc);
1404 if(mclabelele_array[0]>=0)
1405 mcele = (AliAODMCParticle*) mcArray->At(mclabelele_array[0]);
1406 if(mclabelv0_array[0]>=0)
1407 mcv0 = (AliAODMCParticle*) mcArray->At(mclabelv0_array[0]);
1460 Double_t lDcaPosToPrimVertex = v0->DcaPosToPrimVertex();
1461 Double_t lDcaNegToPrimVertex = v0->DcaNegToPrimVertex();
1462 if(!anti_lambda_flag){
1470 Double_t posVtx[3] = {0.,0.,0.};
1471 fVtx1->GetXYZ(posVtx);
1473 Double_t ptotlam = TMath::Sqrt(pow(v0->Px(),2)+pow(v0->Py(),2)+pow(v0->Pz(),2));
1490 cont[0] = elobj->InvMass(2,pdgdg);
1491 cont[1] = elobj->Pt();
1495 cont2[0] = elobj->InvMass(2,pdgdg);
1496 cont2[1] = trk->Pt();
1498 Double_t cont_eleptvseta[3];
1499 cont_eleptvseta[0] = trk->Pt();
1500 cont_eleptvseta[1] = trk->Eta();
1503 Double_t cont_eleptvslambdapt[3];
1504 cont_eleptvslambdapt[0] = trk->Pt();
1505 cont_eleptvslambdapt[1] = v0->Pt();
1508 Double_t cont_eleptvsd0[3];
1509 cont_eleptvsd0[0] = trk->Pt();
1510 cont_eleptvsd0[1] = elobj->Getd0Prong(0)*trk->Charge();
1513 Double_t cont_eleptvsv0dl[3];
1514 cont_eleptvsv0dl[0] = trk->Pt();
1515 cont_eleptvsv0dl[1] = v0->DecayLengthV0(posVtx)*1.115683/ptotlam;
1518 Double_t cont_elelamptvsv0dl[3];
1519 cont_elelamptvsv0dl[0] = elobj->Pt();
1520 cont_elelamptvsv0dl[1] = v0->
DecayLengthV0(posVtx)*1.115683/ptotlam;
1524 Double_t cont_eleptvsv0dca[3];
1525 cont_eleptvsv0dca[0] = trk->Pt();
1526 cont_eleptvsv0dca[1] = v0->DcaV0ToPrimVertex();
1533 if((trk->Charge()>0 && !anti_lambda_flag) || (trk->Charge()<0 && anti_lambda_flag)){
1556 for(Int_t ih=0;ih<17;ih++){
1557 Double_t cont_eleptvscutvars[3];
1558 cont_eleptvscutvars[0] = trk->Pt();
1562 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1564 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1566 cont_eleptvscutvars[1] = nSigmaTPCele;
1568 cont_eleptvscutvars[1] = nSigmaTOFele;
1570 cont_eleptvscutvars[1] = trk->Eta();
1572 cont_eleptvscutvars[1] = trk->GetITSNcls();
1574 if(!anti_lambda_flag)
1575 cont_eleptvscutvars[1] = v0->MassLambda();
1577 cont_eleptvscutvars[1] = v0->MassAntiLambda();
1580 lPosV0[0] = v0->DecayVertexV0X();
1581 lPosV0[1] = v0->DecayVertexV0Y();
1582 lPosV0[2] = v0->DecayVertexV0Z();
1583 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1585 cont_eleptvscutvars[1] = v0->DcaV0Daughters();
1587 if(!anti_lambda_flag)
1588 cont_eleptvscutvars[1] = v0->DcaPosToPrimVertex();
1590 cont_eleptvscutvars[1] = v0->DcaNegToPrimVertex();
1592 if(!anti_lambda_flag)
1593 cont_eleptvscutvars[1] = v0->DcaNegToPrimVertex();
1595 cont_eleptvscutvars[1] = v0->DcaPosToPrimVertex();
1597 cont_eleptvscutvars[1] = v0->CosPointingAngle(posVtx);
1599 cont_eleptvscutvars[1] = v0->MassK0Short();
1601 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1603 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1605 cont_eleptvscutvars[1] = v0->Eta();
1607 Double_t v0px = elobj->PxProng(1);
1608 Double_t v0py = elobj->PyProng(1);
1609 Double_t v0pz = elobj->PzProng(1);
1610 Double_t epx = elobj->PxProng(0);
1611 Double_t epy = elobj->PyProng(0);
1612 Double_t epz = elobj->PzProng(0);
1613 cont_eleptvscutvars[1] = acos((v0px*epx+v0py*epy+v0pz*epz)/sqrt(v0px*v0px+v0py*v0py+v0pz*v0pz)/sqrt(epx*epx+epy*epy+epz*epz));
1615 cont_eleptvscutvars[1] = -9999.;
1621 }
else if((trk->Charge()<0 && !anti_lambda_flag) || (trk->Charge()>0 && anti_lambda_flag)){
1644 for(Int_t ih=0;ih<17;ih++){
1645 Double_t cont_eleptvscutvars[3];
1646 cont_eleptvscutvars[0] = trk->Pt();
1650 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1652 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1654 cont_eleptvscutvars[1] = nSigmaTPCele;
1656 cont_eleptvscutvars[1] = nSigmaTOFele;
1658 cont_eleptvscutvars[1] = trk->Eta();
1660 cont_eleptvscutvars[1] = trk->GetITSNcls();
1662 if(!anti_lambda_flag)
1663 cont_eleptvscutvars[1] = v0->MassLambda();
1665 cont_eleptvscutvars[1] = v0->MassAntiLambda();
1668 lPosV0[0] = v0->DecayVertexV0X();
1669 lPosV0[1] = v0->DecayVertexV0Y();
1670 lPosV0[2] = v0->DecayVertexV0Z();
1671 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1673 cont_eleptvscutvars[1] = v0->DcaV0Daughters();
1675 if(!anti_lambda_flag)
1676 cont_eleptvscutvars[1] = v0->DcaPosToPrimVertex();
1678 cont_eleptvscutvars[1] = v0->DcaNegToPrimVertex();
1680 if(!anti_lambda_flag)
1681 cont_eleptvscutvars[1] = v0->DcaNegToPrimVertex();
1683 cont_eleptvscutvars[1] = v0->DcaPosToPrimVertex();
1685 cont_eleptvscutvars[1] = v0->CosPointingAngle(posVtx);
1687 cont_eleptvscutvars[1] = v0->MassK0Short();
1689 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1691 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1693 cont_eleptvscutvars[1] = v0->Eta();
1695 Double_t v0px = elobj->PxProng(1);
1696 Double_t v0py = elobj->PyProng(1);
1697 Double_t v0pz = elobj->PzProng(1);
1698 Double_t epx = elobj->PxProng(0);
1699 Double_t epy = elobj->PyProng(0);
1700 Double_t epz = elobj->PzProng(0);
1701 cont_eleptvscutvars[1] = acos((v0px*epx+v0py*epy+v0pz*epz)/sqrt(v0px*v0px+v0py*v0py+v0pz*v0pz)/sqrt(epx*epx+epy*epy+epz*epz));
1703 cont_eleptvscutvars[1] = -9999.;
1713 Int_t pdgcode = mclc->GetPdgCode();
1714 Double_t cont_mclc[3];
1715 cont_mclc[0] = mclc->Pt();
1716 cont_mclc[1] = mclc->Y();
1718 Double_t cont_mcele[3];
1719 cont_mcele[0] = mcele->Pt();
1720 cont_mcele[1] = mcele->Eta();
1723 if(abs(pdgcode)==4122 && abs(mcpdgele_array[1])==4122 && abs(mcpdgv0_array[1])==4122){
1724 cont2[1] = mcele->Pt();
1762 Double_t cont_eleptvslambdaptvslcpt[4];
1763 cont_eleptvslambdaptvslcpt[0] = cont_eleptvslambdapt[0];
1764 cont_eleptvslambdaptvslcpt[1] = cont_eleptvslambdapt[1];
1765 cont_eleptvslambdaptvslcpt[2] = mclc->Pt();
1766 cont_eleptvslambdaptvslcpt[3] = cont_eleptvslambdapt[2];
1769 Double_t cont_allpt[4];
1770 cont_allpt[0] = mclc->Pt();
1771 cont_allpt[1] = elobj->Pt();
1772 cont_allpt[2] = trk->Pt();
1773 cont_allpt[3] = v0->Pt();
1776 Int_t labmotherlc = mclc->GetMother();
1778 AliAODMCParticle *motherlc = (AliAODMCParticle*)mcArray->At(labmotherlc);
1779 Int_t pdgmotherlc = motherlc->GetPdgCode();
1780 if(TMath::Abs(pdgmotherlc)==511||TMath::Abs(pdgmotherlc)==521||TMath::Abs(pdgmotherlc)==5122||TMath::Abs(pdgmotherlc)==5132||TMath::Abs(pdgmotherlc)==5232||TMath::Abs(pdgmotherlc)==5332){
1789 for(Int_t ih=0;ih<17;ih++){
1790 Double_t cont_eleptvscutvars[3];
1791 cont_eleptvscutvars[0] = trk->Pt();
1795 cont_eleptvscutvars[1] = trk->GetTPCNcls();
1797 cont_eleptvscutvars[1] = trk->GetTPCsignalN();
1799 cont_eleptvscutvars[1] = nSigmaTPCele;
1801 cont_eleptvscutvars[1] = nSigmaTOFele;
1803 cont_eleptvscutvars[1] = trk->Eta();
1805 cont_eleptvscutvars[1] = trk->GetITSNcls();
1807 if(!anti_lambda_flag)
1808 cont_eleptvscutvars[1] = v0->MassLambda();
1810 cont_eleptvscutvars[1] = v0->MassAntiLambda();
1813 lPosV0[0] = v0->DecayVertexV0X();
1814 lPosV0[1] = v0->DecayVertexV0Y();
1815 lPosV0[2] = v0->DecayVertexV0Z();
1816 cont_eleptvscutvars[1] = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
1818 cont_eleptvscutvars[1] = v0->DcaV0Daughters();
1820 if(!anti_lambda_flag)
1821 cont_eleptvscutvars[1] = v0->DcaPosToPrimVertex();
1823 cont_eleptvscutvars[1] = v0->DcaNegToPrimVertex();
1825 if(!anti_lambda_flag)
1826 cont_eleptvscutvars[1] = v0->DcaNegToPrimVertex();
1828 cont_eleptvscutvars[1] = v0->DcaPosToPrimVertex();
1830 cont_eleptvscutvars[1] = v0->CosPointingAngle(posVtx);
1832 cont_eleptvscutvars[1] = v0->MassK0Short();
1834 cont_eleptvscutvars[1] = nSigmaTPCv0pr;
1836 cont_eleptvscutvars[1] = nSigmaTPCv0pi;
1838 cont_eleptvscutvars[1] = v0->Eta();
1840 Double_t v0px = elobj->PxProng(1);
1841 Double_t v0py = elobj->PyProng(1);
1842 Double_t v0pz = elobj->PzProng(1);
1843 Double_t epx = elobj->PxProng(0);
1844 Double_t epy = elobj->PyProng(0);
1845 Double_t epz = elobj->PzProng(0);
1846 cont_eleptvscutvars[1] = acos((v0px*epx+v0py*epy+v0pz*epz)/sqrt(v0px*v0px+v0py*v0py+v0pz*v0pz)/sqrt(epx*epx+epy*epy+epz*epz));
1848 cont_eleptvscutvars[1] = -9999.;
1855 if(abs(pdgcode)==4132 && abs(mcpdgele_array[1])==4132 && abs(mcpdgv0_array[1])==3312){
1890 if(abs(pdgcode)==4232 && abs(mcpdgele_array[1])==4232 && abs(mcpdgv0_array[1])==3322){
1931 if((trk->Charge()>0 && !anti_lambda_flag) || (trk->Charge()<0 && anti_lambda_flag)){
1949 }
else if((trk->Charge()<0 && !anti_lambda_flag) || (trk->Charge()>0 && anti_lambda_flag)){
1981 for(Int_t i=0;i<73;i++){
1986 Double_t pxe = trke->Px();
1987 Double_t pye = trke->Py();
1988 Double_t pze = trke->Pz();
1989 Double_t mome = sqrt(pxe*pxe+pye*pye+pze*pze);
1990 Double_t Ee = sqrt(mome*mome+0.000510998928*0.000510998928);
1992 Double_t pxv = v0->Px();
1993 Double_t pyv = v0->Py();
1994 Double_t pzv = v0->Pz();
1995 Double_t momv = sqrt(pxv*pxv+pyv*pyv+pzv*pzv);
1996 Double_t Ev = sqrt(momv*momv+1.115683*1.115683);
1998 Double_t cosoa = (pxe*pxv+pye*pyv+pze*pzv)/mome/momv;
2000 Double_t pxsum = pxe + pxv;
2001 Double_t pysum = pye + pyv;
2002 Double_t pzsum = pze + pzv;
2003 Double_t Esum = Ee + Ev;
2005 Double_t mel = sqrt(Esum*Esum-pxsum*pxsum-pysum*pysum-pzsum*pzsum);
2008 UInt_t pdgdg[2]={11,3122};
2050 cont[1] = sqrt(pxsum*pxsum+pysum*pysum);
2055 cont2[1] = sqrt(pxe*pxe+pye*pye);
2057 Double_t cont_eleptvseta[3];
2058 cont_eleptvseta[0] = trke->Pt();
2059 cont_eleptvseta[1] = trke->Eta();
2062 Double_t cont_eleptvslambdapt[3];
2063 cont_eleptvslambdapt[0] = trke->Pt();
2064 cont_eleptvslambdapt[1] = v0->Pt();
2067 Double_t cont_eleptvsd0[3];
2068 cont_eleptvsd0[0] = trke->Pt();
2069 cont_eleptvsd0[1] = 0.;
2072 Double_t cont_eleptvsv0dl[3];
2073 cont_eleptvsv0dl[0] = trke->Pt();
2074 cont_eleptvsv0dl[1] = v0info[0];
2077 Double_t cont_eleptvsv0dca[3];
2078 cont_eleptvsv0dca[0] = trke->Pt();
2079 cont_eleptvsv0dca[1] = v0info[1];
2082 Double_t cont_elelamptvsv0dl[3];
2083 cont_elelamptvsv0dl[0] = sqrt(pxsum*pxsum+pysum*pysum);
2084 cont_elelamptvsv0dl[1] = v0info[0];
2088 if(((
int)trke->T())*chargepr>0){
2146 const char* nameoutput = GetOutputSlot(5)->GetContainer()->GetName();
2150 TString * fCandidateVariableNames =
new TString[nVar];
2152 fCandidateVariableNames[ 0]=
"ElePx";
2153 fCandidateVariableNames[ 1]=
"ElePy";
2154 fCandidateVariableNames[ 2]=
"ElePz";
2155 fCandidateVariableNames[ 3]=
"TPCChi2overNDF";
2156 fCandidateVariableNames[ 4]=
"ITSNcls";
2157 fCandidateVariableNames[ 5]=
"TPCNcls";
2158 fCandidateVariableNames[ 6]=
"TPCNclsPID";
2159 fCandidateVariableNames[ 7]=
"TPCNclsRatio";
2160 fCandidateVariableNames[ 8]=
"d0R";
2161 fCandidateVariableNames[ 9]=
"d0Z";
2162 fCandidateVariableNames[10]=
"ITSClusterMap";
2163 fCandidateVariableNames[11]=
"nSigmaTPCele";
2164 fCandidateVariableNames[12]=
"nSigmaTOFele";
2165 fCandidateVariableNames[13]=
"nSigmaTPCpi";
2166 fCandidateVariableNames[14]=
"nSigmaTPCka";
2167 fCandidateVariableNames[15]=
"nSigmaTPCpr";
2168 fCandidateVariableNames[16]=
"EvNumber";
2169 fCandidateVariableNames[17]=
"EleCharge";
2170 fCandidateVariableNames[18]=
"ElePdgCode";
2171 fCandidateVariableNames[19]=
"EleMotherPdgCode";
2172 fCandidateVariableNames[20]=
"mcelepx";
2173 fCandidateVariableNames[21]=
"mcelepy";
2174 fCandidateVariableNames[22]=
"mcelepz";
2175 fCandidateVariableNames[23]=
"Centrality";
2176 fCandidateVariableNames[24]=
"PrimVertZ";
2177 fCandidateVariableNames[25]=
"RunNumber";
2179 for (Int_t ivar=0; ivar<nVar; ivar++) {
2198 fElectronTracks->AddLast(
new TLorentzVector(trk->Px(),trk->Py(),trk->Pz(),trk->Charge()));
2203 Int_t pdgEle = -9999;
2204 Int_t pdgEleMother = -9999;
2205 Float_t mcelepx = -9999;
2206 Float_t mcelepy = -9999;
2207 Float_t mcelepz = -9999;
2210 Int_t labEle = trk->GetLabel();
2211 if(labEle<0)
return;
2212 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
2214 pdgEle = mcetrk->GetPdgCode();
2215 if(abs(pdgEle)!=11)
return;
2219 Bool_t hfe_flag = kFALSE;
2220 Int_t labemother = mcetrk->GetMother();
2222 AliAODMCParticle *motherele = (AliAODMCParticle*)mcArray->At(labemother);
2223 pdgEleMother = motherele->GetPdgCode();
2224 if(abs(pdgEleMother)>4000&&abs(pdgEleMother)<4400){
2228 if(!hfe_flag)
return;
2229 mcelepx = mcetrk->Px();
2230 mcelepy = mcetrk->Py();
2231 mcelepz = mcetrk->Pz();
2234 for(Int_t i=0;i<26;i++){
2245 if(trk->GetTPCNclsF()>0)
2248 Double_t d0z0[2],covd0z0[3];
2249 trk->PropagateToDCA(
fVtx1,
fBzkG,kVeryBig,d0z0,covd0z0);
2253 Int_t itsmap = trk->GetITSClusterMap();
2256 Bool_t spdfirst = (itsmap & bit1) == bit1;
2257 Bool_t spdsecond = (itsmap & bit2) == bit2;
2295 const char* nameoutput = GetOutputSlot(6)->GetContainer()->GetName();
2299 TString * fCandidateVariableNames =
new TString[nVar];
2301 fCandidateVariableNames[ 0]=
"V0Px";
2302 fCandidateVariableNames[ 1]=
"V0Py";
2303 fCandidateVariableNames[ 2]=
"V0Pz";
2304 fCandidateVariableNames[ 3]=
"MassLambda";
2305 fCandidateVariableNames[ 4]=
"MassAntiLambda";
2306 fCandidateVariableNames[ 5]=
"ProtonPx";
2307 fCandidateVariableNames[ 6]=
"ProtonPy";
2308 fCandidateVariableNames[ 7]=
"ProtonPz";
2309 fCandidateVariableNames[ 8]=
"PionPx";
2310 fCandidateVariableNames[ 9]=
"PionPy";
2311 fCandidateVariableNames[10]=
"PionPz";
2312 fCandidateVariableNames[11]=
"RfidV0";
2313 fCandidateVariableNames[12]=
"DcaV0PrToPrimVertex";
2314 fCandidateVariableNames[13]=
"DcaV0PiToPrimVertex";
2315 fCandidateVariableNames[14]=
"DcaV0daughters";
2316 fCandidateVariableNames[15]=
"V0CosPointingAngle";
2317 fCandidateVariableNames[16]=
"V0ProperDecayLength";
2318 fCandidateVariableNames[17]=
"MassK0Short";
2319 fCandidateVariableNames[18]=
"nSigmaTPCpr";
2320 fCandidateVariableNames[19]=
"nSigmaTPCpi";
2321 fCandidateVariableNames[20]=
"TPCNCrossV0Pr";
2322 fCandidateVariableNames[21]=
"TPCNCrossV0Pi";
2323 fCandidateVariableNames[22]=
"TPCNCrossRatioV0Pr";
2324 fCandidateVariableNames[23]=
"TPCNCrossRatioV0Pi";
2325 fCandidateVariableNames[24]=
"V0PdgCode";
2326 fCandidateVariableNames[25]=
"V0MotherPdgCode";
2327 fCandidateVariableNames[26]=
"mcv0px";
2328 fCandidateVariableNames[27]=
"mcv0py";
2329 fCandidateVariableNames[28]=
"mcv0pz";
2330 fCandidateVariableNames[29]=
"EvNumber";
2331 fCandidateVariableNames[30]=
"Centrality";
2332 fCandidateVariableNames[31]=
"PrimVertZ";
2333 fCandidateVariableNames[32]=
"RunNumber";
2335 for (Int_t ivar=0; ivar<nVar; ivar++) {
2350 Double_t mlamPDG = TDatabasePDG::Instance()->GetParticle(3122)->Mass();
2351 Double_t posVtx[3] = {0.,0.,0.};
2352 fVtx1->GetXYZ(posVtx);
2353 Double_t ptotlam = TMath::Sqrt(pow(v0->Px(),2)+pow(v0->Py(),2)+pow(v0->Pz(),2));
2354 Double_t v0propdl = v0->DecayLengthV0(posVtx)*mlamPDG/ptotlam;
2371 Double_t momv0x = v0->MomV0X();
2372 Double_t momv0y = v0->MomV0Y();
2373 Double_t phi_alice = atan2(momv0y,momv0x);
2374 if(phi_alice<0.) phi_alice += 2 * M_PI;
2377 Int_t v0pdgcode = -9999;
2378 Int_t v0motherpdgcode = -9999;
2379 Float_t mcv0px = -9999;
2380 Float_t mcv0py = -9999;
2381 Float_t mcv0pz = -9999;
2384 Int_t pdgdgv0[2]={2212,211};
2385 Int_t labV0 = v0->MatchToMC(3122,mcArray,2,pdgdgv0);
2395 AliAODMCParticle *mcv0trk = (AliAODMCParticle*)mcArray->At(labV0);
2396 if(!mcv0trk)
return;
2398 Bool_t hfv0_flag = kFALSE;
2399 v0pdgcode = mcv0trk->GetPdgCode();
2400 Int_t labv0mother = mcv0trk->GetMother();
2402 AliAODMCParticle *motherv0 = (AliAODMCParticle*)mcArray->At(labv0mother);
2404 v0motherpdgcode = motherv0->GetPdgCode();
2405 if(abs(v0motherpdgcode)>4000&&abs(v0motherpdgcode)<4400){
2408 if(abs(v0motherpdgcode)==3322){
2410 }
else if(abs(v0motherpdgcode)==3312){
2412 }
else if(abs(v0motherpdgcode)==3334){
2419 if(!hfv0_flag)
return;
2420 mcv0px = mcv0trk->Px();
2421 mcv0py = mcv0trk->Py();
2422 mcv0pz = mcv0trk->Pz();
2426 Double_t posVtx[3] = {0.,0.,0.};
2427 fVtx1->GetXYZ(posVtx);
2428 TLorentzVector *lv =
new TLorentzVector();
2429 Double_t ptotlam = TMath::Sqrt(pow(v0->Px(),2)+pow(v0->Py(),2)+pow(v0->Pz(),2));
2431 lv->SetXYZM(v0->Px(),v0->Py(),v0->Pz(),v0->MassLambda());
2433 fV0dlArray1.push_back(v0->DecayLengthV0(posVtx)*mlamPDG/ptotlam);
2436 lv->SetXYZM(v0->Px(),v0->Py(),v0->Pz(),v0->MassAntiLambda());
2438 fV0dlArray2.push_back(v0->DecayLengthV0(posVtx)*mlamPDG/ptotlam);
2446 for(Int_t i=0;i<32;i++){
2450 AliAODTrack *cptrack = (AliAODTrack*)(v0->GetDaughter(0));
2451 AliAODTrack *cntrack = (AliAODTrack*)(v0->GetDaughter(1));
2452 if(!cptrack)
return;
2453 if(!cntrack)
return;
2454 if(cptrack->Charge()<0 && cntrack->Charge()>0){
2455 cptrack = (AliAODTrack*)(v0->GetDaughter(1));
2456 cntrack = (AliAODTrack*)(v0->GetDaughter(0));
2465 Bool_t isparticle = kTRUE;
2485 lPosV0[0] = v0->DecayVertexV0X();
2486 lPosV0[1] = v0->DecayVertexV0Y();
2487 lPosV0[2] = v0->DecayVertexV0Z();
2488 Double_t decayvertV0 = TMath::Sqrt(lPosV0[0]*lPosV0[0]+lPosV0[1]*lPosV0[1]);
2491 Double_t lDcaPosToPrimVertex = v0->DcaPosToPrimVertex();
2492 Double_t lDcaNegToPrimVertex = v0->DcaNegToPrimVertex();
2522 if(cptrack->GetTPCNclsF()>0)
2523 fCandidateV0Variables[22] = (Float_t) cptrack->GetTPCClusterInfo(2,1)/(Float_t)cptrack->GetTPCNclsF();
2524 if(cntrack->GetTPCNclsF()>0)
2525 fCandidateV0Variables[23] =(Float_t) cntrack->GetTPCClusterInfo(2,1)/(Float_t)cntrack->GetTPCNclsF();
2529 if(cntrack->GetTPCNclsF()>0)
2530 fCandidateV0Variables[22] = (Float_t) cntrack->GetTPCClusterInfo(2,1)/(Float_t)cntrack->GetTPCNclsF();
2531 if(cptrack->GetTPCNclsF()>0)
2532 fCandidateV0Variables[23] = (Float_t) cptrack->GetTPCClusterInfo(2,1)/(Float_t)cptrack->GetTPCNclsF();
2554 const char* nameoutput = GetOutputSlot(7)->GetContainer()->GetName();
2558 TString * fCandidateVariableNames =
new TString[nVar];
2560 fCandidateVariableNames[ 0]=
"Centrality";
2561 fCandidateVariableNames[ 1]=
"DecayType";
2562 fCandidateVariableNames[ 2]=
"LcPx";
2563 fCandidateVariableNames[ 3]=
"LcPy";
2564 fCandidateVariableNames[ 4]=
"LcPz";
2565 fCandidateVariableNames[ 5]=
"ElePx";
2566 fCandidateVariableNames[ 6]=
"ElePy";
2567 fCandidateVariableNames[ 7]=
"ElePz";
2568 fCandidateVariableNames[ 8]=
"V0Px";
2569 fCandidateVariableNames[ 9]=
"V0Py";
2570 fCandidateVariableNames[10]=
"V0Pz";
2572 for (Int_t ivar=0; ivar<nVar; ivar++) {
2584 if(!mcepart)
return;
2585 if(!mcv0part)
return;
2587 for(Int_t i=0;i<11;i++){
2603 Double_t epx = mcepart->Px();
2604 Double_t epy = mcepart->Py();
2605 Double_t epz = mcepart->Pz();
2606 Double_t eE = sqrt(epx*epx+epy*epy+epz*epz+0.000511*0.000511);
2607 Double_t v0px = mcv0part->Px();
2608 Double_t v0py = mcv0part->Py();
2609 Double_t v0pz = mcv0part->Pz();
2610 Double_t v0E = sqrt(v0px*v0px+v0py*v0py+v0pz*v0pz+1.1157*1.1157);
2612 Double_t InvMassEleLambda = sqrt(pow(eE+v0E,2)-pow(epx+v0px,2)-pow(epy+v0py,2)-pow(epz+v0pz,2));
2615 cont[0] = InvMassEleLambda;
2616 cont[1] = mcpart->Pt();
2619 cont2[0] = InvMassEleLambda;
2620 cont2[1] = mcepart->Pt();
2622 Double_t cont_eleptvseta[3];
2623 cont_eleptvseta[0] = mcepart->Pt();
2624 cont_eleptvseta[1] = mcepart->Eta();
2626 Double_t cont_eleptvslambdapt[3];
2627 cont_eleptvslambdapt[0] = mcepart->Pt();
2628 cont_eleptvslambdapt[1] = mcv0part->Pt();
2630 Double_t cont_eleptvslambdaptvslcpt[4];
2631 cont_eleptvslambdaptvslcpt[0] = mcepart->Pt();
2632 cont_eleptvslambdaptvslcpt[1] = mcv0part->Pt();
2633 cont_eleptvslambdaptvslcpt[2] = mcpart->Pt();
2636 contmc[0] = mcpart->Pt();
2637 contmc[1] = mcpart->Y();
2639 Double_t contmcele[3];
2640 contmcele[0] = mcepart->Pt();
2641 contmcele[1] = mcepart->Eta();
2646 esdcuts->GetEtaRange(etamin,etamax);
2656 if(fabs(mcepart->Eta())<etamax){
2660 if(InvMassEleLambda<2.3){
2666 if(fabs(mcpart->Y())<0.7){
2667 if(InvMassEleLambda<2.3){
2672 }
else if(decaytype==1){
2680 if(fabs(mcepart->Eta())<etamax){
2684 if(InvMassEleLambda<2.3){
2690 }
else if(decaytype==2){
2698 if(fabs(mcepart->Eta())<etamax){
2702 if(InvMassEleLambda<2.3){
2720 const char* nameoutput = GetOutputSlot(9)->GetContainer()->GetName();
2724 TString * fCandidateVariableNames =
new TString[nVar];
2726 fCandidateVariableNames[ 0]=
"Centrality";
2727 fCandidateVariableNames[ 1]=
"ElePx";
2728 fCandidateVariableNames[ 2]=
"ElePy";
2729 fCandidateVariableNames[ 3]=
"ElePz";
2730 fCandidateVariableNames[ 4]=
"ElePdgCode";
2731 fCandidateVariableNames[ 5]=
"EleMotherPdgCode";
2732 fCandidateVariableNames[ 6]=
"RunNumber";
2733 fCandidateVariableNames[ 7]=
"EvNumber";
2735 for (Int_t ivar=0; ivar<nVar; ivar++) {
2746 if(!mcepart)
return;
2748 Bool_t hfe_flag = kFALSE;
2749 Int_t labemother = mcepart->GetMother();
2750 Int_t pdgmotherele = -9999;
2752 AliAODMCParticle *motherele = (AliAODMCParticle*)mcArray->At(labemother);
2753 pdgmotherele = motherele->GetPdgCode();
2754 if(abs(pdgmotherele)>4000&&abs(pdgmotherele)<4400){
2758 if(!hfe_flag)
return;
2761 contmc[0] = mcepart->Pt();
2762 contmc[1] = mcepart->Eta();
2766 for(Int_t i=0;i<8;i++){
2790 const char* nameoutput = GetOutputSlot(10)->GetContainer()->GetName();
2794 TString * fCandidateVariableNames =
new TString[nVar];
2796 fCandidateVariableNames[ 0]=
"Centrality";
2797 fCandidateVariableNames[ 1]=
"V0Px";
2798 fCandidateVariableNames[ 2]=
"V0Py";
2799 fCandidateVariableNames[ 3]=
"V0Pz";
2800 fCandidateVariableNames[ 4]=
"V0PdgCode";
2801 fCandidateVariableNames[ 5]=
"V0MotherPdgCode";
2802 fCandidateVariableNames[ 6]=
"RunNumber";
2803 fCandidateVariableNames[ 7]=
"EvNumber";
2805 for (Int_t ivar=0; ivar<nVar; ivar++) {
2816 if(!mcv0part)
return;
2818 for(Int_t i=0;i<8;i++){
2822 Bool_t hfv0_flag = kFALSE;
2823 Int_t labv0mother = mcv0part->GetMother();
2824 Int_t pdgmotherv0 = -9999;
2826 AliAODMCParticle *motherv0 = (AliAODMCParticle*)mcArray->At(labv0mother);
2828 pdgmotherv0 = motherv0->GetPdgCode();
2829 if(abs(pdgmotherv0)>4000&&abs(pdgmotherv0)<4400){
2834 if(!hfv0_flag)
return;
2837 contmc[0] = mcv0part->Pt();
2838 contmc[1] = mcv0part->Eta();
2862 fCEvents =
new TH1F(
"fCEvents",
"conter",18,-0.5,17.5);
2864 fCEvents->GetXaxis()->SetBinLabel(1,
"X1");
2865 fCEvents->GetXaxis()->SetBinLabel(2,
"Analyzed events");
2866 fCEvents->GetXaxis()->SetBinLabel(3,
"AliAODVertex exists");
2867 fCEvents->GetXaxis()->SetBinLabel(4,
"TriggerOK");
2868 fCEvents->GetXaxis()->SetBinLabel(5,
"IsEventSelected");
2869 fCEvents->GetXaxis()->SetBinLabel(6,
"CascadesHF exists");
2870 fCEvents->GetXaxis()->SetBinLabel(7,
"MCarray exists");
2871 fCEvents->GetXaxis()->SetBinLabel(8,
"MCheader exists");
2872 fCEvents->GetXaxis()->SetBinLabel(9,
"triggerClass!=CINT1");
2873 fCEvents->GetXaxis()->SetBinLabel(10,
"triggerMask!=kAnyINT");
2874 fCEvents->GetXaxis()->SetBinLabel(11,
"triggerMask!=kAny");
2875 fCEvents->GetXaxis()->SetBinLabel(12,
"vtxTitle.Contains(Z)");
2876 fCEvents->GetXaxis()->SetBinLabel(13,
"vtxTitle.Contains(3D)");
2877 fCEvents->GetXaxis()->SetBinLabel(14,
"vtxTitle.Doesn'tContain(Z-3D)");
2879 fCEvents->GetXaxis()->SetBinLabel(16,
"!IsEventSelected");
2880 fCEvents->GetXaxis()->SetBinLabel(17,
"triggerMask!=kAnyINT || triggerClass!=CINT1");
2883 fCEvents->GetYaxis()->SetTitle(
"counts");
2885 fHTrigger =
new TH1F(
"fHTrigger",
"counter",18,-0.5,17.5);
2887 fHTrigger->GetXaxis()->SetBinLabel(1,
"X1");
2888 fHTrigger->GetXaxis()->SetBinLabel(2,
"kMB");
2889 fHTrigger->GetXaxis()->SetBinLabel(3,
"kSemiCentral");
2890 fHTrigger->GetXaxis()->SetBinLabel(4,
"kCentral");
2891 fHTrigger->GetXaxis()->SetBinLabel(5,
"kINT7");
2892 fHTrigger->GetXaxis()->SetBinLabel(6,
"kEMC7");
2894 fHTrigger->GetXaxis()->SetBinLabel(8,
"kMB|kSemiCentral|kCentral");
2895 fHTrigger->GetXaxis()->SetBinLabel(9,
"kINT7|kEMC7");
2896 fHTrigger->GetXaxis()->SetBinLabel(11,
"kMB&kSemiCentral");
2897 fHTrigger->GetXaxis()->SetBinLabel(12,
"kMB&kCentral");
2898 fHTrigger->GetXaxis()->SetBinLabel(13,
"kINT7&kEMC7");
2900 fHCentrality =
new TH1F(
"fHCentrality",
"conter",100,0.,100.);
2919 Int_t bins_base[3]= {10,100 ,10};
2920 Double_t xmin_base[3]={1.1,0 ,0.00};
2921 Double_t xmax_base[3]={3.1,20. ,100};
2922 fHistoEleLambdaMass =
new THnSparseF(
"fHistoEleLambdaMass",
"",3,bins_base,xmin_base,xmax_base);
2937 Int_t bins_base_elept[3]= {10,100 ,10};
2938 Double_t xmin_base_elept[3]={1.1,0 ,0.00};
2939 Double_t xmax_base_elept[3]={3.1,10. ,100};
2994 fHistoElePtRS =
new TH2F(
"fHistoElePtRS",
"",100,0,10,10,0,100);
2996 fHistoElePtWS =
new TH2F(
"fHistoElePtWS",
"",100,0.,10.,10,0,100);
3002 fHistoElePtMCS =
new TH2F(
"fHistoElePtMCS",
"",100,0,10,10,0,100);
3007 Int_t bins_eleptvseta[3]= {10,10 ,10};
3008 Double_t xmin_eleptvseta[3]={0.,-1. ,0.0};
3009 Double_t xmax_eleptvseta[3]={5.,1. ,100};
3011 fHistoElePtvsEtaRS =
new THnSparseF(
"fHistoElePtvsEtaRS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3013 fHistoElePtvsEtaWS =
new THnSparseF(
"fHistoElePtvsEtaWS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3015 fHistoElePtvsEtaRSMix =
new THnSparseF(
"fHistoElePtvsEtaRSMix",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3017 fHistoElePtvsEtaWSMix =
new THnSparseF(
"fHistoElePtvsEtaWSMix",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3019 fHistoElePtvsEtaMCS =
new THnSparseF(
"fHistoElePtvsEtaMCS",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3021 fHistoElePtvsEtaMCGen =
new THnSparseF(
"fHistoElePtvsEtaMCGen",
"",3,bins_eleptvseta,xmin_eleptvseta,xmax_eleptvseta);
3024 Int_t bins_eleptvslambdapt[3]= {10,10 ,10};
3025 Double_t xmin_eleptvslambdapt[3]={0.,0. ,0.0};
3026 Double_t xmax_eleptvslambdapt[3]={5.,5. ,100};
3028 fHistoElePtvsLambdaPtRS =
new THnSparseF(
"fHistoElePtvsLambdaPtRS",
"",3,bins_eleptvslambdapt,xmin_eleptvslambdapt,xmax_eleptvslambdapt);
3030 fHistoElePtvsLambdaPtWS =
new THnSparseF(
"fHistoElePtvsLambdaPtWS",
"",3,bins_eleptvslambdapt,xmin_eleptvslambdapt,xmax_eleptvslambdapt);
3032 fHistoElePtvsLambdaPtRSMix =
new THnSparseF(
"fHistoElePtvsLambdaPtRSMix",
"",3,bins_eleptvslambdapt,xmin_eleptvslambdapt,xmax_eleptvslambdapt);
3034 fHistoElePtvsLambdaPtWSMix =
new THnSparseF(
"fHistoElePtvsLambdaPtWSMix",
"",3,bins_eleptvslambdapt,xmin_eleptvslambdapt,xmax_eleptvslambdapt);
3036 fHistoElePtvsLambdaPtMCS =
new THnSparseF(
"fHistoElePtvsLambdaPtMCS",
"",3,bins_eleptvslambdapt,xmin_eleptvslambdapt,xmax_eleptvslambdapt);
3038 fHistoElePtvsLambdaPtMCGen =
new THnSparseF(
"fHistoElePtvsLambdaPtMCGen",
"",3,bins_eleptvslambdapt,xmin_eleptvslambdapt,xmax_eleptvslambdapt);
3040 fHistoElePtvsLambdaPtMCLcGen =
new THnSparseF(
"fHistoElePtvsLambdaPtMCLcGen",
"",3,bins_eleptvslambdapt,xmin_eleptvslambdapt,xmax_eleptvslambdapt);
3043 Int_t bins_eleptvslambdaptvslcpt[4]= {10,10,10,10};
3044 Double_t xmin_eleptvslambdaptvslcpt[4]={0.,0.,0.,0.0};
3045 Double_t xmax_eleptvslambdaptvslcpt[4]={5.,5.,10.,100};
3046 fHistoElePtvsLambdaPtvsLcPtMCS =
new THnSparseF(
"fHistoElePtvsLambdaPtvsLcPtMCS",
"",4,bins_eleptvslambdaptvslcpt,xmin_eleptvslambdaptvslcpt,xmax_eleptvslambdaptvslcpt);
3048 fHistoElePtvsLambdaPtvsLcPtMCGen =
new THnSparseF(
"fHistoElePtvsLambdaPtvsLcPtMCGen",
"",4,bins_eleptvslambdaptvslcpt,xmin_eleptvslambdaptvslcpt,xmax_eleptvslambdaptvslcpt);
3051 Int_t bins_allpt[4]= {10,10,20,20};
3052 Double_t xmin_allpt[4]={0.,0.,0.,0.0};
3053 Double_t xmax_allpt[4]={20.,20.,10.,10};
3057 Int_t bins_eleptvsd0[3]= {10 ,10 ,10};
3058 Double_t xmin_eleptvsd0[3]={0.,-0.2 ,0.0};
3059 Double_t xmax_eleptvsd0[3]={5.,0.2 ,100};
3061 fHistoElePtvsd0RS =
new THnSparseF(
"fHistoElePtvsd0RS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3063 fHistoElePtvsd0WS =
new THnSparseF(
"fHistoElePtvsd0WS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3065 fHistoElePtvsd0RSMix =
new THnSparseF(
"fHistoElePtvsd0RSMix",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3067 fHistoElePtvsd0WSMix =
new THnSparseF(
"fHistoElePtvsd0WSMix",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3069 fHistoElePtvsd0MCS =
new THnSparseF(
"fHistoElePtvsd0MCS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3071 fHistoElePtvsd0PromptMCS =
new THnSparseF(
"fHistoElePtvsd0PromptMCS",
"",3,bins_eleptvsd0,xmin_eleptvsd0,xmax_eleptvsd0);
3140 fHistoBachPt =
new TH1F(
"fHistoBachPt",
"Bachelor p_{T}",100,0.0,5.0);
3142 fHistoBachPtMCS =
new TH1F(
"fHistoBachPtMCS",
"Bachelor p_{T}",100,0.0,5.0);
3146 fHistod0Bach =
new TH1F(
"fHistod0Bach",
"Bachelor d_{0}",100,-0.5,0.5);
3148 fHistoLambdaMassvsPt=
new TH2F(
"fHistoLambdaMassvsPt",
"Lambda mass",100,1.116-0.05,1.116+0.05,20,0.,10.);
3150 fHistoLambdaMassvsPtMCS=
new TH2F(
"fHistoLambdaMassvsPtMCS",
"Lambda mass",100,1.116-0.05,1.116+0.05,20,0.,10.);
3154 fHistoK0sMassvsPt=
new TH2F(
"fHistoK0sMassvsPt",
"K0s mass",100,0.497-0.05,0.497+0.05,20,0.,10.);
3156 fHistoLambdaPtvsDl=
new TH2F(
"fHistoLambdaPtvsDl",
"Lambda pt vs dl",20,0.,10.,20,0.,40.);
3184 for(Int_t i=0;i<8;i++){
3193 Int_t bins_lcmcgen[3]= {100 ,20 ,10};
3194 Double_t xmin_lcmcgen[3]={0.,-1.0 ,0.0};
3195 Double_t xmax_lcmcgen[3]={20.,1.0 ,100};
3196 fHistoLcMCGen =
new THnSparseF(
"fHistoLcMCGen",
"",3,bins_lcmcgen,xmin_lcmcgen,xmax_lcmcgen);
3198 fHistoLcMCGen1 =
new THnSparseF(
"fHistoLcMCGen1",
"",3,bins_lcmcgen,xmin_lcmcgen,xmax_lcmcgen);
3200 fHistoLcMCGen2 =
new THnSparseF(
"fHistoLcMCGen2",
"",3,bins_lcmcgen,xmin_lcmcgen,xmax_lcmcgen);
3202 fHistoFeedDownXic0MCGen =
new THnSparseF(
"fHistoFeedDownXic0MCGen",
"",3,bins_lcmcgen,xmin_lcmcgen,xmax_lcmcgen);
3214 fHistoLcMCS =
new THnSparseF(
"fHistoLcMCS",
"",3,bins_lcmcgen,xmin_lcmcgen,xmax_lcmcgen);
3216 fHistoLcMCS1 =
new THnSparseF(
"fHistoLcMCS1",
"",3,bins_lcmcgen,xmin_lcmcgen,xmax_lcmcgen);
3218 fHistoLcMCS2 =
new THnSparseF(
"fHistoLcMCS2",
"",3,bins_lcmcgen,xmin_lcmcgen,xmax_lcmcgen);
3220 fHistoFeedDownXic0MCS =
new THnSparseF(
"fHistoFeedDownXic0MCS",
"",3,bins_lcmcgen,xmin_lcmcgen,xmax_lcmcgen);
3222 fHistoFeedDownXic0MCS1 =
new THnSparseF(
"fHistoFeedDownXic0MCS1",
"",3,bins_lcmcgen,xmin_lcmcgen,xmax_lcmcgen);
3224 fHistoFeedDownXic0MCS2 =
new THnSparseF(
"fHistoFeedDownXic0MCS2",
"",3,bins_lcmcgen,xmin_lcmcgen,xmax_lcmcgen);
3233 Int_t bins_elemcgen[3]= {100 ,20 ,10};
3234 Double_t xmin_elemcgen[3]={0.,-1.0 ,0.0};
3235 Double_t xmax_elemcgen[3]={10.,1.0 ,100};
3236 fHistoElectronMCGen =
new THnSparseF(
"fHistoElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3238 fHistoLcElectronMCGen =
new THnSparseF(
"fHistoLcElectronMCGen",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3240 fHistoLcElectronMCGen1 =
new THnSparseF(
"fHistoLcElectronMCGen1",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3242 fHistoLcElectronMCGen2 =
new THnSparseF(
"fHistoLcElectronMCGen2",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3256 fHistoLcElectronMCS =
new THnSparseF(
"fHistoLcElectronMCS",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3258 fHistoLcElectronMCS1 =
new THnSparseF(
"fHistoLcElectronMCS1",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3260 fHistoLcElectronMCS2 =
new THnSparseF(
"fHistoLcElectronMCS2",
"",3,bins_elemcgen,xmin_elemcgen,xmax_elemcgen);
3275 Int_t bins_lambdamcgen[3]= {50 ,20 ,10};
3276 Double_t xmin_lambdamcgen[3]={0.,-1.0 ,0.0};
3277 Double_t xmax_lambdamcgen[3]={10.,1.0 ,100};
3278 fHistoLambdaMCGen =
new THnSparseF(
"fHistoLambdaMCGen",
"",3,bins_lambdamcgen,xmin_lambdamcgen,xmax_lambdamcgen);
3281 Int_t bins_eleptvsv0dl[3]= {100 ,20 ,10};
3282 Double_t xmin_eleptvsv0dl[3]={0.,0. ,0.0};
3283 Double_t xmax_eleptvsv0dl[3]={10.,40. ,100};
3284 fHistoElePtvsV0dlRS =
new THnSparseF(
"fHistoElePtvsV0dlRS",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3286 fHistoElePtvsV0dlRS1 =
new THnSparseF(
"fHistoElePtvsV0dlRS1",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3288 fHistoElePtvsV0dlRS2 =
new THnSparseF(
"fHistoElePtvsV0dlRS2",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3290 fHistoElePtvsV0dlRSSide =
new THnSparseF(
"fHistoElePtvsV0dlRSSide",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3292 fHistoElePtvsV0dlRSSide1 =
new THnSparseF(
"fHistoElePtvsV0dlRSSide1",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3294 fHistoElePtvsV0dlRSSide2 =
new THnSparseF(
"fHistoElePtvsV0dlRSSide2",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3296 fHistoElePtvsV0dlRSMix =
new THnSparseF(
"fHistoElePtvsV0dlRSMix",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3298 fHistoElePtvsV0dlRSMix1 =
new THnSparseF(
"fHistoElePtvsV0dlRSMix1",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3300 fHistoElePtvsV0dlRSMix2 =
new THnSparseF(
"fHistoElePtvsV0dlRSMix2",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3302 fHistoElePtvsV0dlWS =
new THnSparseF(
"fHistoElePtvsV0dlWS",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3304 fHistoElePtvsV0dlWS1 =
new THnSparseF(
"fHistoElePtvsV0dlWS1",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3306 fHistoElePtvsV0dlWS2 =
new THnSparseF(
"fHistoElePtvsV0dlWS2",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3308 fHistoElePtvsV0dlWSSide =
new THnSparseF(
"fHistoElePtvsV0dlWSSide",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3310 fHistoElePtvsV0dlWSSide1 =
new THnSparseF(
"fHistoElePtvsV0dlWSSide1",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3312 fHistoElePtvsV0dlWSSide2 =
new THnSparseF(
"fHistoElePtvsV0dlWSSide2",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3314 fHistoElePtvsV0dlWSMix =
new THnSparseF(
"fHistoElePtvsV0dlWSMix",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3316 fHistoElePtvsV0dlWSMix1 =
new THnSparseF(
"fHistoElePtvsV0dlWSMix1",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3318 fHistoElePtvsV0dlWSMix2 =
new THnSparseF(
"fHistoElePtvsV0dlWSMix2",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3320 fHistoElePtvsV0dlMCS =
new THnSparseF(
"fHistoElePtvsV0dlMCS",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3322 fHistoElePtvsV0dlMCS1 =
new THnSparseF(
"fHistoElePtvsV0dlMCS1",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3324 fHistoElePtvsV0dlMCS2 =
new THnSparseF(
"fHistoElePtvsV0dlMCS2",
"",3,bins_eleptvsv0dl,xmin_eleptvsv0dl,xmax_eleptvsv0dl);
3339 Int_t bins_eleptvsv0dca[3]= {100 ,20 ,10};
3340 Double_t xmin_eleptvsv0dca[3]={0.,0. ,0.0};
3341 Double_t xmax_eleptvsv0dca[3]={10.,1. ,100};
3342 fHistoElePtvsV0dcaRS =
new THnSparseF(
"fHistoElePtvsV0dcaRS",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3344 fHistoElePtvsV0dcaRS1 =
new THnSparseF(
"fHistoElePtvsV0dcaRS1",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3346 fHistoElePtvsV0dcaRS2 =
new THnSparseF(
"fHistoElePtvsV0dcaRS2",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3348 fHistoElePtvsV0dcaRSSide =
new THnSparseF(
"fHistoElePtvsV0dcaRSSide",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3350 fHistoElePtvsV0dcaRSSide1 =
new THnSparseF(
"fHistoElePtvsV0dcaRSSide1",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3352 fHistoElePtvsV0dcaRSSide2 =
new THnSparseF(
"fHistoElePtvsV0dcaRSSide2",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3354 fHistoElePtvsV0dcaRSMix =
new THnSparseF(
"fHistoElePtvsV0dcaRSMix",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3356 fHistoElePtvsV0dcaRSMix1 =
new THnSparseF(
"fHistoElePtvsV0dcaRSMix1",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3358 fHistoElePtvsV0dcaRSMix2 =
new THnSparseF(
"fHistoElePtvsV0dcaRSMix2",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3360 fHistoElePtvsV0dcaWS =
new THnSparseF(
"fHistoElePtvsV0dcaWS",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3362 fHistoElePtvsV0dcaWS1 =
new THnSparseF(
"fHistoElePtvsV0dcaWS1",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3364 fHistoElePtvsV0dcaWS2 =
new THnSparseF(
"fHistoElePtvsV0dcaWS2",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3366 fHistoElePtvsV0dcaWSSide =
new THnSparseF(
"fHistoElePtvsV0dcaWSSide",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3368 fHistoElePtvsV0dcaWSSide1 =
new THnSparseF(
"fHistoElePtvsV0dcaWSSide1",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3370 fHistoElePtvsV0dcaWSSide2 =
new THnSparseF(
"fHistoElePtvsV0dcaWSSide2",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3372 fHistoElePtvsV0dcaWSMix =
new THnSparseF(
"fHistoElePtvsV0dcaWSMix",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3374 fHistoElePtvsV0dcaWSMix1 =
new THnSparseF(
"fHistoElePtvsV0dcaWSMix1",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3376 fHistoElePtvsV0dcaWSMix2 =
new THnSparseF(
"fHistoElePtvsV0dcaWSMix2",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3378 fHistoElePtvsV0dcaMCS =
new THnSparseF(
"fHistoElePtvsV0dcaMCS",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3380 fHistoElePtvsV0dcaMCS1 =
new THnSparseF(
"fHistoElePtvsV0dcaMCS1",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3382 fHistoElePtvsV0dcaMCS2 =
new THnSparseF(
"fHistoElePtvsV0dcaMCS2",
"",3,bins_eleptvsv0dca,xmin_eleptvsv0dca,xmax_eleptvsv0dca);
3397 Int_t bins_elelamptvsv0dl[3]= {100 ,20 ,10};
3398 Double_t xmin_elelamptvsv0dl[3]={0.,0. ,0.0};
3399 Double_t xmax_elelamptvsv0dl[3]={20.,40. ,100};
3400 fHistoEleLambdaPtvsV0dlRS =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlRS",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3402 fHistoEleLambdaPtvsV0dlRS1 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlRS1",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3404 fHistoEleLambdaPtvsV0dlRS2 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlRS2",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3406 fHistoEleLambdaPtvsV0dlRSSide =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlRSSide",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3408 fHistoEleLambdaPtvsV0dlRSSide1 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlRSSide1",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3410 fHistoEleLambdaPtvsV0dlRSSide2 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlRSSide2",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3412 fHistoEleLambdaPtvsV0dlRSMix =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlRSMix",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3414 fHistoEleLambdaPtvsV0dlRSMix1 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlRSMix1",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3416 fHistoEleLambdaPtvsV0dlRSMix2 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlRSMix2",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3418 fHistoEleLambdaPtvsV0dlWS =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlWS",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3420 fHistoEleLambdaPtvsV0dlWS1 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlWS1",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3422 fHistoEleLambdaPtvsV0dlWS2 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlWS2",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3424 fHistoEleLambdaPtvsV0dlWSSide =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlWSSide",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3426 fHistoEleLambdaPtvsV0dlWSSide1 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlWSSide1",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3428 fHistoEleLambdaPtvsV0dlWSSide2 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlWSSide2",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3430 fHistoEleLambdaPtvsV0dlWSMix =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlWSMix",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3432 fHistoEleLambdaPtvsV0dlWSMix1 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlWSMix1",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3434 fHistoEleLambdaPtvsV0dlWSMix2 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlWSMix2",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3436 fHistoEleLambdaPtvsV0dlMCS =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlMCS",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3438 fHistoEleLambdaPtvsV0dlMCS1 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlMCS1",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3440 fHistoEleLambdaPtvsV0dlMCS2 =
new THnSparseF(
"fHistoEleLambdaPtvsV0dlMCS2",
"",3,bins_elelamptvsv0dl,xmin_elelamptvsv0dl,xmax_elelamptvsv0dl);
3489 for(Int_t ih=0;ih<17;ih++){
3490 Int_t bins_eleptvscutvars[3];
3491 Double_t xmin_eleptvscutvars[3];
3492 Double_t xmax_eleptvscutvars[3];
3494 bins_eleptvscutvars[0] = 50;
3495 xmin_eleptvscutvars[0] = 0.;
3496 xmax_eleptvscutvars[0] = 5.;
3497 bins_eleptvscutvars[2] = 10;
3498 xmin_eleptvscutvars[2] = 0.;
3499 xmax_eleptvscutvars[2] = 100.;
3503 bins_eleptvscutvars[1] = 40;
3504 xmin_eleptvscutvars[1] = 0.;
3505 xmax_eleptvscutvars[1] = 160.;
3506 }
else if(ih==2 || ih==3){
3508 bins_eleptvscutvars[1] = 20;
3509 xmin_eleptvscutvars[1] = -5.;
3510 xmax_eleptvscutvars[1] = 5.;
3513 bins_eleptvscutvars[1] = 30;
3514 xmin_eleptvscutvars[1] = -1.5;
3515 xmax_eleptvscutvars[1] = 1.5;
3518 bins_eleptvscutvars[1] = 7;
3519 xmin_eleptvscutvars[1] = -0.5;
3520 xmax_eleptvscutvars[1] = 6.5;
3523 bins_eleptvscutvars[1] = 50;
3524 xmin_eleptvscutvars[1] = 1.1156-0.03;
3525 xmax_eleptvscutvars[1] = 1.1156+0.03;
3528 bins_eleptvscutvars[1] = 20;
3529 xmin_eleptvscutvars[1] = 0.;
3530 xmax_eleptvscutvars[1] = 5.;
3533 bins_eleptvscutvars[1] = 20;
3534 xmin_eleptvscutvars[1] = 0.;
3535 xmax_eleptvscutvars[1] = 2.;
3536 }
else if(ih==9 || ih==10 ){
3538 bins_eleptvscutvars[1] = 20;
3539 xmin_eleptvscutvars[1] = 0.;
3540 xmax_eleptvscutvars[1] = 0.5;
3543 bins_eleptvscutvars[1] = 20;
3544 xmin_eleptvscutvars[1] = 0.95;
3545 xmax_eleptvscutvars[1] = 1.0;
3548 bins_eleptvscutvars[1] = 50;
3549 xmin_eleptvscutvars[1] = 0.497-0.03;
3550 xmax_eleptvscutvars[1] = 0.497+0.03;
3551 }
else if(ih==13 || ih==14){
3553 bins_eleptvscutvars[1] = 20;
3554 xmin_eleptvscutvars[1] = -5;
3555 xmax_eleptvscutvars[1] = 5;
3558 bins_eleptvscutvars[1] = 30;
3559 xmin_eleptvscutvars[1] = -1.5;
3560 xmax_eleptvscutvars[1] = 1.5;
3563 bins_eleptvscutvars[1] = 20;
3564 xmin_eleptvscutvars[1] = 0.;
3565 xmax_eleptvscutvars[1] = 3.141592/2;
3568 fHistoElePtvsCutVarsRS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsRS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
3570 fHistoElePtvsCutVarsWS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsWS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
3572 fHistoElePtvsCutVarsMCS[ih] =
new THnSparseF(Form(
"fHistoElePtvsCutVarsMCS[%d]",ih),
"",3,bins_eleptvscutvars,xmin_eleptvscutvars,xmax_eleptvscutvars);
3587 if(!part)
return 0x0;
3588 if(!aod)
return 0x0;
3593 AliAODVertex *primVertexAOD;
3594 Bool_t unsetvtx = kFALSE;
3598 primVertexAOD =
fVtx1;
3603 primVertexAOD =
fVtx1;
3605 if(!primVertexAOD)
return 0x0;
3606 Double_t posprim[3]; primVertexAOD->GetXYZ(posprim);
3611 AliESDtrack *esdtrack =
new AliESDtrack((AliVTrack*)part);
3613 AliNeutralTrackParam *trackV0=NULL;
3614 const AliVTrack *trackVV0 =
dynamic_cast<const AliVTrack*
>(v0);
3615 if(trackVV0) trackV0 =
new AliNeutralTrackParam(trackVV0);
3617 Double_t xdummy, ydummy;
3618 Double_t dca = esdtrack->GetDCA(trackV0,
fBzkG,xdummy,ydummy);
3625 Double_t d0z0bach[2],covd0z0bach[3];
3626 if(sqrt(pow(secVert->GetX(),2)+pow(secVert->GetY(),2))<1.){
3627 part->PropagateToDCA(secVert,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
3628 trackV0->PropagateToDCA(secVert,
fBzkG,kVeryBig);
3630 part->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
3631 trackV0->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig);
3633 Double_t momv0_new[3]={-9999,-9999,-9999.};
3634 trackV0->GetPxPyPz(momv0_new);
3636 Double_t px[2],py[2],pz[2];
3637 px[0] = part->Px(); py[0] = part->Py(); pz[0] = part->Pz();
3638 px[1] = momv0_new[0]; py[1] = momv0_new[1]; pz[1] = momv0_new[2];
3643 Double_t d0[3],d0err[3];
3645 part->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0bach,covd0z0bach);
3647 d0err[0] = TMath::Sqrt(covd0z0bach[0]);
3649 Double_t d0z0v0[2],covd0z0v0[3];
3650 trackV0->PropagateToDCA(primVertexAOD,
fBzkG,kVeryBig,d0z0v0,covd0z0v0);
3652 d0err[1] = TMath::Sqrt(covd0z0v0[0]);
3657 Short_t
charge = part->Charge();
3661 if(unsetvtx)
delete primVertexAOD; primVertexAOD=NULL;
3662 if(esdtrack)
delete esdtrack;
3663 if(trackV0)
delete trackV0;
3667 UShort_t
id[2]={(UShort_t)part->GetID(),(UShort_t)trackV0->GetID()};
3670 theCascade->GetSecondaryVtx()->AddDaughter(part);
3671 theCascade->GetSecondaryVtx()->AddDaughter(v0);
3673 if(unsetvtx)
delete primVertexAOD; primVertexAOD=NULL;
3674 if(esdtrack)
delete esdtrack;
3675 if(trackV0)
delete trackV0;
3688 TObjArray *TrackArray =
new TObjArray(3);
3690 AliESDtrack *cptrk1 =
new AliESDtrack((AliVTrack*)trk);
3691 TrackArray->AddAt(cptrk1,0);
3693 AliESDtrack *cascptrack =
new AliESDtrack((AliVTrack*)v0->GetDaughter(0));
3694 TrackArray->AddAt(cascptrack,1);
3695 AliESDtrack *cascntrack =
new AliESDtrack((AliVTrack*)v0->GetDaughter(1));
3696 TrackArray->AddAt(cascntrack,2);
3700 for(Int_t i=0;i<3;i++)
3702 AliESDtrack *tesd = (AliESDtrack*)TrackArray->UncheckedAt(i);
3705 TrackArray->Clear();
3720 Bool_t fRecoPrimVtxSkippingTrks = kTRUE;
3721 Bool_t fRmTrksFromPrimVtx = kFALSE;
3723 AliESDVertex *vertexESD = 0;
3724 AliAODVertex *vertexAOD = 0;
3729 if(!fRecoPrimVtxSkippingTrks && !fRmTrksFromPrimVtx) {
3732 vertexESD =
new AliESDVertex(*
fV1);
3737 Int_t nTrks = trkArray->GetEntriesFast();
3738 AliVertexerTracks *vertexer =
new AliVertexerTracks(event->GetMagneticField());
3740 if(fRecoPrimVtxSkippingTrks) {
3743 if(strstr(
fV1->GetTitle(),
"VertexerTracksWithConstraint")) {
3744 Float_t diamondcovxy[3];
3745 event->GetDiamondCovXY(diamondcovxy);
3746 Double_t pos[3]={
event->GetDiamondX(),
event->GetDiamondY(),0.};
3747 Double_t cov[6]={diamondcovxy[0],diamondcovxy[1],diamondcovxy[2],0.,0.,10.*10.};
3748 AliESDVertex *diamond =
new AliESDVertex(pos,cov,1.,1);
3749 vertexer->SetVtxStart(diamond);
3750 delete diamond; diamond=NULL;
3751 if(strstr(
fV1->GetTitle(),
"VertexerTracksWithConstraintOnlyFitter"))
3752 vertexer->SetOnlyFitter();
3754 Int_t skipped[1000];
3755 Int_t nTrksToSkip=0,id;
3756 AliExternalTrackParam *t = 0;
3757 for(Int_t i=0; i<nTrks; i++) {
3758 t = (AliExternalTrackParam*)trkArray->UncheckedAt(i);
3759 id = (Int_t)t->GetID();
3761 skipped[nTrksToSkip++] = id;
3765 Double_t covtest[21];
3766 for(Int_t j=0; j<
event->GetNumberOfTracks(); j++) {
3767 AliVTrack *vtrack = (AliVTrack*)event->GetTrack(j);
3768 if(!vtrack->GetCovarianceXYZPxPyPz(covtest)) {
3769 id = (Int_t)vtrack->GetID();
3771 skipped[nTrksToSkip++] = id;
3774 for(Int_t ijk=nTrksToSkip; ijk<1000; ijk++) skipped[ijk]=-1;
3776 vertexer->SetSkipTracks(nTrksToSkip,skipped);
3777 vertexESD = (AliESDVertex*)vertexer->FindPrimaryVertex(event);
3779 }
else if(fRmTrksFromPrimVtx && nTrks>0) {
3782 TObjArray rmArray(nTrks);
3783 UShort_t *rmId =
new UShort_t[nTrks];
3784 AliESDtrack *esdTrack = 0;
3786 for(Int_t i=0; i<nTrks; i++) {
3787 t = (AliESDtrack*)trkArray->UncheckedAt(i);
3788 esdTrack =
new AliESDtrack(*t);
3789 rmArray.AddLast(esdTrack);
3790 if(esdTrack->GetID()>=0) {
3791 rmId[i]=(UShort_t)esdTrack->GetID();
3796 Float_t diamondxy[2]={
static_cast<Float_t
>(
event->GetDiamondX()),static_cast<Float_t>(event->GetDiamondY())};
3797 vertexESD = vertexer->RemoveTracksFromVertex(
fV1,&rmArray,rmId,diamondxy);
3798 delete [] rmId; rmId=NULL;
3803 delete vertexer; vertexer=NULL;
3804 if(!vertexESD)
return vertexAOD;
3805 if(vertexESD->GetNContributors()<=0) {
3807 delete vertexESD; vertexESD=NULL;
3815 Double_t pos[3],cov[6],chi2perNDF;
3816 vertexESD->GetXYZ(pos);
3817 vertexESD->GetCovMatrix(cov);
3818 chi2perNDF = vertexESD->GetChi2toNDF();
3819 delete vertexESD; vertexESD=NULL;
3821 vertexAOD =
new AliAODVertex(pos,cov,chi2perNDF);
3834 AliAODVertex *primVertexAOD;
3835 Bool_t unsetvtx = kFALSE;
3839 primVertexAOD =
fVtx1;
3844 primVertexAOD =
fVtx1;
3846 if(!primVertexAOD)
return 0x0;
3848 AliESDVertex * vertexESD =
new AliESDVertex(*
fV1);
3850 Double_t pos[3],cov[6],chi2perNDF;
3851 vertexESD->GetXYZ(pos);
3852 vertexESD->GetCovMatrix(cov);
3853 chi2perNDF = vertexESD->GetChi2toNDF();
3854 delete vertexESD; vertexESD=NULL;
3856 AliAODVertex *secVert =
new AliAODVertex(pos,cov,chi2perNDF);
3866 for(Int_t i=0;i<100;i++){
3867 pdgarray_ele[i] = -9999;
3868 labelarray_ele[i] = -9999;
3869 pdgarray_v0[i] = -9999;
3870 labelarray_v0[i] = -9999;
3875 AliVTrack *trk =
dynamic_cast<AliVTrack*
>(elobj->
GetBachelor());
3877 Int_t labEle = trk->GetLabel();
3878 if(labEle<0)
return -1;
3879 AliAODMCParticle *mcetrk = (AliAODMCParticle*)mcArray->At(labEle);
3880 if(!mcetrk)
return -1;
3881 labelarray_ele[0] = labEle;
3882 pdgarray_ele[0] = mcetrk->GetPdgCode();
3885 AliAODMCParticle *mcprimele=0;
3887 while(mcprimele->GetMother()>=0) {
3888 Int_t labprim_ele=mcprimele->GetMother();
3889 AliAODMCParticle *tmcprimele = (AliAODMCParticle*)mcArray->At(labprim_ele);
3894 mcprimele = tmcprimele;
3895 pdgarray_ele[ngen_ele] = mcprimele->GetPdgCode();
3896 labelarray_ele[ngen_ele] = labprim_ele;
3898 if(ngen_ele==100)
break;
3901 AliAODv0 *theV0 =
dynamic_cast<AliAODv0*
>(elobj->
Getv0());
3902 if(!theV0)
return -1;
3903 Int_t pdgdgv0[2]={2212,211};
3904 Int_t labV0 = theV0->MatchToMC(3122,mcArray,2,pdgdgv0);
3905 if(labV0<0)
return -1;
3906 AliAODMCParticle *mcv0 = (AliAODMCParticle*)mcArray->At(labV0);
3907 if(!mcv0)
return -1;
3908 labelarray_v0[0] = labV0;
3909 pdgarray_v0[0] = mcv0->GetPdgCode();
3912 AliAODMCParticle *mcprimv0=0;
3914 while(mcprimv0->GetMother()>=0) {
3915 Int_t labprim_v0=mcprimv0->GetMother();
3916 AliAODMCParticle *tmcprimv0 = (AliAODMCParticle*)mcArray->At(labprim_v0);
3921 mcprimv0 = tmcprimv0;
3922 pdgarray_v0[ngen_v0] = mcprimv0->GetPdgCode();
3923 labelarray_v0[ngen_v0] = labprim_v0;
3925 if(ngen_v0==100)
break;
3928 Bool_t same_flag = kFALSE;
3929 Int_t matchedlabel=-9999;
3930 for(Int_t iemc=0;iemc<ngen_ele;iemc++){
3931 for(Int_t ivmc=0;ivmc<ngen_v0;ivmc++){
3932 if(labelarray_ele[iemc]==labelarray_v0[ivmc]){
3934 matchedlabel = labelarray_ele[iemc];
3938 if(same_flag)
break;
3941 return matchedlabel;
3951 if(trkEntries==0)
return;
3954 for(Int_t i=0; i<trkEntries; i++) {
3955 seleFlags[i] = kFALSE;
3958 track = (AliVTrack*)event->GetTrack(i);
3960 if(track->GetID()<0)
continue;
3961 Double_t covtest[21];
3962 if(!track->GetCovarianceXYZPxPyPz(covtest))
continue;
3964 AliAODTrack *aodt = (AliAODTrack*)track;
3965 Double_t nsigma_tpcele = -9999;
3966 Double_t nsigma_tofele = -9999;
3976 if(fabs(nsigma_tofele)<3.){
3978 Double_t eleeta = aodt->Eta();
3979 if(fabs(eleeta)<0.6)
3981 if(fabs(eleeta)>0.6 && fabs(eleeta)<0.8)
3983 if(eleeta>-0.8 && eleeta<-0.6){
3985 }
else if(eleeta>-0.6&&eleeta<-0.4){
3987 }
else if(eleeta>-0.4&&eleeta<-0.2){
3989 }
else if(eleeta>-0.2&&eleeta<0.0){
3991 }
else if(eleeta>0.0&&eleeta<0.2){
3993 }
else if(eleeta>0.2&&eleeta<0.4){
3995 }
else if(eleeta>0.4&&eleeta<0.6){
3997 }
else if(eleeta>0.6&&eleeta<0.8){
4020 for(Int_t iv0=0;iv0<nV0s;iv0++)
4022 seleV0Flags[iv0] = kFALSE;
4023 AliAODv0 *v0 = ((AliAODEvent*)event)->GetV0(iv0);
4027 seleV0Flags[iv0] = kTRUE;
4041 if(theBinZ<0 || theBinZ>=
fNzVtxBins)
return -1;
4043 if(theBinM<0 || theBinM>=
fNCentBins)
return -1;
4051 if(poolIndex<0 || poolIndex>=
fNOfPools)
return;
4053 fEventBuffer[poolIndex]=
new TTree(Form(
"EventBuffer_%d",poolIndex),
"Temporary buffer for event mixing");
4080 TObjArray* v1array=0x0;
4081 TObjArray* v2array=0x0;
4082 std::vector<Double_t>* vdl1array=0x0;
4083 std::vector<Double_t>* vdl2array=0x0;
4084 std::vector<Double_t>* vdca1array=0x0;
4085 std::vector<Double_t>* vdca2array=0x0;
4086 Float_t zVertex,cent;
4087 TObjString* eventInfo=0x0;
4088 fEventBuffer[poolIndex]->SetBranchAddress(
"eventInfo",&eventInfo);
4089 fEventBuffer[poolIndex]->SetBranchAddress(
"zVertex", &zVertex);
4090 fEventBuffer[poolIndex]->SetBranchAddress(
"centrality", ¢);
4091 fEventBuffer[poolIndex]->SetBranchAddress(
"v1array", &v1array);
4092 fEventBuffer[poolIndex]->SetBranchAddress(
"v2array", &v2array);
4093 fEventBuffer[poolIndex]->SetBranchAddress(
"vdl1array", &vdl1array);
4094 fEventBuffer[poolIndex]->SetBranchAddress(
"vdl2array", &vdl2array);
4095 fEventBuffer[poolIndex]->SetBranchAddress(
"vdca1array", &vdca1array);
4096 fEventBuffer[poolIndex]->SetBranchAddress(
"vdca2array", &vdca2array);
4097 for (Int_t i=0; i<nEle; i++)
4103 fEventBuffer[poolIndex]->GetEvent(iEv + nEvents - fNumberOfEventsForMixing);
4106 Int_t nV01=v1array->GetEntries();
4107 Int_t nV01_test=vdl1array->size();
4108 if(nV01 != nV01_test){
4109 cout<<
"Something is wrong"<<endl;
4112 for(Int_t iTr1=0; iTr1<nV01; iTr1++){
4113 TLorentzVector* v01=(TLorentzVector*)v1array->At(iTr1);
4115 Double_t v0info1[2];
4116 v0info1[0] = vdl1array->at(iTr1);
4117 v0info1[1] = vdca1array->at(iTr1);
4122 Int_t nV02=v2array->GetEntries();
4123 Int_t nV02_test=vdl2array->size();
4124 if(nV02 != nV02_test){
4125 cout<<
"Something is wrong"<<endl;
4128 for(Int_t iTr2=0; iTr2<nV02; iTr2++){
4129 TLorentzVector* v02=(TLorentzVector*)v2array->At(iTr2);
4131 Double_t v0info2[2];
4132 v0info2[0] = vdl2array->at(iTr2);
4133 v0info2[1] = vdca2array->at(iTr2);
4150 Int_t nmcpart = mcArray->GetEntriesFast();
4152 Int_t mcevttype = 0;
4154 for(Int_t i=0;i<nmcpart;i++)
4156 AliAODMCParticle *mcpart = (AliAODMCParticle*) mcArray->At(i);
4157 if(TMath::Abs(mcpart->GetPdgCode())==4){
4158 if(fabs(mcpart->Y())<1.5){
4161 }
else if(mcevttype==1){
4163 }
else if(mcevttype==2){
4165 }
else if(mcevttype==3){
4170 if(TMath::Abs(mcpart->GetPdgCode())==5){
4171 if(fabs(mcpart->Y())<1.5){
4174 }
else if(mcevttype==1){
4176 }
else if(mcevttype==2){
4178 }
else if(mcevttype==3){
4186 if(mcevttype==2)
return kFALSE;
4187 if(( (mcevttype==0) || (mcevttype==3) ) &&
gRandom->Rndm()<0.5)
return kFALSE;
4188 if(mcevttype==3 &&
gRandom->Rndm()<0.5)
return kFALSE;
4190 if(mcevttype==1)
return kFALSE;
4191 if(( (mcevttype==0) || (mcevttype==3) ) &&
gRandom->Rndm()<0.5)
return kFALSE;
4195 for(Int_t i=0;i<nmcpart;i++)
4197 AliAODMCParticle *mcpart = (AliAODMCParticle*) mcArray->At(i);
4198 if(TMath::Abs(mcpart->GetPdgCode())==4122){
4200 Bool_t e_flag = kFALSE;
4201 Bool_t lam_flag = kFALSE;
4202 AliAODMCParticle *mcepart = 0;
4203 AliAODMCParticle *mcv0part = 0;
4204 for(Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4207 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4208 if(!mcdau)
continue;
4209 if(TMath::Abs(mcdau->GetPdgCode())==11){
4213 if(TMath::Abs(mcdau->GetPdgCode())==3122){
4219 Int_t decaytype = -9999;
4220 if(e_flag && lam_flag) decaytype = 0;
4224 if(TMath::Abs(mcpart->GetPdgCode())==4132){
4226 Bool_t e_flag = kFALSE;
4227 Bool_t xi_flag = kFALSE;
4228 Bool_t lam_flag = kFALSE;
4229 AliAODMCParticle *mcepart = 0;
4230 AliAODMCParticle *mccascpart = 0;
4231 AliAODMCParticle *mcv0part = 0;
4232 for(Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4235 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4236 if(!mcdau)
continue;
4237 if(TMath::Abs(mcdau->GetPdgCode())==11){
4241 if(TMath::Abs(mcdau->GetPdgCode())==3312){
4244 for(Int_t idauxi=mccascpart->GetFirstDaughter();idauxi<mccascpart->GetLastDaughter()+1;idauxi++)
4247 AliAODMCParticle *mcdauxi = (AliAODMCParticle*) mcArray->At(idauxi);
4248 if(!mcdauxi)
continue;
4249 if(TMath::Abs(mcdauxi->GetPdgCode())==3122){
4256 Int_t decaytype = -9999;
4257 if(e_flag && xi_flag && lam_flag) decaytype = 1;
4261 if(TMath::Abs(mcpart->GetPdgCode())==4232){
4263 Bool_t e_flag = kFALSE;
4264 Bool_t xi_flag = kFALSE;
4265 Bool_t lam_flag = kFALSE;
4266 AliAODMCParticle *mcepart = 0;
4267 AliAODMCParticle *mccascpart = 0;
4268 AliAODMCParticle *mcv0part = 0;
4269 for(Int_t idau=mcpart->GetFirstDaughter();idau<mcpart->GetLastDaughter()+1;idau++)
4272 AliAODMCParticle *mcdau = (AliAODMCParticle*) mcArray->At(idau);
4273 if(!mcdau)
continue;
4274 if(TMath::Abs(mcdau->GetPdgCode())==11){
4278 if(TMath::Abs(mcdau->GetPdgCode())==3322){
4281 for(Int_t idauxi=mccascpart->GetFirstDaughter();idauxi<mccascpart->GetLastDaughter()+1;idauxi++)
4284 AliAODMCParticle *mcdauxi = (AliAODMCParticle*) mcArray->At(idauxi);
4285 if(!mcdauxi)
continue;
4286 if(TMath::Abs(mcdauxi->GetPdgCode())==3122){
4293 Int_t decaytype = -9999;
4294 if(e_flag && xi_flag && lam_flag) decaytype = 2;
4299 if(TMath::Abs(mcpart->GetPdgCode())==11 && mcpart->GetStatus()==1){
4302 esdcuts->GetEtaRange(etamin,etamax);
4303 if(fabs(mcpart->Eta())<etamax){
4308 if(TMath::Abs(mcpart->GetPdgCode())==3122){
4313 if((fabs(mcpart->Y())<rapmax) && (fabs(mcpart->Eta())<etamax)){
THnSparse * fHistoEleLambdaMassvsElePtFeeddownXic0MCGen2
! EFficiency calculation numerator
THnSparse * fHistoElePtvsd0WS
! e pt-d0 spectra (wrong-sign)
Bool_t SingleV0Cuts(AliAODv0 *v0, AliAODVertex *vert)
THnSparse * fHistoEleLambdaMassvsElePtRSMix1
! e-Lambda mass vs elept spectra right sign (mixed event)
THnSparse * fHistoEleLambdaMassMCGen
! EFficiency calculation denominator
THnSparse * fHistoLcMCS2
! Lc in mcArray
THnSparse * fHistoEleLambdaPtvsV0dlRS2
! Feeddown subtraction using Lambda vertex distribution
Int_t fMCEventType
EvNumber counter.
THnSparse * fHistoEleLambdaMassvsElePtRSMix
! e-Lambda mass vs elept spectra right sign (mixed event)
void FillV0ROOTObjects(AliAODv0 *v0, TClonesArray *mcArray)
void DefineGeneralHistograms()
TH2F * fHistoElectronTOFSelPID
! TOF electron PID after selection
THnSparse * fHistoElePtvsV0dlFeedDownXic0MCS1
! Feeddown subtraction using Lambda vertex distribution
TH2F * fHistoElePtRSMix
! e spectra right sign (mixed event)
ClassImp(AliAnalysisTaskTriggerRates) AliAnalysisTaskTriggerRates
Bool_t fIsMB
Reconstruct primary vertex excluding candidate tracks.
THnSparse * fHistoEleLambdaPtvsV0dlWSMix1
! Feeddown subtraction using Lambda vertex distribution
TObjArray * fElectronTracks
unique event id for mixed event check
THnSparse * fHistoElePtvsV0dlWSSide
! Feeddown subtraction using Lambda vertex distribution
TH2F * fHistoElectronTOFPID
! TOF electron PID
virtual void UserCreateOutputObjects()
Implementation of interface methods.
THnSparse * fHistoElePtvsLambdaPtRSMix
! e-Xi spectra (right-sign, mix)
THnSparse * fHistoElePtvsLambdaPtMCGen
! e-Xi spectra efficiency denominator
THnSparse * fHistoElectronFeedDownXic0MCS2
! Xic0 in mcArray
THnSparse * fHistoElectronFeedDownXicPlusMCGen
! XicPlus in mcArray
THnSparse * fHistoEleLambdaMassvsElePtWS2
! e-Lambda mass vs elept spectra wrong sign
THnSparse * fHistoLcMCGen1
! Lc in mcArray
THnSparse * fHistoElePtvsV0dcaMCS
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoLcMCS1
! Lc in mcArray
THnSparse * fHistoElePtvsV0dlWS1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsV0dlWSSide2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoFeedDownXic0MCGen1
! Xic0 in mcArray
THnSparse * fHistoEleLambdaMassvsElePtFeeddownXicPlusMCS
! EFficiency calculation numerator
TTree * fVariablesTree
flag to decide whether to write the candidate variables on a tree variables
TObjArray * fV0Tracks2
array of lambda-compatible tracks
THnSparse * fHistoLcPtvseleLambdaPtvsElePtvsLambdaPt
! pT correlation
THnSparse * fHistoEleLambdaMassvsElePtFeeddownXicPlusMCGen
! EFficiency calculation numerator
TH2F * fHistoElectronTPCPIDSelTOFSmallEta
! TPC electron PID after TOF 3 sigma cut (|eta|<0.6)
THnSparse * fHistoElePtvsV0dlRSSide
! Feeddown subtraction using Lambda vertex distribution
TH2F * fHistoElePtWS
! e spectra wrong sign
THnSparse * fHistoEleLambdaMassRSMix
! e-Lambda mass spectra right sign (mixed event)
THnSparse * fHistoEleLambdaPtvsV0dlRSMix
! Feeddown subtraction using Lambda vertex distribution
Int_t fNzVtxBins
maximum number of events to be used in event mixing
TH2D * fHistoResponseElePt
! Response function electron pT <- True ept
TH2D * fHistoResponseEleLambdaPtFeeddownXic01
! Response function e-Lambda pT <- XicPt
Float_t fVtxZ
primary vertex
THnSparse * fHistoElePtvsV0dlMCS
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsLambdaPtRS
! e-Xi spectra (right-sign)
THnSparse * fHistoEleLambdaMassvsElePtWSMix1
! e-Lambda mass vs elept spectra wrong sign (mixed event)
void DefineAnalysisHistograms()
THnSparse * fHistoElePtvsV0dcaFeedDownXic0MCS2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaPtvsV0dlFeedDownXic0MCS1
! Feeddown subtraction using Lambda vertex distribution
Int_t fNumberOfEventsForMixing
flag for event mixing
THnSparse * fHistoElePtvsV0dcaWSMix2
! Feeddown subtraction using Lambda vertex distribution
Bool_t IsPeakRegion(AliAODv0 *c)
THnSparse * fHistoEleLambdaMassvsElePtRSMix2
! e-Lambda mass vs elept spectra right sign (mixed event)
TTree * fMCVariablesTree
! tree of the candidate variables after track selection on output slot 4
TH2F * fHistoLambdaMassvsPt
! Lambda mass vs pt histogram
Bool_t fUseCentralityV0M
Stores trigger information.
THnSparse * fHistoEleLambdaPtvsV0dlRS1
! Feeddown subtraction using Lambda vertex distribution
Float_t * fCandidateMCEleVariables
! variables to be written to the tree
void FillMCROOTObjects(AliAODMCParticle *part, AliAODMCParticle *mcepart, AliAODMCParticle *mcv0part, Int_t decaytype)
void UnsetOwnPrimaryVtx()
THnSparse * fHistoLcElectronMCS
! Lc in mcArray
THnSparse * fHistoElePtvsV0dcaFeedDownXic0MCS1
! Feeddown subtraction using Lambda vertex distribution
void FillMixROOTObjects(TLorentzVector *et, TLorentzVector *ev, Double_t *v0info, Int_t charge)
THnSparse * fHistoElectronFeedDownXicPlusMCS2
! XicPlus in mcArray
THnSparse * fHistoEleLambdaPtvsV0dlMCS1
! Feeddown subtraction using Lambda vertex distribution
void FillMCV0ROOTObjects(AliAODMCParticle *mcv0part, TClonesArray *mcArray)
THnSparse * fHistoFeedDownXicPlusMCGen1
! XicPlus in mcArray
TH2D * fHistoResponseElePt1
! Response function electron pT <- True ept
THnSparse * fHistoFeedDownXic0MCS
! Xic0 in mcArray
THnSparse * fHistoFeedDownXicPlusMCS2
! XicPlus in mcArray
THnSparse * fHistoElePtvsd0RSMix
! e pt-d0 spectra (right-sign, mix)
THnSparse * fHistoElePtvsV0dlFeedDownXicPlusMCS
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaPtvsV0dlMCS
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsV0dlFeedDownXicPlusMCS1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaMassvsElePtRSSide1
! e-Lambda mass vs elept spectra right sign (mixed event)
TList * fOutputAll
! User Output slot 3 //analysis histograms
THnSparse * fHistoElePtvsV0dcaRS
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoFeedDownXic0MCGen
! Xic0 in mcArray
TH2D * fHistoResponseEleLambdaPtFeeddownXicPlus
! Response function e-Lambda pT <- XicPt
THnSparse * fHistoElePtvsV0dcaWS2
! Feeddown subtraction using Lambda vertex distribution
TH2F * fHistoLambdaMassvsPtMCS
! Lambda mass vs pt histogram
THnSparse * fHistoEleLambdaMassvsElePtRS
! e-Lambda mass vs elept spectra right sign
THnSparse * fHistoElePtvsV0dcaWSMix
! Feeddown subtraction using Lambda vertex distribution
TH2F * fHistoElePtFeeddownXicPlusMCS
! EFficiency calculation numerator
THnSparse * fHistoEleLambdaMassFeeddownXic0MCGen
! EFficiency calculation numerator
void DefineV0TreeVariables()
THnSparse * fHistoElePtvsV0dcaFeedDownXicPlusMCS2
! Feeddown subtraction using Lambda vertex distribution
TH2D * fHistoResponseEleLambdaPtFeeddownXic02
! Response function e-Lambda pT <- XicPt
Int_t fEvNumberCounter
Stores trigger information.
THnSparse * fHistoEleLambdaMassvsElePtRS1
! e-Lambda mass vs elept spectra right sign
TH2D * fHistoResponseElePt2
! Response function electron pT <- True ept
AliAODVertex * PrimaryVertex(const TObjArray *trkArray, AliVEvent *event)
THnSparse * fHistoElePtvsLambdaPtFeeddownXic0MCS
! e-Xi spectra efficiency numerator
THnSparse * fHistoEleLambdaMassMCS
! EFficiency calculation numerator
TH2F * fHistoElePtMCGen
! EFficiency calculation denominator
TH2F * fHistoElePtWSMix
! e spectra wrong sign (mixed event)
Bool_t fIsSemi
MB trigger event.
void FillMCEleROOTObjects(AliAODMCParticle *mcepart, TClonesArray *mcArray)
Double_t fCentBins[100]
number of centrality bins
THnSparse * fHistoEleLambdaPtvsV0dlRSSide2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsd0PromptMCS
! e pt-d0 spectra (right-sign)
THnSparse * fHistoEleLambdaMassFeeddownXicPlusMCS
! EFficiency calculation numerator
THnSparse * fHistoElePtvsV0dcaWS1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaMassvsElePtFeeddownXicPlusMCGen2
! EFficiency calculation numerator
void DefineMCV0TreeVariables()
THnSparse * fHistoFeedDownXic0MCS2
! Xic0 in mcArray
Bool_t fWriteVariableTree
flag for event selected
TH2F * fHistoLambdaPtvsDlFeeddownOmegaMCS
! Lambda pt vs decay length
Int_t GetPoolIndex(Double_t zvert, Double_t mult)
THnSparse * fHistoElePtvsV0dcaRSMix1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaPtvsV0dlFeedDownXicPlusMCS2
! Feeddown subtraction using Lambda vertex distribution
Float_t * fCandidateMCVariables
! variables to be written to the tree
TH2F * fHistoElePtMCS
! EFficiency calculation numerator
THnSparse * fHistoElePtvsLambdaPtFeeddownXic0MCGen
! e-Xi spectra efficiency numerator
TTree ** fEventBuffer
number of pools
Double_t GetMaxVtxZ() const
AliRDHFCutsLctoeleLambdafromAODtracks * fAnalCuts
TList * fOutput
Use MC info.
TH1F * fHistoMCEventType
! MC even type
THnSparse * fHistoEleLambdaPtvsV0dlWSMix2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsCutVarsWS[17]
! e pt- cut variables (Wrong-sign)
THnSparse * fHistoElePtvsLambdaPtMCS
! e-Xi spectra efficiency numerator
THnSparse * fHistoEleLambdaMassvsElePtWSSide
! e-Lambda mass vs elept spectra wrong sign (mixed event)
THnSparse * fHistoEleLambdaMassFeeddownXic0MCS
! EFficiency calculation numerator
virtual void Terminate(Option_t *option)
void DoEventMixingWithPools(Int_t index)
THnSparse * fHistoEleLambdaMassWS
! e-Lambda mass spectra wrong sign
THnSparse * fHistoElePtvsEtaRS
! e spectra (right-sign)
THnSparse * fHistoElePtvsV0dlWSMix
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoFeedDownXicPlusMCGen2
! XicPlus in mcArray
AliAODPidHF * GetPidHF() const
Bool_t fWriteMCVariableTree
flag to decide whether to write the candidate variables on a tree variables
THnSparse * fHistoElePtvsV0dlFeedDownXic0MCS2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoLcElectronMCGen2
! Lc in mcArray
THnSparse * fHistoElePtvsV0dcaRSMix2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaMassvsElePtFeeddownXic0MCS1
! EFficiency calculation numerator
THnSparse * fHistoElePtvsV0dcaWSSide2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsEtaMCGen
! e spectra efficiency denominator
void DefineEleTreeVariables()
Bool_t fIsEMC7
INT7 trigger event.
THnSparse * fHistoEleLambdaPtvsV0dlWSSide
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElectronMCGen
! electron in mcArray (only from charmed baryon)
THnSparse * fHistoElePtvsV0dlRSSide2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsd0BFeeddownMCS
! e pt-d0 spectra (right-sign)
void MakeAnalysis(AliAODEvent *aod, TClonesArray *mcArray)
THnSparse * fHistoElePtvsd0MCS
! e pt-d0 spectra (right-sign)
THnSparse * fHistoEleLambdaPtvsV0dlWS
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaMassvsElePtWSMix2
! e-Lambda mass vs elept spectra wrong sign (mixed event)
THnSparse * fHistoElePtvsV0dlRS
! Feeddown subtraction using Lambda vertex distribution
Float_t fTriggerCheck
Run Number.
void SelectTrack(const AliVEvent *event, Int_t trkEntries, Int_t &nSeleTrks, Bool_t *seleFlags, TClonesArray *mcArray)
THnSparse * fHistoElePtvsEtaRSMix
! e spectra (right-sign, mix)
THnSparse * fHistoElePtvsV0dcaRSSide
! Feeddown subtraction using Lambda vertex distribution
Bool_t fWriteEachVariableTree
flag to decide whether to write the candidate variables on a tree variables
THnSparse * fHistoLcMCGen2
! Lc in mcArray
TH2D * fHistoResponseEleLambdaPt1
! Response function e-Lambda pT <- XicPt
TH2F * fHistoElectronQovPtvsPhi
! Electron phi distribution
std::vector< Double_t > fV0dcaArray1
array of antilambda-compatible tracks' information
Float_t * fCandidateMCV0Variables
! variables to be written to the tree
TH2D * fHistoResponseEleLambdaPt
! Response function e-Lambda pT <- XicPt
THnSparse * fHistoLcMCGen
! Lc in mcArray
void ResetPool(Int_t poolIndex)
THnSparse * fHistoEleLambdaPtvsV0dlMCS2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoFeedDownXicPlusMCGen
! XicPlus in mcArray
THnSparse * fHistoEleLambdaPtvsV0dlWSMix
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoLcMCS
! Lc in mcArray
void FillElectronROOTObjects(AliAODTrack *trk, TClonesArray *mcArray)
TH1F * fCEvents
! Histogram to check selected events
TH2F * fHistoLambdaPtvsDl
! Lambda pt vs decay length
TH2F * fHistoElectronTPCPIDSelTOFLargeEta
! TPC electron PID after TOF 3 sigma cut (0.8>|eta|>0.6)
THnSparse * fHistoElePtvsV0dlWSSide1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaMassRSSide
! e-Lambda mass spectra right sign (mixed event)
THnSparse * fHistoElePtvsEtaWS
! e spectra (wrong-sign)
THnSparse * fHistoEleLambdaMassvsElePtFeeddownXic0MCGen
! EFficiency calculation numerator
Bool_t fIsCent
SemiCentral trigger event.
THnSparse * fHistoElePtvsV0dcaRSSide2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaMassvsElePtFeeddownXic0MCS2
! EFficiency calculation numerator
void DefineMCEleTreeVariables()
THnSparse * fHistoEleLambdaPtvsV0dlWS2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsV0dlRS1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsV0dlRS2
! Feeddown subtraction using Lambda vertex distribution
TH2F * fHistoElePtFeeddownXicPlusMCGen
! EFficiency calculation numerator
void GetProdV0EtaRange(Double_t &a, Double_t &b)
AliAODTrack * GetBachelor() const
THnSparse * fHistoEleLambdaMassvsElePtRSSide
! e-Lambda mass vs elept spectra right sign (mixed event)
TH2F * fHistoElePtFeeddownXic0MCGen
! EFficiency calculation numerator
void FillROOTObjects(AliAODRecoCascadeHF *elobj, AliAODv0 *v0, AliAODTrack *trk, TClonesArray *mcArray)
THnSparse * fHistoElectronFeedDownXic0MCS1
! Xic0 in mcArray
THnSparse * fHistoElePtvsV0dlMCS1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsCutVarsRS[17]
! e pt- cut variables (Right-sign)
Bool_t fIsINT7
Central trigger event.
THnSparse * fHistoElePtvsLambdaPtWSMix
! e-Xi spectra (wrong-sign, mix)
Bool_t MakeMCAnalysis(TClonesArray *mcArray)
AliESDtrackCuts * GetTrackCuts() const
std::vector< Double_t > fV0dcaArray2
array of lambda-compatible tracks' information
void SetProngIDs(Int_t nIDs, UShort_t *id)
THnSparse * fHistoEleLambdaMassvsElePtFeeddownXicPlusMCS1
! EFficiency calculation numerator
THnSparse * fHistoElePtvsV0dcaWS
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsV0dcaRS1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaMassvsElePtMCS
! EFficiency calculation numerator
Double_t fZvtxBins[100]
number of z vrtx bins
THnSparse * fHistoEleLambdaPtvsV0dlRS
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsV0dlWS2
! Feeddown subtraction using Lambda vertex distribution
TH2F * fHistoElePtFeeddownXic0MCS
! EFficiency calculation numerator
THnSparse * fHistoElePtvsd0WSMix
! e pt-d0 spectra (wrong-sign, mix)
THnSparse * fHistoEleLambdaPtvsV0dlFeedDownXicPlusMCS
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElectronFeedDownXicPlusMCGen1
! XicPlus in mcArray
AliPIDResponse * GetPidResponse() const
TH1F * fHistonLambdavsRunNumber
! nlambda vs runnumber
TTree * fMCV0VariablesTree
! tree of the candidate variables after track selection on output slot 4
TH1F * fHistod0Bach
! Bachelor d0 histogram
THnSparse * fHistoEleLambdaPtvsV0dlFeedDownXic0MCS
! Feeddown subtraction using Lambda vertex distribution
TH2F * fHistoElectronTPCPIDSelTOF
! TPC electron PID after TOF 3 sigma cut
THnSparse * fHistoEleLambdaMassFeeddownXicPlusMCGen
! EFficiency calculation numerator
THnSparse * fHistoElePtvsV0dlWSMix2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoLambdaMCGen
! Lambda in mcArray (only from charmed baryon)
Bool_t Data(TH1F *h, Double_t *rangefit, Bool_t writefit, Double_t &sgn, Double_t &errsgn, Double_t &bkg, Double_t &errbkg, Double_t &sgnf, Double_t &errsgnf, Double_t &sigmafit, Int_t &status)
TH1F * fHistonElevsRunNumber
! nele vs runnumber
Int_t MatchToMC(AliAODRecoCascadeHF *elobj, TClonesArray *mcArray, Int_t *pdgele_array, Int_t *pdgv0_array, Int_t *labelele_array, Int_t *labelv0_array, Int_t &ngen_ele, Int_t &ngen_v0)
Bool_t IsEventRejectedDuePhysicsSelection() const
THnSparse * fHistoEleLambdaMassvsElePtWSMix
! e-Lambda mass vs elept spectra wrong sign (mixed event)
THnSparse * fHistoElePtvsEtaFeeddownXicPlusMCGen
! e spectra efficiency numerator
THnSparse * fHistoElectronFeedDownXic0MCS
! Xic0 in mcArray
THnSparse * fHistoElePtvsV0dcaRSMix
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElectronFeedDownXic0MCGen1
! Xic0 in mcArray
THnSparse * fHistoElePtvsV0dlWS
! Feeddown subtraction using Lambda vertex distribution
void SetOwnPrimaryVtx(const AliAODVertex *vtx)
THnSparse * fHistoElePtvsEtaFeeddownXic0MCGen
! e spectra efficiency numerator
THnSparse * fHistoElePtvsV0dcaWSSide1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaMassvsElePtRS2
! e-Lambda mass vs elept spectra right sign
THnSparse * fHistoElePtvsV0dcaMCS1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoEleLambdaPtvsV0dlRSMix1
! Feeddown subtraction using Lambda vertex distribution
TH2D * fHistoResponseEleLambdaPtFeeddownXic0
! Response function e-Lambda pT <- XicPt
THnSparse * fHistoFeedDownXic0MCS1
! Xic0 in mcArray
TH2F * fHistoElePtRS
! e spectra right sign
THnSparse * fHistoEleLambdaMass
MC eventtype to analyze 1: ccbar 2: bbbar (rest is assigned to 1 or 2 with 50% prob) ...
AliAODPidHF * GetPidProton() const
TH2F * fHistoK0sMassvsPt
! K0s mass vs pt histogram
TTree * fMCEleVariablesTree
! tree of the candidate variables after track selection on output slot 4
THnSparse * fHistoEleLambdaMassvsElePtFeeddownXic0MCGen1
! EFficiency calculation numerator
TTree * fV0VariablesTree
! tree of the candidate variables after track selection on output slot 4
THnSparse * fHistoElePtvsLambdaPtvsLcPtMCGen
! e-Xi spectra efficiency denominator
THnSparse * fHistoEleLambdaMassWSSide
! e-Lambda mass spectra wrong sign (mixed event)
void SelectV0(const AliVEvent *event, Int_t nV0, Int_t &nSeleV0, Bool_t *seleV0Flags, TClonesArray *mcArray)
THnSparse * fHistoEleLambdaMassWSMix
! e-Lambda mass spectra wrong sign (mixed event)
THnSparse * fHistoEleLambdaPtvsV0dlFeedDownXicPlusMCS1
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoElePtvsEtaFeeddownXic0MCS
! e spectra efficiency numerator
Float_t * fCandidateEleVariables
! variables to be written to the tree
THnSparse * fHistoFeedDownXicPlusMCS1
! XicPlus in mcArray
AliNormalizationCounter * fCounter
! Counter for normalization
THnSparse * fHistoElePtvsV0dcaWSSide
! Feeddown subtraction using Lambda vertex distribution
TH1F * fHistonEvtvsRunNumber
! nevt vs runnumber
Bool_t IsEventSelected(AliVEvent *event)
THnSparse * fHistoFeedDownXicPlusMCS
! XicPlus in mcArray
THnSparse * fHistoElePtvsLambdaPtMCLcGen
! e-Xi spectra efficiency denominator
THnSparse * fHistoElectronFeedDownXicPlusMCS1
! XicPlus in mcArray
THnSparse * fHistoElePtvsEtaFeeddownXicPlusMCS
! e spectra efficiency numerator
void DefineTreeVariables()
THnSparse * fHistoElePtvsLambdaPtFeeddownXicPlusMCS
! e-Xi spectra efficiency numerator
THnSparse * fHistoElePtvsLambdaPtFeeddownXicPlusMCGen
! e-Xi spectra efficiency numerator
TH2F * fHistoLambdaQovPtvsPhi
! Lambda phi distribution
THnSparse * fHistoElePtvsV0dlMCS2
! Feeddown subtraction using Lambda vertex distribution
THnSparse * fHistoFeedDownXic0MCGen2
! Xic0 in mcArray
THnSparse * fHistoEleLambdaPtvsV0dlRSMix2
! Feeddown subtraction using Lambda vertex distribution
AliAODVertex * CallPrimaryVertex(AliAODv0 *v0, AliAODTrack *trk, AliAODEvent *evt)
Double_t GetProdV0MassTolLambdaRough()
THnSparse * fHistoElePtvsEtaMCS
! e spectra efficiency numerator
THnSparse * fHistoEleLambdaMassvsElePtWS1
! e-Lambda mass vs elept spectra wrong sign
TH1F * fHTrigger
! Histogram to check Trigger