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