diff --git a/.github/workflows/linux-eic-shell.yml b/.github/workflows/linux-eic-shell.yml index a8634fa00a..0935f55d76 100644 --- a/.github/workflows/linux-eic-shell.yml +++ b/.github/workflows/linux-eic-shell.yml @@ -33,14 +33,18 @@ jobs: - uses: actions/checkout@v4 - id: list-detector-configs run: | - CONFIGS_CSV=$( - ls -1 configurations | sed 's/^/epic_/g' | xargs | sed 's/\.yml//g;s/ /,/g' - ) - CONFIGS_JSON=$(( - echo '[' - ls -1 configurations | sed 's/^/epic_/g' | xargs | sed 's/\.yml//g;s/ /, /g' | xargs -n 1 echo | sed -r 's/^([^,]*)(,?)$/"\1"\2/' - echo ']' - ) | jq -c .) + # Collect all config names from all YAMLs, one per line + CONFIGS="$( + for config in configurations/*.yml; do + ./bin/make_detector_configuration -d templates -t epic.xml.jinja2 -c "$config" -o "epic_$(basename "$config" .yml).xml" -p + done | sort -u + )" + + # CSV + CONFIGS_CSV="$(echo "$CONFIGS" | paste -sd, -)" + # JSON + CONFIGS_JSON="$(echo "$CONFIGS" | jq -R -s -c 'split("\n")[:-1]')" + echo "configs_csv=${CONFIGS_CSV}" | tee -a $GITHUB_OUTPUT echo "configs_json=${CONFIGS_JSON}" | tee -a $GITHUB_OUTPUT diff --git a/CMakeLists.txt b/CMakeLists.txt index 49e5778d3f..121290ff32 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -81,7 +81,8 @@ foreach(config_yml ${CONFIG_YMLS}) --output ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_${config}.xml COMMENT "Creating configuration ${config} for ${PROJECT_NAME}" ) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_${config}.xml + file(GLOB GENERATED_XMLS "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_${config}*.xml") + install(FILES ${GENERATED_XMLS} DESTINATION ${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}/ ) endforeach() diff --git a/bin/make_detector_configuration b/bin/make_detector_configuration index 496e5db93c..df3186b003 100755 --- a/bin/make_detector_configuration +++ b/bin/make_detector_configuration @@ -12,8 +12,11 @@ parser.add_argument('-d', '--dir', type=str, default='templates', help='Template parser.add_argument('-t', '--template', type=str, help='Template to render.') parser.add_argument('-o', '--output', type=str, help='Output file to write.') parser.add_argument('-c', '--config', type=str, help='Config file to load.') +parser.add_argument('-p', '--print', action='store_true', help='Print the list of configurations to be created without creating them.') args = parser.parse_args() +outputs = [args.output] + # template env = jinja2.Environment( loader = jinja2.FileSystemLoader(args.dir), @@ -27,5 +30,45 @@ if args.config is not None: config = yaml.safe_load(f) # render the template -with open(args.output, 'w') as output: - output.write(template.render(**config)) +if not args.print: + with open(args.output, 'w') as output: + output.write(template.render(**config)) + +# If the config contains far_forward or far_backward create new xml files with ebeam and pbeam set +if 'features' in config and ('far_forward' in config['features'] or 'far_backward' in config['features']): + + # Dictonary of potential ebeam and pbeam values + ebeam_pbeam_values = [ + {'ebeam': '5', 'pbeam': '41'}, + {'ebeam': '5', 'pbeam': '100'}, + {'ebeam': '10', 'pbeam': '100'}, + {'ebeam': '10', 'pbeam': '100_Au197'}, + {'ebeam': '10', 'pbeam': '115_Cu63'}, + {'ebeam': '10', 'pbeam': '115_Ru96'}, + {'ebeam': '10', 'pbeam': '130'}, + {'ebeam': '10', 'pbeam': '130_H2'}, + {'ebeam': '10', 'pbeam': '166_He3'}, + {'ebeam': '10', 'pbeam': '250'}, + {'ebeam': '10', 'pbeam': '275'}, + {'ebeam': '18', 'pbeam': '110_Au'}, + {'ebeam': '18', 'pbeam': '110_He3'}, + {'ebeam': '18', 'pbeam': '275'}, + ] + + for values in ebeam_pbeam_values: + # Create a new output filename based on the ebeam and pbeam values + new_output = args.output.replace('.xml', f"_{values['ebeam']}x{values['pbeam']}.xml") + outputs.append(new_output) + + # Create a new config dictionary with the current ebeam and pbeam values + new_config = config.copy() + new_config.update(values) + + if not args.print: + with open(new_output, 'w') as output: + output.write(template.render(**new_config)) + +if args.print: + for output in outputs: + # Print the output configuration name without the xml extension + print(os.path.basename(output).replace('.xml', '')) diff --git a/configurations/craterlake_10x100.yml b/configurations/craterlake_10x100.yml deleted file mode 100644 index 3e6f1ec6ec..0000000000 --- a/configurations/craterlake_10x100.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 10 -pbeam: 100 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - forward_endcap_flux: - barrel_flux_return: - barrel_gdml: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_10x100_Au197.yml b/configurations/craterlake_10x100_Au197.yml deleted file mode 100644 index 3364254f9e..0000000000 --- a/configurations/craterlake_10x100_Au197.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 10 -pbeam: 100_Au197 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - forward_endcap_flux: - barrel_flux_return: - barrel_gdml: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_10x115_Cu63.yml b/configurations/craterlake_10x115_Cu63.yml deleted file mode 100644 index 811c55b1bf..0000000000 --- a/configurations/craterlake_10x115_Cu63.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 10 -pbeam: 115_Cu63 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - forward_endcap_flux: - barrel_flux_return: - barrel_gdml: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_10x115_Ru96.yml b/configurations/craterlake_10x115_Ru96.yml deleted file mode 100644 index 8f1a2d47c0..0000000000 --- a/configurations/craterlake_10x115_Ru96.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 10 -pbeam: 115_Ru96 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - forward_endcap_flux: - barrel_flux_return: - barrel_gdml: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_10x130.yml b/configurations/craterlake_10x130.yml deleted file mode 100644 index 8f2a716f2c..0000000000 --- a/configurations/craterlake_10x130.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 10 -pbeam: 130 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - forward_endcap_flux: - barrel_flux_return: - barrel_gdml: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_10x130_H2.yml b/configurations/craterlake_10x130_H2.yml deleted file mode 100644 index 199a7332b9..0000000000 --- a/configurations/craterlake_10x130_H2.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 10 -pbeam: 130_H2 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - forward_endcap_flux: - barrel_flux_return: - barrel_gdml: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_10x166_He3.yml b/configurations/craterlake_10x166_He3.yml deleted file mode 100644 index 79bd1734e8..0000000000 --- a/configurations/craterlake_10x166_He3.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 10 -pbeam: 166_He3 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - forward_endcap_flux: - barrel_flux_return: - barrel_gdml: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_10x250.yml b/configurations/craterlake_10x250.yml deleted file mode 100644 index 36b141cc59..0000000000 --- a/configurations/craterlake_10x250.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 10 -pbeam: 250 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - forward_endcap_flux: - barrel_flux_return: - barrel_gdml: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_10x275.yml b/configurations/craterlake_10x275.yml deleted file mode 100644 index 021150e71f..0000000000 --- a/configurations/craterlake_10x275.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 10 -pbeam: 275 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - barrel_gdml: - barrel_flux_return: - forward_endcap_flux: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_18x110_Au.yml b/configurations/craterlake_18x110_Au.yml deleted file mode 100644 index 55963a6fec..0000000000 --- a/configurations/craterlake_18x110_Au.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 18 -pbeam: 110_Au -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - barrel_gdml: - barrel_flux_return: - forward_endcap_flux: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_18x110_He3.yml b/configurations/craterlake_18x110_He3.yml deleted file mode 100644 index 2254276603..0000000000 --- a/configurations/craterlake_18x110_He3.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 18 -pbeam: 110_He3 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - barrel_gdml: - barrel_flux_return: - forward_endcap_flux: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_18x275.yml b/configurations/craterlake_18x275.yml deleted file mode 100644 index b1fe4981e0..0000000000 --- a/configurations/craterlake_18x275.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 18 -pbeam: 275 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - barrel_gdml: - barrel_flux_return: - forward_endcap_flux: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_5x100.yml b/configurations/craterlake_5x100.yml deleted file mode 100644 index 25b7b6c1e9..0000000000 --- a/configurations/craterlake_5x100.yml +++ /dev/null @@ -1,38 +0,0 @@ -ebeam: 5 -pbeam: 100 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - barrel_gdml: - barrel_flux_return: - forward_endcap_flux: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/configurations/craterlake_5x41.yml b/configurations/craterlake_5x41.yml deleted file mode 100644 index ef920a70db..0000000000 --- a/configurations/craterlake_5x41.yml +++ /dev/null @@ -1,36 +0,0 @@ -ebeam: 5 -pbeam: 41 -features: - beampipe: - tracking: - definitions_craterlake: - vertex_barrel: - silicon_barrel: - mpgd_barrel: - support_service_craterlake: - mpgd_outerbarrel: - mpgd_forward_endcap: - mpgd_backward_endcap: - silicon_disks: - tof_barrel: - tof_endcap: - pid: - dirc: - pfrich: - drich: - ecal: - forward_homogeneous: - forward_insert_homogeneous: - bic_default: - backward_PbWO4: - solenoid: - hcal: - lfhcal_with_space_for_insert: - forward_insert: - barrel_gdml: - backward: - backward_endcap_flux: - far_forward: - default: - far_backward: - default: diff --git a/templates/epic.xml.jinja2 b/templates/epic.xml.jinja2 index 687347a0e4..790c0bad2a 100644 --- a/templates/epic.xml.jinja2 +++ b/templates/epic.xml.jinja2 @@ -44,7 +44,7 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. - +