Fix wrong DeUTSector cache of p0 parameter
It's reported, on this slide 9, that UT residual distribution are slightly different with the same MC sample but processed by DD4hep and DetDesc. One of the culprits is that the p_0 value is cached differently between these two frameworks. DetDesc version is correct, and DD4hep version needs to be fixed.
p_0 is an important parameter which converts strip number n to strip local position x_n via
x_n = p_0 + n \cdot \mathrm{pitch}
In DD4hep, p_0 is off by one pitch, which causes all decoded UT hits from the same sensor off by essentially the same amount. 50% of UT sensors are affected by this bug, which will be fixed by this MR.
Related talk:
Here I show a comparison of the histogram produced by TrackMonitor. This is by running a Moore job with the attached option file. +P/-P
means correct/wrong pitch size, and +S/-S
means correct/wrong strip number assignment.
Somehow I could not obtain a perfect match with an Alignment job (perhaps UT's DetDesc Alignment code is different with DD4hep Alignment code?) Anyway, I think DetDesc Alignment code will never be used, and the above comparison already shows at tracking level the discrepancies are fixed.
Validated by
-
Core Software -
RTA -
Simulation