3 from AthenaConfiguration.ComponentAccumulator 
import ComponentAccumulator
 
    4 from AthenaConfiguration.ComponentFactory 
import CompFactory
 
    5 from OutputStreamAthenaPool.OutputStreamConfig 
import addToAOD, addToESD
 
    8     """Configures HITowerWeightTool""" 
   11     if "InputFile" not in kwargs:
 
   12         from HIJetRec.HIJetRecUtilsCA 
import getHIClusterGeoWeightFile
 
   14     kwargs.setdefault(
"ApplyCorrection", flags.HeavyIon.Jet.ApplyTowerEtaPhiCorrection)
 
   15     kwargs.setdefault(
"ConfigDir", 
'HIJetCorrection/')
 
   17     acc.setPrivateTools(CompFactory.HITowerWeightTool(name, **kwargs))
 
   21     """Configures HIEventShapeMapTool""" 
   23     acc.setPrivateTools(CompFactory.HIEventShapeMapTool(name, **kwargs))
 
   27     """Configures HIEventShapeFillerTool""" 
   29     if "EventShapeMapTool" not in kwargs:
 
   31         kwargs.setdefault(
"EventShapeMapTool", eventShapeMapTool)
 
   32     kwargs.setdefault(
"UseClusters", 
False)
 
   33     if kwargs[
"UseClusters"]:
 
   36         kwargs.setdefault(
"TowerWeightTool", TWTool)
 
   38     acc.setPrivateTools(CompFactory.HIEventShapeFillerTool(name, **kwargs))
 
   42     """Configures HIEventShapeMaker, either with weights (for HIJets) or without weight (for HIGlobal)""" 
   46     if not flags.HeavyIon.isDerivation:
 
   47         from CaloRec.CaloRecoConfig 
import CaloRecoCfg
 
   50         from CaloRec.CaloTowerMakerConfig 
import CaloTowerMakerCfg
 
   53         kwargs.setdefault(
"NaviTowerKey", towerMaker.TowerContainerName)
 
   54         kwargs.setdefault(
"InputTowerKey", 
"")
 
   56         kwargs.setdefault(
"InputTowerKey", 
"HIClusters")
 
   58     kwargs.setdefault(
"OutputContainerKey", 
"HIEventShape")
 
   59     if "HIEventShapeFillerTool" not in kwargs:
 
   60         name_esft=
"HIEventShapeFillerTool_Weighted" if doWeighted 
else "HIEventShapeFillerTool" 
   63                                                                         UseClusters=doWeighted))
 
   64         kwargs.setdefault(
"HIEventShapeFillerTool",eventShapeTool)
 
   66     acc.addEventAlgo(CompFactory.HIEventShapeMaker(name, **kwargs))
 
   70     """Configures HIEventShapeSummaryTool""" 
   74     kwargs.setdefault(
"SubCalos", [
'FCal',
'EMCal',
'HCal',
'ALL'])
 
   75     kwargs.setdefault(
"Samplings", [
'FCAL0',
'FCAL1',
'FCAL2'])
 
   76     kwargs.setdefault(
"DoPositiveNegativeSides", 
False)
 
   78     acc.setPrivateTools(CompFactory.HIEventShapeSummaryTool(name, **kwargs))
 
   82     """Configures Heavy Ion Global quantities """ 
   85     shapeKey=flags.HeavyIon.Global.EventShape
 
   86     output = [ f
"xAOD::HIEventShapeContainer#{shapeKey}", f
"xAOD::HIEventShapeAuxContainer#{shapeKey}Aux."]
 
   89     if flags.HeavyIon.Global.doEventShapeSummary:
 
   90         summaryKey = 
"CaloSums" 
   92         kwargs_hies[
"SummaryTool"] = summaryTool
 
   93         kwargs_hies[
"SummaryContainerKey"] = summaryKey
 
   94         output.extend([ f
"xAOD::HIEventShapeContainer#{summaryKey}", f
"xAOD::HIEventShapeAuxContainer#{summaryKey}Aux."])
 
  104 if __name__ == 
"__main__":
 
  105     from AthenaConfiguration.AllConfigFlags 
import initConfigFlags
 
  106     from AthenaConfiguration.TestDefaults 
import defaultConditionsTags, defaultGeometryTags, defaultTestFiles
 
  108     flags.Input.Files = [defaultTestFiles.d + 
"/RecJobTransformTests/data18_hi.00367384.physics_HardProbes.daq.RAW._lb0145._SFO-8._0001.data"]
 
  109     flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
 
  110     flags.IOVDb.GlobalTag = defaultConditionsTags.RUN2_DATA
 
  111     flags.Exec.MaxEvents=5
 
  112     flags.Concurrency.NumThreads=1
 
  117     from AthenaConfiguration.MainServicesConfig 
import MainServicesCfg
 
  119     from TriggerJobOpts.TriggerByteStreamConfig 
import ByteStreamReadCfg
 
  124     acc.getEventAlgo(
"HIEventShapeMaker").OutputLevel=DEBUG
 
  126     acc.printConfig(withDetails=
True, summariseProps=
True)
 
  130     sys.exit(acc.run().isFailure())