Acts - Revisement of the GeometryContext & Introduction of the IActsDetectorElement
Hi everbody,
this MR introduces several changes to the ActsGeometry
interfaces crucial to integrate the Muons into the Toolkit.
-
IActsDetectorElement
: Interface equivalent to theTrk::DetElementBase
. Minimal set of functions needed on-top of theActs::DetectorElement
to deduce the ATLAS identifier, the subdetector and also to cache the final transformations in an external cache object. -
ActsGeometryContext
& caching of the alignment transformations. Thus far the GeometryContext holds the complete set of the absolute positions of eachGeoModel
detector elements, its alignment distortions and another layer of the Acts tranformations on top. The GeoModel constants are also hold by theGeoAlignmentStores
and hence the memory is duplicated in the ActsGeometryContext. Further, the cache is whiped if one of the subdetectors updates its alignment. In other words, the update of the alignment in the MS triggers the creation of a new alignment in the ID and vice versa. TheActsGeometryContext
is basically a map from the particular DetectorElementTypes to the pointers of the correspondingActsAlignmentStore
. Further, theGeoModel
part of the transformations is split into another temporary cache to reduce the memory foot print. The construction flag is removed as it is only used in the construction phase of the tracking geometry where the default transformation caches already serve as a fallback option. The fallback is now extended to cover also the general cases where the proper alignment store is missing in the geometry context. TheActsTrackingGeometrySvc
is equipped with an extra method ensuring that each subdetector concerned has a proper alignment store, if theActsGeometryContext
is written into the ConditionsStore of athena. -
ActsDetAlignCondAlg
: This new algorithm translates from theGeoModel
alignment to theActs
-EDM alignment. There's to be one algorithm for each subdetector to decouple the respective movements. TheActsGeometryCondAlg
picks up all subdetector alignments and saves their pointers into the GeometryContext. The ActsDetectorElements navigate through the map to find the proper alignment store.