@@ -555,16 +555,16 @@ struct PidDataCollectingEngine {
555555 }
556556
557557 template <o2::track::PID::ID id, typename TrackObject>
558- void fillAllSpeciesPID (uint ix, TrackObject const & track, float mom )
558+ void fillAllSpeciesPID (uint ix, TrackObject const & track, float tpcmom, float tofmom )
559559 {
560560 if (track.sign () < 0 ) {
561561 ix = 2 * ix + 1 ;
562562 } else {
563563 ix = 2 * ix;
564564 }
565565 for (uint when = 0 ; when < 2 ; ++when) {
566- fhTPCnSigmasVsP[when][ix]->Fill (mom , o2::aod::pidutils::tpcNSigma<id>(track));
567- fhTOFnSigmasVsP[when][ix]->Fill (mom , o2::aod::pidutils::tofNSigma<id>(track));
566+ fhTPCnSigmasVsP[when][ix]->Fill (tpcmom , o2::aod::pidutils::tpcNSigma<id>(track));
567+ fhTOFnSigmasVsP[when][ix]->Fill (tofmom , o2::aod::pidutils::tofNSigma<id>(track));
568568 if (track.trackacceptedid () < 0 ) {
569569 /* track not accepted */
570570 return ;
@@ -573,17 +573,17 @@ struct PidDataCollectingEngine {
573573 }
574574
575575 template <o2::track::PID::ID id, typename TrackObject>
576- void fillSpeciesPID (uint ix, TrackObject const & track, float mom )
576+ void fillSpeciesPID (uint ix, TrackObject const & track, float tpcmom, float tofmom )
577577 {
578578 if (track.sign () < 0 ) {
579579 ix = 2 * ix + 1 ;
580580 } else {
581581 ix = 2 * ix;
582582 }
583583 for (uint when = 0 ; when < 2 ; ++when) {
584- fhTPCdEdxSignalDiffVsP[when][ix]->Fill (mom , o2::aod::pidutils::tpcExpSignalDiff<id>(track));
585- fhTOFSignalDiffVsP[when][ix]->Fill (mom , o2::aod::pidutils::tofExpSignalDiff<id>(track));
586- fhTPCTOFSigmaVsP[when][ix]->Fill (mom , o2::aod::pidutils::tpcNSigma<id>(track), o2::aod::pidutils::tofNSigma<id>(track));
584+ fhTPCdEdxSignalDiffVsP[when][ix]->Fill (tpcmom , o2::aod::pidutils::tpcExpSignalDiff<id>(track));
585+ fhTOFSignalDiffVsP[when][ix]->Fill (tofmom , o2::aod::pidutils::tofExpSignalDiff<id>(track));
586+ fhTPCTOFSigmaVsP[when][ix]->Fill (tpcmom , o2::aod::pidutils::tpcNSigma<id>(track), o2::aod::pidutils::tofNSigma<id>(track));
587587 if (track.trackacceptedid () < 0 ) {
588588 /* track not accepted */
589589 return ;
@@ -592,12 +592,16 @@ struct PidDataCollectingEngine {
592592 }
593593
594594 template <typename TrackObject>
595- void fillPID (TrackObject const & track, float mom )
595+ void fillPID (TrackObject const & track, float tpcmom, float tofmom )
596596 {
597597 for (uint when = 0 ; when < 2 ; ++when) {
598- fhTPCdEdxSignalVsP[when]->Fill (mom, track.tpcSignal ());
599- fhTOFSignalVsP[when]->Fill (mom, track.beta ());
600- fhPvsTOFSqMass[when]->Fill (track.mass () * track.mass (), mom);
598+ if constexpr (framework::has_type_v<o2::aod::mcpidtpc::DeDxTunedMc, typename TrackObject::all_columns>) {
599+ fhTPCdEdxSignalVsP[when]->Fill (tpcmom, track.mcTunedTPCSignal ());
600+ } else {
601+ fhTPCdEdxSignalVsP[when]->Fill (tpcmom, track.tpcSignal ());
602+ }
603+ fhTOFSignalVsP[when]->Fill (tofmom, track.beta ());
604+ fhPvsTOFSqMass[when]->Fill (track.mass () * track.mass (), tofmom);
601605 if (track.trackacceptedid () < 0 ) {
602606 /* track not accepted */
603607 return ;
@@ -606,20 +610,20 @@ struct PidDataCollectingEngine {
606610 }
607611
608612 template <efficiencyandqatask::KindOfData kindOfData, typename TrackObject>
609- void processTrack (TrackObject const & track, float mom )
613+ void processTrack (TrackObject const & track, float tpcmom, float tofmom )
610614 {
611615 using namespace efficiencyandqatask ;
612616
613617 if constexpr (kindOfData == kReco ) {
614- fillPID (track, mom );
615- fillSpeciesPID<o2::track::PID::Pion>(0 , track, mom );
616- fillSpeciesPID<o2::track::PID::Kaon>(1 , track, mom );
617- fillSpeciesPID<o2::track::PID::Proton>(2 , track, mom );
618- fillAllSpeciesPID<o2::track::PID::Electron>(0 , track, mom );
619- fillAllSpeciesPID<o2::track::PID::Muon>(1 , track, mom );
620- fillAllSpeciesPID<o2::track::PID::Pion>(2 , track, mom );
621- fillAllSpeciesPID<o2::track::PID::Kaon>(3 , track, mom );
622- fillAllSpeciesPID<o2::track::PID::Proton>(4 , track, mom );
618+ fillPID (track, tpcmom, tofmom );
619+ fillSpeciesPID<o2::track::PID::Pion>(0 , track, tpcmom, tofmom );
620+ fillSpeciesPID<o2::track::PID::Kaon>(1 , track, tpcmom, tofmom );
621+ fillSpeciesPID<o2::track::PID::Proton>(2 , track, tpcmom, tofmom );
622+ fillAllSpeciesPID<o2::track::PID::Electron>(0 , track, tpcmom, tofmom );
623+ fillAllSpeciesPID<o2::track::PID::Muon>(1 , track, tpcmom, tofmom );
624+ fillAllSpeciesPID<o2::track::PID::Pion>(2 , track, tpcmom, tofmom );
625+ fillAllSpeciesPID<o2::track::PID::Kaon>(3 , track, tpcmom, tofmom );
626+ fillAllSpeciesPID<o2::track::PID::Proton>(4 , track, tpcmom, tofmom );
623627 }
624628 }
625629};
@@ -688,7 +692,7 @@ struct PidExtraDataCollectingEngine {
688692 }
689693
690694 template <o2::track::PID::ID id, typename TrackObject>
691- void fillAllSpeciesPID (uint ix, TrackObject const & track, float mom )
695+ void fillAllSpeciesPID (uint ix, TrackObject const & track, float tpcmom, float tofmom )
692696 {
693697 if (track.trackacceptedid () < 0 ) {
694698 /* track not accepted */
@@ -699,46 +703,54 @@ struct PidExtraDataCollectingEngine {
699703 } else {
700704 ix = 2 * ix;
701705 }
702- fhIdTPCnSigmasVsP[track.trackacceptedid ()][ix]->Fill (mom , o2::aod::pidutils::tpcNSigma<id>(track));
703- fhIdTOFnSigmasVsP[track.trackacceptedid ()][ix]->Fill (mom , o2::aod::pidutils::tofNSigma<id>(track));
706+ fhIdTPCnSigmasVsP[track.trackacceptedid ()][ix]->Fill (tpcmom , o2::aod::pidutils::tpcNSigma<id>(track));
707+ fhIdTOFnSigmasVsP[track.trackacceptedid ()][ix]->Fill (tofmom , o2::aod::pidutils::tofNSigma<id>(track));
704708 if (efficiencyandqatask::pidselector.isGlobalSpecies (track.trackacceptedid () / 2 , id)) {
705709 /* only if the species of the selected track matches the target of the number of sigmas */
706- fpIdTPCdEdxSignalVsPSigmas[track.trackacceptedid ()]->Fill (mom, track.tpcSignal (), o2::aod::pidutils::tpcNSigma<id>(track));
707- fpIdTOFSignalVsPSigmas[track.trackacceptedid ()]->Fill (mom, track.beta (), o2::aod::pidutils::tofNSigma<id>(track));
710+ if constexpr (framework::has_type_v<o2::aod::mcpidtpc::DeDxTunedMc, typename TrackObject::all_columns>) {
711+ fpIdTPCdEdxSignalVsPSigmas[track.trackacceptedid ()]->Fill (tpcmom, track.mcTunedTPCSignal (), o2::aod::pidutils::tpcNSigma<id>(track));
712+ } else {
713+ fpIdTPCdEdxSignalVsPSigmas[track.trackacceptedid ()]->Fill (tpcmom, track.tpcSignal (), o2::aod::pidutils::tpcNSigma<id>(track));
714+ }
715+ fpIdTOFSignalVsPSigmas[track.trackacceptedid ()]->Fill (tofmom, track.beta (), o2::aod::pidutils::tofNSigma<id>(track));
708716 }
709717 }
710718
711719 template <o2::track::PID::ID id, typename TrackObject>
712- void fillSpeciesPID (uint, TrackObject const &, float )
720+ void fillSpeciesPID (uint, TrackObject const &, float , float )
713721 {
714722 }
715723
716724 template <typename TrackObject>
717- void fillPID (TrackObject const & track, float mom )
725+ void fillPID (TrackObject const & track, float tpcmom, float tofmom )
718726 {
719727 if (track.trackacceptedid () < 0 ) {
720728 /* track not accepted */
721729 return ;
722730 }
723- fhIdTPCdEdxSignalVsP[track.trackacceptedid ()]->Fill (mom, track.tpcSignal ());
724- fhIdTOFSignalVsP[track.trackacceptedid ()]->Fill (mom, track.beta ());
731+ if constexpr (framework::has_type_v<o2::aod::mcpidtpc::DeDxTunedMc, typename TrackObject::all_columns>) {
732+ fhIdTPCdEdxSignalVsP[track.trackacceptedid ()]->Fill (tpcmom, track.mcTunedTPCSignal ());
733+ } else {
734+ fhIdTPCdEdxSignalVsP[track.trackacceptedid ()]->Fill (tpcmom, track.tpcSignal ());
735+ }
736+ fhIdTOFSignalVsP[track.trackacceptedid ()]->Fill (tofmom, track.beta ());
725737 }
726738
727739 template <efficiencyandqatask::KindOfData kindOfData, typename TrackObject>
728- void processTrack (TrackObject const & track, float mom )
740+ void processTrack (TrackObject const & track, float tpcmom, float tofmom )
729741 {
730742 using namespace efficiencyandqatask ;
731743
732744 if constexpr (kindOfData == kReco ) {
733- fillPID (track, mom );
734- fillSpeciesPID<o2::track::PID::Pion>(0 , track, mom );
735- fillSpeciesPID<o2::track::PID::Kaon>(1 , track, mom );
736- fillSpeciesPID<o2::track::PID::Proton>(2 , track, mom );
737- fillAllSpeciesPID<o2::track::PID::Electron>(0 , track, mom );
738- fillAllSpeciesPID<o2::track::PID::Muon>(1 , track, mom );
739- fillAllSpeciesPID<o2::track::PID::Pion>(2 , track, mom );
740- fillAllSpeciesPID<o2::track::PID::Kaon>(3 , track, mom );
741- fillAllSpeciesPID<o2::track::PID::Proton>(4 , track, mom );
745+ fillPID (track, tpcmom, tofmom );
746+ fillSpeciesPID<o2::track::PID::Pion>(0 , track, tpcmom, tofmom );
747+ fillSpeciesPID<o2::track::PID::Kaon>(1 , track, tpcmom, tofmom );
748+ fillSpeciesPID<o2::track::PID::Proton>(2 , track, tpcmom, tofmom );
749+ fillAllSpeciesPID<o2::track::PID::Electron>(0 , track, tpcmom, tofmom );
750+ fillAllSpeciesPID<o2::track::PID::Muon>(1 , track, tpcmom, tofmom );
751+ fillAllSpeciesPID<o2::track::PID::Pion>(2 , track, tpcmom, tofmom );
752+ fillAllSpeciesPID<o2::track::PID::Kaon>(3 , track, tpcmom, tofmom );
753+ fillAllSpeciesPID<o2::track::PID::Proton>(4 , track, tpcmom, tofmom );
742754 }
743755 }
744756};
@@ -973,20 +985,21 @@ struct DptDptEfficiencyAndQc {
973985 int ixDCE = getDCEindex (collision);
974986 if (!(ixDCE < 0 )) {
975987 for (auto const & track : tracks) {
976- float mom = track.p ();
988+ float tpcmom = track.p ();
989+ float tofmom = track.p ();
977990 if (useTPCInnerWallMomentum.value ) {
978991 if constexpr (!framework::has_type_v<aod::mcparticle::PdgCode, typename PassedTracks::iterator::all_columns>) {
979- mom = track.tpcInnerParam ();
992+ tpcmom = track.tpcInnerParam ();
980993 }
981994 }
982995 if constexpr (kindOfProcess == kBASIC ) {
983996 qaDataCE[ixDCE]->processTrack <kindOfData, FilteredCollisions>(collision.posZ (), track);
984997 }
985998 if constexpr (kindOfProcess == kPID ) {
986- pidDataCE[ixDCE]->processTrack <kindOfData>(track, mom );
999+ pidDataCE[ixDCE]->processTrack <kindOfData>(track, tpcmom, tofmom );
9871000 }
9881001 if constexpr (kindOfProcess == kPIDEXTRA ) {
989- pidExtraDataCE[ixDCE]->processTrack <kindOfData>(track, mom );
1002+ pidExtraDataCE[ixDCE]->processTrack <kindOfData>(track, tpcmom, tofmom );
9901003 }
9911004 }
9921005 }
0 commit comments