1"""Define methods to construct configured CSC Digitization tools and algorithms
3Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
5from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory
import CompFactory
7from AthenaConfiguration.Enums
import ProductionStep
8from OutputStreamAthenaPool.OutputStreamConfig
import OutputStreamCfg
9from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
10from MuonConfig.MuonCondAlgConfig
import CscCondDbAlgCfg
11from MuonConfig.MuonByteStreamCnvTestConfig
import CscDigitToCscRDOCfg
12from MuonConfig.MuonCablingConfig
import CSCCablingConfigCfg
13from DigitizationConfig.TruthDigitizationOutputConfig
import TruthDigitizationOutputCfg
14from DigitizationConfig.PileUpToolsConfig
import PileUpToolsCfg
15from DigitizationConfig.PileUpMergeSvcConfig
import PileUpMergeSvcCfg, PileUpXingFolderCfg
29 """Return a PileUpXingFolder tool configured for CSC"""
32 kwargs.setdefault(
"CacheRefreshFrequency", 1.0)
33 kwargs.setdefault(
"ItemList", [
"CSCSimHitCollection#CSC_Hits"])
34 return PileUpXingFolderCfg(flags, name, **kwargs)
38 """Return a ComponentAccumulator with configured CscDigitizationTool"""
39 acc = ComponentAccumulator()
40 if flags.Digitization.PileUp
and not flags.Common.isOverlay:
42 if not flags.Digitization.DoXingByXingPileUp:
44 kwargs.setdefault(
"OnlyUseContainerName",
True)
45 kwargs.setdefault(
"PileUpMergeSvc", acc.getPrimaryAndMerge(PileUpMergeSvcCfg(flags, Intervals=intervals)))
47 kwargs.setdefault(
"OnlyUseContainerName",
False)
48 kwargs.setdefault(
"PileUpMergeSvc",
'')
49 if flags.Digitization.DoXingByXingPileUp:
52 kwargs.setdefault(
"pedestal", 0.0)
53 kwargs.setdefault(
"WindowLowerOffset", -25.0)
54 kwargs.setdefault(
"WindowUpperOffset", 25.0)
55 kwargs.setdefault(
"isPileUp",
False)
56 kwargs.setdefault(
"amplification", 0.43e5)
57 kwargs.setdefault(
"NewDigitEDM",
True)
58 kwargs.setdefault(
"DriftVelocity", 39)
59 kwargs.setdefault(
"ElectronEnergy", 66)
61 from MuonConfig.MuonCalibrationConfig
import CscCalibToolCfg
62 kwargs.setdefault(
"cscCalibTool", acc.popToolsAndMerge(CscCalibToolCfg(flags)))
64 CscDigitizationTool = CompFactory.CscDigitizationTool
70 """Return a ComponentAccumulator with configured CscDigitizationTool"""
71 acc = ComponentAccumulator()
72 kwargs.setdefault(
"InputObjectName",
"CSC_Hits")
73 kwargs.setdefault(
"OutputObjectName",
"CSC_DIGITS")
74 if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
75 kwargs.setdefault(
"CSCSimDataCollectionOutputName", flags.Overlay.BkgPrefix +
"CSC_SDO")
77 kwargs.setdefault(
"CSCSimDataCollectionOutputName",
"CSC_SDO")
79 acc.setPrivateTools(tool)
84 """Return a ComponentAccumulator with CscDigitizationTool configured for Overlay"""
85 kwargs.setdefault(
"OnlyUseContainerName",
False)
86 kwargs.setdefault(
"OutputObjectName", flags.Overlay.SigPrefix +
"CSC_DIGITS")
87 kwargs.setdefault(
"CSCSimDataCollectionOutputName", flags.Overlay.SigPrefix +
"CSC_SDO")
88 kwargs.setdefault(
"PileUpMergeSvc",
'')
93 """Return ComponentAccumulator with Output for CSC. Not standalone."""
94 acc = ComponentAccumulator()
95 if flags.Output.doWriteRDO:
96 ItemList = [
"CscRawDataContainer#*"]
97 if flags.Digitization.EnableTruth:
98 ItemList += [
"CscSimDataCollection#*CSC_SDO"]
99 acc.merge(TruthDigitizationOutputCfg(flags))
100 acc.merge(OutputStreamCfg(flags,
"RDO", ItemList))
105 """Return ComponentAccumulator for CSC digitization"""
106 acc = MuonGeoModelCfg(flags)
107 acc.merge(CscCondDbAlgCfg(flags))
108 if "PileUpTools" not in kwargs:
110 kwargs[
"PileUpTools"] = PileUpTools
111 acc.merge(PileUpToolsCfg(flags, **kwargs))
116 """Return ComponentAccumulator with CSC Overlay digitization"""
117 acc = MuonGeoModelCfg(flags)
118 acc.merge(CscCondDbAlgCfg(flags))
120 if flags.Common.ProductionStep != ProductionStep.FastChain:
121 from SGComps.SGInputLoaderConfig
import SGInputLoaderCfg
122 acc.merge(SGInputLoaderCfg(flags, [
"CSCSimHitCollection#CSC_Hits"]))
124 if "DigitizationTool" not in kwargs:
126 kwargs[
"DigitizationTool"] = tool
128 if flags.Concurrency.NumThreads > 0:
129 kwargs.setdefault(
"Cardinality", flags.Concurrency.NumThreads)
132 kwargs.setdefault(
"ExtraInputs", flags.Overlay.ExtraInputs)
134 CscDigitBuilder = CompFactory.CscDigitBuilder
135 acc.addEventAlgo(
CscDigitBuilder(name=
"CscOverlayDigitBuilder", **kwargs))
141 """Return ComponentAccumulator for CSC digitization and Output"""
148 """Return ComponentAccumulator with CSC Digitization and Digit to CSCRDO"""
150 acc.merge(CSCCablingConfigCfg(flags))
151 acc.merge(CscDigitToCscRDOCfg(flags))
CSC_OverlayDigitizationBasicCfg(flags, **kwargs)
CSC_DigitizationBasicCfg(flags, **kwargs)
CSC_OverlayDigitizationToolCfg(flags, name="CscOverlayDigitizationTool", **kwargs)
CSC_DigitizationToolCfg(flags, name="CscDigitizationTool", **kwargs)
CSC_DigitizationToolCommonCfg(flags, name="CscDigitizationTool", **kwargs)
CSC_DigitizationCfg(flags, **kwargs)
CSC_DigitizationDigitToRDOCfg(flags)
CSC_RangeCfg(flags, name="CSC_Range", **kwargs)