ATLAS Offline Software
MC21.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 from AthenaConfiguration.Enums import ProductionStep
3 from Campaigns.Utils import Campaign
4 
5 
6 def MC21a(flags):
7  """MC21a flags for MC to match initial Run 3 data"""
8  flags.Input.MCCampaign = Campaign.MC21a
9 
10  flags.Beam.NumberOfCollisions = 60.
11 
12  from LArConfiguration.LArConfigRun3 import LArConfigRun3PileUp
13  LArConfigRun3PileUp(flags)
14 
15  # radiation damage
16  from SimulationConfig.SimEnums import PixelRadiationDamageSimulationType
17  flags.Digitization.PixelPlanarRadiationDamageSimulationType = PixelRadiationDamageSimulationType.RamoPotential
18 
19  # pile-up
20  # These numbers are based upon a relative XS scaling of the high-pt slice
21  # of 64%, which leads to a relative high-pt / low-pt sampling of
22  # 0.001953314389 / 0.9980466856. Those numbers are then multiplied by 84.5
23  # to follow pile-up profile. Only a relevant number of significant digits
24  # are kept.
25  flags.Digitization.PU.NumberOfLowPtMinBias = 84.335
26  flags.Digitization.PU.NumberOfHighPtMinBias = 0.165
27  flags.Digitization.PU.BunchStructureConfig = 'RunDependentSimData.BunchStructure_Fill7314_BCMSPattern_Flat'
28  flags.Digitization.PU.ProfileConfig = 'RunDependentSimData.PileUpProfile_run410000_MC21a_MultiBeamspot'
29 
30  if flags.Common.ProductionStep == ProductionStep.PileUpPresampling:
31  # ensure better randomisation of high-pt minbias events
32  flags.Digitization.PU.HighPtMinBiasInputColOffset = -1
33 
34 
36  """MC21a flags for MC to match initial Run 3 data (single beamspot version)"""
37  MC21a(flags)
38 
39  # override only pile-up profile
40  flags.Digitization.PU.ProfileConfig = 'RunDependentSimData.PileUpProfile_run410000_MC21a_SingleBeamspot'
41 
42 
43 def MC21LowMu(flags):
44  """MC21 flags for MC to match Run 3 data with low pile-up"""
45  flags.Input.MCCampaign = Campaign.MC21a
46 
47  flags.Beam.NumberOfCollisions = 60.
48  flags.Input.ConditionsRunNumber = 410000
49 
50  from LArConfiguration.LArConfigRun3 import LArConfigRun3PileUp
51  LArConfigRun3PileUp(flags)
52 
53  # radiation damage
54  from SimulationConfig.SimEnums import PixelRadiationDamageSimulationType
55  flags.Digitization.PixelPlanarRadiationDamageSimulationType = PixelRadiationDamageSimulationType.RamoPotential
56 
57  # pile-up
58  # These numbers are based upon a relative XS scaling of the high-pt slice
59  # of 64%, which leads to a relative high-pt / low-pt sampling of
60  # 0.001953314389 / 0.9980466856. Those numbers are then multiplied by 0.05
61  # to simulate low pile-up. Only a relevant number of significant digits
62  # are kept.
63  flags.Digitization.PU.NumberOfLowPtMinBias = 0.0499
64  flags.Digitization.PU.NumberOfHighPtMinBias = 0.0001
65  flags.Digitization.PU.BunchStructureConfig = 'RunDependentSimData.BunchStructure_Fill7314_BCMSPattern_Flat'
66 
67 
68 def MC21NoPileUp(flags):
69  """MC21a flags for MC to match initial Run 3 data"""
70  flags.Input.MCCampaign = Campaign.MC21a
71 
72  flags.Beam.NumberOfCollisions = 0.
73  flags.Input.ConditionsRunNumber = 410000
74 
75  from LArConfiguration.LArConfigRun3 import LArConfigRun3NoPileUp
77 
78  # radiation damage
79  from SimulationConfig.SimEnums import PixelRadiationDamageSimulationType
80  flags.Digitization.PixelPlanarRadiationDamageSimulationType = PixelRadiationDamageSimulationType.RamoPotential
81 
82 
84  """MC21a flags for MC to match 2002 Low Mu data"""
85  MC21NoPileUp(flags)
86  flags.Input.ConditionsRunNumber = 420000
87 
88 
90  """MC21a beamspot splitting configuration"""
91  substeps = 4
92  event_fractions = [0.14, 0.14, 0.14, 0.58]
93 
94  return substeps, event_fractions
95 
96 
98  """MC21 base flags for simulation without specifying conditions IoVs"""
99  flags.Input.MCCampaign = Campaign.MC21a
100 
101  from SimulationConfig.SimEnums import TruthStrategy
102  flags.Sim.PhysicsList = 'FTFP_BERT_ATL'
103  flags.Sim.TruthStrategy = TruthStrategy.MC15aPlus
104 
105  flags.Sim.TRTRangeCut = 30.0
106  flags.Sim.TightMuonStepping = True
107 
108  from SimulationConfig.G4Optimizations import enableBeamPipeKill, enableFrozenShowersFCalOnly
109  enableBeamPipeKill(flags)
110  if flags.Sim.ISF.Simulator.isFullSim():
112 
113  from SimulationConfig.G4Optimizations import enableG4Optimizations
114  enableG4Optimizations(flags)
115 
116 
118  """MC21 flags for low mu run simulation"""
119  MC21SimulationNoIoV(flags)
120 
121  flags.Input.RunNumbers = [420000]
122  flags.Input.OverrideRunNumber = True
123  flags.Input.LumiBlockNumbers = [1] # dummy value
124 
125 
127  """MC21 flags for simulation"""
128  MC21SimulationNoIoV(flags)
129 
130  flags.Input.RunNumbers = [410000]
131  flags.Input.OverrideRunNumber = True
132  flags.Input.LumiBlockNumbers = [1] # dummy value
133 
134 
135 def MC21Simulation(flags):
136  """MC21 flags for simulation (alias)"""
138 
139 
141  """MC21 flags for simulation"""
142  MC21SimulationNoIoV(flags)
143 
144  flags.Input.OverrideRunNumber = True
145 
146  from RunDependentSimComps.PileUpUtils import generateRunAndLumiProfile
148  profile= 'RunDependentSimData.PileUpProfile_run410000_MC21a_MultiBeamspot')
149 
150 
152  """MC21 flags for simulation with CalibrationHits"""
154  from SimuJobTransforms import CalHits, ParticleID
155  CalHits(flags)
156  ParticleID(flags)
157 
158 
160  """MC21 flags for simulation with CalibrationHits (alias)"""
162 
163 
165  """MC21 flags for simulation with CalibrationHits"""
167  from SimuJobTransforms import CalHits, ParticleID
168  CalHits(flags)
169  ParticleID(flags)
python.G4Optimizations.enableBeamPipeKill
def enableBeamPipeKill(flags)
Definition: G4Optimizations.py:16
python.G4Optimizations.enableG4Optimizations
def enableG4Optimizations(flags)
Definition: G4Optimizations.py:114
python.MC21.MC21a
def MC21a(flags)
Definition: MC21.py:6
python.MC21.MC21SimulationNoIoV
def MC21SimulationNoIoV(flags)
Definition: MC21.py:97
python.MC21.MC21SimulationMultipleIoVCalibrationHits
def MC21SimulationMultipleIoVCalibrationHits(flags)
Definition: MC21.py:164
python.LArConfigRun3.LArConfigRun3NoPileUp
def LArConfigRun3NoPileUp(flags)
Definition: LArConfigRun3.py:13
python.MC21.MC21aSingleBeamspot
def MC21aSingleBeamspot(flags)
Definition: MC21.py:35
python.MC21.MC21NoPileUp
def MC21NoPileUp(flags)
Definition: MC21.py:68
python.LArConfigRun3.LArConfigRun3PileUp
def LArConfigRun3PileUp(flags)
Definition: LArConfigRun3.py:3
python.MC21.MC21SimulationMultipleIoV
def MC21SimulationMultipleIoV(flags)
Definition: MC21.py:140
python.MC21.MC21Simulation
def MC21Simulation(flags)
Definition: MC21.py:135
python.MC21.MC21LowMu
def MC21LowMu(flags)
Definition: MC21.py:43
jobOptions.ParticleID
ParticleID
Definition: jobOptions.decayer.py:85
python.MC21.MC21SimulationLowMuRun
def MC21SimulationLowMuRun(flags)
Definition: MC21.py:117
python.MC21.MC21SimulationCalibrationHits
def MC21SimulationCalibrationHits(flags)
Definition: MC21.py:159
python.MC21.MC21NoPileUpLowMuRun
def MC21NoPileUpLowMuRun(flags)
Definition: MC21.py:83
python.G4Optimizations.enableFrozenShowersFCalOnly
def enableFrozenShowersFCalOnly(flags)
Definition: G4Optimizations.py:5
python.MC21.BeamspotSplitMC21a
def BeamspotSplitMC21a()
Definition: MC21.py:89
python.MC21.MC21SimulationSingleIoVCalibrationHits
def MC21SimulationSingleIoVCalibrationHits(flags)
Definition: MC21.py:151
python.PileUpUtils.generateRunAndLumiProfile
def generateRunAndLumiProfile(flags, profile, sequentialEventNumbers=False, doNotCorrectMaxEvents=False)
Definition: PileUpUtils.py:211
python.MC21.MC21SimulationSingleIoV
def MC21SimulationSingleIoV(flags)
Definition: MC21.py:126