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