@@ -325,7 +325,10 @@ struct skimmerPrimaryElectron {
325325 trackParCov.setPID (o2::track::PID::Electron);
326326 mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
327327 mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
328- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
328+ bool isPropOK = o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
329+ if (!isPropOK) {
330+ return false ;
331+ }
329332 float dcaXY = mDcaInfoCov .getY ();
330333 float dcaZ = mDcaInfoCov .getZ ();
331334
@@ -387,8 +390,10 @@ struct skimmerPrimaryElectron {
387390 trackParCov.setPID (o2::track::PID::Electron);
388391 mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
389392 mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
390- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
391-
393+ bool isPropOK = o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
394+ if (!isPropOK) {
395+ return false ;
396+ }
392397 std::vector<float > inputFeatures = mlResponseSingleTrack.getInputFeatures (track, trackParCov, collision);
393398 float binningFeature = mlResponseSingleTrack.getBinningFeature (track, trackParCov, collision);
394399
@@ -465,7 +470,10 @@ struct skimmerPrimaryElectron {
465470 trackParCov.setPID (o2::track::PID::Electron);
466471 mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
467472 mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
468- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
473+ bool isPropOK = o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
474+ if (!isPropOK) {
475+ return ;
476+ }
469477 float dcaXY = mDcaInfoCov .getY ();
470478 float dcaZ = mDcaInfoCov .getZ ();
471479
@@ -983,7 +991,10 @@ struct prefilterPrimaryElectron {
983991 trackParCov.setPID (o2::track::PID::Electron);
984992 mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
985993 mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
986- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
994+ bool isPropOK = o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
995+ if (!isPropOK) {
996+ return false ;
997+ }
987998 float dcaXY = mDcaInfoCov .getY ();
988999 float dcaZ = mDcaInfoCov .getZ ();
9891000
@@ -1024,7 +1035,10 @@ struct prefilterPrimaryElectron {
10241035 if constexpr (loose_track_sign > 0 ) { // positive track is loose track
10251036 auto trackParCov = getTrackParCov (pos);
10261037 trackParCov.setPID (o2::track::PID::Electron);
1027- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1038+ bool isPropOK = o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1039+ if (!isPropOK) {
1040+ return false ;
1041+ }
10281042 getPxPyPz (trackParCov, pVec_recalc);
10291043
10301044 ROOT::Math::PtEtaPhiMVector v1 (ele.pt (), ele.eta (), ele.phi (), o2::constants::physics::MassElectron);
@@ -1035,7 +1049,10 @@ struct prefilterPrimaryElectron {
10351049 } else {
10361050 auto trackParCov = getTrackParCov (ele);
10371051 trackParCov.setPID (o2::track::PID::Electron);
1038- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1052+ bool isPropOK = o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1053+ if (!isPropOK) {
1054+ return false ;
1055+ }
10391056 getPxPyPz (trackParCov, pVec_recalc);
10401057
10411058 ROOT::Math::PtEtaPhiMVector v1 (trackParCov.getPt (), trackParCov.getEta (), trackParCov.getPhi (), o2::constants::physics::MassElectron);
@@ -1109,7 +1126,10 @@ struct prefilterPrimaryElectron {
11091126 trackParCov.setPID (o2::track::PID::Electron);
11101127 mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
11111128 mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
1112- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1129+ bool isPropOK = o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1130+ if (!isPropOK) {
1131+ continue ;
1132+ }
11131133 getPxPyPz (trackParCov, pVec_recalc);
11141134
11151135 for (const auto & empos : positrons_per_coll) {
@@ -1154,7 +1174,10 @@ struct prefilterPrimaryElectron {
11541174 trackParCov.setPID (o2::track::PID::Electron);
11551175 mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
11561176 mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
1157- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1177+ bool isPropOK = o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1178+ if (!isPropOK) {
1179+ continue ;
1180+ }
11581181 getPxPyPz (trackParCov, pVec_recalc);
11591182 for (const auto & emele : electrons_per_coll) {
11601183 if (emele.trackId () == pos.globalIndex ()) {
@@ -1197,7 +1220,10 @@ struct prefilterPrimaryElectron {
11971220 trackParCov.setPID (o2::track::PID::Electron);
11981221 mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
11991222 mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
1200- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1223+ bool isPropOK = o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1224+ if (!isPropOK) {
1225+ continue ;
1226+ }
12011227 getPxPyPz (trackParCov, pVec_recalc);
12021228 for (const auto & empos : positrons_per_coll) {
12031229 if (empos.trackId () == pos.globalIndex ()) {
@@ -1226,7 +1252,10 @@ struct prefilterPrimaryElectron {
12261252 trackParCov.setPID (o2::track::PID::Electron);
12271253 mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
12281254 mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
1229- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1255+ bool isPropOK = o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
1256+ if (!isPropOK) {
1257+ continue ;
1258+ }
12301259 getPxPyPz (trackParCov, pVec_recalc);
12311260
12321261 for (const auto & emele : electrons_per_coll) {
0 commit comments