Skip to content

Acts - Revisement of the GeometryContext & Introduction of the IActsDetectorElement

Johannes Junggeburth requested to merge jojungge/athena:GeoContext into master

Hi everbody,

this MR introduces several changes to the ActsGeometry interfaces crucial to integrate the Muons into the Toolkit.

  • IActsDetectorElement: Interface equivalent to the Trk::DetElementBase. Minimal set of functions needed on-top of the Acts::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 each GeoModel detector elements, its alignment distortions and another layer of the Acts tranformations on top. The GeoModel constants are also hold by the GeoAlignmentStores 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. The ActsGeometryContext is basically a map from the particular DetectorElementTypes to the pointers of the corresponding ActsAlignmentStore. Further, the GeoModel 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. The ActsTrackingGeometrySvc is equipped with an extra method ensuring that each subdetector concerned has a proper alignment store, if the ActsGeometryContext is written into the ConditionsStore of athena.

  • ActsDetAlignCondAlg: This new algorithm translates from the GeoModel alignment to the Acts-EDM alignment. There's to be one algorithm for each subdetector to decouple the respective movements. The ActsGeometryCondAlg picks up all subdetector alignments and saves their pointers into the GeometryContext. The ActsDetectorElements navigate through the map to find the proper alignment store.

Edited by Johannes Junggeburth

Merge request reports