1 """Define methods to construct configured HGTD Digitization tools and algorithms
3 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6 from AthenaConfiguration.ComponentFactory
import CompFactory
7 from AthenaConfiguration.Enums
import ProductionStep
8 from DigitizationConfig.PileUpMergeSvcConfig
import PileUpMergeSvcCfg, PileUpXingFolderCfg
9 from DigitizationConfig.PileUpToolsConfig
import PileUpToolsCfg
10 from DigitizationConfig.TruthDigitizationOutputConfig
import TruthDigitizationOutputCfg
11 from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
26 kwargs.setdefault(
"IntegratedLuminosity", 0.)
27 acc.setPrivateTools(CompFactory.HGTD_TimingResolution(name, **kwargs))
34 acc.setPrivateTools(CompFactory.HGTD_FrontEndTool(name, **kwargs))
41 kwargs.setdefault(
"ActiveTimeWindow", 1.25)
42 kwargs.setdefault(
"SmearMeanTime",
True)
44 acc.setPrivateTools(CompFactory.HGTD_SurfaceChargesGenerator(name, **kwargs))
49 """Return ComponentAccumulator with configured HGTD_DigitizationTool"""
50 if flags.HGTD.Geometry.useGeoModelXml:
51 from HGTD_GeoModelXml.HGTD_GeoModelConfig
import HGTD_ReadoutGeometryCfg
53 from HGTD_GeoModel.HGTD_GeoModelConfig
import HGTD_ReadoutGeometryCfg
58 kwargs.setdefault(
"InputObjectName",
"HGTD_Hits")
59 kwargs.setdefault(
"HGTDDetEleCollKey",
"HGTD_DetectorElementCollection")
60 if flags.Digitization.DoXingByXingPileUp:
63 from RngComps.RngCompsConfig
import AthRNGSvcCfg
64 kwargs.setdefault(
"RndmSvc", acc.getPrimaryAndMerge(
AthRNGSvcCfg(flags)).name)
66 acc.setPrivateTools(CompFactory.HGTD_DigitizationTool(name, **kwargs))
71 """Return ComponentAccumulator with configured HGTD_DigitizationBasicTool"""
73 if flags.Digitization.PileUp:
75 if not flags.Digitization.DoXingByXingPileUp:
77 kwargs.setdefault(
"MergeSvc", acc.getPrimaryAndMerge(
PileUpMergeSvcCfg(flags, Intervals=intervals)).name)
79 kwargs.setdefault(
"MergeSvc",
"")
80 kwargs.setdefault(
"OnlyUseContainerName", flags.Digitization.PileUp)
81 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
82 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.BkgPrefix}HGTD_RDOs")
83 kwargs.setdefault(
"OutputSDOName", f
"{flags.Overlay.BkgPrefix}HGTD_SDO_Map")
85 kwargs.setdefault(
"OutputObjectName",
"HGTD_RDOs")
86 kwargs.setdefault(
"OutputSDOName",
"HGTD_SDO_Map")
88 acc.setPrivateTools(pileupTool)
93 """Return ComponentAccumulator with HGTD_DigitizationTool configured for overlay"""
94 kwargs.setdefault(
"OnlyUseContainerName",
False)
95 kwargs.setdefault(
"OutputObjectName", f
"{flags.Overlay.SigPrefix}HGTD_RDOs")
96 kwargs.setdefault(
"OutputSDOName", f
"{flags.Overlay.SigPrefix}HGTD_SDO_Map")
97 kwargs.setdefault(
"MergeSvc",
"")
102 """Return a configured PileUpXingFolder tool"""
105 kwargs.setdefault(
"CacheRefreshFrequency", 1.0)
106 kwargs.setdefault(
"ItemList", [
"SiHitCollection#HGTD_Hits"])
111 """Return ComponentAccumulator with Output for HGTD. Not standalone."""
113 if flags.Output.doWriteRDO:
114 ItemList = [
"HGTD_RDO_Container#*"]
115 if flags.Digitization.EnableTruth:
116 ItemList += [
"InDetSimDataCollection#*"]
123 """Return ComponentAccumulator for HGTD digitization"""
125 if "PileUpTools" not in kwargs:
132 """Return ComponentAccumulator with HGTD Overlay digitization"""
134 if flags.Common.ProductionStep != ProductionStep.FastChain:
135 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
138 if "DigitizationTool" not in kwargs:
141 if flags.Concurrency.NumThreads > 0:
142 kwargs.setdefault(
"Cardinality", flags.Concurrency.NumThreads)
145 kwargs.setdefault(
"ExtraInputs", flags.Overlay.ExtraInputs)
147 acc.addEventAlgo(CompFactory.HGTD_Digitization(name=
"HGTD_OverlayDigitization", **kwargs))
153 """Return ComponentAccumulator for HGTD digitization and Output"""