Skip to content

Commit dc330f6

Browse files
ddobrigkalibuild
andauthored
PWGLF: Lambdakzerobuilder debug options added, better readability (AliceO2Group#4355)
* Lambdakzerobuilder debug options added * Please consider the following formatting changes (AliceO2Group#220) * Apply forceITSOnly also for K0, gamma --------- Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
1 parent d74428b commit dc330f6

1 file changed

Lines changed: 24 additions & 5 deletions

File tree

PWGLF/TableProducer/lambdakzerobuilder.cxx

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -957,6 +957,9 @@ struct lambdakzeroPreselector {
957957
// context-aware selections
958958
Configurable<bool> dPreselectOnlyBaryons{"dPreselectOnlyBaryons", false, "apply TPC dE/dx and quality only to baryon daughters"};
959959

960+
// for debugging and further tests
961+
Configurable<bool> forceITSOnlyMesons{"forceITSOnlyMesons", false, "force meson-like daughters to be ITS-only to pass Lambda/AntiLambda selections (yes/no)"};
962+
960963
// for bit-packed maps
961964
std::vector<uint16_t> selectionMask;
962965
enum v0bit { bitInteresting = 0,
@@ -995,17 +998,33 @@ struct lambdakzeroPreselector {
995998
auto lNegTrack = lV0Candidate.template negTrack_as<TTrackTo>();
996999
auto lPosTrack = lV0Candidate.template posTrack_as<TTrackTo>();
9971000

1001+
// crossed rows conditionals
1002+
bool posRowsOK = lPosTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows;
1003+
bool negRowsOK = lNegTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows;
1004+
1005+
// check track explicitly for absence of TPC
1006+
bool posITSonly = !lPosTrack.hasTPC();
1007+
bool negITSonly = !lNegTrack.hasTPC();
1008+
9981009
// No baryons in decay
999-
if (((bitcheck(maskElement, bitdEdxGamma) || bitcheck(maskElement, bitdEdxK0Short)) || passdEdx) && (lPosTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows && lNegTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows))
1010+
if (((bitcheck(maskElement, bitdEdxGamma) || bitcheck(maskElement, bitdEdxK0Short)) || passdEdx) && (posRowsOK && negRowsOK) && (!forceITSOnlyMesons || (posITSonly && negITSonly)))
10001011
bitset(maskElement, bitTrackQuality);
10011012
// With baryons in decay
1002-
if ((bitcheck(maskElement, bitdEdxLambda) || passdEdx) && (lPosTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows && (lNegTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows || dPreselectOnlyBaryons)))
1013+
if ((bitcheck(maskElement, bitdEdxLambda) || passdEdx) &&
1014+
(posRowsOK && (negRowsOK || dPreselectOnlyBaryons)) &&
1015+
(!forceITSOnlyMesons || negITSonly))
10031016
bitset(maskElement, bitTrackQuality);
1004-
if ((bitcheck(maskElement, bitdEdxAntiLambda) || passdEdx) && (lNegTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows && (lPosTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows || dPreselectOnlyBaryons)))
1017+
if ((bitcheck(maskElement, bitdEdxAntiLambda) || passdEdx) &&
1018+
(negRowsOK && (posRowsOK || dPreselectOnlyBaryons)) &&
1019+
(!forceITSOnlyMesons || posITSonly))
10051020
bitset(maskElement, bitTrackQuality);
1006-
if ((bitcheck(maskElement, bitdEdxHypertriton) || passdEdx) && (lPosTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows && (lNegTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows || dPreselectOnlyBaryons)))
1021+
if ((bitcheck(maskElement, bitdEdxHypertriton) || passdEdx) &&
1022+
(posRowsOK && (negRowsOK || dPreselectOnlyBaryons)) &&
1023+
(!forceITSOnlyMesons || negITSonly))
10071024
bitset(maskElement, bitTrackQuality);
1008-
if ((bitcheck(maskElement, bitdEdxAntiHypertriton) || passdEdx) && (lNegTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows && (lPosTrack.tpcNClsCrossedRows() >= dTPCNCrossedRows || dPreselectOnlyBaryons)))
1025+
if ((bitcheck(maskElement, bitdEdxAntiHypertriton) || passdEdx) &&
1026+
(negRowsOK && (posRowsOK || dPreselectOnlyBaryons)) &&
1027+
(!forceITSOnlyMesons || posITSonly))
10091028
bitset(maskElement, bitTrackQuality);
10101029
}
10111030
//*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*+-+*

0 commit comments

Comments
 (0)