@@ -257,6 +257,7 @@ struct EbyeMaker {
257257
258258 Configurable<LabeledArray<float >> cfgTrackSels{" cfgTrackSels" , {kTrackSels , 1 , 12 , particleName, trackSelsNames}, " Track selections" };
259259 Configurable<LabeledArray<float >> cfgDcaSelsParam{" cfgDcaSelsParam" , {kDcaSelsParam [0 ], 3 , 3 , dcaSelsNames, dcaParNames}, " DCA threshold settings" };
260+ Configurable<bool > fillMini{" fillMini" , false , " fill mini tables" };
260261
261262 std::array<float , kNpart > ptMin;
262263 std::array<float , kNpart > ptTof;
@@ -430,9 +431,7 @@ struct EbyeMaker {
430431 {
431432 int selMask = -1 ;
432433 if ((isMc && candidateTrack.isreco ) || !isMc) {
433- float outerPID = -999 .f ;
434- if (!(doprocessRun2 || doprocessMcRun2) && tk.hasTOF () && tk.pt () > antipPtTof) // TODO: remove the process-dependent conditional if all have the tof table
435- outerPID = tk.tofNSigmaPr ();
434+ float outerPID = tk.pt () > antipPtTof ? tk.tofNSigmaPr () : -999 .f ;
436435 candidateTrack.itsnsigma = nSigmaITS;
437436 candidateTrack.outerPID = tk.pt () < antipPtTof ? candidateTrack.outerPID : outerPID;
438437 int selMask = getTrackSelMask (candidateTrack);
@@ -938,7 +937,6 @@ struct EbyeMaker {
938937 fillRecoEvent (collision, tracks, v0TableThisCollision, centrality);
939938
940939 miniCollTable (static_cast <int8_t >(collision.posZ () * 10 ), 0x0 , nTrackletsColl, centrality, nTracksColl);
941-
942940 for (auto & candidateTrack : candidateTracks[0 ]) { // o2-linter: disable=const-ref-in-for-loop (not a const ref)
943941 auto tk = tracks.rawIteratorAt (candidateTrack.globalIndex );
944942 fillTableMiniTrack<false >(candidateTrack, tk);
@@ -989,32 +987,38 @@ struct EbyeMaker {
989987 histos.fill (HIST (" QA/V0MvsCL0" ), centralityCl0, centrality);
990988 histos.fill (HIST (" QA/trackletsVsV0M" ), centrality, multTracklets);
991989
992- collisionEbyeTable (centrality, collision.posZ ());
993-
994- for (const auto & candidateV0 : candidateV0s) {
995- lambdaEbyeTable (
996- collisionEbyeTable.lastIndex (),
997- candidateV0.pt ,
998- candidateV0.eta ,
999- candidateV0.mass ,
1000- candidateV0.dcav0pv ,
1001- candidateV0.dcav0daugh ,
1002- candidateV0.cpa ,
1003- candidateV0.globalIndexNeg ,
1004- candidateV0.globalIndexPos );
1005- }
1006-
1007- for (int iP{0 }; iP < kNpart ; ++iP) {
1008- for (const auto & candidateTrack : candidateTracks[iP]) { // deuterons + protons
1009- nucleiEbyeTable (
990+ if (fillMini) {
991+ miniCollTable (static_cast <int8_t >(collision.posZ () * 10 ), 0x0 , nTrackletsColl, centrality, nTracksColl);
992+ for (auto & candidateTrack : candidateTracks[0 ]) { // o2-linter: disable=const-ref-in-for-loop (not a const ref)
993+ auto tk = tracks.rawIteratorAt (candidateTrack.globalIndex );
994+ fillTableMiniTrack<false >(candidateTrack, tk);
995+ }
996+ } else {
997+ collisionEbyeTable (centrality, collision.posZ ());
998+ for (const auto & candidateV0 : candidateV0s) {
999+ lambdaEbyeTable (
10101000 collisionEbyeTable.lastIndex (),
1011- candidateTrack.pt ,
1012- candidateTrack.eta ,
1013- candidateTrack.mass ,
1014- candidateTrack.dcapv ,
1015- candidateTrack.tpcncls ,
1016- candidateTrack.tpcnsigma ,
1017- candidateTrack.tofmass );
1001+ candidateV0.pt ,
1002+ candidateV0.eta ,
1003+ candidateV0.mass ,
1004+ candidateV0.dcav0pv ,
1005+ candidateV0.dcav0daugh ,
1006+ candidateV0.cpa ,
1007+ candidateV0.globalIndexNeg ,
1008+ candidateV0.globalIndexPos );
1009+ }
1010+ for (int iP{0 }; iP < kNpart ; ++iP) {
1011+ for (const auto & candidateTrack : candidateTracks[iP]) { // deuterons + protons
1012+ nucleiEbyeTable (
1013+ collisionEbyeTable.lastIndex (),
1014+ candidateTrack.pt ,
1015+ candidateTrack.eta ,
1016+ candidateTrack.mass ,
1017+ candidateTrack.dcapv ,
1018+ candidateTrack.tpcncls ,
1019+ candidateTrack.tpcnsigma ,
1020+ candidateTrack.tofmass );
1021+ }
10181022 }
10191023 }
10201024 }
@@ -1062,8 +1066,8 @@ struct EbyeMaker {
10621066 if (triggerCut != 0x0 && (trigger & triggerCut) != triggerCut) {
10631067 continue ;
10641068 }
1065- miniCollTable (static_cast <int8_t >(collision.posZ () * 10 ), trigger, nTrackletsColl, centrality, nTracksColl);
10661069
1070+ miniCollTable (static_cast <int8_t >(collision.posZ () * 10 ), trigger, nTrackletsColl, centrality, nTracksColl);
10671071 for (auto & candidateTrack : candidateTracks[0 ]) { // o2-linter: disable=const-ref-in-for-loop (not a const ref)
10681072 auto tk = tracks.rawIteratorAt (candidateTrack.globalIndex );
10691073 auto [itsSignal, nSigmaITS] = getITSSignal (tk, trackExtraRun2);
@@ -1095,7 +1099,6 @@ struct EbyeMaker {
10951099 fillMcGen (mcParticles, mcLab, collision.mcCollisionId ());
10961100
10971101 miniCollTable (static_cast <int8_t >(collision.posZ () * 10 ), nChPartGen, nTrackletsColl, centrality, nTracksColl);
1098-
10991102 for (auto & candidateTrack : candidateTracks[0 ]) { // o2-linter: disable=const-ref-in-for-loop (not a const ref)
11001103 auto tk = candidateTrack.isreco ? tracks.rawIteratorAt (candidateTrack.globalIndex ) : tracks.rawIteratorAt (0 );
11011104 fillTableMiniTrack<true >(candidateTrack, tk);
@@ -1126,40 +1129,46 @@ struct EbyeMaker {
11261129 fillMcEvent (collision, tracks, v0TableThisCollision, centrality, mcParticles, mcLab);
11271130 fillMcGen (mcParticles, mcLab, collision.mcCollisionId ());
11281131
1129- collisionEbyeTable (centrality, collision.posZ ());
1130-
1131- for (const auto & candidateV0 : candidateV0s) {
1132- mcLambdaEbyeTable (
1133- collisionEbyeTable.lastIndex (),
1134- candidateV0.pt ,
1135- candidateV0.eta ,
1136- candidateV0.mass ,
1137- candidateV0.dcav0pv ,
1138- candidateV0.dcav0daugh ,
1139- candidateV0.cpa ,
1140- candidateV0.globalIndexNeg ,
1141- candidateV0.globalIndexPos ,
1142- candidateV0.genpt ,
1143- candidateV0.geneta ,
1144- candidateV0.pdgcode ,
1145- candidateV0.isreco );
1146- }
1147-
1148- for (int iP{0 }; iP < kNpart ; ++iP) {
1149- for (const auto & candidateTrack : candidateTracks[iP]) { // deuterons + protons
1150- mcNucleiEbyeTable (
1132+ if (fillMini) {
1133+ miniCollTable (static_cast <int8_t >(collision.posZ () * 10 ), nChPartGen, nTrackletsColl, centrality, nTracksColl);
1134+ for (auto & candidateTrack : candidateTracks[0 ]) { // o2-linter: disable=const-ref-in-for-loop (not a const ref)
1135+ auto tk = candidateTrack.isreco ? tracks.rawIteratorAt (candidateTrack.globalIndex ) : tracks.rawIteratorAt (0 );
1136+ fillTableMiniTrack<true >(candidateTrack, tk);
1137+ }
1138+ } else {
1139+ collisionEbyeTable (centrality, collision.posZ ());
1140+ for (const auto & candidateV0 : candidateV0s) {
1141+ mcLambdaEbyeTable (
11511142 collisionEbyeTable.lastIndex (),
1152- candidateTrack.pt ,
1153- candidateTrack.eta ,
1154- candidateTrack.mass ,
1155- candidateTrack.dcapv ,
1156- candidateTrack.tpcncls ,
1157- candidateTrack.tpcnsigma ,
1158- candidateTrack.tofmass ,
1159- candidateTrack.genpt ,
1160- candidateTrack.geneta ,
1161- candidateTrack.pdgcode ,
1162- candidateTrack.isreco );
1143+ candidateV0.pt ,
1144+ candidateV0.eta ,
1145+ candidateV0.mass ,
1146+ candidateV0.dcav0pv ,
1147+ candidateV0.dcav0daugh ,
1148+ candidateV0.cpa ,
1149+ candidateV0.globalIndexNeg ,
1150+ candidateV0.globalIndexPos ,
1151+ candidateV0.genpt ,
1152+ candidateV0.geneta ,
1153+ candidateV0.pdgcode ,
1154+ candidateV0.isreco );
1155+ }
1156+ for (int iP{0 }; iP < kNpart ; ++iP) {
1157+ for (const auto & candidateTrack : candidateTracks[iP]) { // deuterons + protons
1158+ mcNucleiEbyeTable (
1159+ collisionEbyeTable.lastIndex (),
1160+ candidateTrack.pt ,
1161+ candidateTrack.eta ,
1162+ candidateTrack.mass ,
1163+ candidateTrack.dcapv ,
1164+ candidateTrack.tpcncls ,
1165+ candidateTrack.tpcnsigma ,
1166+ candidateTrack.tofmass ,
1167+ candidateTrack.genpt ,
1168+ candidateTrack.geneta ,
1169+ candidateTrack.pdgcode ,
1170+ candidateTrack.isreco );
1171+ }
11631172 }
11641173 }
11651174 }
@@ -1189,7 +1198,6 @@ struct EbyeMaker {
11891198 fillMcGen (mcParticles, mcLab, collision.mcCollisionId ());
11901199
11911200 miniCollTable (static_cast <int8_t >(collision.posZ () * 10 ), nChPartGen, nTrackletsColl, centrality, nTracksColl);
1192-
11931201 for (auto & candidateTrack : candidateTracks[0 ]) { // o2-linter: disable=const-ref-in-for-loop (not a const ref)
11941202 auto tk = candidateTrack.isreco ? tracks.rawIteratorAt (candidateTrack.globalIndex ) : tracks.rawIteratorAt (0 );
11951203 auto [itsSignal, nSigmaITS] = getITSSignal (tk, trackExtraRun2);
0 commit comments