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