Readout Geometry local position revisions
As discussed in ATLSWUPGR-103, some inconsistencies were found in the methods for converting between local positions and SiCellIds. An identically named method exists for both the DetectorElement and the DetectorDesign associated with that Element, which do subtly different things; the DetectorElement poentially applies a correction for the lorentz drift and a coordinate flip, while the DetectorDesign does not.
As a result, the SCT_RDOAnalysis
suffered some unexpected effects where conversions between positions and cells became inconsistent, resulting in RDOs being plotted in incorrect global positions.
To address this, the following changes were made:
- Changing
SolidStateDetectorElementBase::localPositionOfCell
to replicated the functionality ofSolidStateDetectorElementBase::rawLocalPositionOfCell
so that it is consistent withXXXDesign::localPositionOfCell
(which is what is called byrawLocalPositionOfCell
in any case) - adding
SolidStateDetectorElementBase::correctedLocalPositionOfCell
to reproduce the previous behaviour ofSolidStateDetectorElementBase::localPositionOfCell
- Migrating the previous uses of
SolidStateDetectorElementBase::rawLocalPositionOfCell
toSolidStateDetectorElementBase::localPositionOfCell
- Migrating the (limited) uses of
SolidStateDetectorElementBase::localPositionOfCell
to useSolidStateDetectorElementBase::correctedLocalPositionOfCell
(with the exception of the previously mentionedSCT_RDOAnalysis
)
Some of the small number of cases migrated to use SolidStateDetectorElementBase::correctedLocalPositionOfCell
may in fact more correctly use SolidStateDetectorElementBase::localPositionOfCell
(i.e. without lorentz correction), and these have been left consistent but commented.
NB some FTK
classes migrated have warnings from some bitwise operations - I have not tried to fix these since they are a) complicated and b) not needed in future.
FYI @asalzbur @cohm @dshope @ncalace @tstreble @hhayward @tlari