Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-13 10:34:31

0001 #!/bin/bash
0002 set -Euo pipefail
0003 trap 's=$?; echo "$0: Error on line "$LINENO": $BASH_COMMAND"; exit $s' ERR
0004 IFS=$'\n\t'
0005 
0006 # Set url for frequency tables
0007 EGAS_URL=https://raw.githubusercontent.com/eic/simulation_campaign_datasets/main/config_data/egas_freq.csv
0008 HGAS_URL=https://raw.githubusercontent.com/eic/simulation_campaign_datasets/main/config_data/hgas_freq.csv
0009 SYNRAD_URL=https://raw.githubusercontent.com/eic/simulation_campaign_datasets/main/config_data/synrad_freq.csv
0010 
0011 # Download tables
0012 EGAS_TABLE=$( curl -L ${EGAS_URL} )
0013 HGAS_TABLE=$( curl -L ${HGAS_URL} )
0014 SYNRAD_TABLE=$( curl -L ${SYNRAD_URL} )
0015 
0016 # Initialize associative arrays (maps) for each type of background
0017 declare -A EGAS_FILE EGAS_FREQ EGAS_SKIP HGAS_FILE HGAS_FREQ HGAS_SKIP SYNRAD_FILE SYNRAD_FREQ SYNRAD_SKIP
0018 
0019 # Function to trim units
0020 trim() {
0021   local input="$1"
0022   local unit="$2"
0023   # Remove unit
0024   input="${input//${unit}/}"
0025   echo "$input"
0026 }
0027 
0028 # Function to process each line into a map
0029 process_lines() {
0030     local data="$1"
0031     local -n map_file="$2"
0032     local -n map_freq="$3"
0033     local -n map_skip="$4"
0034     local index=0
0035 
0036     while IFS=',' read -r config file freq skip; do
0037         # Adding the line to the map with a simple index as the key
0038         map_file[$config]="$(echo $file | xargs)"
0039         map_freq[$config]="$(echo $(trim $freq kHz) | xargs)"
0040         map_skip[$config]="$(echo $skip | xargs)"
0041     done <<< "$data"
0042 }
0043 
0044 # Process the downloaded data and populate the maps
0045 process_lines "$EGAS_TABLE" EGAS_FILE EGAS_FREQ EGAS_SKIP
0046 process_lines "$HGAS_TABLE" HGAS_FILE HGAS_FREQ HGAS_SKIP
0047 process_lines "$SYNRAD_TABLE" SYNRAD_FILE SYNRAD_FREQ SYNRAD_SKIP
0048 
0049 export BG1_FILE=${EGAS_FILE[${EBEAM}GeVx${PBEAM}GeV_${VAC}Ahr]}
0050 export BG1_FREQ=${EGAS_FREQ[${EBEAM}GeVx${PBEAM}GeV_${VAC}Ahr]}
0051 export BG1_SKIP=${EGAS_SKIP[${EBEAM}GeVx${PBEAM}GeV_${VAC}Ahr]}
0052 
0053 export BG2_FILE=${HGAS_FILE[${EBEAM}GeVx${PBEAM}GeV_${VAC}Ahr]}
0054 export BG2_FREQ=${HGAS_FREQ[${EBEAM}GeVx${PBEAM}GeV_${VAC}Ahr]}
0055 export BG2_SKIP=${HGAS_SKIP[${EBEAM}GeVx${PBEAM}GeV_${VAC}Ahr]}
0056 
0057 export BG3_FILE=${SYNRAD_FILE[${EBEAM}GeV]}
0058 export BG3_FREQ=${SYNRAD_FREQ[${EBEAM}GeV]}
0059 export BG3_SKIP=${SYNRAD_SKIP[${EBEAM}GeV]}