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", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup and \
70 len(prevFlags.Muon.trackGeometryMaterialMap) > 0)
71
72 mcf.addFlag("Muon.trackGeometryMaterialMap", "")
73
74 mcf.addFlag("Muon.doFastMMDigitization", False)
75 mcf.addFlag("Muon.doFastsTGCDigitization",True)
76 mcf.addFlag("Muon.doFastRpcDigitization",False)
78 mcf.addFlag("Muon.setupTruthAlgorithms", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup and \
79 prevFlags.Input.isMC and \
80 not prevFlags.Trigger.doHLT)
81
82
83
84
85
87 try:
88 from TrkConfig.TrkConfigFlags import TrackingComponent
89 mcf.addFlag("Muon.scheduleActsReco", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup and \
90 prevFlags.Tracking.recoChain[0] in [TrackingComponent.ActsChain , TrackingComponent.ActsLegacyChain ])
91 except ImportError:
92 mcf.addFlag("Muon.scheduleActsReco", False)
93
94 try:
95 from ActsConfig.ActsConfigFlags import TrackFitterType
96 mcf.addFlag("Muon.TrackFitterType", TrackFitterType.GlobalChiSquareFitter)
97 except ImportError:
98 mcf.addFlag("Muon.TrackFitterType", "None")
99
100
102 mcf.addFlag("Muon.includePileUpTruth", False)
103
104 mcf.addFlag("Muon.enableMLBucketFilter", False)
105
107 mcf.addFlag("Muon.expressMsTrackAtEntrance", False)
108
112 mcf.addFlag("Muon.buildMETrack", lambda prevFlags: prevFlags.Reco.EnableTracking and\
113 not prevFlags.Muon.MuonTrigger )
114
115 mcf.addFlag("Muon.doMSVertex", True)
116 mcf.addFlag("Muon.doSegmentT0Fit",lambda prevFlags : prevFlags.Beam.Type is not BeamType.Collisions)
117 mcf.addFlag("Muon.enableErrorTuning",True)
118 mcf.addFlag("Muon.useLooseErrorTuning",False)
119 mcf.addFlag("Muon.useTGCPriorNextBC",False)
120 mcf.addFlag("Muon.useAlignmentCorrections",True)
121
122 mcf.addFlag("Muon.makePRDs",True)
123
124 mcf.addFlag("Muon.enableNRPC", lambda prevFlags: prevFlags.Detector.GeometryRPC and \
125 prevFlags.Muon.usePhaseIIGeoSetup )
126
127 mcf.addFlag("Muon.printSummary", False)
128 mcf.addFlag("Muon.segmentOrigin", "Muon")
129
130 mcf.addFlag("Muon.strategy", [])
131 mcf.addFlag("Muon.straightLineFitMomentum", 2000.0 )
132
133 mcf.addFlag("Muon.Chi2NDofCut", 20.0 )
134 mcf.addFlag("Muon.enableCurvedSegmentFinding", False )
135 mcf.addFlag("Muon.updateSegmentSecondCoordinate", lambda prevFlags : prevFlags.Beam.Type is BeamType.Collisions)
136
137 mcf.addFlag("Muon.useSegmentMatching", lambda prevFlags : prevFlags.Beam.Type is BeamType.Collisions)
138 mcf.addFlag("Muon.useTrackSegmentMatching", True )
139 mcf.addFlag("Muon.runCommissioningChain", lambda prevFlags: ( False and (prevFlags.Detector.EnableMM or prevFlags.Detector.EnablesTGC) \
140 and prevFlags.Beam.Type is BeamType.Collisions) )
141
142 mcf.addFlag("Muon.applyMMPassivation", lambda prevFlags: prevFlags.Detector.EnableMM and not prevFlags.Common.isOnline and (prevFlags.Common.Project is not Project.AthSimulation \
143 and (prevFlags.Common.ProductionStep not in [ProductionStep.Simulation, ProductionStep.FastChain] or prevFlags.Overlay.DataOverlay)))
144
145 mcf.addFlag("Muon.Calib.readMdtJSON", lambda prevFlags: prevFlags.GeoModel.Run > LHCPeriod.Run3 and prevFlags.Muon.usePhaseIIGeoSetup)
146 mcf.addFlag("Muon.Calib.fitAnalyticRt", False)
147
148 mcf.addFlag("Muon.Calib.readMDTCalibFromBlob", True)
149 mcf.addFlag("Muon.Calib.correctMdtRtForBField", lambda prevFlags : (prevFlags.Input.isMC is False and prevFlags.Beam.Type is BeamType.Collisions))
150 mcf.addFlag("Muon.Calib.correctMdtRtForTimeSlewing", lambda prevFlags : prevFlags.Input.isMC is False)
151
152 mcf.addFlag("Muon.Calib.applySigPropUncert", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup )
153 mcf.addFlag("Muon.Calib.useMLRt", True)
154 mcf.addFlag("Muon.Calib.applyRtScaling", False)
155 mcf.addFlag("Muon.Calib.mdtCalibrationSource", "MDT")
156 mcf.addFlag("Muon.Calib.mdtPropagationSpeedBeta", lambda prevFlags : 1.0 if prevFlags.Input.isMC else 0.85)
157
158 mcf.addFlag("Muon.Calib.CscPedFromLocalFile", False)
159 mcf.addFlag("Muon.Calib.CscNoiseFromLocalFile", False)
160 mcf.addFlag("Muon.Calib.CscPSlopeFromLocalFile", False)
161 mcf.addFlag("Muon.Calib.CscStatusFromLocalFile", False)
162 mcf.addFlag("Muon.Calib.CscRmsFromLocalFile", False)
163 mcf.addFlag("Muon.Calib.CscF001FromLocalFile", False)
164 mcf.addFlag("Muon.Calib.CscT0BaseFromLocalFile", False)
165 mcf.addFlag("Muon.Calib.CscT0PhaseFromLocalFile", False)
166
167 mcf.addFlag("Muon.Calib.EventTag", "MoMu")
168
169
170
171
172
173
174
175
176
177 mcf.addFlag("Muon.Calib.mdtMode", "ntuple")
178
179
180
181
182 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 )
183 mcf.addFlag("Muon.Calib.applysTgcT0Correction", lambda prevFlags: prevFlags.GeoModel.Run<LHCPeriod.Run4 and not prevFlags.Common.isOnline and not prevFlags.Input.isMC and False)
184 mcf.addFlag("Muon.Calib.applyMmBFieldCalib", True)
185
186
187
188 mcf.addFlag("Muon.Align.UseALines", lambda prevFlags: (_muonAlignMode(prevFlags)))
189 mcf.addFlag("Muon.Align.UseBLines", lambda prevFlags: prevFlags.Muon.Align.UseALines)
190 mcf.addFlag("Muon.Align.UseILines", lambda prevFlags: (_muonAlignMode(prevFlags)) and \
191 prevFlags.Detector.GeometryCSC and 'HLT' not in prevFlags.IOVDb.GlobalTag)
192 mcf.addFlag("Muon.Align.UseAsBuilt", lambda prevFlags: (_muonAlignMode(prevFlags)) and not \
193 (prevFlags.IOVDb.DatabaseInstance == 'COMP200' or \
194 'HLT' in prevFlags.IOVDb.GlobalTag or prevFlags.Common.isOnline) )
195 mcf.addFlag("Muon.Align.UsesTGCAsBuild", lambda prevFlags: (_muonAlignMode(prevFlags)) and not prevFlags.Common.isOnline and prevFlags.GeoModel.Run == LHCPeriod.Run3)
196
197
198 mcf.addFlag("Muon.MuonTrigger", False)
199 mcf.addFlag("Muon.SAMuonTrigger", False)
200 mcf.addFlag("Muon.disableNSWForL2SA", True)
201
202 mcf.addFlag("Muon.enableAlignment",lambda flags: (flags.Common.Project is not Project.AthSimulation \
203 and not (flags.Common.ProductionStep in [ProductionStep.Simulation, ProductionStep.FastChain] or flags.Overlay.DataOverlay)))
204 mcf.addFlag("Muon.enableTrigIDtrackReuse", False)
205
206
207 mcf.addFlag("Muon.DESDM_MCP.doAlignmentFormat", False)
208 mcf.addFlag("Muon.DESDM_MCP.doExtendedAlignmentContent", False)
209
210
211 mcf.addFlag("Muon.doWriteRpcRDO", True)
212
213 mcf.addFlag("Muon.writeSDOs", lambda prevFlags : prevFlags.Output.doWriteESD and prevFlags.Input.isMC)
214
215
216
217 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)
218
219 mcf.addFlag("Muon.writexAODPRD", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup)
220
221 mcf.addFlag("Muon.useMdtDcsData", lambda prevFlags : not prevFlags.Common.isOnline and prevFlags.Detector.GeometryMDT)
222
223
224
225
226 return mcf
227