ATLAS Offline Software
Loading...
Searching...
No Matches
ITkPixelConditionsConfig.py
Go to the documentation of this file.
1"""Define functions to configure Pixel conditions algorithms
2
3Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
4"""
5from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
6from AthenaConfiguration.ComponentFactory import CompFactory
7from IOVDbSvc.IOVDbSvcConfig import addFolders, addFoldersSplitOnline
8
9def ITkPixelModuleConfigCondAlgCfg(flags, name="ITkPixelModuleConfigCondAlg", **kwargs):
10 """Return a ComponentAccumulator with configured PixelConfigCondAlg for ITk"""
11 acc = ComponentAccumulator()
12 kwargs.setdefault("WriteKey", "ITkPixelModuleData")
13 #These settings should be replaced with values taken from conditions
14 CondArgs = {}
15 CondArgs.update(
16 BarrelToTThreshold = [-1,-1,-1,-1,-1],
17 BarrelCrossTalk = [ 0.06, 0.06, 0.06, 0.06, 0.06],
18 BarrelNoiseOccupancy = [ 5e-8, 5e-8, 5e-8, 5e-8, 5e-8],
19 BarrelDisableProbability = [ 9e-3, 9e-3, 9e-3, 9e-3, 9e-3],
20 BarrelLorentzAngleCorr = [ 1.0, 1.0, 1.0, 1.0, 1.0],
21 DefaultBarrelBiasVoltage = [ 150.0, 150.0, 150.0, 150.0, 150.0],
22 BarrelFluence = [0.0e14,0.0e14,0.0e14,0.0e14,0.0e14],
23 BarrelFluenceMap = ["PixelDigitization/maps_IBL_PL_80V_fl0e14.root",
24 "PixelDigitization/maps_IBL_PL_80V_fl0e14.root",
25 "PixelDigitization/maps_IBL_PL_80V_fl0e14.root",
26 "PixelDigitization/maps_IBL_PL_80V_fl0e14.root",
27 "PixelDigitization/maps_IBL_PL_80V_fl0e14.root"],
28 EndcapToTThreshold = [-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1],
29 EndcapCrossTalk = [ 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06],
30 EndcapNoiseOccupancy = [ 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8],
31 EndcapDisableProbability = [ 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3],
32 EndcapLorentzAngleCorr = [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0],
33 InnermostNoiseShape = [0.0, 1.0],
34 NextInnermostNoiseShape = [0.0, 1.0],
35 PixelNoiseShape = [0.0, 1.0]
36 )
37 CondArgs.update(kwargs)
38 acc.addCondAlgo(CompFactory.PixelModuleConfigCondAlg(name, **CondArgs))
39 return acc
40
41def ITkPixelAlignCondAlgCfg(flags,name="ITkPixelAlignCondAlg", **kwargs):
42 """Return a ComponentAccumulator with configured PixelAlignCondAlg for ITk"""
43 acc = ComponentAccumulator()
44
45 if flags.GeoModel.Align.Dynamic:
46 raise RuntimeError("Dynamic alignment not supported for ITk yet")
47 else:
48 if not flags.ITk.Align.useLocalDatabase:
49 acc.merge(addFoldersSplitOnline(flags, "INDET", "/Indet/Onl/Align", flags.ITk.Geometry.alignmentFolder , className="AlignableTransformContainer"))
50
51 kwargs.setdefault("DetManagerName", "ITkPixel")
52 kwargs.setdefault("UseDynamicAlignFolders", flags.GeoModel.Align.Dynamic)
53 kwargs.setdefault("ReadKeyStatic", flags.ITk.Geometry.alignmentFolder)
54 # kwargs.setdefault("ReadKeyDynamicL1", "/Indet/AlignL1/ID")
55 # kwargs.setdefault("ReadKeyDynamicL2", "/Indet/AlignL2/PIX")
56 # kwargs.setdefault("ReadKeyDynamicL3", "/Indet/AlignL3")
57 kwargs.setdefault("ReadKeyIBLDist", "")
58 kwargs.setdefault("WriteKey", "ITkPixelAlignmentStore")
59
60 acc.addCondAlgo(CompFactory.PixelAlignCondAlg(name, **kwargs))
61 return acc
62
63def ITkPixelChargeCalibCondAlgCfg(flags, name="ITkPixelChargeCalibCondAlg", **kwargs):
64 """Return a ComponentAccumulator with configured PixelChargeCalibCondAlg for ITk"""
65 acc = ComponentAccumulator()
66
67 from PixelGeoModelXml.ITkPixelGeoModelConfig import ITkPixelReadoutGeometryCfg
68 acc.merge(ITkPixelReadoutGeometryCfg(flags))
69 kwargs.setdefault("PixelDetEleCollKey", "ITkPixelDetectorElementCollection")
70 kwargs.setdefault("WriteKey", "ITkPixelChargeCalibCondData")
71 acc.addCondAlgo(CompFactory.ITkPixChargeCalibAlg(name, **kwargs))
72 return acc
73
74def ITkPixelDCSCondHVAlgCfg(flags, name="ITkPixelDCSCondHVAlg", **kwargs):
75 """Return a ComponentAccumulator with configured PixelDCSCondHVAlg for ITk"""
76 acc = ComponentAccumulator()
77 acc.merge(ITkPixelModuleConfigCondAlgCfg(flags))
78 kwargs.setdefault("ReadKey", "") # disable for ITk for now
79 kwargs.setdefault("PixelModuleData", "ITkPixelModuleData")
80 kwargs.setdefault("WriteKey", "ITkPixelDCSHVCondData")
81 acc.addCondAlgo(CompFactory.PixelDCSCondHVAlg(name, **kwargs))
82 return acc
83
84def ITkPixelDCSCondStateAlgCfg(flags, name="ITkPixelDCSCondStateAlg", **kwargs):
85 """Return a ComponentAccumulator with configured PixelDCSCondStateAlg for ITk"""
86 acc = ComponentAccumulator()
87 kwargs.setdefault("ReadKeyState", "") #To be configured when final DCS implementation for ITk becomes available
88 kwargs.setdefault("WriteKeyState", "ITkPixelDCSStateCondData")
89 acc.addCondAlgo(CompFactory.PixelDCSCondStateAlg(name, **kwargs))
90 return acc
91
92def ITkPixelDCSCondStatusAlgCfg(flags, name="ITkPixelDCSCondStatusAlg", **kwargs):
93 """Return a ComponentAccumulator with configured PixelDCSCondStatusAlg for ITk"""
94 acc = ComponentAccumulator()
95 kwargs.setdefault("ReadKeyStatus", "") #To be configured when final DCS implementation for ITk becomes available
96 kwargs.setdefault("WriteKeyStatus", "ITkPixelDCSStatusCondData")
97 acc.addCondAlgo(CompFactory.PixelDCSCondStatusAlg(name, **kwargs))
98 return acc
99
100def ITkPixelDCSCondTempAlgCfg(flags, name="ITkPixelDCSCondTempAlg", **kwargs):
101 """Return a ComponentAccumulator with configured PixelDCSCondTempAlg for ITk"""
102 acc = ComponentAccumulator()
103 kwargs.setdefault("ReadKey", "") # disable for ITk for now
104 kwargs.setdefault("WriteKey", "ITkPixelDCSTempCondData")
105 acc.addCondAlgo(CompFactory.PixelDCSCondTempAlg(name, **kwargs))
106 return acc
107
108def ITkPixelDeadMapCondAlgCfg(flags, name="ITkPixelDeadMapCondAlg", **kwargs):
109 """Return a ComponentAccumulator with configured PixelDeadMapCondAlg for ITk"""
110 acc = ComponentAccumulator()
111
112 # TODO: not enabled for ITk for now
113 kwargs.setdefault("ReadKey", "")
114 # Use a json file to disable modules. If readKey!="" this option is ignored
115 kwargs.setdefault("JsonPath",flags.ITk.JsonPathPixelModuleVeto)
116 kwargs.setdefault("WriteKey", "ITkPixelDeadMapCondData")
117 acc.addCondAlgo(CompFactory.PixelDeadMapCondAlg(name, **kwargs))
118 return acc
119
120def ITkPixelDetectorElementCondAlgCfg(flags, name="ITkPixelDetectorElementCondAlg", **kwargs):
121 """Return a ComponentAccumulator with configured PixelDetectorElementCondAlg for ITk"""
122 acc = ComponentAccumulator()
123 acc.merge(ITkPixelAlignCondAlgCfg(flags))
124 kwargs.setdefault("DetManagerName", "ITkPixel")
125 kwargs.setdefault("PixelAlignmentStore", "ITkPixelAlignmentStore")
126 kwargs.setdefault("WriteKey", "ITkPixelDetectorElementCollection")
127 acc.addCondAlgo(CompFactory.PixelDetectorElementCondAlg(name, **kwargs))
128 return acc
129
130def ITkPixelDistortionAlgCfg(flags, name="ITkPixelDistortionAlg", **kwargs):
131 """Return a ComponentAccumulator with configured PixelDistortionAlg for ITk"""
132 acc = ComponentAccumulator()
133 acc.merge(addFoldersSplitOnline(flags,"INDET", "/Indet/Onl/PixelDist", "/Indet/PixelDist", className="DetCondCFloat"))
134 kwargs.setdefault("ReadKey", "/Indet/PixelDist")
135 kwargs.setdefault("WriteKey", "ITkPixelDistortionData")
136 from RngComps.RngCompsConfig import AthRNGSvcCfg
137 kwargs.setdefault("RndmSvc", acc.getPrimaryAndMerge(AthRNGSvcCfg(flags)))
138 acc.addCondAlgo(CompFactory.PixelDistortionAlg(name, **kwargs))
139 return acc
140
141def ITkPixelOfflineCalibCondAlgCfg(flags, name="ITkPixelOfflineCalibCondAlg", **kwargs):
142 """Return a ComponentAccumulator with configured ITkPixelOfflineCalibCondAlg"""
143 acc = ComponentAccumulator()
144
145 folderName = ""
146 if flags.ITk.Conditions.PixelOfflineCalibTag:
147 folderName = '/PIXEL/ITkClusterError'
148
149 CalibTag = flags.ITk.Conditions.PixelOfflineCalibTag
150 if flags.ITk.Conditions.PixelOfflineCalibFile:
151 acc.merge(addFolders(flags, folderName, flags.ITk.Conditions.PixelOfflineCalibFile, tag=CalibTag, db="OFLP200", className="CondAttrListCollection"))
152 else:
153 acc.merge(addFolders(flags, folderName, "PIXEL_OFL", tag=CalibTag, db="OFLP200", className="CondAttrListCollection"))
154
155 else:
156 folderName = "/ITk/PixelClusterError"
157 acc.merge(addFolders(flags, folderName, "INDET_OFL", db="OFLP200", className="CondAttrListCollection"))
158
159 kwargs.setdefault("ReadKey", folderName)
160 kwargs.setdefault("WriteKey", "ITkPixelOfflineCalibData")
161 kwargs.setdefault("InputSource", 2)
162 acc.addCondAlgo(CompFactory.ITk.PixelOfflineCalibCondAlg(name, **kwargs))
163 return acc
164
165def ITkPixelDetectorElementStatusCondAlgNoByteStreamErrorsCfg(flags, name = "ITkPixelDetectorElementStatusCondAlgNoByteStreamErrors", **kwargs) :
166 '''
167 Condition alg to precompute the pixel detector element status.
168 This algorithm does not consider the byte stream errors which are event data.
169 '''
170 acc = ComponentAccumulator()
171 if 'ConditionsSummaryTool' not in kwargs :
172 from PixelConditionsTools.ITkPixelConditionsSummaryConfig import ITkPixelConditionsSummaryCfg
173 kwargs.setdefault("ConditionsSummaryTool", acc.popToolsAndMerge( ITkPixelConditionsSummaryCfg(flags)))
174 kwargs.setdefault( "WriteKey", "ITkPixelDetectorElementStatusNoByteStream")
175 acc.addCondAlgo( CompFactory.InDet.SiDetectorElementStatusCondAlg(name, **kwargs) )
176 return acc
177
178def ITkPixelDetectorElementStatusAlgCfg(flags, name = "ITkPixelDetectorElementStatusAlg", **kwargs) :
179 '''
180 Event alg which could extend the pixel detector element status conditions data with bytestream errors.
181 '''
182 acc = ComponentAccumulator()
183 if 'ConditionsSummaryTool' not in kwargs:
184 element_status_input=None
186 element_status_input="ITkPixelDetectorElementStatusNoByteStream"
187 from PixelConditionsTools.ITkPixelConditionsSummaryConfig import ITkByteStreamErrorDetectorElementStatusToolCfg
188 kwargs.setdefault("ConditionsSummaryTool",
189 acc.popToolsAndMerge(ITkByteStreamErrorDetectorElementStatusToolCfg(flags, PixelDetElStatusCondDataBaseKey=element_status_input) ))
190
191 kwargs.setdefault("WriteKey","ITkPixelDetectorElementStatus")
192
193 # @TODO merge pixel raw data provider for bytestream input
194
195 acc.addEventAlgo( CompFactory.InDet.SiDetectorElementStatusAlg(name, **kwargs) )
196 return acc
ITkPixelChargeCalibCondAlgCfg(flags, name="ITkPixelChargeCalibCondAlg", **kwargs)
ITkPixelOfflineCalibCondAlgCfg(flags, name="ITkPixelOfflineCalibCondAlg", **kwargs)
ITkPixelModuleConfigCondAlgCfg(flags, name="ITkPixelModuleConfigCondAlg", **kwargs)
ITkPixelDeadMapCondAlgCfg(flags, name="ITkPixelDeadMapCondAlg", **kwargs)
ITkPixelDetectorElementStatusCondAlgNoByteStreamErrorsCfg(flags, name="ITkPixelDetectorElementStatusCondAlgNoByteStreamErrors", **kwargs)
ITkPixelDCSCondStatusAlgCfg(flags, name="ITkPixelDCSCondStatusAlg", **kwargs)
ITkPixelDCSCondHVAlgCfg(flags, name="ITkPixelDCSCondHVAlg", **kwargs)
ITkPixelDCSCondStateAlgCfg(flags, name="ITkPixelDCSCondStateAlg", **kwargs)
ITkPixelDetectorElementCondAlgCfg(flags, name="ITkPixelDetectorElementCondAlg", **kwargs)
ITkPixelAlignCondAlgCfg(flags, name="ITkPixelAlignCondAlg", **kwargs)
ITkPixelDistortionAlgCfg(flags, name="ITkPixelDistortionAlg", **kwargs)
ITkPixelDCSCondTempAlgCfg(flags, name="ITkPixelDCSCondTempAlg", **kwargs)
ITkPixelDetectorElementStatusAlgCfg(flags, name="ITkPixelDetectorElementStatusAlg", **kwargs)