Skip to content

Use mixed ranges for LAr HV Scale Correction

Walter Lampl requested to merge wlampl/athena:LArHVMixedRange1 into master

Following the discussion in ATLASRECTS-6909 and !53320 (merged), switching the condition objects holding LAr HV Scale Corrections to a mixed ConditionsContainer.

The following classes derive from ILArHVScaleCorr:

  • LArHVScaleCorrFlat produced by LArFlatConditionsAlg<LArHVScaleCorrFlat> out of a blob stored in COOL. Same data used by the DSP online.
  • LArHVScaleCorrSC same as above for SuperCells
  • LArHVScaleCorrComplete semi-stable correction stored in conditions POOL files. Used in Run 1 and during digitization
  • LArHVCorr transient conditions object, produced by the LArHVCondAlg base on DCS data + cable-maps.

Only the latter is really a mixed CondCont, it depends on DCS (time-stamped) and cablle-maps that are run-lumi indexed. The semi-stable corrections stored in the database are only run-lumi indexed.

Since the entire inheritance chain has to be mixed conditions container, all these classes become mixed containers. A few more changes are necessary to get this working:

  • CondCond::insertMixed: If no time-stamp, assume infinite time-IOV instead of reporting an ERROR
  • IOVSvc::createCondObj: For mixed ConditionsContainers the range needs to be outfitted with an artificial time-stamp (assuming infinite time-range). This is necessary for simulation and run-1 reco that reads pool-based LArHVScaleCorrComplete from the database.

Aside: My work on IOVSvc was somewhat delayed due to confusion btw Gaudi's EventIDRange and athena's IOVRange. Can't we get rid of AthenaKernel/IOVRange.h in favor of EventIDRange from Gaudi?

Merge request reports