5 from MuonConfig.MuonCondAlgConfig
import CscCondDbAlgCfg, NswCalibDbAlgCfg
6 from MuonConfig.MuonGeometryConfig
import MuonGeoModelCfg
7 from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
8 from AthenaConfiguration.ComponentFactory
import CompFactory
9 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
10 from AthenaConfiguration.Enums
import BeamType, LHCPeriod
11 from IOVDbSvc.IOVDbSvcConfig
import addFoldersSplitOnline
12 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
14 from AthenaCommon.Logging
import logging
15 log = logging.getLogger(
'MuonCalibConfig')
22 """Return ComponentAccumulator configured for CSC calibration with CscCalibTool as PrivateTools"""
26 kwargs.setdefault(
"Slope", 0.19)
27 kwargs.setdefault(
"Noise", 3.5)
28 kwargs.setdefault(
"Pedestal", 2048.0)
29 kwargs.setdefault(
"ReadFromDatabase",
True)
30 kwargs.setdefault(
"SlopeFromDatabase",
False)
31 kwargs.setdefault(
"integrationNumber", 12.0)
32 kwargs.setdefault(
"integrationNumber2", 11.66)
33 kwargs.setdefault(
"samplingTime", 50.0)
34 kwargs.setdefault(
"signalWidth", 14.40922)
35 kwargs.setdefault(
"timeOffset", 71.825)
36 kwargs.setdefault(
"IsOnline", flags.Common.isOnline)
37 kwargs.setdefault(
"Latency", 119)
39 acc.setPrivateTools(CompFactory.CscCalibTool(name, **kwargs))
52 if flags.Muon.Calib.readMDTCalibFromBlob:
53 mdt_folder_name_appendix =
"BLOB"
55 mdt_folder_name_appendix=
""
57 online_folders = [
'/MDT/Onl/RT'+ mdt_folder_name_appendix,
'/MDT/Onl/T0' + mdt_folder_name_appendix]
58 offline_folders = [
'/MDT/RT' + mdt_folder_name_appendix,
'/MDT/T0' + mdt_folder_name_appendix]
60 if flags.Muon.Calib.mdtCalibrationSource==
"MDT":
61 if flags.GeoModel.Run
is LHCPeriod.Run4:
63 from IOVDbSvc.IOVDbSvcConfig
import addFolders
65 if flags.GeoModel.AtlasVersion.startswith(
'ATLAS-P2-RUN4-01-00'):
66 result.merge(
addFolders(flags,
'/MDT/RT' + mdt_folder_name_appendix,
'MDT_OFL', className=
'CondAttrListCollection', tag=
'MDTRT_Sim-Run4-01', db=
"OFLP200"))
67 result.merge(
addFolders(flags,
'/MDT/T0' + mdt_folder_name_appendix,
'MDT_OFL', className=
'CondAttrListCollection', tag=
'MDTT0_Sim-Run4-01', db=
"OFLP200"))
69 result.merge(
addFolders(flags,
'/MDT/RT' + mdt_folder_name_appendix,
'MDT_OFL', className=
'CondAttrListCollection', tag=
'MDTRT_Sim-R3SYM-04', db=
"OFLP200"))
70 result.merge(
addFolders(flags,
'/MDT/T0' + mdt_folder_name_appendix,
'MDT_OFL', className=
'CondAttrListCollection', tag=
'MDTT0_Sim-R3SYM-03', db=
"OFLP200"))
73 className =
'CondAttrListCollection' ) )
75 result.merge(
addFoldersSplitOnline(flags, flags.Muon.Calib.mdtCalibrationSource, online_folders, offline_folders,
76 className =
'CondAttrListCollection' ) )
78 return result, mdt_folder_name_appendix
86 kwargs.setdefault(
"DoSlewingCorrection", flags.Muon.Calib.correctMdtRtForTimeSlewing)
87 kwargs.setdefault(
"DoTemperatureCorrection", flags.Muon.Calib.applyRtScaling)
88 kwargs.setdefault(
"DoTofCorrection", flags.Beam.Type
is BeamType.Collisions)
89 kwargs.setdefault(
"DoPropagationTimeUncert", flags.Muon.Calib.applySigPropUncert)
91 if flags.Beam.Type
is BeamType.Collisions:
92 from MuonConfig.MuonRIO_OnTrackCreatorToolConfig
import MdtCalibWindowNumber
97 mdt_calibration_tool = CompFactory.MdtCalibrationTool(name= name, **kwargs)
98 result.setPrivateTools(mdt_calibration_tool)
103 kwargs.setdefault(
"PropagationSpeedBeta", flags.Muon.Calib.mdtPropagationSpeedBeta)
104 kwargs.setdefault(
"CreateBFieldFunctions", flags.Muon.Calib.correctMdtRtForBField)
105 kwargs.setdefault(
"CreateSlewingFunctions", flags.Muon.Calib.correctMdtRtForTimeSlewing)
106 kwargs.setdefault(
"RtJSON",
"")
107 kwargs.setdefault(
"TubeT0JSON",
"")
109 if(kwargs[
"RtJSON"]
or kwargs[
"TubeT0JSON"]):
110 kwargs.setdefault(
"ReadKeyRt",
"")
111 kwargs.setdefault(
"ReadKeyTube",
"")
112 kwargs.setdefault(
"dbPayloadType",
"")
115 kwargs.setdefault(
"ReadKeyRt",
"/MDT/RTJSONS")
116 kwargs.setdefault(
"ReadKeyTube",
"/MDT/T0JSONS")
117 kwargs.setdefault(
"dbPayloadType",
"TTree")
118 from IOVDbSvc.IOVDbSvcConfig
import addFolders
119 result.merge(
addFolders(flags,[kwargs[
"ReadKeyRt"]], className=
'CondAttrListCollection', detDb=
"MDT_OFL", tag=
"MDTRTTREE-RUN4-01"))
120 result.merge(
addFolders(flags,[kwargs[
"ReadKeyTube"]], className=
'CondAttrListCollection', detDb=
"MDT_OFL", tag=
"MDTT0TREE-RUN4-01"))
122 alg = CompFactory.MuonCalibR4.MdtCalibDbAlg(name, **kwargs)
123 result.addCondAlgo (alg, primary =
True)
132 if not flags.Muon.Calib.readMdtJSON:
136 if not flags.Muon.useMdtDcsData:
137 kwargs.setdefault(
"ReadKeyDCS",
"" )
139 from MuonConfig.MuonCondAlgConfig
import MdtCondDbAlgCfg
142 if flags.Muon.Calib.fitAnalyticRt:
143 from MuonCondAlgR4.ConditionsConfig
import MdtAnalyticRtCalibAlgCfg
144 kwargs.setdefault(
"WriteKey",
"LookUpMdtCalibDb")
146 if flags.Muon.Calib.readMdtJSON:
151 if flags.Common.isOnline
and not flags.Input.isMC:
152 kwargs.setdefault(
"ReadKeyTube",
"/MDT/T0")
153 kwargs.setdefault(
"ReadKeyRt",
"/MDT/RT")
155 kwargs.setdefault(
"ReadKeyTube",
"/MDT/T0"+ mdt_folder_name_appendix)
156 kwargs.setdefault(
"ReadKeyRt",
"/MDT/RT"+ mdt_folder_name_appendix)
157 if flags.Input.isMC
is False:
158 kwargs.setdefault(
"defaultT0", 40)
160 kwargs.setdefault(
"defaultT0", 799)
162 kwargs.setdefault(
"UseMLRt", flags.Muon.Calib.useMLRt )
163 kwargs.setdefault(
"TimeSlewingCorrection", flags.Muon.Calib.correctMdtRtForTimeSlewing)
164 kwargs.setdefault(
"MeanCorrectionVsR", [ -5.45973, -4.57559, -3.71995, -3.45051, -3.4505, -3.4834, -3.59509, -3.74869, -3.92066, -4.10799, -4.35237, -4.61329, -4.84111, -5.14524 ])
165 kwargs.setdefault(
"PropagationSpeedBeta", flags.Muon.Calib.mdtPropagationSpeedBeta)
167 kwargs.setdefault(
"CreateBFieldFunctions", flags.Muon.Calib.correctMdtRtForBField)
168 kwargs.setdefault(
"CreateSlewingFunctions", flags.Muon.Calib.correctMdtRtForTimeSlewing)
169 from RngComps.RngCompsConfig
import AthRNGSvcCfg
170 kwargs.setdefault(
"AthRNGSvc", result.getPrimaryAndMerge(
AthRNGSvcCfg(flags)))
172 kwargs.setdefault(
"UseR4DetMgr", flags.Muon.usePhaseIIGeoSetup)
173 alg = CompFactory.MdtCalibDbAlg (name, **kwargs)
174 result.addCondAlgo (alg, primary =
True)
178 """Return ComponentAccumulator configured for NSW calibration with NSWCalibTool as PrivateTools"""
181 from MagFieldServices.MagFieldServicesConfig
import AtlasFieldCacheCondAlgCfg
183 kwargs.setdefault(
"isData",
not flags.Input.isMC)
184 kwargs.setdefault(
"mmPeakTime",200)
185 kwargs.setdefault(
"sTgcPeakTime",0)
186 kwargs.setdefault(
"applyMmT0Calib", flags.Muon.Calib.applyMmT0Correction)
187 kwargs.setdefault(
"applysTgcT0Calib", flags.Muon.Calib.applysTgcT0Correction)
188 kwargs.setdefault(
"applyMmBFieldCalib",flags.Muon.Calib.applyMmBFieldCalib)
189 the_tool = CompFactory.Muon.NSWCalibTool(name,**kwargs)
190 result.setPrivateTools(the_tool)
194 """Return ComponentAccumulator configured for MM smearing with NSWCalibSmearing as PrivateTools"""
196 kwargs.setdefault(
"EtaSectors", [
True,
True,
True,
True])
197 the_tool = CompFactory.Muon.NSWCalibSmearingTool(name,**kwargs)
198 result.setPrivateTools(the_tool)
202 """Return ComponentAccumulator configured for sTGC smearing with NSWCalibSmearing as PrivateTools"""
204 kwargs.setdefault(
"EtaSectors", [
True,
True,
True,
True,
True,
True])
205 the_tool = CompFactory.Muon.NSWCalibSmearingTool(name,**kwargs)
206 result.setPrivateTools(the_tool)
212 if "readFromJSON" in kwargs:
215 elif flags.Common.isOnline:
216 from IOVDbSvc.IOVDbSvcConfig
import addFolders
217 folderNames+=[
"/MDT/Onl/MM/ClusterUncertainties/SIDEA",
218 "/MDT/Onl/MM/ClusterUncertainties/SIDEC",
219 "/TGC/Onl/NSW/ClusterUncertainties/SIDEA",
220 "/TGC/Onl/NSW/ClusterUncertainties/SIDEC",
222 result.merge(
addFolders(flags,folderNames[:2], className=
'CondAttrListCollection', detDb=
"MDT_ONL"))
223 result.merge(
addFolders(flags,folderNames[2:], className=
'CondAttrListCollection', detDb=
"TGC_ONL"))
226 from IOVDbSvc.IOVDbSvcConfig
import addFolders
227 folderNames+=[
"/MDT/MM/ClusterUncertainties/SIDEA",
228 "/MDT/MM/ClusterUncertainties/SIDEC",
229 "/TGC/NSW/ClusterUncertainties/SIDEA",
230 "/TGC/NSW/ClusterUncertainties/SIDEC"]
231 result.merge(
addFolders(flags,folderNames[:2], className=
'CondAttrListCollection', detDb=
"MDT_OFL"))
232 result.merge(
addFolders(flags,folderNames[2:], className=
'CondAttrListCollection', detDb=
"TGC_OFL"))
234 kwargs.setdefault(
"ReadKeys", folderNames)
235 the_alg = CompFactory.NswUncertDbAlg(name = name, **kwargs)
236 result.addCondAlgo(the_alg, primary =
True)
241 if "readFromJSON" in kwargs:
242 kwargs.setdefault(
"ReadKey",
"")
244 from IOVDbSvc.IOVDbSvcConfig
import addFolders
245 kwargs.setdefault(
"ReadKey",
"/MDT/MM/CTPSLOPE")
246 result.merge(
addFolders(flags, kwargs[
"ReadKey"], className=
'CondAttrListCollection', detDb=
"MDT_OFL"))
248 the_alg = CompFactory.MmCTPCondDbAlg(name = name, **kwargs)
249 result.addCondAlgo(the_alg, primary =
True)