Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ITkStripConditionsToolsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
3 from AthenaConfiguration.ComponentFactory import CompFactory
4 from AthenaConfiguration.Enums import Format
5 from AtlasGeoModel.GeoModelConfig import GeoModelCfg
6 from IOVDbSvc.IOVDbSvcConfig import addFolders, addFoldersSplitOnline
7 from StripGeoModelXml.ITkStripGeoModelConfig import ITkStripReadoutGeometryCfg
8 
9 
10 def ITkStripByteStreamErrorsToolCfg(flags, name="ITkStripByteStreamErrorsTool", **kwargs):
12  kwargs.setdefault("ConfigTool", acc.popPrivateTools())
13  acc.setPrivateTools(CompFactory.SCT_ByteStreamErrorsTool(name, **kwargs))
14  return acc
15 
16 
17 def ITkStripConditionsSummaryToolCfg(flags, name="ITkStripConditionsSummaryTool", **kwargs):
18  acc = ComponentAccumulator()
19 
20  ConditionsTools = []
21  if flags.ITk.doStripModuleVeto:
22  ConditionsTools += [ acc.popToolsAndMerge(ITkStripModuleVetoCfg(flags)) ]
23 
24  kwargs.setdefault("ConditionsTools", ConditionsTools)
25  kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
26  acc.setPrivateTools(CompFactory.SCT_ConditionsSummaryTool(name, **kwargs))
27  return acc
28 
29 
30 def ITkStripDetectorElementStatusAddByteStreamErrorsToolCfg(flags, name="ITkStripDetectorElementStatusAddByteStreamErrorsTool", **kwargs):
31  acc = ComponentAccumulator()
32  if not flags.Input.isMC and flags.Input.Format is Format.BS :
33  if "ConditionsTools" not in kwargs :
34  kwargs.setdefault("ConditionsTools", [ acc.popToolsAndMerge(ITkStripByteStreamErrorsToolCfg(flags)) ])
35 
36  kwargs.setdefault("SCTDetEleCollKey", "ITkStripDetectorElementCollection")
37  acc.setPrivateTools(CompFactory.SCT_ConditionsSummaryTool(name, **kwargs))
38  return acc
39 
40 
41 def ITkStripConfigurationConditionsToolCfg(flags, name="ITkStripConfigurationConditionsTool", **kwargs):
42  # Load conditions configuration service and load folders and algorithm for it
43  # Load folders that have to exist for both MC and Data
44  from SCT_ConditionsAlgorithms.ITkStripConditionsAlgorithmsConfig import getITkStripDAQConfigFolder, ITkStripConfigurationCondAlgCfg
45  folder_path = getITkStripDAQConfigFolder(flags)
46 
47  cond_kwargs = {}
48  cond_kwargs["ChannelFolder"] = folder_path + ("Chip" if flags.IOVDb.DatabaseInstance == "COMP200" else "ChipSlim")
49  cond_kwargs["ModuleFolder"] = f"{folder_path}Module"
50  cond_kwargs["MurFolder"] = f"{folder_path}MUR"
51  cond_kwargs["dbInstance"] = "ITkStrip"
52  cond_kwargs["SCT_ConfigurationCondAlgName"] = "ITkStripConfigurationCondAlg"
53 
54  acc = ITkStripReadoutGeometryCfg(flags)
55 
56  if "ChannelFolderDB" not in cond_kwargs:
57  acc.merge(addFoldersSplitOnline(flags,
58  detDb=cond_kwargs["dbInstance"],
59  onlineFolders=cond_kwargs["ChannelFolder"],
60  offlineFolders=cond_kwargs["ChannelFolder"],
61  className="CondAttrListVec",
62  splitMC=True))
63  else:
64  acc.merge(addFolders(flags, [cond_kwargs["ChannelFolderDB"]], detDb=cond_kwargs["dbInstance"], className="CondAttrListVec"))
65  if "ModuleFolderDB" not in cond_kwargs:
66  acc.merge(addFoldersSplitOnline(flags,
67  detDb=cond_kwargs["dbInstance"],
68  onlineFolders=cond_kwargs["ModuleFolder"],
69  offlineFolders=cond_kwargs["ModuleFolder"],
70  className="CondAttrListVec",
71  splitMC=True))
72  else:
73  acc.merge(addFolders(flags, [cond_kwargs["ModuleFolderDB"]], detDb=cond_kwargs["dbInstance"], className="CondAttrListVec"))
74  if "MurFolderDB" not in cond_kwargs:
75  acc.merge(addFoldersSplitOnline(flags,
76  detDb=cond_kwargs["dbInstance"],
77  onlineFolders=cond_kwargs["MurFolder"],
78  offlineFolders=cond_kwargs["MurFolder"],
79  className="CondAttrListVec",
80  splitMC=True))
81  else:
82  acc.merge(addFolders(flags, [cond_kwargs["MurFolderDB"]], detDb=cond_kwargs["dbInstance"], className="CondAttrListVec"))
83 
84  ConfigCondAlg_kwargs = {}
85  ConfigCondAlg_kwargs["ReadKeyChannel"] = cond_kwargs["ChannelFolder"]
86  ConfigCondAlg_kwargs["ReadKeyModule"] = cond_kwargs["ModuleFolder"]
87  ConfigCondAlg_kwargs["ReadKeyMur"] = cond_kwargs["MurFolder"]
88  acc.merge(ITkStripConfigurationCondAlgCfg(flags, name="ITkStripConfigurationCondAlg", **ConfigCondAlg_kwargs))
89 
90  acc.setPrivateTools(CompFactory.SCT_ConfigurationConditionsTool(name, **kwargs))
91  return acc
92 
93 
94 def ITkStripDCSConditionsCfg(flags, name="ITkStripDCSConditions", **kwargs):
95  """Return a ComponentAccumulator configured for ITk Strip DCS Conditions"""
96  from SCT_ConditionsTools.SCT_ConditionsToolsConfig import SCT_DCSConditionsCfg
97  return SCT_DCSConditionsCfg(flags, name, ReturnHVTemp=False, #do not use DCS conditions until they're ready for ITk
98  **kwargs)
99 
100 
101 
102 def ITkStripFlaggedConditionToolCfg(flags, name="ITkStripFlaggedConditionTool", **kwargs):
103  acc = ITkStripReadoutGeometryCfg(flags)
104  acc.setPrivateTools(CompFactory.SCT_FlaggedConditionTool(name, **kwargs))
105  return acc
106 
107 
108 def ITkStripModuleVetoCfg(flags, name="ITkStripModuleVeto", **kwargs):
109  """Return a ComponentAccumulator configured for ITkStripModuleVetoTool
110  """
111  # For SCT_ID used in SCT_ModuleVetoTool
112  acc = GeoModelCfg(flags)
113 
114 
115  kwargs.setdefault("useDB", False)
116  kwargs.setdefault("BadModuleIdentifiers", [])
117 
118  if kwargs["useDB"]:
119  kwargs.setdefault("BadModuleIdentifiers", ["database"])
120  # Condition folder
121  acc.merge(addFolders(flags,
122  folderStrings="/ITk/Manual/BadModules",
123  detDb="OFLP200",
124  className="AthenaAttributeList",
125  tag=kwargs["folderTag"]))
126  # Condition algorithm
127  acc.addCondAlgo(CompFactory.SCT_ModuleVetoCondAlg())
128 
129  # Condition tool
130  toolArgs = {}
131  toolArgs["JsonPath"] = flags.ITk.JsonPathStripModuleVeto
132  toolArgs["BadModuleIdentifiers"] = kwargs["BadModuleIdentifiers"]
133  acc.setPrivateTools(CompFactory.SCT_ModuleVetoTool(name=f"{name}Tool", **toolArgs))
134 
135  return acc
136 
137 
138 def ITkStripMonitorConditionsToolCfg(flags, name="ITkStripMonitorConditionsTool", cond_kwargs={}, **kwargs):
139  cond_kwargs.setdefault("Folder", "/ITkStrip/Derived/Monitoring")
140  cond_kwargs.setdefault("dbInstance", "ITkStrip_OFL")
141  cond_kwargs.setdefault("MonitorCondAlgName", "ITkStripMonitorCondAlg")
142 
143  kwargs.setdefault("CondKey", "ITkStripMonitorCondData")
144 
145  acc = ITkStripReadoutGeometryCfg(flags)
146 
147  if "FolderDb" not in cond_kwargs:
148  cond_kwargs["FolderDb"] = cond_kwargs["Folder"]
149  acc.merge(addFolders(flags, cond_kwargs["FolderDb"], cond_kwargs["dbInstance"], className="CondAttrListCollection"))
150 
151  acc.addCondAlgo(CompFactory.SCT_MonitorCondAlg(name=cond_kwargs["MonitorCondAlgName"],
152  ReadKey=cond_kwargs["Folder"],
153  WriteKey=kwargs["CondKey"]))
154 
155  acc.setPrivateTools(CompFactory.SCT_MonitorConditionsTool(name, **kwargs))
156  return acc
157 
158 
159 def ITkStripReadCalibDataToolCfg(flags, name="ITkStripReadCalibDataTool", cond_kwargs={}, **kwargs):
160  acc = ITkStripReadoutGeometryCfg(flags)
161 
162  cond_kwargs.setdefault("NoiseFolder","/ITkStrip/DAQ/Calibration/NoiseOccupancyDefects")
163  cond_kwargs.setdefault("GainFolder","/ITkStrip/DAQ/Calibration/NPtGainDefects")
164  cond_kwargs.setdefault("ReadCalibDataCondAlgName","ITkStripReadCalibDataCondAlg")
165 
166  acc.merge(addFoldersSplitOnline(flags,
167  detDb="ITkStrip",
168  onlineFolders=cond_kwargs["NoiseFolder"],
169  offlineFolders=cond_kwargs["NoiseFolder"],
170  className="CondAttrListCollection",
171  splitMC=True))
172  acc.merge(addFoldersSplitOnline(flags,
173  detDb="ITkStrip",
174  onlineFolders=cond_kwargs["GainFolder"],
175  offlineFolders=cond_kwargs["GainFolder"],
176  className="CondAttrListCollection",
177  splitMC=True))
178 
179  acc.addCondAlgo(CompFactory.SCT_ReadCalibDataCondAlg(name=cond_kwargs["ReadCalibDataCondAlgName"],
180  ReadKeyGain=cond_kwargs["GainFolder"],
181  ReadKeyNoise=cond_kwargs["NoiseFolder"]))
182 
183  from SCT_Cabling.ITkStripCablingConfig import ITkStripCablingToolCfg
184  kwargs.setdefault("SCT_CablingTool", acc.popToolsAndMerge(ITkStripCablingToolCfg(flags)))
185 
186  acc.setPrivateTools(CompFactory.SCT_ReadCalibDataTool(name, **kwargs))
187  return acc
188 
189 
190 def ITkStripReadoutToolCfg(flags, name="ITkStripReadoutTool", **kwargs):
191  from SCT_Cabling.ITkStripCablingConfig import ITkStripCablingToolCfg
192  acc = ITkStripCablingToolCfg(flags)
193  kwargs.setdefault("SCT_CablingTool", acc.popPrivateTools())
194  acc.setPrivateTools(CompFactory.SCT_ReadoutTool(name, **kwargs))
195  return acc
196 
197 
198 def ITkStripSiliconConditionsCfg(flags, name="ITkStripSilicon", **kwargs):
199  """Return a ComponentAccumulator configured for ITk Strip SiliconConditions"""
200  acc = ComponentAccumulator()
201 
202  kwargs["DCSConditionsTool"] = acc.popToolsAndMerge(ITkStripDCSConditionsCfg(flags))
203 
204  from SCT_ConditionsTools.SCT_ConditionsToolsConfig import SCT_SiliconConditionsCfg
205  acc.setPrivateTools(acc.popToolsAndMerge(SCT_SiliconConditionsCfg(flags, name, useDCS = False, **kwargs)))
206  return acc
207 
208 
209 def ITkStripTdaqEnabledToolCfg(flags, name="ITkStripTdaqEnabledTool", **kwargs):
210  # For SCT_ID used in SCT_TdaqEnabledTool
211  acc = GeoModelCfg(flags)
212 
213  # Folder
214  # FIXME - is there a better way to do this?
215  folder = "/TDAQ/Resources/ATLAS/ITkStrip/Robins" if flags.IOVDb.DatabaseInstance == "CONDBR2" else "/TDAQ/EnabledResources/ATLAS/ITkStrip/Robins"
216  acc.merge(addFolders(flags, [folder], detDb="TDAQ", className="CondAttrListCollection"))
217 
218  # Algorithm
219  from SCT_Cabling.ITkStripCablingConfig import ITkStripCablingToolCfg
220  kwargs.setdefault("SCT_CablingTool", acc.popToolsAndMerge(ITkStripCablingToolCfg(flags)))
221  acc.addCondAlgo(CompFactory.SCT_TdaqEnabledCondAlg(**kwargs))
222 
223  # Tool
224  acc.setPrivateTools(CompFactory.SCT_TdaqEnabledTool(name))
225  return acc
python.ITkStripConditionsToolsConfig.ITkStripDCSConditionsCfg
def ITkStripDCSConditionsCfg(flags, name="ITkStripDCSConditions", **kwargs)
Definition: ITkStripConditionsToolsConfig.py:94
ITkStripCablingConfig.ITkStripCablingToolCfg
def ITkStripCablingToolCfg(flags, name="ITkStripCablingTool")
Definition: ITkStripCabling/python/ITkStripCablingConfig.py:13
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.ITkStripConditionsToolsConfig.ITkStripFlaggedConditionToolCfg
def ITkStripFlaggedConditionToolCfg(flags, name="ITkStripFlaggedConditionTool", **kwargs)
Definition: ITkStripConditionsToolsConfig.py:102
python.ITkStripConditionsToolsConfig.ITkStripByteStreamErrorsToolCfg
def ITkStripByteStreamErrorsToolCfg(flags, name="ITkStripByteStreamErrorsTool", **kwargs)
Definition: ITkStripConditionsToolsConfig.py:10
ITkStripGeoModelConfig.ITkStripReadoutGeometryCfg
def ITkStripReadoutGeometryCfg(flags)
Definition: ITkStripGeoModelConfig.py:43
python.SCT_ConditionsToolsConfig.SCT_DCSConditionsCfg
def SCT_DCSConditionsCfg(flags, name="InDetSCT_DCSConditions", **kwargs)
Definition: SCT_ConditionsToolsConfig.py:192
python.ITkStripConditionsToolsConfig.ITkStripReadoutToolCfg
def ITkStripReadoutToolCfg(flags, name="ITkStripReadoutTool", **kwargs)
Definition: ITkStripConditionsToolsConfig.py:190
python.ITkStripConditionsToolsConfig.ITkStripModuleVetoCfg
def ITkStripModuleVetoCfg(flags, name="ITkStripModuleVeto", **kwargs)
Definition: ITkStripConditionsToolsConfig.py:108
python.ITkStripConditionsToolsConfig.ITkStripConfigurationConditionsToolCfg
def ITkStripConfigurationConditionsToolCfg(flags, name="ITkStripConfigurationConditionsTool", **kwargs)
Definition: ITkStripConditionsToolsConfig.py:41
python.IOVDbSvcConfig.addFolders
def addFolders(flags, folderStrings, detDb=None, className=None, extensible=False, tag=None, db=None, modifiers='')
Definition: IOVDbSvcConfig.py:81
python.ITkStripConditionsToolsConfig.ITkStripSiliconConditionsCfg
def ITkStripSiliconConditionsCfg(flags, name="ITkStripSilicon", **kwargs)
Definition: ITkStripConditionsToolsConfig.py:198
python.IOVDbSvcConfig.addFoldersSplitOnline
def addFoldersSplitOnline(flags, detDb, onlineFolders, offlineFolders, className=None, extensible=False, addMCString='_OFL', splitMC=False, tag=None, forceDb=None, modifiers='')
Definition: IOVDbSvcConfig.py:162
python.ITkStripConditionsToolsConfig.ITkStripMonitorConditionsToolCfg
def ITkStripMonitorConditionsToolCfg(flags, name="ITkStripMonitorConditionsTool", cond_kwargs={}, **kwargs)
Definition: ITkStripConditionsToolsConfig.py:138
python.ITkStripConditionsAlgorithmsConfig.getITkStripDAQConfigFolder
def getITkStripDAQConfigFolder(flags)
Definition: ITkStripConditionsAlgorithmsConfig.py:27
python.ITkStripConditionsToolsConfig.ITkStripDetectorElementStatusAddByteStreamErrorsToolCfg
def ITkStripDetectorElementStatusAddByteStreamErrorsToolCfg(flags, name="ITkStripDetectorElementStatusAddByteStreamErrorsTool", **kwargs)
Definition: ITkStripConditionsToolsConfig.py:30
python.ITkStripConditionsToolsConfig.ITkStripConditionsSummaryToolCfg
def ITkStripConditionsSummaryToolCfg(flags, name="ITkStripConditionsSummaryTool", **kwargs)
Definition: ITkStripConditionsToolsConfig.py:17
python.ITkStripConditionsToolsConfig.ITkStripTdaqEnabledToolCfg
def ITkStripTdaqEnabledToolCfg(flags, name="ITkStripTdaqEnabledTool", **kwargs)
Definition: ITkStripConditionsToolsConfig.py:209
python.SCT_ConditionsToolsConfig.SCT_SiliconConditionsCfg
def SCT_SiliconConditionsCfg(flags, name="SCT_Silicon", **kwargs)
Definition: SCT_ConditionsToolsConfig.py:451
python.ITkStripConditionsAlgorithmsConfig.ITkStripConfigurationCondAlgCfg
def ITkStripConfigurationCondAlgCfg(flags, name="ITkStripConfigurationCondAlg", **kwargs)
Definition: ITkStripConditionsAlgorithmsConfig.py:31
python.ITkStripConditionsToolsConfig.ITkStripReadCalibDataToolCfg
def ITkStripReadCalibDataToolCfg(flags, name="ITkStripReadCalibDataTool", cond_kwargs={}, **kwargs)
Definition: ITkStripConditionsToolsConfig.py:159
python.GeoModelConfig.GeoModelCfg
def GeoModelCfg(flags)
Definition: GeoModelConfig.py:16