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", lambda prevFlags: prevFlags.Reco.EnableTracking )
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
120 mcf.addFlag("Muon.splitNswSegmentFinder", lambda prevFlags: prevFlags.Detector.EnableMM or prevFlags.Detector.EnablesTGC)
121 mcf.addFlag("Muon.useTGCPriorNextBC",False)
122 mcf.addFlag("Muon.useAlignmentCorrections",True)
123
124 mcf.addFlag("Muon.makePRDs",True)
125
126 mcf.addFlag("Muon.enableNRPC", lambda prevFlags: prevFlags.Detector.GeometryRPC and \
127 prevFlags.Muon.usePhaseIIGeoSetup )
128
129 mcf.addFlag("Muon.printSummary", False)
130 mcf.addFlag("Muon.segmentOrigin", "Muon")
131
132 mcf.addFlag("Muon.strategy", [])
133 mcf.addFlag("Muon.straightLineFitMomentum", 2000.0 )
134
135 mcf.addFlag("Muon.Chi2NDofCut", 20.0 )
136 mcf.addFlag("Muon.enableCurvedSegmentFinding", False )
137 mcf.addFlag("Muon.updateSegmentSecondCoordinate", lambda prevFlags : prevFlags.Beam.Type is BeamType.Collisions)
138
139 mcf.addFlag("Muon.useSegmentMatching", lambda prevFlags : prevFlags.Beam.Type is BeamType.Collisions)
140 mcf.addFlag("Muon.useTrackSegmentMatching", True )
141 mcf.addFlag("Muon.runCommissioningChain", lambda prevFlags: ( False and (prevFlags.Detector.EnableMM or prevFlags.Detector.EnablesTGC) \
142 and prevFlags.Beam.Type is BeamType.Collisions) )
143
144 mcf.addFlag("Muon.applyMMPassivation", lambda prevFlags: prevFlags.Detector.EnableMM and not prevFlags.Common.isOnline and (prevFlags.Common.Project is not Project.AthSimulation \
145 and (prevFlags.Common.ProductionStep not in [ProductionStep.Simulation, ProductionStep.FastChain] or prevFlags.Overlay.DataOverlay)))
146
147 mcf.addFlag("Muon.Calib.readMdtJSON", lambda prevFlags: prevFlags.GeoModel.Run > LHCPeriod.Run3 and prevFlags.Muon.usePhaseIIGeoSetup)
148 mcf.addFlag("Muon.Calib.fitAnalyticRt", False)
149
150 mcf.addFlag("Muon.Calib.readMDTCalibFromBlob", True)
151 mcf.addFlag("Muon.Calib.correctMdtRtForBField", lambda prevFlags : (prevFlags.Input.isMC is False and prevFlags.Beam.Type is BeamType.Collisions))
152 mcf.addFlag("Muon.Calib.correctMdtRtForTimeSlewing", lambda prevFlags : prevFlags.Input.isMC is False)
153
154 mcf.addFlag("Muon.Calib.applySigPropUncert", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup )
155 mcf.addFlag("Muon.Calib.useMLRt", True)
156 mcf.addFlag("Muon.Calib.applyRtScaling", False)
157 mcf.addFlag("Muon.Calib.mdtCalibrationSource", "MDT")
158 mcf.addFlag("Muon.Calib.mdtPropagationSpeedBeta", lambda prevFlags : 1.0 if prevFlags.Input.isMC else 0.85)
159
160 mcf.addFlag("Muon.Calib.CscPedFromLocalFile", False)
161 mcf.addFlag("Muon.Calib.CscNoiseFromLocalFile", False)
162 mcf.addFlag("Muon.Calib.CscPSlopeFromLocalFile", False)
163 mcf.addFlag("Muon.Calib.CscStatusFromLocalFile", False)
164 mcf.addFlag("Muon.Calib.CscRmsFromLocalFile", False)
165 mcf.addFlag("Muon.Calib.CscF001FromLocalFile", False)
166 mcf.addFlag("Muon.Calib.CscT0BaseFromLocalFile", False)
167 mcf.addFlag("Muon.Calib.CscT0PhaseFromLocalFile", False)
168
169 mcf.addFlag("Muon.Calib.EventTag", "MoMu")
170
171
172
173
174
175
176
177
178
179 mcf.addFlag("Muon.Calib.mdtMode", "ntuple")
180
181
182
183
184 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 )
185 mcf.addFlag("Muon.Calib.applysTgcT0Correction", lambda prevFlags: prevFlags.GeoModel.Run<LHCPeriod.Run4 and not prevFlags.Common.isOnline and not prevFlags.Input.isMC and False)
186 mcf.addFlag("Muon.Calib.applyMmBFieldCalib", True)
187
188
189
190 mcf.addFlag("Muon.Align.UseALines", lambda prevFlags: (_muonAlignMode(prevFlags)))
191 mcf.addFlag("Muon.Align.UseBLines", lambda prevFlags: prevFlags.Muon.Align.UseALines)
192 mcf.addFlag("Muon.Align.UseILines", lambda prevFlags: (_muonAlignMode(prevFlags)) and \
193 prevFlags.Detector.GeometryCSC and 'HLT' not in prevFlags.IOVDb.GlobalTag)
194 mcf.addFlag("Muon.Align.UseAsBuilt", lambda prevFlags: (_muonAlignMode(prevFlags)) and not \
195 (prevFlags.IOVDb.DatabaseInstance == 'COMP200' or \
196 'HLT' in prevFlags.IOVDb.GlobalTag or prevFlags.Common.isOnline) )
197 mcf.addFlag("Muon.Align.UsesTGCAsBuild", lambda prevFlags: (_muonAlignMode(prevFlags)) and not prevFlags.Common.isOnline and prevFlags.GeoModel.Run == LHCPeriod.Run3)
198
199
200 mcf.addFlag("Muon.MuonTrigger", False)
201 mcf.addFlag("Muon.SAMuonTrigger", False)
202 mcf.addFlag("Muon.disableNSWForL2SA", True)
203
204 mcf.addFlag("Muon.enableAlignment",lambda flags: (flags.Common.Project is not Project.AthSimulation \
205 and not (flags.Common.ProductionStep in [ProductionStep.Simulation, ProductionStep.FastChain] or flags.Overlay.DataOverlay)))
206 mcf.addFlag("Muon.enableTrigIDtrackReuse", False)
207
208
209 mcf.addFlag("Muon.DESDM_MCP.doAlignmentFormat", False)
210 mcf.addFlag("Muon.DESDM_MCP.doExtendedAlignmentContent", False)
211
212
213 mcf.addFlag("Muon.doWriteRpcRDO", True)
214
215 mcf.addFlag("Muon.writeSDOs", lambda prevFlags : prevFlags.Output.doWriteESD and prevFlags.Input.isMC)
216
217
218
219 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)
220
221 mcf.addFlag("Muon.writexAODPRD", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup)
222
223 mcf.addFlag("Muon.useMdtDcsData", lambda prevFlags : not prevFlags.Common.isOnline and prevFlags.Detector.GeometryMDT)
224
225
226
227
228 return mcf
229