3 from AthenaConfiguration.AthConfigFlags 
import AthConfigFlags
 
    4 from AthenaConfiguration.Enums 
import BeamType, LHCPeriod, ProductionStep, Project, FlagEnum
 
   16     """Flag values for Muon.MMClusterCalibRecoTool""" 
   18     ClusterTimeProjection = 
"ClusterTimeProjection" 
   23     problematic_tags = [
'COMCOND-HLT[A-C]-00[01]-00', 
'COMCOND-ES1C-00[01]-00', 
'COMCOND-REPC-001', 
'COMCOND-SIM-01-00']
 
   24     if any(re.match(tag,flags.IOVDb.DatabaseInstance) 
for tag 
in problematic_tags):
 
   26     elif flags.Input.isMC 
or not flags.Muon.enableAlignment:
 
   38     from AthenaConfiguration.AutoConfigFlags 
import DetDescrInfo
 
   40     mcf.addFlag(
"Muon.usePhaseIIGeoSetup",
lambda prevFlags : 
DetDescrInfo(prevFlags.GeoModel.AtlasVersion, 
 
   41                                                                           prevFlags.GeoModel.SQLiteDB ,
 
   42                                                                           prevFlags.GeoModel.SQLiteDBFullPath)[
"Muon"][
"useR4Plugin"] )
 
   44     mcf.addFlag(
"Muon.doFastMMDigitization",
True)  
 
   45     mcf.addFlag(
"Muon.doFastsTGCDigitization",
True) 
 
   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 ]) 
 
   58         mcf.addFlag(
"Muon.scheduleActsReco", 
False)
 
   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) 
 
   67     mcf.addFlag(
"Muon.makePRDs",
True) 
 
   69     mcf.addFlag(
"Muon.enableNRPC", 
lambda prevFlags: prevFlags.Detector.GeometryRPC 
and \
 
   70                                                      prevFlags.Muon.usePhaseIIGeoSetup )
 
   72     mcf.addFlag(
"Muon.printSummary", 
False) 
 
   73     mcf.addFlag(
"Muon.segmentOrigin", 
"Muon") 
 
   75     mcf.addFlag(
"Muon.strategy", []) 
 
   76     mcf.addFlag(
"Muon.straightLineFitMomentum", 2000.0 ) 
 
   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) 
 
   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) )
 
   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)))
 
   90     mcf.addFlag(
"Muon.Calib.readMdtJSON", 
lambda prevFlags: prevFlags.GeoModel.Run > LHCPeriod.Run3 
and prevFlags.Muon.usePhaseIIGeoSetup) 
 
   91     mcf.addFlag(
"Muon.Calib.fitAnalyticRt", 
False) 
 
   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) 
 
   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) 
 
  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)  
 
  112     mcf.addFlag(
"Muon.Calib.EventTag", 
"MoMu") 
 
  122     mcf.addFlag(
"Muon.Calib.mdtMode", 
"ntuple")
 
  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) 
 
  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)
 
  143     mcf.addFlag(
"Muon.MuonTrigger", 
False) 
 
  144     mcf.addFlag(
"Muon.SAMuonTrigger", 
False) 
 
  145     mcf.addFlag(
"Muon.disableNSWForL2SA", 
True)
 
  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)
 
  152     mcf.addFlag(
"Muon.DESDM_MCP.doAlignmentFormat", 
False) 
 
  155     mcf.addFlag(
"Muon.doWriteRpcRDO", 
True)
 
  157     mcf.addFlag(
"Muon.writeSDOs", 
lambda prevFlags : prevFlags.Output.doWriteESD 
and prevFlags.Input.isMC)
 
  161     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     mcf.addFlag(
"Muon.writexAODPRD", 
lambda prevFlags: prevFlags.Muon.usePhaseIIGeoSetup) 
 
  165     mcf.addFlag(
"Muon.useMdtDcsData", 
lambda prevFlags : 
not prevFlags.Common.isOnline)