Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
  • Sign in
  • athena athena
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Locked Files
  • Jira
    • Jira
  • Merge requests 160
    • Merge requests 160
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Code review
    • Repository
  • Activity
  • Graph
  • Jobs
  • Commits
Collapse sidebar
  • atlasatlas
  • athenaathena
  • Merge requests
  • !48724

JetCalibTools structural re-work

  • Review changes

  • Download
  • Email patches
  • Plain diff
Merged William Keaton Balunas requested to merge wbalunas/athena:jct-211116 into master Dec 01, 2021
  • Overview 34
  • Commits 9
  • Pipelines 5
  • Changes 26

This implements some improvements to the structure of JetCalibTools which were recently discussed in the Jet/MET software & validation group and at the Hadronic Calibration Workshop. The main changes are:

  • A new base class, JetCalibrationStep, is introduced to provide common functionality/interface for the individual calibration methods. This is a standalone class, not a Tool.
  • ResidualOffsetCorrection is now a standalone class (not a JetCalibrationStep), as it doesn't actually calibrate anything - it's only a helper for JetPileupCorrection.
  • The individual calibration steps are no longer Tools in the Athena sense: they aren't configurable from python (there was no case in which a user was supposed to do this anyway).
  • JetCalibrationToolBase has been rendered obsolete and removed. JetCalibrationTool now inherits directly from its interfaces and AsgTool.
  • The logical structure of JetCalibrationTool has been simplified. It's now about 150 lines shorter, and there's only one vector<CalibrationStep> which includes all steps, even for expert usage.
  • The handling of time-dependent in situ calibrations has been streamlined. Each InSituDataCorrection now holds its own run number interval of validity (which is all runs unless otherwise specified) outside of which calibrate(...) does nothing. This improves over the previous logic where JetCalibrationTool conditionally called calibrate(...) based on the corresponding validity interval, requiring additional bookkeeping.
  • Some other obsolete code has been removed (file finding which has been superseded by PathResolver, etc.).
  • A few minor memory leaks have been remedied.
  • General improvements to code style have been made in various places.

The goal here is to make JetCalibTools more accessible for the general ATLAS population to read, work with, and contribute to. These changes are complementary to the lower-level configuration/data access proposals from @sschramm.

Tagging @sawyer, @schaarsc, @mswiatlo, @camacho for Jet/Etmiss. @jbossios might also be interested. All comments from anyone are welcome.

Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: jct-211116