1 """Define methods to construct configured EventInfo conversion algorithms 
    3 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration 
    6 from AthenaConfiguration.ComponentAccumulator 
import ComponentAccumulator
 
    7 from AthenaConfiguration.ComponentFactory 
import CompFactory
 
    8 from AthenaConfiguration.Enums 
import LHCPeriod, ProductionStep
 
   12                        inputKey="McEventInfo",
 
   13                        outputKey="EventInfo",
 
   14                        disableBeamSpot=False,
 
   16     """Return a ComponentAccumulator for EventInfoCnvAlg algorithm""" 
   20     kwargs.setdefault(
"AODKey", inputKey)
 
   21     kwargs.setdefault(
"xAODKey", outputKey)
 
   23     if f
"PileUpEventInfo#{inputKey}" in flags.Input.TypedCollections:
 
   24         kwargs.setdefault(
"PileupKey", f
"Pileup{outputKey}")
 
   26         kwargs.setdefault(
"PileupKey", 
"")
 
   30     if not disableBeamSpot:
 
   31         from BeamSpotConditions.BeamSpotConditionsConfig 
import BeamSpotCondAlgCfg
 
   34     acc.addEventAlgo(CompFactory.xAODMaker.EventInfoCnvAlg(name, **kwargs))
 
   40     """Return a ComponentAccumulator for EventInfoOverlay algorithm""" 
   44     from BeamSpotConditions.BeamSpotConditionsConfig 
import BeamSpotCondAlgCfg
 
   47     kwargs.setdefault(
"BkgInputKey", f
"{flags.Overlay.BkgPrefix}EventInfo")
 
   48     kwargs.setdefault(
"SignalInputKey", f
"{flags.Overlay.SigPrefix}EventInfo")
 
   49     kwargs.setdefault(
"OutputKey", 
"EventInfo")
 
   51     kwargs.setdefault(
"DataOverlay", flags.Overlay.DataOverlay)
 
   52     kwargs.setdefault(
"ValidateBeamSpot", 
not (flags.Common.ProductionStep == ProductionStep.FastChain 
and flags.Common.isOverlay) 
and not flags.Overlay.DataOverlay 
and flags.GeoModel.Run 
is LHCPeriod.Run3)
 
   54     if flags.Input.MCChannelNumber > 0:
 
   55         kwargs.setdefault(
"MCChannelNumber", flags.Input.MCChannelNumber)
 
   58     acc.addEventAlgo(CompFactory.xAODMaker.EventInfoOverlay(name, **kwargs))
 
   61     from OutputStreamAthenaPool.OutputStreamConfig 
import OutputStreamCfg
 
   62     if flags.Output.doWriteRDO:
 
   66     if flags.Output.doWriteRDO_SGNL:
 
   68             f
"xAOD::EventInfo#{flags.Overlay.SigPrefix}EventInfo",
 
   69             f
"xAOD::EventAuxInfo#{flags.Overlay.SigPrefix}EventInfoAux." 
   76     """Return a ComponentAccumulator for the full EventInfoOverlay algorithm accumulator""" 
   79     inputs = [f
"xAOD::EventInfo#{flags.Overlay.BkgPrefix}EventInfo"]
 
   81     if "EventInfo" not in flags.Input.Collections 
and "EventInfo" not in flags.Input.SecondaryCollections:
 
   83                                      inputKey=f
"{flags.Overlay.SigPrefix}McEventInfo",
 
   84                                      outputKey=f
"{flags.Overlay.SigPrefix}EventInfo",
 
   87         from SGComps.AddressRemappingConfig 
import AddressRemappingCfg
 
   89             f
"EventInfo#McEventInfo->{flags.Overlay.SigPrefix}McEventInfo",
 
   92         inputs.append(f
"EventInfo#{flags.Overlay.SigPrefix}McEventInfo")
 
   95         from SGComps.AddressRemappingConfig 
import AddressRemappingCfg
 
   97             f
"xAOD::EventInfo#EventInfo->{flags.Overlay.SigPrefix}EventInfo",
 
   98             f
"xAOD::EventAuxInfo#EventInfoAux.->{flags.Overlay.SigPrefix}EventInfoAux.",
 
  101         inputs.append(f
"xAOD::EventInfo#{flags.Overlay.SigPrefix}EventInfo")
 
  103     from SGComps.SGInputLoaderConfig 
import SGInputLoaderCfg
 
  111     """Return a ComponentAccumulator for EventInfoUpdateFromContext algorithm""" 
  115     from BeamSpotConditions.BeamSpotConditionsConfig 
import BeamSpotCondAlgCfg
 
  118     kwargs.setdefault(
"SignalInputKey", 
"Input_EventInfo")
 
  119     kwargs.setdefault(
"OutputKey", f
"{flags.Overlay.SigPrefix}EventInfo" if flags.Common.ProductionStep == ProductionStep.FastChain 
and flags.Common.isOverlay 
else "EventInfo")
 
  121     if flags.Input.MCChannelNumber > 0:
 
  122         kwargs.setdefault(
"MCChannelNumber", flags.Input.MCChannelNumber)
 
  125     acc.addEventAlgo(CompFactory.xAODMaker.EventInfoUpdateFromContextAlg(name, **kwargs))
 
  128     from SGComps.AddressRemappingConfig 
import AddressRemappingCfg
 
  130         "xAOD::EventInfo#EventInfo->" + 
"Input_EventInfo",
 
  131         "xAOD::EventAuxInfo#EventInfoAux.->" + 
"Input_EventInfoAux.",
 
  140     from BeamSpotConditions.BeamSpotConditionsConfig 
import BeamSpotCondAlgCfg
 
  143     kwargs.setdefault(
"beamPosXKey", f
"{eventInfoKey}.beamPosX")
 
  144     kwargs.setdefault(
"beamPosYKey", f
"{eventInfoKey}.beamPosY")
 
  145     kwargs.setdefault(
"beamPosZKey", f
"{eventInfoKey}.beamPosZ")
 
  146     kwargs.setdefault(
"beamPosSigmaXKey", f
"{eventInfoKey}.beamPosSigmaX")
 
  147     kwargs.setdefault(
"beamPosSigmaYKey", f
"{eventInfoKey}.beamPosSigmaY")
 
  148     kwargs.setdefault(
"beamPosSigmaZKey", f
"{eventInfoKey}.beamPosSigmaZ")
 
  149     kwargs.setdefault(
"beamPosSigmaXYKey", f
"{eventInfoKey}.beamPosSigmaXY")
 
  150     kwargs.setdefault(
"beamTiltXZKey", f
"{eventInfoKey}.beamTiltXZ")
 
  151     kwargs.setdefault(
"beamTiltYZKey", f
"{eventInfoKey}.beamTiltYZ")
 
  152     kwargs.setdefault(
"beamStatusKey", f
"{eventInfoKey}.beamStatus")
 
  154     result.addEventAlgo(CompFactory.xAODMaker.EventInfoBeamSpotDecoratorAlg(name, **kwargs))