ATLAS Offline Software
CSC_OverlayConfig.py
Go to the documentation of this file.
1 
2 """Define methods to construct configured CSC overlay algorithms
3 
4 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
5 """
6 
7 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
8 from AthenaConfiguration.ComponentFactory import CompFactory
9 
10 
11 def CSC_DataOverlayExtraCfg(flags, **kwargs):
12  """Return a ComponentAccumulator with CSC data overlay specifics"""
13  acc = ComponentAccumulator()
14 
15  # We need to convert BS to RDO for data overlay
16  from MuonConfig.MuonBytestreamDecodeConfig import CscBytestreamDecodeCfg
17  acc.merge(CscBytestreamDecodeCfg(flags))
18 
19  return acc
20 
21 
22 def CSC_OverlayAlgCfg(flags, name="CscOverlay", **kwargs):
23  """Return a ComponentAccumulator for CSCOverlay algorithm"""
24  from MuonConfig.MuonCalibrationConfig import CscCalibToolCfg
25  acc = CscCalibToolCfg(flags)
26  kwargs.setdefault("CalibTool", acc.popPrivateTools())
27 
28  from MuonConfig.MuonCSC_CnvToolsConfig import MuonCscRDODecoderCfg
29  kwargs.setdefault("CscRdoDecoderTool", acc.popToolsAndMerge(MuonCscRDODecoderCfg(flags)))
30 
31  kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}CSCRDO")
32  kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}CSCRDO")
33  kwargs.setdefault("OutputKey", "CSCRDO")
34 
35  kwargs.setdefault("isDataOverlay", flags.Overlay.DataOverlay)
36 
37  if not flags.Overlay.DataOverlay:
38  from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
39  acc.merge(SGInputLoaderCfg(flags, [f'CscRawDataContainer#{kwargs["BkgInputKey"]}']))
40 
41  # Do CSC overlay
42  acc.addEventAlgo(CompFactory.CscOverlay(name, **kwargs))
43 
44  # Setup output
45  if flags.Output.doWriteRDO:
46  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
47  acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
48  "CscRawDataContainer#CSCRDO"
49  ]))
50 
51  if flags.Output.doWriteRDO_SGNL:
52  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
53  acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
54  f"CscRawDataContainer#{flags.Overlay.SigPrefix}CSCRDO"
55  ]))
56 
57  return acc
58 
59 
60 def CSC_TruthOverlayCfg(flags, name="CscTruthOverlay", **kwargs):
61  """Return a ComponentAccumulator for the CSC SDO overlay algorithm"""
62  acc = ComponentAccumulator()
63 
64  # We do not need background CSC SDOs
65  if flags.Overlay.DataOverlay:
66  kwargs.setdefault("BkgInputKey", "")
67  else:
68  kwargs.setdefault("BkgInputKey", f"{flags.Overlay.BkgPrefix}CSC_SDO")
69 
70  if kwargs["BkgInputKey"]:
71  from SGComps.SGInputLoaderConfig import SGInputLoaderCfg
72  acc.merge(SGInputLoaderCfg(flags, [f'CscSimDataCollection#{kwargs["BkgInputKey"]}']))
73 
74  kwargs.setdefault("SignalInputKey", f"{flags.Overlay.SigPrefix}CSC_SDO")
75  kwargs.setdefault("OutputKey", "CSC_SDO")
76 
77  # Do CSC truth overlay
78  acc.addEventAlgo(CompFactory.CscSimDataOverlay(name, **kwargs))
79 
80  # Setup output
81  if flags.Output.doWriteRDO:
82  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
83  acc.merge(OutputStreamCfg(flags, "RDO", ItemList=[
84  "CscSimDataCollection#CSC_SDO"
85  ]))
86 
87  if flags.Output.doWriteRDO_SGNL:
88  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
89  acc.merge(OutputStreamCfg(flags, "RDO_SGNL", ItemList=[
90  f"CscSimDataCollection#{flags.Overlay.SigPrefix}CSC_SDO"
91  ]))
92 
93  return acc
94 
95 
96 def CSC_OverlayCfg(flags):
97  """Configure and return a ComponentAccumulator for CSC overlay"""
98  acc = ComponentAccumulator()
99 
100  # Add data overlay specifics
101  if flags.Overlay.DataOverlay:
102  acc.merge(CSC_DataOverlayExtraCfg(flags))
103 
104  # Add CSC overlay digitization algorithm
105  from MuonConfig.CSC_DigitizationConfig import CSC_OverlayDigitizationBasicCfg
106  acc.merge(CSC_OverlayDigitizationBasicCfg(flags))
107  # Add CSC digit to RDO config
108  from MuonConfig.MuonByteStreamCnvTestConfig import CscDigitToCscRDOCfg
109  acc.merge(CscDigitToCscRDOCfg(flags))
110  # Add CSC overlay algorithm
111  acc.merge(CSC_OverlayAlgCfg(flags))
112  # Add CSC truth overlay
113  if flags.Digitization.EnableTruth:
114  acc.merge(CSC_TruthOverlayCfg(flags))
115 
116  return acc
python.CSC_OverlayConfig.CSC_OverlayCfg
def CSC_OverlayCfg(flags)
Definition: CSC_OverlayConfig.py:96
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:12
python.MuonCalibrationConfig.CscCalibToolCfg
def CscCalibToolCfg(flags, name="CscCalibTool", **kwargs)
CSC calibration.
Definition: MuonCalibrationConfig.py:21
python.CSC_OverlayConfig.CSC_DataOverlayExtraCfg
def CSC_DataOverlayExtraCfg(flags, **kwargs)
Definition: CSC_OverlayConfig.py:11
python.MuonBytestreamDecodeConfig.CscBytestreamDecodeCfg
def CscBytestreamDecodeCfg(flags, name="CscRawDataProvider", **kwargs)
Definition: MuonBytestreamDecodeConfig.py:182
SGInputLoaderConfig.SGInputLoaderCfg
def SGInputLoaderCfg(flags, Load=None, **kwargs)
Definition: SGInputLoaderConfig.py:7
python.CSC_OverlayConfig.CSC_TruthOverlayCfg
def CSC_TruthOverlayCfg(flags, name="CscTruthOverlay", **kwargs)
Definition: CSC_OverlayConfig.py:60
python.CSC_OverlayConfig.CSC_OverlayAlgCfg
def CSC_OverlayAlgCfg(flags, name="CscOverlay", **kwargs)
Definition: CSC_OverlayConfig.py:22
python.CSC_DigitizationConfig.CSC_OverlayDigitizationBasicCfg
def CSC_OverlayDigitizationBasicCfg(flags, **kwargs)
Definition: CSC_DigitizationConfig.py:115
python.MuonCSC_CnvToolsConfig.MuonCscRDODecoderCfg
def MuonCscRDODecoderCfg(flags, **kwargs)
Definition: MuonCSC_CnvToolsConfig.py:6
python.MuonByteStreamCnvTestConfig.CscDigitToCscRDOCfg
def CscDigitToCscRDOCfg(flags, name="CscDigitToCscRDO", **kwargs)
Definition: MuonByteStreamCnvTestConfig.py:214