@@ -349,7 +349,7 @@ void AODProducerWorkflowDPL::addToTracksExtraTable(TracksExtraCursorType& tracks
349349 truncateFloatFraction (extraInfoHolder.trdChi2 , mTrackChi2 ),
350350 truncateFloatFraction (extraInfoHolder.tofChi2 , mTrackChi2 ),
351351 truncateFloatFraction (extraInfoHolder.tpcSignal , mTrackSignal ),
352- truncateFloatFraction ( extraInfoHolder.trdSignal , mTrackSignal ),
352+ extraInfoHolder.trdSignal , // byte encoded value do not truncate
353353 truncateFloatFraction (extraInfoHolder.length , mTrackSignal ),
354354 truncateFloatFraction (extraInfoHolder.tofExpMom , mTrack1Pt ),
355355 truncateFloatFraction (extraInfoHolder.trackEtaEMCAL , mTrackPosEMCAL ),
@@ -390,7 +390,7 @@ void AODProducerWorkflowDPL::addToTracksQATable(TracksQACursorType& tracksQACurs
390390}
391391
392392template <typename TRDsExtraCursorType>
393- void AODProducerWorkflowDPL::addToTRDsExtra (const o2::globaltracking::RecoContainer& recoData, TRDsExtraCursorType& trdExtraCursor, const GIndex& trkIdx, int trkTableIdx)
393+ void AODProducerWorkflowDPL::addToTRDsExtra (const o2::globaltracking::RecoContainer& recoData, TRDsExtraCursorType& trdExtraCursor, const GIndex& trkIdx, TrackExtraInfo& extraInfo, int trkTableIdx)
394394{
395395 static int q0s[6 ] = {-1 }, q1s[6 ] = {-1 }, q2s[6 ] = {-1 };
396396 static float q0sCor[6 ] = {-1 }, q1sCor[6 ] = {-1 }, q2sCor[6 ] = {-1 };
@@ -404,6 +404,7 @@ void AODProducerWorkflowDPL::addToTRDsExtra(const o2::globaltracking::RecoContai
404404 auto trkC = trk;
405405 const auto & trklets = recoData.getTRDTracklets ();
406406 const auto & ctrklets = recoData.getTRDCalibratedTracklets ();
407+
407408 for (int iLay{0 }; iLay < 6 ; ++iLay) {
408409 q0s[iLay] = q1s[iLay] = q2s[iLay] = -1 ;
409410 q0sCor[iLay] = q1sCor[iLay] = q2sCor[iLay] = -1 ;
@@ -459,7 +460,26 @@ void AODProducerWorkflowDPL::addToTRDsExtra(const o2::globaltracking::RecoContai
459460 }
460461 }
461462
462- trdExtraCursor (trkTableIdx, q0s, q1s, q2s, q0sCor, q1sCor, q2sCor, ttgls, tphis);
463+ aod::track::extensions::TRDSignalEncoding enc;
464+
465+ // dEdX signal
466+ float integral{0 .}, ntracklets{0 .};
467+ for (int i{0 }; i < 6 ; ++i) {
468+ if (q0sCor[i] > 0 ) {
469+ integral += (q0sCor[i] + q1sCor[i] + q2sCor[i]);
470+ ++ntracklets;
471+ }
472+ }
473+ enc.setDEdx (integral / ntracklets);
474+
475+ // pid signal
476+ enc.setEProb (trk.getSignal ());
477+
478+ extraInfo.trdSignal = enc.getSignal ();
479+
480+ if (mEnableTRDextra ) {
481+ trdExtraCursor (trkTableIdx, q0s, q1s, q2s, q0sCor, q1sCor, q2sCor, ttgls, tphis);
482+ }
463483}
464484
465485template <typename mftTracksCursorType, typename AmbigMFTTracksCursorType>
@@ -612,12 +632,13 @@ void AODProducerWorkflowDPL::fillTrackTablesPerCollision(int collisionID,
612632 if (!isProp) {
613633 addToTracksTable (tracksCursor, tracksCovCursor, trOrig, collisionID, aod::track::TrackIU);
614634 }
615- addToTracksExtraTable (tracksExtraCursor, extraInfoHolder);
616635
617- if (mEnableTRDextra && trackIndex.includesDet (GIndex::Source::TRD)) {
618- addToTRDsExtra (data, trdsExtraCursor, trackIndex, mTableTrID );
636+ if (trackIndex.includesDet (GIndex::Source::TRD)) {
637+ addToTRDsExtra (data, trdsExtraCursor, trackIndex, extraInfoHolder, mTableTrID );
619638 }
620639
640+ addToTracksExtraTable (tracksExtraCursor, extraInfoHolder);
641+
621642 // collecting table indices of barrel tracks for V0s table
622643 if (extraInfoHolder.bcSlice [0 ] >= 0 && collisionID < 0 ) {
623644 ambigTracksCursor (mTableTrID , extraInfoHolder.bcSlice );
@@ -2606,7 +2627,6 @@ AODProducerWorkflowDPL::TrackExtraInfo AODProducerWorkflowDPL::processBarrelTrac
26062627 if (contributorsGID[GIndex::Source::TRD].isIndexSet ()) { // ITS-TPC-TRD-TOF, TPC-TRD-TOF, TPC-TRD, ITS-TPC-TRD
26072628 const auto & trdOrig = data.getTrack <o2::trd::TrackTRD>(contributorsGID[GIndex::Source::TRD]); // refitted TRD trac
26082629 extraInfoHolder.trdChi2 = trdOrig.getChi2 ();
2609- extraInfoHolder.trdSignal = trdOrig.getSignal ();
26102630 extraInfoHolder.trdPattern = getTRDPattern (trdOrig);
26112631 if (extraInfoHolder.trackTimeRes < 0 .) { // time is not set yet, this is possible only for TPC-TRD and ITS-TPC-TRD tracks, since those with TOF are set upstream
26122632 // TRD is triggered: time uncertainty is within a BC
0 commit comments