Fix wrong DeUTSector cache of p0 parameter
Compare changes
Files
4@@ -97,6 +97,12 @@ namespace LHCb::Detector::UT {
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