@@ -54,7 +54,7 @@ using MyTracks = soa::Join<aod::TracksIU, aod::TracksExtra, aod::TracksCovIU,
5454 aod::pidTPCFullEl, aod::pidTPCFullMu, aod::pidTPCFullPi, aod::pidTPCFullKa, aod::pidTPCFullPr,
5555 aod::pidTOFFullEl, aod::pidTOFFullMu, aod::pidTOFFullPi, aod::pidTOFFullKa, aod::pidTOFFullPr, aod::pidTOFbeta>;
5656using MyTrack = MyTracks::iterator;
57- using MyTracksMC = soa::Join<MyTracks, aod::McTrackLabels>;
57+ using MyTracksMC = soa::Join<MyTracks, aod::McTrackLabels, aod::mcTPCTuneOnData >;
5858using MyTrackMC = MyTracksMC::iterator;
5959
6060struct skimmerPrimaryElectron {
@@ -435,7 +435,7 @@ struct skimmerPrimaryElectron {
435435 return minTPCNsigmaEl < track.tpcNSigmaEl () && track.tpcNSigmaEl () < maxTPCNsigmaEl && std::fabs (track.tofNSigmaEl ()) < maxTOFNsigmaEl;
436436 }
437437
438- template <typename TCollision, typename TTrack>
438+ template <bool isMC, typename TCollision, typename TTrack>
439439 void fillTrackTable (TCollision const & collision, TTrack const & track)
440440 {
441441 if (std::find (stored_trackIds.begin (), stored_trackIds.end (), std::pair<int , int >{collision.globalIndex (), track.globalIndex ()}) == stored_trackIds.end ()) {
@@ -455,12 +455,16 @@ struct skimmerPrimaryElectron {
455455 o2::math_utils::bringTo02Pi (phi_recalc);
456456
457457 bool isAssociatedToMPC = collision.globalIndex () == track.collisionId ();
458+ float tpcSignal = track.tpcSignal ();
459+ if constexpr (isMC) {
460+ tpcSignal = track.mcTunedTPCSignal ();
461+ }
458462
459463 emprimaryelectrons (collision.globalIndex (), track.globalIndex (), track.sign (),
460464 pt_recalc, eta_recalc, phi_recalc, dcaXY, dcaZ,
461465 track.tpcNClsFindable (), track.tpcNClsFindableMinusFound (), track.tpcNClsFindableMinusCrossedRows (), track.tpcNClsShared (),
462466 track.tpcChi2NCl (), track.tpcInnerParam (),
463- track. tpcSignal () , track.tpcNSigmaEl (), track.tpcNSigmaMu (), track.tpcNSigmaPi (), track.tpcNSigmaKa (), track.tpcNSigmaPr (),
467+ tpcSignal, track.tpcNSigmaEl (), track.tpcNSigmaMu (), track.tpcNSigmaPi (), track.tpcNSigmaKa (), track.tpcNSigmaPr (),
464468 track.beta (), track.tofNSigmaEl (), track.tofNSigmaMu (), track.tofNSigmaPi (), track.tofNSigmaKa (), track.tofNSigmaPr (),
465469 track.itsClusterSizes (), track.itsNSigmaEl (), track.itsNSigmaMu (), track.itsNSigmaPi (), track.itsNSigmaKa (), track.itsNSigmaPr (),
466470 track.itsChi2NCl (), track.tofChi2 (), track.detectorMap (),
@@ -531,7 +535,7 @@ struct skimmerPrimaryElectron {
531535 fRegistry .fill (HIST (" Track/hChi2ITS" ), track.itsChi2NCl ());
532536 fRegistry .fill (HIST (" Track/hChi2TOF" ), track.tofChi2 ());
533537 fRegistry .fill (HIST (" Track/hITSClusterMap" ), track.itsClusterMap ());
534- fRegistry .fill (HIST (" Track/hTPCdEdx" ), track.tpcInnerParam (), track. tpcSignal () );
538+ fRegistry .fill (HIST (" Track/hTPCdEdx" ), track.tpcInnerParam (), tpcSignal);
535539 fRegistry .fill (HIST (" Track/hTPCNsigmaEl" ), track.tpcInnerParam (), track.tpcNSigmaEl ());
536540 fRegistry .fill (HIST (" Track/hTPCNsigmaMu" ), track.tpcInnerParam (), track.tpcNSigmaMu ());
537541 fRegistry .fill (HIST (" Track/hTPCNsigmaPi" ), track.tpcInnerParam (), track.tpcNSigmaPi ());
@@ -583,7 +587,7 @@ struct skimmerPrimaryElectron {
583587 if (!checkTrack<false >(collision, track) || !isElectron (collision, track)) {
584588 continue ;
585589 }
586- fillTrackTable (collision, track);
590+ fillTrackTable< false > (collision, track);
587591 }
588592
589593 } // end of collision loop
@@ -614,7 +618,7 @@ struct skimmerPrimaryElectron {
614618 if (!checkTrack<false >(collision, track) || !isElectron (collision, track)) {
615619 continue ;
616620 }
617- fillTrackTable (collision, track);
621+ fillTrackTable< false > (collision, track);
618622 }
619623 } // end of collision loop
620624
@@ -645,7 +649,7 @@ struct skimmerPrimaryElectron {
645649 if (!checkTrack<false >(collision, track) || !isElectron (collision, track)) {
646650 continue ;
647651 }
648- fillTrackTable (collision, track);
652+ fillTrackTable< false > (collision, track);
649653 }
650654
651655 } // end of collision loop
@@ -679,7 +683,7 @@ struct skimmerPrimaryElectron {
679683 if (!checkTrack<false >(collision, track) || !isElectron (collision, track)) {
680684 continue ;
681685 }
682- fillTrackTable (collision, track);
686+ fillTrackTable< false > (collision, track);
683687 }
684688 } // end of collision loop
685689
@@ -714,7 +718,7 @@ struct skimmerPrimaryElectron {
714718 if (!checkTrack<true >(collision, track) || !isElectron (collision, track)) {
715719 continue ;
716720 }
717- fillTrackTable (collision, track);
721+ fillTrackTable< true > (collision, track);
718722 }
719723 } // end of collision loop
720724
@@ -747,7 +751,7 @@ struct skimmerPrimaryElectron {
747751 if (!checkTrack<true >(collision, track) || !isElectron (collision, track)) {
748752 continue ;
749753 }
750- fillTrackTable (collision, track);
754+ fillTrackTable< true > (collision, track);
751755 }
752756 } // end of collision loop
753757
0 commit comments