ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCablingConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
4from AthenaConfiguration.ComponentFactory import CompFactory
5
6def NRPCCablingConfigCfg(flags, name = "MuonNRPC_CablingAlg", **kwargs):
7 result = ComponentAccumulator()
8
9
10 kwargs.setdefault("JSONFile", "")
11 if len(kwargs["JSONFile"]) == 0:
12 from IOVDbSvc.IOVDbSvcConfig import addFolders
13 dbName = 'RPC_OFL' if flags.Input.isMC else 'RPC'
14 cablingFolder = "/RPC/NCABLING/JSON" if flags.Input.isMC else "/RPC/Onl/NCABLING/JSON"
15 cablingTag = "RpcNcablingJson-RUN3-09"
16 from AthenaConfiguration.Enums import LHCPeriod
17 if flags.Muon.usePhaseIIGeoSetup and flags.Input.isMC:
18 if flags.GeoModel.Run <= LHCPeriod.Run3:
19 cablingTag = "RpcNcablingJson-RUN3-FantasyCabling-5"
20 else:
21 cablingTag = "RpcNcablingJson-RUN4-FantasyCabling-8"
22
23 result.merge(addFolders(flags, [cablingFolder], detDb=dbName, className='CondAttrListCollection', tag=cablingTag))
24 kwargs.setdefault("MapFolders", cablingFolder)
25
26
27 NRPCCablingAlg = CompFactory.Muon.NRpcCablingAlg(name, **kwargs)
28
29 result.addCondAlgo( NRPCCablingAlg, primary= True)
30 return result
31
32
34 acc = ComponentAccumulator()
35 if not flags.Detector.GeometryRPC: return acc
36 if flags.Muon.enableNRPC:
37 acc.merge(NRPCCablingConfigCfg(flags))
38 acc.merge(RPCLegacyCablingConfigCfg(flags))
39 return acc
40
42 acc = ComponentAccumulator()
43 dbName = 'RPC_OFL' if flags.Input.isMC else 'RPC'
44 dbRepo="MuonRPC_Cabling/ATLAS.data"
45 rpcCabMap="/RPC/CABLING/MAP_SCHEMA"
46 rpcCabMapCorr="/RPC/CABLING/MAP_SCHEMA_CORR"
47 rpcTrigEta="/RPC/TRIGGER/CM_THR_ETA"
48 rpcTrigPhi="/RPC/TRIGGER/CM_THR_PHI"
49
50 from IOVDbSvc.IOVDbSvcConfig import addFolders
51 acc.merge(addFolders(flags, [rpcCabMap,rpcCabMapCorr], dbName, className='CondAttrListCollection' ))
52
53 acc.merge(addFolders(flags, [rpcTrigEta,rpcTrigPhi], dbName, className='CondAttrListCollection'))
54
55 RpcCablingCondAlg=CompFactory.RpcCablingCondAlg
56 RpcCablingAlg = RpcCablingCondAlg("RpcCablingCondAlg",DatabaseRepository=dbRepo)
57 acc.addCondAlgo( RpcCablingAlg )
58
59 return acc
60
61
62def TGCCablingConfigCfg(flags, name="TgcCablingCondAlg", **kwargs):
63 acc = ComponentAccumulator()
64 if not flags.Detector.GeometryTGC: return acc
65
66 kwargs.setdefault("databaseASDtoPPdiff", 'ASD2PP_diff_12_OFL.db' if flags.Input.isMC else 'ASD2PP_diff_12_ONL.db')
67 the_alg = CompFactory.Muon.TgcCablingCondAlg(name, **kwargs)
68 acc.addCondAlgo(the_alg, primary = True)
69 return acc
70
71# This should be checked by experts since I just wrote it based on
72# athena/MuonSpectrometer/MuonCnv/MuonCnvExample/python/MuonCablingConfig.py
73def MDTCablingConfigCfg(flags, name = "MuonMDT_CablingAlg", **kwargs):
74 acc = ComponentAccumulator()
75 if not flags.Detector.GeometryMDT: return acc
76 from AthenaConfiguration.Enums import LHCPeriod
77
78 kwargs.setdefault("UseJSONFormat", flags.Muon.usePhaseIIGeoSetup and \
79 flags.GeoModel.Run >= LHCPeriod.Run4)
80
81 kwargs.setdefault("MezzanineJSON", "")
82 kwargs.setdefault("CablingJSON", "")
83
84 kwargs.setdefault("isRun3", flags.GeoModel.Run >= LHCPeriod.Run3 )
85 from IOVDbSvc.IOVDbSvcConfig import addFolders
86 if len(kwargs["MezzanineJSON"]) == 0 and len(kwargs["CablingJSON"]) == 0:
87 if flags.Input.isMC is True:
88 dbTagMezz = None
89 dbTagSchema = None
90 if flags.Muon.usePhaseIIGeoSetup and \
91 flags.GeoModel.Run >= LHCPeriod.Run4:
92 dbTagMezz = "MDTMezMapSchemaJSON_RUN4BestKnowledge_v1"
93 dbTagSchema = "MDTCablingMapSchemaJSON_RUN4BestKnowledge_v1"
94 elif flags.GeoModel.Run >= LHCPeriod.Run4:
95 dbTagSchema = "MDTOflCablingMapSchema_RUN124_MC15_02"
96 dbTagMezz = "MDTOflCablingMezzanineSchema_RUN124_MC15_02"
97 if kwargs["UseJSONFormat"]:
98 kwargs.setdefault("MapFolders", "/MDT/CABLING/MAP_SCHEMA_JSON")
99 kwargs.setdefault("MezzanineFolders", "/MDT/CABLING/MEZZANINE_SCHEMA_JSON")
100 else:
101 kwargs.setdefault("MapFolders", "/MDT/Ofl/CABLING/MAP_SCHEMA")
102 kwargs.setdefault("MezzanineFolders", "/MDT/Ofl/CABLING/MEZZANINE_SCHEMA")
103 acc.merge( addFolders( flags, [kwargs["MapFolders"]], 'MDT_OFL',
104 className="CondAttrListCollection", tag = dbTagSchema))
105 acc.merge( addFolders( flags, [kwargs["MezzanineFolders"]], 'MDT_OFL',
106 className="CondAttrListCollection", tag = dbTagMezz) )
107 else:
108 if kwargs["UseJSONFormat"]:
109 kwargs.setdefault("MapFolders", "/MDT/CABLING/MAP_SCHEMA_JSON")
110 kwargs.setdefault("MezzanineFolders", "/MDT/CABLING/MEZZANINE_SCHEMA_JSON")
111 else:
112 kwargs.setdefault("MapFolders", "/MDT/CABLING/MAP_SCHEMA")
113 kwargs.setdefault("MezzanineFolders", "/MDT/CABLING/MEZZANINE_SCHEMA")
114 acc.merge( addFolders( flags, [kwargs["MapFolders"], kwargs["MezzanineFolders"]], 'MDT',
115 className="CondAttrListCollection") )
116
117
118 MDTCablingAlg = CompFactory.MuonMDT_CablingAlg(name, **kwargs)
119 acc.addCondAlgo( MDTCablingAlg, primary = True )
120
121 return acc
122
123def MdtTwinTubeMapCondAlgCfg(flags, name="MdtTwinTubeCondAlg", **kwargs):
124 result = ComponentAccumulator()
125 if not flags.Detector.GeometryMDT: return result
126 kwargs.setdefault("JSONFile","")
127 if(not kwargs["JSONFile"]):
128 kwargs.setdefault("FolderName","/MDT/TWINMAPPING")
129 from IOVDbSvc.IOVDbSvcConfig import addFolders
130 result.merge(addFolders(flags,[kwargs["FolderName"]], ("MDT_OFL" if flags.Input.isMC else "MDT"),className="CondAttrListCollection", tag="MDTTwinMapping_compactFormat_Run123"))
131 else:
132 kwargs["FolderName"] = ""
133
134 the_alg = CompFactory.Muon.TwinTubeMappingCondAlg(name, **kwargs)
135 result.addCondAlgo(the_alg, primary = True)
136 return result
137
138# This should be checked by experts
140 acc = ComponentAccumulator()
141 if not flags.Detector.GeometryCSC: return acc
142 CSCcablingSvc=CompFactory.CSCcablingSvc
143 cscCablingSvc = CSCcablingSvc()
144
145 acc.addService( cscCablingSvc, primary=True )
146
147 return acc
148
149def MmCablingCfg(flags, name = "MuonMm_CablingAlg", **kwargs):
150 result = ComponentAccumulator()
151
152 if flags.Input.isMC or (not flags.Detector.GeometryMM):
153 return result
154
155 from IOVDbSvc.IOVDbSvcConfig import addFolders
156 cablingFolder = ["/MDT/MM/CABLING" if not flags.Common.isOnline else "/MDT/Onl/MM/CABLING"]
157 kwargs.setdefault("CablingFolder",cablingFolder)
158 result.merge(addFolders(flags, kwargs["CablingFolder"], detDb=("MDT_OFL" if not flags.Common.isOnline else "MDT_ONL"), className="CondAttrListCollection"))
159
160 the_alg = CompFactory.MuonNSW_CablingAlg(name, **kwargs)
161 result.addCondAlgo(the_alg, primary = True)
162 return result
163
164def sTgcCablingCfg(flags, name = "MuonsTgc_CablingAlg", **kwargs):
165 result = ComponentAccumulator()
166
167 if flags.Input.isMC or (not flags.Detector.GeometrysTGC):
168 return result
169
170 from IOVDbSvc.IOVDbSvcConfig import addFolders
171 cablingFolder = ["/TGC/NSW/CABLING" if not flags.Common.isOnline else "/TGC/Onl/NSW/CABLING"]
172 kwargs.setdefault("CablingFolder",cablingFolder)
173 kwargs.setdefault("WriteKey",'stgcCablingMap')
174 result.merge(addFolders(flags, kwargs["CablingFolder"], detDb=("TGC_OFL" if not flags.Common.isOnline else "TGC_ONL"), className="CondAttrListCollection"))
175
176 the_alg = CompFactory.MuonNSW_CablingAlg(name, **kwargs)
177 result.addCondAlgo(the_alg, primary = True)
178 return result
179
180
181
182#All the cabling configs together (convenience function)
184 acc = ComponentAccumulator()
185 acc.merge( RPCCablingConfigCfg(flags) )
186 acc.merge( TGCCablingConfigCfg(flags) )
187
188 acc.merge( MDTCablingConfigCfg(flags) )
189
190 acc.merge( CSCCablingConfigCfg(flags) )
191
192 acc.merge(MmCablingCfg(flags))
193 acc.merge(sTgcCablingCfg(flags))
194
195 return acc
196
197if __name__ == '__main__':
198 from AthenaConfiguration.AllConfigFlags import initConfigFlags
199 from AthenaConfiguration.TestDefaults import defaultTestFiles, defaultGeometryTags
200 flags = initConfigFlags()
201 flags.Input.Files = defaultTestFiles.RAW_RUN2
202 flags.GeoModel.AtlasVersion = defaultGeometryTags.RUN2
203 flags.lock()
204
205 acc = ComponentAccumulator()
206
207 result = MuonCablingConfigCfg(flags)
208 acc.merge( result )
209
210 f=open('MuonCabling.pkl','wb')
211 acc.store(f)
212 f.close()
if(febId1==febId2)
sTgcCablingCfg(flags, name="MuonsTgc_CablingAlg", **kwargs)
MDTCablingConfigCfg(flags, name="MuonMDT_CablingAlg", **kwargs)
NRPCCablingConfigCfg(flags, name="MuonNRPC_CablingAlg", **kwargs)
TGCCablingConfigCfg(flags, name="TgcCablingCondAlg", **kwargs)
MdtTwinTubeMapCondAlgCfg(flags, name="MdtTwinTubeCondAlg", **kwargs)
MmCablingCfg(flags, name="MuonMm_CablingAlg", **kwargs)