This issue tracks the remaining steps towards full 4D tracking support in CKFTrackingAlg for #72.
1. Per-hit time errors from EDM4hep
The per-sensor resolutions currently have to be configured by hand, mirroring the digitizer's ResolutionT settings. The clean solution is to persist the resolution in the data:
(Implementations for all three exist and are compile-tested; blocked on the EDM4hep schema change propagating through a release and the key4hep stack.)
2. Digitizer time-convention migration
DDPlanarDigi historically subtracted the propagation TOF from stored hit times. With MuonColliderSoft/k4Reco#17 the TOF correction can be applied to the time-window cut only, keeping absolute stored times, which is what the 4D fit wants.
3. Seeding
4. Validation & tests
This issue tracks the remaining steps towards full 4D tracking support in
CKFTrackingAlgfor #72.1. Per-hit time errors from EDM4hep
The per-sensor resolutions currently have to be configured by hand, mirroring the digitizer's
ResolutionTsettings. The clean solution is to persist the resolution in the data:timeError[ns] member to the tracker hit types and theTrackerHitinterface (schema version bump; scalar, mirroringdu/dvandeDepError— time smearing is uncorrelated with position, so no extension of the position covariance is needed)DDPlanarDigi:setTimeError(resT)with the per-layer resolution actually used for smearingCKFTrackingAlg: preferhit.getTimeError()when > 0, fall back to theHitTimeResolutionCellIDsconfiguration for files predating the schema change(Implementations for all three exist and are compile-tested; blocked on the EDM4hep schema change propagating through a release and the key4hep stack.)
2. Digitizer time-convention migration
DDPlanarDigihistorically subtracted the propagation TOF from stored hit times. With MuonColliderSoft/k4Reco#17 the TOF correction can be applied to the time-window cut only, keeping absolute stored times, which is what the 4D fit wants.HitTimesCorrectedForPropagation=Truefrom configurations3. Seeding
4. Validation & tests
TrackState(AtIP) correctly and add a pull/resolution checkResolutionT), coveringUseHitTimeInCKF, the per-sensor resolution configuration, and the failure modes (missing/incompleteHitTimeResolutionCellIDs)