3 from AthenaConfiguration.ComponentAccumulator
import ComponentAccumulator
4 from AthenaConfiguration.ComponentFactory
import CompFactory
5 from AthenaConfiguration.AccumulatorCache
import AccumulatorCache
6 from AthenaConfiguration.Enums
import ProductionStep
7 from AtlasGeoModel.GeoModelConfig
import GeoModelCfg
8 from AthenaConfiguration.Enums
import LHCPeriod
12 trackingVolSvc = CompFactory.Trk.TrackingVolumesSvc(name=name, **kwargs)
13 result.addService(trackingVolSvc, primary=
True)
18 acc.addService( CompFactory.Muon.MuonIdHelperSvc(
"MuonIdHelperSvc",
19 HasCSC=flags.Detector.GeometryCSC,
20 HasSTGC=flags.Detector.GeometrysTGC,
21 HasMM=flags.Detector.GeometryMM,
22 HasMDT=flags.Detector.GeometryMDT,
23 HasRPC=flags.Detector.GeometryRPC,
24 HasTGC=flags.Detector.GeometryTGC), primary=
True )
31 if flags.Muon.usePhaseIIGeoSetup:
32 from MuonGeoModelR4.MuonGeoModelConfig
import MuonGeoModelCfg
as MuonGeoModelCfgR4
33 result.merge(MuonGeoModelCfgR4(flags))
34 from MuonGeoModelR4.MuonGeoModelConfig
import MuonAlignStoreCfg
36 if flags.Common.ProductionStep != ProductionStep.Simulation:
37 from MuonGeometryCnv.MuonReadoutGeomCnvCfg
import MuonReadoutGeometryCnvAlgCfg
48 kwargs.setdefault(
"HasCSC", flags.Detector.GeometryCSC)
49 kwargs.setdefault(
"HasSTgc", flags.Detector.GeometrysTGC)
50 kwargs.setdefault(
"HasMM", flags.Detector.GeometryMM)
52 kwargs.setdefault(
"UseConditionDb", flags.Muon.enableAlignment)
53 kwargs.setdefault(
"UseAsciiConditionData", flags.Muon.enableAlignment)
55 UseIlinesFromGM =
False
56 EnableCscInternalAlignment =
False
58 if flags.Muon.enableAlignment:
59 if not flags.Input.isMC:
60 kwargs.setdefault(
"BEENoShift",
True)
62 if flags.Muon.Align.UseILines
and flags.Detector.GeometryCSC:
63 if 'HLT' in flags.IOVDb.GlobalTag:
65 UseIlinesFromGM =
True
66 EnableCscInternalAlignment =
False
69 if (flags.Common.isOnline
and not flags.Input.isMC):
70 EnableCscInternalAlignment =
True
72 UseIlinesFromGM =
False
73 EnableCscInternalAlignment =
True
75 kwargs.setdefault(
"UseIlinesFromGM", UseIlinesFromGM)
76 kwargs.setdefault(
"EnableCscInternalAlignment", EnableCscInternalAlignment)
78 if not flags.GeoModel.SQLiteDB:
80 AGDD2Geo = CompFactory.AGDDtoGeoSvc()
81 muonAGDDTool = CompFactory.MuonAGDDTool(
"MuonSpectrometer", BuildNSW=
False)
82 AGDD2Geo.Builders += [ muonAGDDTool ]
83 if (flags.Detector.GeometrysTGC
and flags.Detector.GeometryMM):
84 nswAGDDTool = CompFactory.NSWAGDDTool(
"NewSmallWheel", Locked=
False)
85 nswAGDDTool.Volumes = [
"NewSmallWheel"]
86 nswAGDDTool.DefaultDetector =
"Muon"
87 AGDD2Geo.Builders += [ nswAGDDTool ]
90 acc.addService(AGDD2Geo, create=
True)
95 detTool = CompFactory.MuonDetectorTool(name, **kwargs)
96 acc.setPrivateTools(detTool)
102 from IOVDbSvc.IOVDbSvcConfig
import addFolders
103 if (flags.Common.isOnline
and not flags.Input.isMC):
104 acc.merge(
addFolders( flags, [
'/MUONALIGN/Onl/MDT/BARREL'],
'MUONALIGN', className=
'CondAttrListCollection'))
105 acc.merge(
addFolders( flags, [
'/MUONALIGN/Onl/MDT/ENDCAP/SIDEA'],
'MUONALIGN', className=
'CondAttrListCollection'))
106 acc.merge(
addFolders( flags, [
'/MUONALIGN/Onl/MDT/ENDCAP/SIDEC'],
'MUONALIGN', className=
'CondAttrListCollection'))
107 acc.merge(
addFolders( flags, [
'/MUONALIGN/Onl/TGC/SIDEA'],
'MUONALIGN', className=
'CondAttrListCollection'))
108 acc.merge(
addFolders( flags, [
'/MUONALIGN/Onl/TGC/SIDEC'],
'MUONALIGN', className=
'CondAttrListCollection'))
110 acc.merge(
addFolders( flags, [
'/MUONALIGN/MDT/BARREL'],
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
111 acc.merge(
addFolders( flags, [
'/MUONALIGN/MDT/ENDCAP/SIDEA'],
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
112 acc.merge(
addFolders( flags, [
'/MUONALIGN/MDT/ENDCAP/SIDEC'],
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
113 acc.merge(
addFolders( flags, [
'/MUONALIGN/TGC/SIDEA'],
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
114 acc.merge(
addFolders( flags, [
'/MUONALIGN/TGC/SIDEC'],
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
117 ParlineFolders = [
"/MUONALIGN/MDT/BARREL",
118 "/MUONALIGN/MDT/ENDCAP/SIDEA",
119 "/MUONALIGN/MDT/ENDCAP/SIDEC",
120 "/MUONALIGN/TGC/SIDEA",
121 "/MUONALIGN/TGC/SIDEC"]
126 if flags.Muon.Align.UseAsBuilt:
127 if flags.IOVDb.DatabaseInstance ==
'COMP200' or \
128 'HLT' in flags.IOVDb.GlobalTag
or flags.Common.isOnline :
134 kwargs.setdefault(
"ParlineFolders", ParlineFolders)
135 MuonAlign = CompFactory.MuonAlignmentCondAlg(name, **kwargs)
136 acc.addCondAlgo(MuonAlign, primary =
True)
142 from IOVDbSvc.IOVDbSvcConfig
import addFolders
143 acc.merge(
addFolders(flags,
"/MUONALIGN/ERRS",
"MUONALIGN_OFL", className=
"CondAttrListCollection"))
144 acc.addCondAlgo(CompFactory.MuonAlignmentErrorDbAlg(
"MuonAlignmentErrorDbAlg"))
150 if flags.GeoModel.Run < LHCPeriod.Run3:
152 kwargs.setdefault(
"MicroMegaJSON",
"")
153 kwargs.setdefault(
"sTgcJSON",
"")
155 kwargs.setdefault(
"ReadMmAsBuiltParamsKey",
"/MUONALIGN/ASBUILTPARAMS/MM")
157 kwargs.setdefault(
"ReadSTgcAsBuiltParamsKey",
"")
160 from IOVDbSvc.IOVDbSvcConfig
import addFolders
161 if(
not (kwargs[
"MicroMegaJSON"]
or not kwargs[
"ReadMmAsBuiltParamsKey"]) ) :
162 result.merge(
addFolders( flags, kwargs[
"ReadMmAsBuiltParamsKey"] ,
'MUONALIGN_OFL', className=
'CondAttrListCollection', tag=
'MuonAlignAsBuiltParamsMm-RUN3-01-00'))
164 if(
not (kwargs[
"sTgcJSON"]
or not kwargs[
"ReadSTgcAsBuiltParamsKey"])):
165 result.merge(
addFolders( flags, kwargs[
"ReadSTgcAsBuiltParamsKey"],
'MUONALIGN_OFL', className=
'CondAttrListCollection', tag=
'MUONALIGN_STG_ASBUILT-001-03'))
166 the_alg = CompFactory.NswAsBuiltCondAlg(name, **kwargs)
167 result.addCondAlgo(the_alg, primary =
True)
172 from IOVDbSvc.IOVDbSvcConfig
import addFolders
173 if "readFromJSON" not in kwargs
or not kwargs[
"readFromJSON"]:
174 result.merge(
addFolders( flags,
'/MUONALIGN/MDT/ASBUILTPARAMS' ,
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
175 the_alg = CompFactory.MdtAsBuiltCondAlg(name = name, **kwargs)
176 result.addCondAlgo(the_alg, primary =
True)
181 if not flags.Muon.Align.UseILines
or not flags.Detector.GeometryCSC
or 'HLT' in flags.IOVDb.GlobalTag:
183 from IOVDbSvc.IOVDbSvcConfig
import addFolders
184 if (flags.Common.isOnline
and not flags.Input.isMC):
185 result.merge(
addFolders( flags, [
'/MUONALIGN/Onl/CSC/ILINES'],
'MUONALIGN', className=
'CondAttrListCollection'))
187 result.merge(
addFolders( flags, [
'/MUONALIGN/CSC/ILINES'],
'MUONALIGN_OFL', className=
'CondAttrListCollection'))
189 the_alg = CompFactory.CscILinesCondAlg(name, **kwargs)
190 result.addCondAlgo(the_alg, primary =
True)
199 kwargs.setdefault(
"applyMmPassivation", flags.Muon.applyMMPassivation)
201 if kwargs[
"applyMmPassivation"]:
202 from MuonConfig.MuonCondAlgConfig
import NswPassivationDbAlgCfg
204 if flags.Muon.enableAlignment:
206 kwargs.setdefault(
"applyALines", len([alg
for alg
in result.getCondAlgos()
if alg.name ==
"MuonAlignmentCondAlg"])>0)
207 kwargs.setdefault(
"applyBLines", len([alg
for alg
in result.getCondAlgos()
if alg.name ==
"MuonAlignmentCondAlg"])>0)
208 kwargs.setdefault(
"applyILines", len([alg
for alg
in result.getCondAlgos()
if alg.name ==
"CscILinesCondAlg"])>0)
209 kwargs.setdefault(
"applyNswAsBuilt", len([alg
for alg
in result.getCondAlgos()
if alg.name ==
"NswAsBuiltCondAlg"])>0)
210 kwargs.setdefault(
"applyMdtAsBuilt", len([alg
for alg
in result.getCondAlgos()
if alg.name ==
"MdtAsBuiltCondAlg"])>0)
214 MuonDetectorManagerCond = CompFactory.MuonDetectorCondAlg(name, **kwargs)
216 result.addCondAlgo(MuonDetectorManagerCond, primary =
True)
222 geoModelSvc = result.getPrimaryAndMerge(
GeoModelCfg(flags))