MdtCalibration - Initial clean up of the calibration tools

Johannes Junggeburth requested to merge jojungge/athena:CleanUpMdtCalib into main

Hi everybody,

this is the first series of the MdtCalibrationSvc clean-up campaign. The main object of this MR is the simplification of the interface of the MdtCalibrationTool

  • MdtCalibrationDbTool: The tool handles the 3 different conditions objects associated needed for the Mdt calibration. The MdtCorrFuncSetCollection, MdtRtRelationCollection, MdtTubeCalibContainerCollection objects are merged into the MdtCalibDataContainer making the tool obsolete. The tool is removed from the code-base
  • MdtCalibrationTool: Introduce the abstract interface class, IMdtCalibrationTool which is retrieved by all ToolHandle clients downstream. The current interface allows for an external overwrite of the calibration settings by parsing an extra object. But, we are living in the times of private tools now and there's no need for parsing around external settings. The interface is now boiled down to a single main function

  virtual MdtCalibOutput calibrate(const EventContext& ctx, 
                                   const MdtCalibInput& hit,
                                   bool resolFromRtrack=false) const = 0;

The MdtCalibInput and MdtCalibOutput classes are the long-term replacements of the MdtCalibHit. The MdtCalibInput class ships all information neccessary for the calibration to the tool. Constructors taking the legacy & new readout geometry are provided for the majority of the usecases. The remaining one will be added in a follow-up MR. The MdtCalibOutput is nothing else than a cache to parse the final drift times and radii together with a break-down of the individual time correction components.

  • MdtCalibrationRegionSvc main functionallity is intergrated into the MdtCalibDataContainer. The service is hence removed.

MdtCalibSvc: Remove all headers from the shared library.

MuonCalibPatRec, MdtCalibIOSvc: To me it's unclear where the pacakges are currently used. I am afraid that they're convoluted somehow with the MdtCalibFramework project. Remove them from the Athena build for now and then clean them up at a later stage once we have figured out what to do with it.

  • MdtDriftCircleOnTrack: Remove the sagged surface data member - Btw. the transform() of the sagged surface returns a global -> local transformation instead of a local to global one - Consistent use of double floating point precision and the Eigen library.

  • MdtRdoToPrepData: Streamline the conversion of the RDOs -> MdtDriftCirlce. Introduce filter to remove electronics noise hits having an adc value below 50. Tagging: @diehl, @zyan, @mvanadia, @nicolaid

The rest of the changes are basically adaptions of the clients.

The changes have been validated on the DRAW_ZMUMU stream of 451735








Targets: ATLASMCP-193

Tagging: @diehl, @zyan, @emoyse

Edited by Johannes Junggeburth

Merge request reports