@@ -428,7 +428,8 @@ struct lambdakzeroBuilder {
428
428
#endif
429
429
MY_DEBUG_MSG (isK0SfromLc, LOG (info) << " V0 builder: found K0S from Lc, posTrack --> " << labelPos << " , negTrack --> " << labelNeg);
430
430
431
- registry.fill (HIST (" hGoodIndices" ), 0.5 );
431
+ // value 0.5: any considered V0
432
+ registry.fill (HIST (" hV0Criteria" ), 0.5 );
432
433
if (isRun2) {
433
434
if (!(V0.posTrack_as <MyTracksIU>().trackType () & o2::aod::track::TPCrefit)) {
434
435
MY_DEBUG_MSG (isK0SfromLc, LOG (info) << " posTrack " << labelPos << " has no TPC refit" );
@@ -441,7 +442,8 @@ struct lambdakzeroBuilder {
441
442
continue ; // TPC refit
442
443
}
443
444
}
444
- registry.fill (HIST (" hGoodIndices" ), 1.5 );
445
+ // Passes TPC refit
446
+ registry.fill (HIST (" hV0Criteria" ), 1.5 );
445
447
if (V0.posTrack_as <MyTracksIU>().tpcNClsCrossedRows () < mincrossedrows) {
446
448
MY_DEBUG_MSG (isK0SfromLc, LOG (info) << " posTrack " << labelPos << " has " << V0.posTrack_as <MyTracksIU>().tpcNClsCrossedRows () << " crossed rows, cut at " << mincrossedrows);
447
449
v0dataLink (-1 );
@@ -452,7 +454,8 @@ struct lambdakzeroBuilder {
452
454
v0dataLink (-1 );
453
455
continue ;
454
456
}
455
- registry.fill (HIST (" hGoodIndices" ), 2.5 );
457
+ // passes crossed rows
458
+ registry.fill (HIST (" hV0Criteria" ), 2.5 );
456
459
if (fabs (V0.posTrack_as <MyTracksIU>().dcaXY ()) < dcapostopv) {
457
460
MY_DEBUG_MSG (isK0SfromLc, LOG (info) << " posTrack " << labelPos << " has dcaXY " << V0.posTrack_as <MyTracksIU>().dcaXY () << " , cut at " << dcanegtopv);
458
461
v0dataLink (-1 );
@@ -464,7 +467,8 @@ struct lambdakzeroBuilder {
464
467
continue ;
465
468
}
466
469
MY_DEBUG_MSG (isK0SfromLc, LOG (info) << " Filling good indices: posTrack --> " << labelPos << " , negTrack --> " << labelNeg);
467
- registry.fill (HIST (" hGoodIndices" ), 3.5 );
470
+ // passes DCAxy
471
+ registry.fill (HIST (" hV0Criteria" ), 3.5 );
468
472
469
473
// Candidate building part
470
474
std::array<float , 3 > pos = {0 .};
@@ -479,8 +483,6 @@ struct lambdakzeroBuilder {
479
483
480
484
MY_DEBUG_MSG (isK0SfromLc, LOG (info) << " labelPos = " << labelPos << " , labelNeg = " << labelNeg);
481
485
482
- registry.fill (HIST (" hV0Candidate" ), 0.5 );
483
-
484
486
auto pTrack = getTrackParCov (V0.posTrack_as <MyTracksIU>());
485
487
auto nTrack = getTrackParCov (V0.negTrack_as <MyTracksIU>());
486
488
@@ -490,6 +492,9 @@ struct lambdakzeroBuilder {
490
492
continue ;
491
493
}
492
494
495
+ // passes diff coll check
496
+ registry.fill (HIST (" hV0Criteria" ), 4.5 );
497
+
493
498
// Act on copies for minimization
494
499
auto pTrackCopy = o2::track::TrackParCov (pTrack);
495
500
auto nTrackCopy = o2::track::TrackParCov (nTrack);
@@ -502,6 +507,9 @@ struct lambdakzeroBuilder {
502
507
continue ;
503
508
}
504
509
510
+ // passes V0 fitter minimization successfully
511
+ registry.fill (HIST (" hV0Criteria" ), 5.5 );
512
+
505
513
double finalXpos = fitter.getTrack (0 ).getX ();
506
514
double finalXneg = fitter.getTrack (1 ).getX ();
507
515
@@ -525,6 +533,9 @@ struct lambdakzeroBuilder {
525
533
continue ;
526
534
}
527
535
536
+ // Passes step 2 of V0 fitter
537
+ registry.fill (HIST (" hV0Criteria" ), 6.5 );
538
+
528
539
pTrack.getPxPyPzGlo (pvec0);
529
540
nTrack.getPxPyPzGlo (pvec1);
530
541
@@ -542,23 +553,31 @@ struct lambdakzeroBuilder {
542
553
continue ;
543
554
}
544
555
556
+ // Passes DCA between daughters check
557
+ registry.fill (HIST (" hV0Criteria" ), 7.5 );
558
+
545
559
auto V0CosinePA = RecoDecay::cpa (array{collision.posX (), collision.posY (), collision.posZ ()}, array{pos[0 ], pos[1 ], pos[2 ]}, array{pvec0[0 ] + pvec1[0 ], pvec0[1 ] + pvec1[1 ], pvec0[2 ] + pvec1[2 ]});
546
560
if (V0CosinePA < v0cospa) {
547
561
MY_DEBUG_MSG (isK0SfromLc, LOG (info) << " posTrack --> " << labelPos << " , negTrack --> " << labelNeg << " will be skipped due to CPA cut" );
548
562
v0dataLink (-1 );
549
563
continue ;
550
564
}
551
565
566
+ // Passes CosPA check
567
+ registry.fill (HIST (" hV0Criteria" ), 8.5 );
568
+
552
569
auto V0radius = RecoDecay::sqrtSumOfSquares (pos[0 ], pos[1 ]); // probably find better name to differentiate the cut from the variable
553
570
if (V0radius < v0radius) {
554
571
MY_DEBUG_MSG (isK0SfromLc, LOG (info) << " posTrack --> " << labelPos << " , negTrack --> " << labelNeg << " will be skipped due to radius cut" );
555
572
v0dataLink (-1 );
556
573
continue ;
557
574
}
558
575
576
+ // Passes radius check
577
+ registry.fill (HIST (" hV0Criteria" ), 9.5 );
578
+
559
579
MY_DEBUG_MSG (isK0SfromLc, LOG (info) << " in builder 1, keeping K0S candidate: posTrack --> " << labelPos << " , negTrack --> " << labelNeg);
560
580
561
- registry.fill (HIST (" hV0Candidate" ), 1.5 );
562
581
v0data (
563
582
V0.posTrackId (),
564
583
V0.negTrackId (),
0 commit comments