@@ -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 ,
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,6 +460,23 @@ void AODProducerWorkflowDPL::addToTRDsExtra(const o2::globaltracking::RecoContai
459460 }
460461 }
461462
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+ // TODO
477+
478+ extraInfo.trdSignal = enc.getSignal ();
479+
462480 trdExtraCursor (trkTableIdx, q0s, q1s, q2s, q0sCor, q1sCor, q2sCor, ttgls, tphis);
463481}
464482
@@ -612,12 +630,13 @@ void AODProducerWorkflowDPL::fillTrackTablesPerCollision(int collisionID,
612630 if (!isProp) {
613631 addToTracksTable (tracksCursor, tracksCovCursor, trOrig, collisionID, aod::track::TrackIU);
614632 }
615- addToTracksExtraTable (tracksExtraCursor, extraInfoHolder);
616633
617634 if (mEnableTRDextra && trackIndex.includesDet (GIndex::Source::TRD)) {
618- addToTRDsExtra (data, trdsExtraCursor, trackIndex, mTableTrID );
635+ addToTRDsExtra (data, trdsExtraCursor, trackIndex, extraInfoHolder, mTableTrID );
619636 }
620637
638+ addToTracksExtraTable (tracksExtraCursor, extraInfoHolder);
639+
621640 // collecting table indices of barrel tracks for V0s table
622641 if (extraInfoHolder.bcSlice [0 ] >= 0 && collisionID < 0 ) {
623642 ambigTracksCursor (mTableTrID , extraInfoHolder.bcSlice );
0 commit comments