1"""Define methods to construct configured BCM Digitization tools and algs
3Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory
import CompFactory
7from AthenaConfiguration.Enums
import ProductionStep
8from RngComps.RngCompsConfig
import AthRNGSvcCfg
9from PixelGeoModel.PixelGeoModelConfig
import PixelReadoutGeometryCfg
10from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
11from DigitizationConfig.TruthDigitizationOutputConfig
import TruthDigitizationOutputCfg
12from DigitizationConfig.PileUpToolsConfig
import PileUpToolsCfg
13from DigitizationConfig.PileUpMergeSvcConfig
import PileUpMergeSvcCfg, PileUpXingFolderCfg
27 """Return a BCM configured PileUpXingFolder tool"""
31 kwargs.setdefault(
"CacheRefreshFrequency", 1.0)
32 kwargs.setdefault(
"ItemList", [
"SiHitCollection#BCMHits"])
33 return PileUpXingFolderCfg(flags, name, **kwargs)
37 """Return a ComponentAccumulator with configured BCM_DigitizationTool"""
38 acc = ComponentAccumulator()
39 kwargs.setdefault(
"RndmSvc",
40 acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
41 kwargs.setdefault(
"HitCollName",
"BCMHits")
42 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
43 kwargs.setdefault(
"OutputRDOKey", flags.Overlay.BkgPrefix +
"BCM_RDOs")
44 kwargs.setdefault(
"OutputSDOKey", flags.Overlay.BkgPrefix +
"BCM_SDO_Map")
45 elif flags.Common.isOverlay:
46 kwargs.setdefault(
"OnlyUseContainerName",
False)
47 kwargs.setdefault(
"OutputRDOKey", flags.Overlay.SigPrefix +
"BCM_RDOs")
48 kwargs.setdefault(
"OutputSDOKey", flags.Overlay.SigPrefix +
"BCM_SDO_Map")
50 kwargs.setdefault(
"OutputRDOKey",
"BCM_RDOs")
51 kwargs.setdefault(
"OutputSDOKey",
"BCM_SDO_Map")
52 if flags.Digitization.DoInnerDetectorNoise:
53 kwargs.setdefault(
"ModNoise", [90.82] * 8)
55 kwargs.setdefault(
"ModNoise", [0.0] * 8)
56 kwargs.setdefault(
"ModSignal", [450.0] * 8)
57 kwargs.setdefault(
"NinoThr", [330.0] * 8)
59 kwargs.setdefault(
"MIPDeposit", 0.33)
62 kwargs.setdefault(
"EffDistanceParam", 4.0)
63 kwargs.setdefault(
"EffSharpnessParam", 0.11)
64 kwargs.setdefault(
"TimeDelay", 9.0)
65 if flags.Digitization.DoXingByXingPileUp:
68 kwargs.setdefault(
"RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
70 BCM_DigitizationTool = CompFactory.BCM_DigitizationTool
76 """Return ComponentAccumulator with BCM_DigitizationTool for non-overlay"""
77 acc = ComponentAccumulator()
78 if flags.Digitization.PileUp:
80 if not flags.Digitization.DoXingByXingPileUp:
82 kwargs.setdefault(
"MergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
84 kwargs.setdefault(
"MergeSvc",
'')
85 kwargs.setdefault(
"OnlyUseContainerName", flags.Digitization.PileUp)
87 acc.setPrivateTools(tool)
92 """Return ComponentAccumulator with BCM_DigitizationTool for Overlay"""
93 acc = ComponentAccumulator()
94 kwargs.setdefault(
"MergeSvc",
'')
95 kwargs.setdefault(
"OnlyUseContainerName",
False)
97 acc.setPrivateTools(tool)
102 """Return ComponentAccumulator with Output for BCM. Not standalone."""
103 acc = ComponentAccumulator()
104 if flags.Output.doWriteRDO:
105 ItemList = [
"BCM_RDO_Container#*"]
106 if flags.Digitization.EnableTruth:
107 ItemList += [
"InDetSimDataCollection#*"]
108 acc.merge(TruthDigitizationOutputCfg(flags))
109 acc.merge(OutputStreamCfg(flags,
"RDO", ItemList))
114 """Return ComponentAccumulator for BCM digitization"""
115 acc = PixelReadoutGeometryCfg(flags)
116 if "PileUpTools" not in kwargs:
118 kwargs[
"PileUpTools"] = PileUpTools
119 acc.merge(PileUpToolsCfg(flags, **kwargs))
124 """Return ComponentAccumulator with BCM Overlay digitization"""
125 acc = PixelReadoutGeometryCfg(flags)
126 if flags.Common.ProductionStep != ProductionStep.FastChain:
127 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
128 acc.merge(SGInputLoaderCfg(flags, [
"SiHitCollection#BCMHits"]))
130 if "DigitizationTool" not in kwargs:
132 kwargs[
"DigitizationTool"] = tool
134 if flags.Concurrency.NumThreads > 0:
135 kwargs.setdefault(
"Cardinality", flags.Concurrency.NumThreads)
138 kwargs.setdefault(
"ExtraInputs", flags.Overlay.ExtraInputs)
140 BCM_Digitization = CompFactory.BCM_Digitization
147 """Return ComponentAccumulator for BCM digitization and Output"""
154 """Return ComponentAccumulator with BCM Overlay digitization and Output"""
Top algorithm class for BCM digitization.
BCM_DigitizationBasicCfg(flags, **kwargs)
BCM_DigitizationCfg(flags, **kwargs)
BCM_DigitizationToolCommonCfg(flags, name="BCM_DigitizationTool", **kwargs)
BCM_OverlayDigitizationCfg(flags, **kwargs)
BCM_RangeCfg(flags, name="BCM_Range", **kwargs)
BCM_DigitizationToolCfg(flags, name="BCM_DigitizationTool", **kwargs)
BCM_OverlayDigitizationBasicCfg(flags, name="BCM_OverlayDigitization", **kwargs)
BCM_OverlayDigitizationToolCfg(flags, name="BCM_OverlayDigitizationTool", **kwargs)