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