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
77
78 mcf.addFlag("Muon.setupTruthAlgorithms", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup and \
79 prevFlags.Input.isMC and \
80 not prevFlags.Trigger.doHLT)
81
82 mcf.addFlag("Muon.doFastRpcDigitization",True)
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
97 mcf.addFlag("Muon.includePileUpTruth", False)
98
99 mcf.addFlag("Muon.enableMLBucketFilter", False)
100
101 mcf.addFlag("Muon.doMSVertex", True)
102 mcf.addFlag("Muon.doSegmentT0Fit",lambda prevFlags : prevFlags.Beam.Type is not BeamType.Collisions)
103 mcf.addFlag("Muon.enableErrorTuning",True)
104 mcf.addFlag("Muon.useLooseErrorTuning",False)
105 mcf.addFlag("Muon.useTGCPriorNextBC",False)
106 mcf.addFlag("Muon.useAlignmentCorrections",True)
107
108 mcf.addFlag("Muon.makePRDs",True)
109
110 mcf.addFlag("Muon.enableNRPC", lambda prevFlags: prevFlags.Detector.GeometryRPC and \
111 prevFlags.Muon.usePhaseIIGeoSetup )
112
113 mcf.addFlag("Muon.printSummary", False)
114 mcf.addFlag("Muon.segmentOrigin", "Muon")
115
116 mcf.addFlag("Muon.strategy", [])
117 mcf.addFlag("Muon.straightLineFitMomentum", 2000.0 )
118
119 mcf.addFlag("Muon.Chi2NDofCut", 20.0 )
120 mcf.addFlag("Muon.enableCurvedSegmentFinding", False )
121 mcf.addFlag("Muon.updateSegmentSecondCoordinate", lambda prevFlags : prevFlags.Beam.Type is BeamType.Collisions)
122
123 mcf.addFlag("Muon.useSegmentMatching", lambda prevFlags : prevFlags.Beam.Type is BeamType.Collisions)
124 mcf.addFlag("Muon.useTrackSegmentMatching", True )
125 mcf.addFlag("Muon.runCommissioningChain", lambda prevFlags: ( False and (prevFlags.Detector.EnableMM or prevFlags.Detector.EnablesTGC) \
126 and prevFlags.Beam.Type is BeamType.Collisions) )
127
128 mcf.addFlag("Muon.applyMMPassivation", lambda prevFlags: prevFlags.Detector.EnableMM and not prevFlags.Common.isOnline and (prevFlags.Common.Project is not Project.AthSimulation \
129 and (prevFlags.Common.ProductionStep not in [ProductionStep.Simulation, ProductionStep.FastChain] or prevFlags.Overlay.DataOverlay)))
130
131 mcf.addFlag("Muon.Calib.readMdtJSON", lambda prevFlags: prevFlags.GeoModel.Run > LHCPeriod.Run3 and prevFlags.Muon.usePhaseIIGeoSetup)
132 mcf.addFlag("Muon.Calib.fitAnalyticRt", False)
133
134 mcf.addFlag("Muon.Calib.readMDTCalibFromBlob", True)
135 mcf.addFlag("Muon.Calib.correctMdtRtForBField", lambda prevFlags : (prevFlags.Input.isMC is False and prevFlags.Beam.Type is BeamType.Collisions))
136 mcf.addFlag("Muon.Calib.correctMdtRtForTimeSlewing", lambda prevFlags : prevFlags.Input.isMC is False)
137
138 mcf.addFlag("Muon.Calib.applySigPropUncert", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup )
139 mcf.addFlag("Muon.Calib.useMLRt", True)
140 mcf.addFlag("Muon.Calib.applyRtScaling", False)
141 mcf.addFlag("Muon.Calib.mdtCalibrationSource", "MDT")
142 mcf.addFlag("Muon.Calib.mdtPropagationSpeedBeta", lambda prevFlags : 1.0 if prevFlags.Input.isMC else 0.85)
143
144 mcf.addFlag("Muon.Calib.CscPedFromLocalFile", False)
145 mcf.addFlag("Muon.Calib.CscNoiseFromLocalFile", False)
146 mcf.addFlag("Muon.Calib.CscPSlopeFromLocalFile", False)
147 mcf.addFlag("Muon.Calib.CscStatusFromLocalFile", False)
148 mcf.addFlag("Muon.Calib.CscRmsFromLocalFile", False)
149 mcf.addFlag("Muon.Calib.CscF001FromLocalFile", False)
150 mcf.addFlag("Muon.Calib.CscT0BaseFromLocalFile", False)
151 mcf.addFlag("Muon.Calib.CscT0PhaseFromLocalFile", False)
152
153 mcf.addFlag("Muon.Calib.EventTag", "MoMu")
154
155
156
157
158
159
160
161
162
163 mcf.addFlag("Muon.Calib.mdtMode", "ntuple")
164
165
166
167
168 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 )
169 mcf.addFlag("Muon.Calib.applysTgcT0Correction", lambda prevFlags: prevFlags.GeoModel.Run<LHCPeriod.Run4 and not prevFlags.Common.isOnline and not prevFlags.Input.isMC and False)
170 mcf.addFlag("Muon.Calib.applyMmBFieldCalib", True)
171
172
173
174 mcf.addFlag("Muon.Align.UseALines", lambda prevFlags: (_muonAlignMode(prevFlags)))
175 mcf.addFlag("Muon.Align.UseBLines", lambda prevFlags: prevFlags.Muon.Align.UseALines)
176 mcf.addFlag("Muon.Align.UseILines", lambda prevFlags: (_muonAlignMode(prevFlags)) and \
177 prevFlags.Detector.GeometryCSC and 'HLT' not in prevFlags.IOVDb.GlobalTag)
178 mcf.addFlag("Muon.Align.UseAsBuilt", lambda prevFlags: (_muonAlignMode(prevFlags)) and not \
179 (prevFlags.IOVDb.DatabaseInstance == 'COMP200' or \
180 'HLT' in prevFlags.IOVDb.GlobalTag or prevFlags.Common.isOnline) )
181 mcf.addFlag("Muon.Align.UsesTGCAsBuild", lambda prevFlags: (_muonAlignMode(prevFlags)) and not prevFlags.Common.isOnline and prevFlags.GeoModel.Run == LHCPeriod.Run3)
182
183
184 mcf.addFlag("Muon.MuonTrigger", False)
185 mcf.addFlag("Muon.SAMuonTrigger", False)
186 mcf.addFlag("Muon.disableNSWForL2SA", True)
187
188 mcf.addFlag("Muon.enableAlignment",lambda flags: (flags.Common.Project is not Project.AthSimulation \
189 and not (flags.Common.ProductionStep in [ProductionStep.Simulation, ProductionStep.FastChain] or flags.Overlay.DataOverlay)))
190 mcf.addFlag("Muon.enableTrigIDtrackReuse", False)
191
192
193 mcf.addFlag("Muon.DESDM_MCP.doAlignmentFormat", False)
194 mcf.addFlag("Muon.DESDM_MCP.doExtendedAlignmentContent", False)
195
196
197 mcf.addFlag("Muon.doWriteRpcRDO", True)
198
199 mcf.addFlag("Muon.writeSDOs", lambda prevFlags : prevFlags.Output.doWriteESD and prevFlags.Input.isMC)
200
201
202
203 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)
204
205 mcf.addFlag("Muon.writexAODPRD", lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup)
206
207 mcf.addFlag("Muon.useMdtDcsData", lambda prevFlags : not prevFlags.Common.isOnline and prevFlags.Detector.GeometryMDT)
208
209
210
211
212 return mcf
213