Skip to content

Run III configuration

config_runIII.yaml
config_particles:
  r_min: 4.0
  r_max: 8.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/runIII

  # Optics file
  optics_file: acc-models-lhc/RunIII_dev/Proton_2024/opticsfile.37 #

  # Beam parameters
  beam_config:
    lhcb1:
      beam_energy_tot: 6800 # [GeV]
    lhcb2:
      beam_energy_tot: 6800 # [GeV]

  # Ions being simulated
  ions: false

  # 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: 12.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:
      # Exp. configuration in IR1, IR2, IR5 and IR8***
      on_x1: -145.000
      on_sep1: 0.0 #-0.550
      phi_IR1: 180.000

      on_x2h: 0.000
      on_sep2h: 1.0 # 1.000
      on_x2v: 200.000
      on_sep2v: 0.000
      phi_IR2: 90.000

      on_x5: 145.000
      on_sep5: 0.0 # 0.550
      phi_IR5: 90.000

      on_x8h: 0.000
      on_sep8h: -0.01 #-1.000
      on_x8v: 200.000
      on_sep8v: 0.000
      phi_IR8: 180.000

      # 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: 300. # [A]
      i_oct_b2: 300. # [A]

    # Tunes and chromaticities
    qx:
      lhcb1: 62.31
      lhcb2: 62.31
    qy:
      lhcb1: 60.32
      lhcb2: 60.32
    dqx:
      lhcb1: 15
      lhcb2: 15
    dqy:
      lhcb1: 15
      lhcb2: 15

    # Linear coupling
    delta_cmr: 0.001
    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: c_minus_re_b1
        c_minus_knob_2: c_minus_im_b1
      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: c_minus_re_b2
        c_minus_knob_2: c_minus_im_b2

  config_beambeam:
    skip_beambeam: false
    bunch_spacing_buckets: 10
    num_slices_head_on: 11
    num_long_range_encounters_per_side:
      ip1: 25
      ip2: 20
      ip5: 25
      ip8: 20
    sigma_z: 0.09
    num_particles_per_bunch: 1.15e11
    nemitt_x: 2.2e-6
    nemitt_y: 2.2e-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: 25ns_2604b_2592_2310_2421_4x48bpi_16inj.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: 81e-27

  config_lumi_leveling_ip1_5:
    skip_leveling: false
    luminosity: 2.0e+34
    num_colliding_bunches:      # This will be set automatically according to the filling scheme
    vary:
    - num_particles_per_bunch
    constraints:
      max_intensity: 1.8e11
      max_PU: 70

  skip_leveling: false
  config_lumi_leveling:
    ip2:
      separation_in_sigmas: 5
      plane: x
      impose_separation_orthogonal_to_crossing: false
      knobs:
      - on_sep2h
      - on_sep2v
      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

    ip8:
      luminosity: 2.0e+33
      num_colliding_bunches:      # This will be set automatically according to the filling scheme
      impose_separation_orthogonal_to_crossing: true
      knobs:
      - on_sep8h
      - 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: 27.e-5

  # 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