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