@@ -1071,7 +1071,8 @@ struct TreeWriterTPCTOF {
10711071 } // / process
10721072 PROCESS_SWITCH (TreeWriterTPCTOF, processWithdEdxTrQAWithCorrecteddEdx, " Samples for PID with TrackQA info with corrected dEdx" , false );
10731073
1074- void processWithTrQA (Colls const & collisions, Trks const & myTracks, MyBCTable const &, aod::TracksQAVersion const & tracksQA)
1074+ template <bool IsCorrecteddEdx, typename TrksType>
1075+ void runWithTrQA (Colls const & collisions, TrksType const & myTracks, aod::TracksQAVersion const & tracksQA, Preslice<TrksType> const & perCollisionTracksType)
10751076 {
10761077 std::vector<int64_t > labelTrack2TrackQA;
10771078 labelTrack2TrackQA.clear ();
@@ -1082,8 +1083,8 @@ struct TreeWriterTPCTOF {
10821083 labelTrack2TrackQA[trackId] = trackQAIndex;
10831084 }
10841085 for (const auto & collision : collisions) {
1085- auto tracks = myTracks.sliceBy (perCollisionTracks , collision.globalIndex ());
1086- auto tracksWithITSPid = soa::Attach<Trks ,
1086+ auto tracks = myTracks.sliceBy (perCollisionTracksType , collision.globalIndex ());
1087+ auto tracksWithITSPid = soa::Attach<TrksType ,
10871088 aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaMu, aod::pidits::ITSNSigmaPi,
10881089 aod::pidits::ITSNSigmaKa, aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe,
10891090 aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe, aod::pidits::ITSNSigmaAl>(tracks);
@@ -1119,117 +1120,47 @@ struct TreeWriterTPCTOF {
11191120 }
11201121 // / Fill tree for tritons
11211122 if (trk.tpcInnerParam () < maxMomHardCutOnlyTr && trk.tpcInnerParam () <= maxMomTPCOnlyTr && std::abs (trk.tpcNSigmaTr ()) < nSigmaTPCOnlyTr && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassTriton)) {
1122- fillSkimmedTPCTOFTableWithTrkQA (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaTr (), trk.tofNSigmaTr (), trk.itsNSigmaTr (), trk.tpcExpSignalTr (trk. tpcSignal ( )), PidTriton, runnumber, dwnSmplFactor_Tr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1123+ fillSkimmedTPCTOFTableWithTrkQA<IsCorrecteddEdx> (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaTr (), trk.tofNSigmaTr (), trk.itsNSigmaTr (), trk.tpcExpSignalTr (tpcSignalGeneric<IsCorrecteddEdx>(trk )), PidTriton, runnumber, dwnSmplFactor_Tr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
11231124 } else if (trk.tpcInnerParam () < maxMomHardCutOnlyTr && trk.tpcInnerParam () > maxMomTPCOnlyTr && std::abs (trk.tofNSigmaTr ()) < nSigmaTOF_TPCTOF_Tr && std::abs (trk.tpcNSigmaTr ()) < nSigmaTPC_TPCTOF_Tr && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassTriton)) {
1124- fillSkimmedTPCTOFTableWithTrkQA (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaTr (), trk.tofNSigmaTr (), trk.itsNSigmaTr (), trk.tpcExpSignalTr (trk. tpcSignal ( )), PidTriton, runnumber, dwnSmplFactor_Tr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1125+ fillSkimmedTPCTOFTableWithTrkQA<IsCorrecteddEdx> (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaTr (), trk.tofNSigmaTr (), trk.itsNSigmaTr (), trk.tpcExpSignalTr (tpcSignalGeneric<IsCorrecteddEdx>(trk )), PidTriton, runnumber, dwnSmplFactor_Tr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
11251126 }
11261127 // / Fill tree for deuterons
11271128 if (trk.tpcInnerParam () < maxMomHardCutOnlyDe && trk.tpcInnerParam () <= maxMomTPCOnlyDe && std::abs (trk.tpcNSigmaDe ()) < nSigmaTPCOnlyDe && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassDeuteron)) {
1128- fillSkimmedTPCTOFTableWithTrkQA (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaDe (), trk.tofNSigmaDe (), trk.itsNSigmaDe (), trk.tpcExpSignalDe (trk. tpcSignal ( )), PidDeuteron, runnumber, dwnSmplFactor_De, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1129+ fillSkimmedTPCTOFTableWithTrkQA<IsCorrecteddEdx> (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaDe (), trk.tofNSigmaDe (), trk.itsNSigmaDe (), trk.tpcExpSignalDe (tpcSignalGeneric<IsCorrecteddEdx>(trk )), PidDeuteron, runnumber, dwnSmplFactor_De, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
11291130 } else if (trk.tpcInnerParam () < maxMomHardCutOnlyDe && trk.tpcInnerParam () > maxMomTPCOnlyDe && std::abs (trk.tofNSigmaDe ()) < nSigmaTOF_TPCTOF_De && std::abs (trk.tpcNSigmaDe ()) < nSigmaTPC_TPCTOF_De && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassDeuteron)) {
1130- fillSkimmedTPCTOFTableWithTrkQA (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaDe (), trk.tofNSigmaDe (), trk.itsNSigmaDe (), trk.tpcExpSignalDe (trk. tpcSignal ( )), PidDeuteron, runnumber, dwnSmplFactor_De, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1131+ fillSkimmedTPCTOFTableWithTrkQA<IsCorrecteddEdx> (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaDe (), trk.tofNSigmaDe (), trk.itsNSigmaDe (), trk.tpcExpSignalDe (tpcSignalGeneric<IsCorrecteddEdx>(trk )), PidDeuteron, runnumber, dwnSmplFactor_De, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
11311132 }
11321133 // / Fill tree for protons
11331134 if (trk.tpcInnerParam () <= maxMomTPCOnlyPr && std::abs (trk.tpcNSigmaPr ()) < nSigmaTPCOnlyPr && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassProton)) {
1134- fillSkimmedTPCTOFTableWithTrkQA (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPr (), trk.tofNSigmaPr (), trk.itsNSigmaPr (), trk.tpcExpSignalPr (trk. tpcSignal ( )), PidProton, runnumber, dwnSmplFactor_Pr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1135+ fillSkimmedTPCTOFTableWithTrkQA<IsCorrecteddEdx> (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPr (), trk.tofNSigmaPr (), trk.itsNSigmaPr (), trk.tpcExpSignalPr (tpcSignalGeneric<IsCorrecteddEdx>(trk )), PidProton, runnumber, dwnSmplFactor_Pr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
11351136 } else if (trk.tpcInnerParam () > maxMomTPCOnlyPr && std::abs (trk.tofNSigmaPr ()) < nSigmaTOF_TPCTOF_Pr && std::abs (trk.tpcNSigmaPr ()) < nSigmaTPC_TPCTOF_Pr && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassProton)) {
1136- fillSkimmedTPCTOFTableWithTrkQA (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPr (), trk.tofNSigmaPr (), trk.itsNSigmaPr (), trk.tpcExpSignalPr (trk. tpcSignal ( )), PidProton, runnumber, dwnSmplFactor_Pr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1137+ fillSkimmedTPCTOFTableWithTrkQA<IsCorrecteddEdx> (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPr (), trk.tofNSigmaPr (), trk.itsNSigmaPr (), trk.tpcExpSignalPr (tpcSignalGeneric<IsCorrecteddEdx>(trk )), PidProton, runnumber, dwnSmplFactor_Pr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
11371138 }
11381139 // / Fill tree for kaons
11391140 if (trk.tpcInnerParam () < maxMomHardCutOnlyKa && trk.tpcInnerParam () <= maxMomTPCOnlyKa && std::abs (trk.tpcNSigmaKa ()) < nSigmaTPCOnlyKa && downsampleTsalisCharged (trk.pt (), downsamplingTsalisKaons, MassKaon)) {
1140- fillSkimmedTPCTOFTableWithTrkQA (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaKa (), trk.tofNSigmaKa (), trk.itsNSigmaKa (), trk.tpcExpSignalKa (trk. tpcSignal ( )), PidKaon, runnumber, dwnSmplFactor_Ka, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1141+ fillSkimmedTPCTOFTableWithTrkQA<IsCorrecteddEdx> (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaKa (), trk.tofNSigmaKa (), trk.itsNSigmaKa (), trk.tpcExpSignalKa (tpcSignalGeneric<IsCorrecteddEdx>(trk )), PidKaon, runnumber, dwnSmplFactor_Ka, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
11411142 } else if (trk.tpcInnerParam () < maxMomHardCutOnlyKa && trk.tpcInnerParam () > maxMomTPCOnlyKa && std::abs (trk.tofNSigmaKa ()) < nSigmaTOF_TPCTOF_Ka && std::abs (trk.tpcNSigmaKa ()) < nSigmaTPC_TPCTOF_Ka && downsampleTsalisCharged (trk.pt (), downsamplingTsalisKaons, MassKaon)) {
1142- fillSkimmedTPCTOFTableWithTrkQA (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaKa (), trk.tofNSigmaKa (), trk.itsNSigmaKa (), trk.tpcExpSignalKa (trk. tpcSignal ( )), PidKaon, runnumber, dwnSmplFactor_Ka, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1143+ fillSkimmedTPCTOFTableWithTrkQA<IsCorrecteddEdx> (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaKa (), trk.tofNSigmaKa (), trk.itsNSigmaKa (), trk.tpcExpSignalKa (tpcSignalGeneric<IsCorrecteddEdx>(trk )), PidKaon, runnumber, dwnSmplFactor_Ka, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
11431144 }
11441145 // / Fill tree pions
11451146 if (trk.tpcInnerParam () <= maxMomTPCOnlyPi && std::abs (trk.tpcNSigmaPi ()) < nSigmaTPCOnlyPi && downsampleTsalisCharged (trk.pt (), downsamplingTsalisPions, MassPion)) {
1146- fillSkimmedTPCTOFTableWithTrkQA (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPi (), trk.tofNSigmaPi (), trk.itsNSigmaPi (), trk.tpcExpSignalPi (trk. tpcSignal ( )), PidPion, runnumber, dwnSmplFactor_Pi, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1147+ fillSkimmedTPCTOFTableWithTrkQA<IsCorrecteddEdx> (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPi (), trk.tofNSigmaPi (), trk.itsNSigmaPi (), trk.tpcExpSignalPi (tpcSignalGeneric<IsCorrecteddEdx>(trk )), PidPion, runnumber, dwnSmplFactor_Pi, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
11471148 } else if (trk.tpcInnerParam () > maxMomTPCOnlyPi && std::abs (trk.tofNSigmaPi ()) < nSigmaTOF_TPCTOF_Pi && std::abs (trk.tpcNSigmaPi ()) < nSigmaTPC_TPCTOF_Pi && downsampleTsalisCharged (trk.pt (), downsamplingTsalisPions, MassPion)) {
1148- fillSkimmedTPCTOFTableWithTrkQA (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPi (), trk.tofNSigmaPi (), trk.itsNSigmaPi (), trk.tpcExpSignalPi (trk. tpcSignal ( )), PidPion, runnumber, dwnSmplFactor_Pi, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1149+ fillSkimmedTPCTOFTableWithTrkQA<IsCorrecteddEdx> (trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPi (), trk.tofNSigmaPi (), trk.itsNSigmaPi (), trk.tpcExpSignalPi (tpcSignalGeneric<IsCorrecteddEdx>(trk )), PidPion, runnumber, dwnSmplFactor_Pi, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
11491150 }
11501151 } // / Loop tracks
11511152 }
1153+ }
1154+
1155+ void processWithTrQA (Colls const & collisions, Trks const & myTracks, MyBCTable const &, aod::TracksQAVersion const & tracksQA)
1156+ {
1157+ runWithTrQA<false , Trks>(collisions, myTracks, tracksQA, perCollisionTracks);
11521158 } // / process
11531159 PROCESS_SWITCH (TreeWriterTPCTOF, processWithTrQA, " Samples for PID with TrackQA info" , false );
11541160
11551161 void processWithTrQAWithCorrecteddEdx (Colls const & collisions, TrksWithDEdxCorrection const & myTracks, MyBCTable const &, aod::TracksQAVersion const & tracksQA)
11561162 {
1157- std::vector<int64_t > labelTrack2TrackQA;
1158- labelTrack2TrackQA.clear ();
1159- labelTrack2TrackQA.resize (myTracks.size (), -1 );
1160- for (const auto & trackQA : tracksQA) {
1161- int64_t trackId = trackQA.trackId ();
1162- int64_t trackQAIndex = trackQA.globalIndex ();
1163- labelTrack2TrackQA[trackId] = trackQAIndex;
1164- }
1165- for (const auto & collision : collisions) {
1166- auto tracks = myTracks.sliceBy (perCollisionTracks, collision.globalIndex ());
1167- auto tracksWithITSPid = soa::Attach<TrksWithDEdxCorrection,
1168- aod::pidits::ITSNSigmaEl, aod::pidits::ITSNSigmaMu, aod::pidits::ITSNSigmaPi,
1169- aod::pidits::ITSNSigmaKa, aod::pidits::ITSNSigmaPr, aod::pidits::ITSNSigmaDe,
1170- aod::pidits::ITSNSigmaTr, aod::pidits::ITSNSigmaHe, aod::pidits::ITSNSigmaAl>(tracks);
1171- // / Check event selection
1172- if (!isEventSelected (collision, tracks)) {
1173- continue ;
1174- }
1175- auto bc = collision.bc_as <MyBCTable>();
1176- const int runnumber = bc.runNumber ();
1177- float hadronicRate = mRateFetcher .fetch (ccdb.service , bc.timestamp (), runnumber, irSource) * 1 .e -3 ;
1178- const int bcGlobalIndex = bc.globalIndex ();
1179- const int bcTimeFrameId = bc.tfId ();
1180- const int bcBcInTimeFrame = bc.bcInTF ();
1181- rowTPCTOFTreeWithTrkQA.reserve (tracks.size ());
1182- for (auto const & trk : tracksWithITSPid) {
1183- if (!((trackSelection == 0 ) ||
1184- ((trackSelection == 1 ) && trk.isGlobalTrack ()) ||
1185- ((trackSelection == 2 ) && trk.isGlobalTrackWoPtEta ()) ||
1186- ((trackSelection == 3 ) && trk.isGlobalTrackWoDCA ()) ||
1187- ((trackSelection == 4 ) && trk.isQualityTrack ()) ||
1188- ((trackSelection == 5 ) && trk.isInAcceptanceTrack ()))) {
1189- continue ;
1190- }
1191- // get the corresponding trackQA using labelTracks2TracKQA and get variables of interest
1192- aod::TracksQA trackQA;
1193- bool existTrkQA;
1194- if (labelTrack2TrackQA[trk.globalIndex ()] != -1 ) {
1195- trackQA = tracksQA.iteratorAt (labelTrack2TrackQA[trk.globalIndex ()]);
1196- existTrkQA = true ;
1197- } else {
1198- trackQA = tracksQA.iteratorAt (0 );
1199- existTrkQA = false ;
1200- }
1201- // / Fill tree for tritons
1202- if (trk.tpcInnerParam () < maxMomHardCutOnlyTr && trk.tpcInnerParam () <= maxMomTPCOnlyTr && std::abs (trk.tpcNSigmaTr ()) < nSigmaTPCOnlyTr && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassTriton)) {
1203- fillSkimmedTPCTOFTableWithTrkQA<true >(trk, trackQA, existTrkQA, collision, trk.tpcNSigmaTr (), trk.tofNSigmaTr (), trk.itsNSigmaTr (), trk.tpcExpSignalTr (trk.tpcSignalCorrected ()), PidTriton, runnumber, dwnSmplFactor_Tr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1204- } else if (trk.tpcInnerParam () < maxMomHardCutOnlyTr && trk.tpcInnerParam () > maxMomTPCOnlyTr && std::abs (trk.tofNSigmaTr ()) < nSigmaTOF_TPCTOF_Tr && std::abs (trk.tpcNSigmaTr ()) < nSigmaTPC_TPCTOF_Tr && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassTriton)) {
1205- fillSkimmedTPCTOFTableWithTrkQA<true >(trk, trackQA, existTrkQA, collision, trk.tpcNSigmaTr (), trk.tofNSigmaTr (), trk.itsNSigmaTr (), trk.tpcExpSignalTr (trk.tpcSignalCorrected ()), PidTriton, runnumber, dwnSmplFactor_Tr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1206- }
1207- // / Fill tree for deuterons
1208- if (trk.tpcInnerParam () < maxMomHardCutOnlyDe && trk.tpcInnerParam () <= maxMomTPCOnlyDe && std::abs (trk.tpcNSigmaDe ()) < nSigmaTPCOnlyDe && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassDeuteron)) {
1209- fillSkimmedTPCTOFTableWithTrkQA<true >(trk, trackQA, existTrkQA, collision, trk.tpcNSigmaDe (), trk.tofNSigmaDe (), trk.itsNSigmaDe (), trk.tpcExpSignalDe (trk.tpcSignalCorrected ()), PidDeuteron, runnumber, dwnSmplFactor_De, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1210- } else if (trk.tpcInnerParam () < maxMomHardCutOnlyDe && trk.tpcInnerParam () > maxMomTPCOnlyDe && std::abs (trk.tofNSigmaDe ()) < nSigmaTOF_TPCTOF_De && std::abs (trk.tpcNSigmaDe ()) < nSigmaTPC_TPCTOF_De && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassDeuteron)) {
1211- fillSkimmedTPCTOFTableWithTrkQA<true >(trk, trackQA, existTrkQA, collision, trk.tpcNSigmaDe (), trk.tofNSigmaDe (), trk.itsNSigmaDe (), trk.tpcExpSignalDe (trk.tpcSignalCorrected ()), PidDeuteron, runnumber, dwnSmplFactor_De, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1212- }
1213- // / Fill tree for protons
1214- if (trk.tpcInnerParam () <= maxMomTPCOnlyPr && std::abs (trk.tpcNSigmaPr ()) < nSigmaTPCOnlyPr && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassProton)) {
1215- fillSkimmedTPCTOFTableWithTrkQA<true >(trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPr (), trk.tofNSigmaPr (), trk.itsNSigmaPr (), trk.tpcExpSignalPr (trk.tpcSignalCorrected ()), PidProton, runnumber, dwnSmplFactor_Pr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1216- } else if (trk.tpcInnerParam () > maxMomTPCOnlyPr && std::abs (trk.tofNSigmaPr ()) < nSigmaTOF_TPCTOF_Pr && std::abs (trk.tpcNSigmaPr ()) < nSigmaTPC_TPCTOF_Pr && downsampleTsalisCharged (trk.pt (), downsamplingTsalisProtons, MassProton)) {
1217- fillSkimmedTPCTOFTableWithTrkQA<true >(trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPr (), trk.tofNSigmaPr (), trk.itsNSigmaPr (), trk.tpcExpSignalPr (trk.tpcSignalCorrected ()), PidProton, runnumber, dwnSmplFactor_Pr, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1218- }
1219- // / Fill tree for kaons
1220- if (trk.tpcInnerParam () < maxMomHardCutOnlyKa && trk.tpcInnerParam () <= maxMomTPCOnlyKa && std::abs (trk.tpcNSigmaKa ()) < nSigmaTPCOnlyKa && downsampleTsalisCharged (trk.pt (), downsamplingTsalisKaons, MassKaon)) {
1221- fillSkimmedTPCTOFTableWithTrkQA<true >(trk, trackQA, existTrkQA, collision, trk.tpcNSigmaKa (), trk.tofNSigmaKa (), trk.itsNSigmaKa (), trk.tpcExpSignalKa (trk.tpcSignalCorrected ()), PidKaon, runnumber, dwnSmplFactor_Ka, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1222- } else if (trk.tpcInnerParam () < maxMomHardCutOnlyKa && trk.tpcInnerParam () > maxMomTPCOnlyKa && std::abs (trk.tofNSigmaKa ()) < nSigmaTOF_TPCTOF_Ka && std::abs (trk.tpcNSigmaKa ()) < nSigmaTPC_TPCTOF_Ka && downsampleTsalisCharged (trk.pt (), downsamplingTsalisKaons, MassKaon)) {
1223- fillSkimmedTPCTOFTableWithTrkQA<true >(trk, trackQA, existTrkQA, collision, trk.tpcNSigmaKa (), trk.tofNSigmaKa (), trk.itsNSigmaKa (), trk.tpcExpSignalKa (trk.tpcSignalCorrected ()), PidKaon, runnumber, dwnSmplFactor_Ka, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1224- }
1225- // / Fill tree pions
1226- if (trk.tpcInnerParam () <= maxMomTPCOnlyPi && std::abs (trk.tpcNSigmaPi ()) < nSigmaTPCOnlyPi && downsampleTsalisCharged (trk.pt (), downsamplingTsalisPions, MassPion)) {
1227- fillSkimmedTPCTOFTableWithTrkQA<true >(trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPi (), trk.tofNSigmaPi (), trk.itsNSigmaPi (), trk.tpcExpSignalPi (trk.tpcSignalCorrected ()), PidPion, runnumber, dwnSmplFactor_Pi, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1228- } else if (trk.tpcInnerParam () > maxMomTPCOnlyPi && std::abs (trk.tofNSigmaPi ()) < nSigmaTOF_TPCTOF_Pi && std::abs (trk.tpcNSigmaPi ()) < nSigmaTPC_TPCTOF_Pi && downsampleTsalisCharged (trk.pt (), downsamplingTsalisPions, MassPion)) {
1229- fillSkimmedTPCTOFTableWithTrkQA<true >(trk, trackQA, existTrkQA, collision, trk.tpcNSigmaPi (), trk.tofNSigmaPi (), trk.itsNSigmaPi (), trk.tpcExpSignalPi (trk.tpcSignalCorrected ()), PidPion, runnumber, dwnSmplFactor_Pi, hadronicRate, bcGlobalIndex, bcTimeFrameId, bcBcInTimeFrame);
1230- }
1231- } // / Loop tracks
1232- }
1163+ runWithTrQA<true , TrksWithDEdxCorrection>(collisions, myTracks, tracksQA, perCollisionTracksWithCorrecteddEdx);
12331164 } // / process
12341165 PROCESS_SWITCH (TreeWriterTPCTOF, processWithTrQAWithCorrecteddEdx, " Samples for PID with TrackQA info with correced dEdx" , false );
12351166
0 commit comments