48def createMuonConfigFlags():
49 mcf=AthConfigFlags()
50
51
52
53
54
55 from AthenaConfiguration.AutoConfigFlags import DetDescrInfo
56
57 mcf.addFlag("Muon.usePhaseIIGeoSetup",lambda prevFlags : prevFlags.Detector.GeometryMuon and
58 DetDescrInfo(prevFlags.GeoModel.AtlasVersion,
59 prevFlags.GeoModel.SQLiteDB ,
60 prevFlags.GeoModel.SQLiteDBFullPath)["Muon"]["useR4Plugin"] )
61
62 mcf.addFlag("Muon.AlignedGeoTrfCacheMode", GeoTrfCacheMode.FullCacheCond, type = GeoTrfCacheMode)
63
64
66 mcf.addFlag("Muon.trackGeometryActiveMaterial", True)
67
69 mcf.addFlag("Muon.trackGeometryPassiveMaterial", True)
70
71 mcf.addFlag("Muon.doFastMMDigitization", False)
72 mcf.addFlag("Muon.doFastsTGCDigitization",True)
73
74
75 mcf.addFlag("Muon.setupTruthAlgorithms", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup and \
76 prevFlags.Input.isMC and \
77 not prevFlags.Trigger.doHLT)
78
79
80
82 try:
83
84 from TrkConfig.TrkConfigFlags import TrackingComponent
85 mcf.addFlag("Muon.scheduleActsReco", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup and \
86 prevFlags.Tracking.recoChain[0] in [TrackingComponent.ActsChain , TrackingComponent.ActsLegacyChain ])
87 except ImportError:
88 mcf.addFlag("Muon.scheduleActsReco", False)
89
90
91 mcf.addFlag("Muon.enableMLBucketFilter", False)
92
93 mcf.addFlag("Muon.doMSVertex", True)
94 mcf.addFlag("Muon.doSegmentT0Fit",lambda prevFlags : prevFlags.Beam.Type is not BeamType.Collisions)
95 mcf.addFlag("Muon.enableErrorTuning",True)
96 mcf.addFlag("Muon.useLooseErrorTuning",False)
97 mcf.addFlag("Muon.useTGCPriorNextBC",False)
98 mcf.addFlag("Muon.useAlignmentCorrections",True)
99
100 mcf.addFlag("Muon.makePRDs",True)
101
102 mcf.addFlag("Muon.enableNRPC", lambda prevFlags: prevFlags.Detector.GeometryRPC and \
103 prevFlags.Muon.usePhaseIIGeoSetup )
104
105 mcf.addFlag("Muon.printSummary", False)
106 mcf.addFlag("Muon.segmentOrigin", "Muon")
107
108 mcf.addFlag("Muon.strategy", [])
109 mcf.addFlag("Muon.straightLineFitMomentum", 2000.0 )
110
111 mcf.addFlag("Muon.Chi2NDofCut", 20.0 )
112 mcf.addFlag("Muon.enableCurvedSegmentFinding", False )
113 mcf.addFlag("Muon.updateSegmentSecondCoordinate", lambda prevFlags : prevFlags.Beam.Type is BeamType.Collisions)
114
115 mcf.addFlag("Muon.useSegmentMatching", lambda prevFlags : prevFlags.Beam.Type is BeamType.Collisions)
116 mcf.addFlag("Muon.useTrackSegmentMatching", True )
117 mcf.addFlag("Muon.runCommissioningChain", lambda prevFlags: ( False and (prevFlags.Detector.EnableMM or prevFlags.Detector.EnablesTGC) \
118 and prevFlags.Beam.Type is BeamType.Collisions) )
119
120 mcf.addFlag("Muon.applyMMPassivation", lambda prevFlags: prevFlags.Detector.EnableMM and not prevFlags.Common.isOnline and (prevFlags.Common.Project is not Project.AthSimulation \
121 and (prevFlags.Common.ProductionStep not in [ProductionStep.Simulation, ProductionStep.FastChain] or prevFlags.Overlay.DataOverlay)))
122
123 mcf.addFlag("Muon.Calib.readMdtJSON", lambda prevFlags: prevFlags.GeoModel.Run > LHCPeriod.Run3 and prevFlags.Muon.usePhaseIIGeoSetup)
124 mcf.addFlag("Muon.Calib.fitAnalyticRt", False)
125
126 mcf.addFlag("Muon.Calib.readMDTCalibFromBlob", True)
127 mcf.addFlag("Muon.Calib.correctMdtRtForBField", lambda prevFlags : (prevFlags.Input.isMC is False and prevFlags.Beam.Type is BeamType.Collisions))
128 mcf.addFlag("Muon.Calib.correctMdtRtForTimeSlewing", lambda prevFlags : prevFlags.Input.isMC is False)
129
130 mcf.addFlag("Muon.Calib.applySigPropUncert", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup )
131 mcf.addFlag("Muon.Calib.useMLRt", True)
132 mcf.addFlag("Muon.Calib.applyRtScaling", False)
133 mcf.addFlag("Muon.Calib.mdtCalibrationSource", "MDT")
134 mcf.addFlag("Muon.Calib.mdtPropagationSpeedBeta", lambda prevFlags : 1.0 if prevFlags.Input.isMC else 0.85)
135
136 mcf.addFlag("Muon.Calib.CscPedFromLocalFile", False)
137 mcf.addFlag("Muon.Calib.CscNoiseFromLocalFile", False)
138 mcf.addFlag("Muon.Calib.CscPSlopeFromLocalFile", False)
139 mcf.addFlag("Muon.Calib.CscStatusFromLocalFile", False)
140 mcf.addFlag("Muon.Calib.CscRmsFromLocalFile", False)
141 mcf.addFlag("Muon.Calib.CscF001FromLocalFile", False)
142 mcf.addFlag("Muon.Calib.CscT0BaseFromLocalFile", False)
143 mcf.addFlag("Muon.Calib.CscT0PhaseFromLocalFile", False)
144
145 mcf.addFlag("Muon.Calib.EventTag", "MoMu")
146
147
148
149
150
151
152
153
154
155 mcf.addFlag("Muon.Calib.mdtMode", "ntuple")
156
157
158
159
160 mcf.addFlag("Muon.Calib.applyMmT0Correction", lambda prevFlags: prevFlags.GeoModel.Run==LHCPeriod.Run3 and prevFlags.Input.DataYear != 2022 and not prevFlags.Common.isOnline and not prevFlags.Input.isMC )
161 mcf.addFlag("Muon.Calib.applysTgcT0Correction", lambda prevFlags: prevFlags.GeoModel.Run<LHCPeriod.Run4 and not prevFlags.Common.isOnline and not prevFlags.Input.isMC and False)
162 mcf.addFlag("Muon.Calib.applyMmBFieldCalib", True)
163
164
165
166 mcf.addFlag("Muon.Align.UseALines", lambda prevFlags: (_muonAlignMode(prevFlags)))
167 mcf.addFlag("Muon.Align.UseBLines", lambda prevFlags: prevFlags.Muon.Align.UseALines)
168 mcf.addFlag("Muon.Align.UseILines", lambda prevFlags: (_muonAlignMode(prevFlags)) and \
169 prevFlags.Detector.GeometryCSC and 'HLT' not in prevFlags.IOVDb.GlobalTag)
170 mcf.addFlag("Muon.Align.UseAsBuilt", lambda prevFlags: (_muonAlignMode(prevFlags)) and not \
171 (prevFlags.IOVDb.DatabaseInstance == 'COMP200' or \
172 'HLT' in prevFlags.IOVDb.GlobalTag or prevFlags.Common.isOnline) )
173 mcf.addFlag("Muon.Align.UsesTGCAsBuild", lambda prevFlags: (_muonAlignMode(prevFlags)) and not prevFlags.Common.isOnline and prevFlags.GeoModel.Run == LHCPeriod.Run3)
174
175
176 mcf.addFlag("Muon.MuonTrigger", False)
177 mcf.addFlag("Muon.SAMuonTrigger", False)
178 mcf.addFlag("Muon.disableNSWForL2SA", True)
179
180 mcf.addFlag("Muon.enableAlignment",lambda flags: (flags.Common.Project is not Project.AthSimulation \
181 and not (flags.Common.ProductionStep in [ProductionStep.Simulation, ProductionStep.FastChain] or flags.Overlay.DataOverlay)))
182 mcf.addFlag("Muon.enableTrigIDtrackReuse", False)
183
184
185 mcf.addFlag("Muon.DESDM_MCP.doAlignmentFormat", False)
186 mcf.addFlag("Muon.DESDM_MCP.doExtendedAlignmentContent", False)
187
188
189 mcf.addFlag("Muon.doWriteRpcRDO", True)
190
191 mcf.addFlag("Muon.writeSDOs", lambda prevFlags : prevFlags.Output.doWriteESD and prevFlags.Input.isMC)
192
193
194
195 mcf.addFlag("Muon.MMClusterCalibRecoTool", lambda prevFlags: MMClusterBuilderEnum.Centroid if (prevFlags.Common.isOnline or prevFlags.Input.DataYear == 2022 or prevFlags.Beam.Type is not BeamType.Collisions) else MMClusterBuilderEnum.ClusterTimeProjection, type=MMClusterBuilderEnum)
196
197 mcf.addFlag("Muon.writexAODPRD", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup)
198
199 mcf.addFlag("Muon.useMdtDcsData", lambda prevFlags : not prevFlags.Common.isOnline and prevFlags.Detector.GeometryMDT)
200
201
202
203
204 return mcf
205