@@ -370,33 +370,15 @@ struct skimmerPrimaryElectron {
370370 return true ;
371371 }
372372
373- template <typename TCollision, typename TTrack>
374- bool isElectron (TCollision const & collision, TTrack const & track)
373+ template <typename TTrack>
374+ bool isElectron (TTrack const & track)
375375 {
376376 if (includeITSsa && (track.hasITS () && !track.hasTPC () && !track.hasTRD () && !track.hasTOF ())) {
377377 return true ;
378378 }
379379
380380 if (usePIDML) {
381- if (track.tpcNSigmaEl () < minTPCNsigmaEl || maxTPCNsigmaEl < track.tpcNSigmaEl ()) {
382- return false ;
383- }
384- if (track.hasTOF () && (maxTOFNsigmaEl < std::fabs (track.tofNSigmaEl ()))) {
385- return false ;
386- }
387-
388- // return false;
389- o2::dataformats::DCA mDcaInfoCov ;
390- mDcaInfoCov .set (999 , 999 , 999 , 999 , 999 );
391- auto trackParCov = getTrackParCov (track);
392- trackParCov.setPID (o2::track::PID::Electron);
393- mVtx .setPos ({collision.posX (), collision.posY (), collision.posZ ()});
394- mVtx .setCov (collision.covXX (), collision.covXY (), collision.covYY (), collision.covXZ (), collision.covYZ (), collision.covZZ ());
395- o2::base::Propagator::Instance ()->propagateToDCABxByBz (mVtx , trackParCov, 2 .f , matCorr, &mDcaInfoCov );
396-
397- std::vector<float > inputFeatures = mlResponseSingleTrack.getInputFeatures (track, trackParCov, collision);
398- float binningFeature = mlResponseSingleTrack.getBinningFeature (track, trackParCov, collision);
399- return mlResponseSingleTrack.isSelectedMl (inputFeatures, binningFeature);
381+ return true ;
400382 } else {
401383 return isElectron_TPChadrej (track) || isElectron_TOFreq (track);
402384 }
@@ -457,6 +439,13 @@ struct skimmerPrimaryElectron {
457439 mcTunedTPCSignal = track.mcTunedTPCSignal ();
458440 }
459441
442+ float probaEl = 1.0 ;
443+ if (usePIDML) {
444+ std::vector<float > inputFeatures = mlResponseSingleTrack.getInputFeatures (track, trackParCov, collision);
445+ float binningFeature = mlResponseSingleTrack.getBinningFeature (track, trackParCov, collision);
446+ probaEl = mlResponseSingleTrack.isSelectedMl (inputFeatures, binningFeature);
447+ }
448+
460449 emprimaryelectrons (collision.globalIndex (), track.globalIndex (), track.sign (),
461450 pt_recalc, eta_recalc, phi_recalc,
462451 dcaXY, dcaZ, trackParCov.getSigmaY2 (), trackParCov.getSigmaZY (), trackParCov.getSigmaZ2 (),
@@ -467,7 +456,7 @@ struct skimmerPrimaryElectron {
467456 track.itsClusterSizes (),
468457 track.itsChi2NCl (), track.tofChi2 (), track.detectorMap (),
469458 // trackParCov.getTgl(),
470- isAssociatedToMPC, false , 1 . f , mcTunedTPCSignal);
459+ isAssociatedToMPC, false , probaEl , mcTunedTPCSignal);
471460
472461 emprimaryelectronscov (
473462 trackParCov.getX (),
@@ -584,7 +573,7 @@ struct skimmerPrimaryElectron {
584573
585574 auto tracks_per_coll = tracks.sliceBy (perCol, collision.globalIndex ());
586575 for (const auto & track : tracks_per_coll) {
587- if (!checkTrack<false >(collision, track) || !isElectron (collision, track)) {
576+ if (!checkTrack<false >(collision, track) || !isElectron (track)) {
588577 continue ;
589578 }
590579 fillTrackTable<false >(collision, track);
@@ -613,7 +602,7 @@ struct skimmerPrimaryElectron {
613602
614603 for (const auto & trackId : trackIdsThisCollision) {
615604 auto track = trackId.template track_as <MyTracks>();
616- if (!checkTrack<false >(collision, track) || !isElectron (collision, track)) {
605+ if (!checkTrack<false >(collision, track) || !isElectron (track)) {
617606 continue ;
618607 }
619608 fillTrackTable<false >(collision, track);
@@ -643,7 +632,7 @@ struct skimmerPrimaryElectron {
643632
644633 auto tracks_per_coll = tracks.sliceBy (perCol, collision.globalIndex ());
645634 for (const auto & track : tracks_per_coll) {
646- if (!checkTrack<false >(collision, track) || !isElectron (collision, track)) {
635+ if (!checkTrack<false >(collision, track) || !isElectron (track)) {
647636 continue ;
648637 }
649638 fillTrackTable<false >(collision, track);
@@ -675,7 +664,7 @@ struct skimmerPrimaryElectron {
675664
676665 for (const auto & trackId : trackIdsThisCollision) {
677666 auto track = trackId.template track_as <MyTracks>();
678- if (!checkTrack<false >(collision, track) || !isElectron (collision, track)) {
667+ if (!checkTrack<false >(collision, track) || !isElectron (track)) {
679668 continue ;
680669 }
681670 fillTrackTable<false >(collision, track);
@@ -709,7 +698,7 @@ struct skimmerPrimaryElectron {
709698
710699 auto tracks_per_coll = tracks.sliceBy (perCol, collision.globalIndex ());
711700 for (const auto & track : tracks_per_coll) {
712- if (!checkTrack<true >(collision, track) || !isElectron (collision, track)) {
701+ if (!checkTrack<true >(collision, track) || !isElectron (track)) {
713702 continue ;
714703 }
715704 fillTrackTable<true >(collision, track);
@@ -740,7 +729,7 @@ struct skimmerPrimaryElectron {
740729
741730 for (const auto & trackId : trackIdsThisCollision) {
742731 auto track = trackId.template track_as <MyTracksMC>();
743- if (!checkTrack<true >(collision, track) || !isElectron (collision, track)) {
732+ if (!checkTrack<true >(collision, track) || !isElectron (track)) {
744733 continue ;
745734 }
746735 fillTrackTable<true >(collision, track);
0 commit comments