@@ -69,6 +69,7 @@ struct HfTaskSigmac {
6969 Configurable<bool > addMassDiffAbsLambdaCToSigmacSparse{" addMassDiffAbsLambdaCToSigmacSparse" , false , " enable the filling of |M(pkpi, piKp) - M(LambdaC)| in the Σc0,++ THnSparse" };
7070 Configurable<float > deltaMassSigmacRecoMax{" deltaMassSigmacRecoMax" , 1000 , " Maximum allowed value for Sigmac deltaMass. Conceived to reduce the output size (i.e. reject background above a certain threshold)" };
7171 Configurable<float > ptMinSc{" ptMinSc" , -1 .f , " Minimum accepted value for SigmaC-hadron pt (GeV/c)" };
72+ Configurable<bool > trackingInfo4SoftPiOnly{" trackingInfo4SoftPiOnly" , false , " Flag to enable the storage of tracking info about the soft pion only" };
7273
7374 bool isMc{};
7475 bool storeTrackProp{};
@@ -578,7 +579,13 @@ struct HfTaskSigmac {
578579 const auto & trackLcProng0 = candidateLc.template prong0_as <TRK >();
579580 const auto & trackLcProng1 = candidateLc.template prong1_as <TRK >();
580581 const auto & trackLcProng2 = candidateLc.template prong2_as <TRK >();
581- getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
582+ if (trackingInfo4SoftPiOnly) {
583+ // / soft pion info only
584+ getTrackingInfo (std::vector{trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
585+ } else {
586+ // / info from soft pion and also Lc daughters
587+ getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
588+ }
582589 }
583590 if (addSoftPiDcaToSigmacSparse) {
584591 // / dcaXY,Z of soft pion track stored
@@ -745,7 +752,13 @@ struct HfTaskSigmac {
745752 const auto & trackLcProng0 = candidateLc.template prong0_as <TRK >();
746753 const auto & trackLcProng1 = candidateLc.template prong1_as <TRK >();
747754 const auto & trackLcProng2 = candidateLc.template prong2_as <TRK >();
748- getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
755+ if (trackingInfo4SoftPiOnly) {
756+ // / soft pion info only
757+ getTrackingInfo (std::vector{trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
758+ } else {
759+ // / info from soft pion and also Lc daughters
760+ getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
761+ }
749762 }
750763 if (addSoftPiDcaToSigmacSparse) {
751764 // / dcaXY,Z of soft pion track stored
@@ -1301,7 +1314,13 @@ struct HfTaskSigmac {
13011314 const auto & trackLcProng1 = candidateLc.template prong1_as <TRK >();
13021315 const auto & trackLcProng2 = candidateLc.template prong2_as <TRK >();
13031316 const auto & trackSoftPi = candSc.template prong1_as <TRK >();
1304- getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1317+ if (trackingInfo4SoftPiOnly) {
1318+ // / soft pion info only
1319+ getTrackingInfo (std::vector{trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1320+ } else {
1321+ // / info from soft pion and also Lc daughters
1322+ getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1323+ }
13051324 }
13061325 if (addSoftPiDcaToSigmacSparse) {
13071326 // / dcaXY,Z of soft pion track stored
@@ -1470,7 +1489,13 @@ struct HfTaskSigmac {
14701489 const auto & trackLcProng1 = candidateLc.template prong1_as <TRK >();
14711490 const auto & trackLcProng2 = candidateLc.template prong2_as <TRK >();
14721491 const auto & trackSoftPi = candSc.template prong1_as <TRK >();
1473- getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1492+ if (trackingInfo4SoftPiOnly) {
1493+ // / soft pion info only
1494+ getTrackingInfo (std::vector{trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1495+ } else {
1496+ // / info from soft pion and also Lc daughters
1497+ getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1498+ }
14741499 }
14751500 if (addSoftPiDcaToSigmacSparse) {
14761501 // / dcaXY,Z of soft pion track stored
@@ -1676,7 +1701,13 @@ struct HfTaskSigmac {
16761701 const auto & trackLcProng1 = candidateLc.template prong1_as <TRK >();
16771702 const auto & trackLcProng2 = candidateLc.template prong2_as <TRK >();
16781703 const auto & trackSoftPi = candSc.template prong1_as <TRK >();
1679- getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1704+ if (trackingInfo4SoftPiOnly) {
1705+ // / soft pion info only
1706+ getTrackingInfo (std::vector{trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1707+ } else {
1708+ // / info from soft pion and also Lc daughters
1709+ getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1710+ }
16801711 }
16811712 if (addSoftPiDcaToSigmacSparse) {
16821713 // / dcaXY,Z of soft pion track stored
@@ -1843,7 +1874,13 @@ struct HfTaskSigmac {
18431874 const auto & trackLcProng1 = candidateLc.template prong1_as <TRK >();
18441875 const auto & trackLcProng2 = candidateLc.template prong2_as <TRK >();
18451876 const auto & trackSoftPi = candSc.template prong1_as <TRK >();
1846- getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1877+ if (trackingInfo4SoftPiOnly) {
1878+ // / soft pion info only
1879+ getTrackingInfo (std::vector{trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1880+ } else {
1881+ // / info from soft pion and also Lc daughters
1882+ getTrackingInfo (std::vector{trackLcProng0, trackLcProng1, trackLcProng2, trackSoftPi}, absEtaTrackMin, numItsClsMin, numTpcClsMin);
1883+ }
18471884 }
18481885 if (addSoftPiDcaToSigmacSparse) {
18491886 // / dcaXY,Z of soft pion track stored
0 commit comments