Run III ions configuration
config_runIII_ions.yaml
config_particles:
r_min: 4.0
r_max: 20.0
n_r: 256
n_angles: 5
n_split: 5
path_distribution_folder_output: particles
config_mad:
# Links to be made for tools and scripts
links:
acc-models-lhc: /afs/cern.ch/eng/lhc/optics
# Optics file
optics_file: acc-models-lhc/runIII/RunIII_dev/ION_2024/opticsfile.21
# Beam parameters
beam_config:
lhcb1:
# Lead ions
beam_energy_tot: 557600 # [GeV] corresponds to 6.8 Z TeV
particle_mass: 193.6872729 # [GeV]
particle_charge: 82
lhcb2:
# Lead ions
beam_energy_tot: 557600 # [GeV] corresponds to 6.8 Z TeV
particle_mass: 193.6872729 # [GeV]
particle_charge: 82
# Ions being simulated
ions: true
# Enable machine imperfections
enable_imperfections: false
# Enable knob synthesis (for coupling correction, if no imperfections)
enable_knob_synthesis: true
# Rename the coupling knobs to avoid conflict between b1 and b2
# (for hllhc using old fortran code to generate the knobs)
rename_coupling_knobs: true
# Optics version, for choice of correction algorithms
# (ver_lhc_run or ver_hllhc_optics)
ver_hllhc_optics:
ver_lhc_run: 3.0
# Parameters for machine imperfections
pars_for_imperfections:
par_myseed: 1
par_correct_for_D2: 0
par_correct_for_MCBX: 0
par_on_errors_LHC: 1
par_off_errors_Q4_inIP15: 0
par_off_errors_Q5_inIP15: 0
par_on_errors_MBH: 1
par_on_errors_Q4: 1
par_on_errors_D2: 1
par_on_errors_D1: 1
par_on_errors_IT: 1
par_on_errors_MCBRD: 0
par_on_errors_MCBXF: 0
par_on_errors_NLC: 0
par_write_errortable: 1
phasing:
# RF voltage and phases
vrf400: 1148.0 # [MV]
lagrf400.b1: 0.5 # [rad]
lagrf400.b2: 0. # [rad]
# To make some specifics checks
sanity_checks: true
# Path of the collider file to be saved (usually at the end of the first generation)
path_collider_file_for_configuration_as_output: collider_file_for_configuration.json
compress: true # will compress the collider file, filename will end with .zip
# Configuration for tuning of the collider
config_collider:
# Even though the file doesn't end with .zip, scrip will first try to load it as a zip file
path_collider_file_for_configuration_as_input: ../collider_file_for_configuration.json
config_knobs_and_tuning:
knob_settings:
# Orbit knobs
on_x1: 170 # [urad]
on_sep1: 1e-3 # [mm]
on_x2v: -170 # [urad]
on_sep2h: 1e-3 # [mm]
on_sep2v: 0 # [mm]
on_x5: 170 # [urad]
on_sep5: 1e-3 # [mm]
on_x8h: -135 # [urad]
on_sep8h: 0 # [mm]
on_sep8v: 1e-10 # [mm]
on_ov2: 0 # [mm]
on_ov5: 0 # [mm]
# Spurious dispersion correction
on_disp: 1.000
# Magnets of the experiments
on_alice_normalized: 1
on_lhcb_normalized: -1
on_sol_atlas: 0
on_sol_cms: 0
on_sol_alice: 0
# Octupoles
i_oct_b1: 100. # [A]
i_oct_b2: 100. # [A]
# Tunes and chromaticities
qx:
lhcb1: 62.31
lhcb2: 62.31
qy:
lhcb1: 60.32
lhcb2: 60.32
dqx:
lhcb1: 10
lhcb2: 10
dqy:
lhcb1: 10
lhcb2: 10
# Linear coupling
delta_cmr: 0.0
delta_cmi: 0.0
knob_names:
lhcb1:
q_knob_1: dqx.b1_sq
q_knob_2: dqy.b1_sq
dq_knob_1: dqpx.b1_sq
dq_knob_2: dqpy.b1_sq
c_minus_knob_1: cmrs.b1_sq
c_minus_knob_2: cmis.b1_sq
lhcb2:
q_knob_1: dqx.b2_sq
q_knob_2: dqy.b2_sq
dq_knob_1: dqpx.b2_sq
dq_knob_2: dqpy.b2_sq
c_minus_knob_1: cmrs.b2_sq
c_minus_knob_2: cmis.b2_sq
config_beambeam:
skip_beambeam: false
bunch_spacing_buckets: 10
num_slices_head_on: 11
num_long_range_encounters_per_side:
ip1: 20
ip2: 18
ip5: 20
ip8: 18
sigma_z: 0.0824
num_particles_per_bunch: 180000000.0
nemitt_x: 1.65e-6
nemitt_y: 1.65e-6
mask_with_filling_pattern:
# If not already existing in the study-da package, pattern must have an absolute path or be
# added as a dependency for the run file
pattern_fname: 50ns_1240b_1088_1088_398_56bpi_PbPb_converted.json
i_bunch_b1: # If not specified, the bunch with the worst schedule is chosen
i_bunch_b2: # Same. A value for i_bunch_b1 and i_bunch_b2 must be specified if pattern_fname is specified
cross_section: 281e-24
skip_leveling: false
config_lumi_leveling:
ip1:
luminosity: 6.4e+27
num_colliding_bunches:
impose_separation_orthogonal_to_crossing: false
knobs:
- on_sep1
bump_range:
lhcb1:
- e.ds.l1.b1
- s.ds.r1.b1
lhcb2:
- s.ds.r1.b2
- e.ds.l1.b2
preserve_angles_at_ip: true
preserve_bump_closure: true
corrector_knob_names:
- corr_co_acbyvs4.l1b1
- corr_co_acbyhs4.l1b1
- corr_co_acbyvs4.r1b2
- corr_co_acbyhs4.r1b2
- corr_co_acbyhs4.r1b1
- corr_co_acbyvs4.r1b1
- corr_co_acbyhs4.l1b2
- corr_co_acbyvs4.l1b2
- corr_co_acbcv5.l1b1
- corr_co_acbch5.r1b1
- corr_co_acbcv5.r1b2
- corr_co_acbch5.l1b2
ip5:
luminosity: 6.4e+27
num_colliding_bunches:
impose_separation_orthogonal_to_crossing: false
knobs:
- on_sep5
bump_range:
lhcb1:
- e.ds.l5.b1
- s.ds.r5.b1
lhcb2:
- s.ds.r5.b2
- e.ds.l5.b2
preserve_angles_at_ip: true
preserve_bump_closure: true
corrector_knob_names:
- corr_co_acbcv5.l5b1
- corr_co_acbch5.r5b1
- corr_co_acbyhs4.l5b1
- corr_co_acbyhs4.r5b1
- corr_co_acbyvs4.l5b1
- corr_co_acbyvs4.r5b1
- corr_co_acbcv5.r5b2
- corr_co_acbch5.l5b2
- corr_co_acbyhs4.l5b2
- corr_co_acbyhs4.r5b2
- corr_co_acbyvs4.l5b2
- corr_co_acbyvs4.r5b2
ip2:
luminosity: 6.4e+27
num_colliding_bunches:
impose_separation_orthogonal_to_crossing: false
knobs:
- on_sep2h
bump_range:
lhcb1:
- e.ds.l2.b1
- s.ds.r2.b1
lhcb2:
- s.ds.r2.b2
- e.ds.l2.b2
preserve_angles_at_ip: true
preserve_bump_closure: true
corrector_knob_names:
# to preserve angles at ip
- corr_co_acbyvs4.l2b1
- corr_co_acbyhs4.l2b1
- corr_co_acbyvs4.r2b2
- corr_co_acbyhs4.r2b2
# to close the bumps
- corr_co_acbyvs4.l2b2
- corr_co_acbyhs4.l2b2
- corr_co_acbyvs4.r2b1
- corr_co_acbyhs4.r2b1
- corr_co_acbyhs5.l2b2
- corr_co_acbyvs5.l2b2
- corr_co_acbchs5.r2b1
- corr_co_acbcvs5.r2b1
# ! There seems to be a problem with the lumi optimizer at IP8
# ! Not important for the moment as we only consider head-on, but will have to be solved
# ip8:
# luminosity: 1.0e+27
# num_colliding_bunches:
# impose_separation_orthogonal_to_crossing: false
# knobs:
# - on_sep8v
# bump_range:
# lhcb1:
# - e.ds.l8.b1
# - s.ds.r8.b1
# lhcb2:
# - s.ds.r8.b2
# - e.ds.l8.b2
# preserve_angles_at_ip: true
# preserve_bump_closure: true
# corrector_knob_names:
# # to preserve angles at ip
# - corr_co_acbyvs4.l8b1
# - corr_co_acbyhs4.l8b1
# - corr_co_acbyvs4.r8b2
# - corr_co_acbyhs4.r8b2
# # to close the bumps
# - corr_co_acbyvs4.l8b2
# - corr_co_acbyhs4.l8b2
# - corr_co_acbyvs4.r8b1
# - corr_co_acbyhs4.r8b1
# - corr_co_acbcvs5.l8b2
# - corr_co_acbchs5.l8b2
# - corr_co_acbyvs5.r8b1
# - corr_co_acbyhs5.r8b1
# Save collider or not (usually at the end of the collider tuning)
save_output_collider: false
path_collider_file_for_tracking_as_output: collider_file_for_tracking.json
compress: true # will compress the collider file, filename will end with .zip
config_simulation:
# Collider file to load for the tracking
path_collider_file_for_tracking_as_input: ../collider_file_for_tracking.json
# Distribution in the normalized xy space
path_distribution_folder_input: ../particles
distribution_file: 00.parquet
# Output particle file
path_distribution_file_output: output_particles.parquet
# Initial off-momentum
delta_max: 0.00024
# Tracking
n_turns: 1000000 # number of turns to track
# Beam to track
beam: lhcb1 #lhcb1 or lhcb2
# Context for the simulation
context: cpu # 'cupy' # opencl
# Device number for GPU simulation
device_number: # 0