diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 98ae91b63e6d04c0c21c81edc78f343b83ac1b1b..4f7148efd0b4705cd212dac3f45fcf6843560a3a 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -158,7 +158,7 @@ detector_documentation: - bash bin/build_documentation | tee doc/detector.md #- | # xmllint --format --xpath '//comment/text()' ${DETECTOR_PATH}/athena.xml | sed -re 's/<\/?\w+>//g' | sed 's/^[[:space:]]*#/#/' | tee doc/detector.md - # xmllint --format --xpath '//comment/text()' ${DETECTOR_PATH}/ip6/ip6_defs.xml | sed -re 's/<\/?\w+>//g' | sed 's/^[[:space:]]*#/#/' | tee -a doc/detector.md || true + # xmllint --format --xpath '//comment/text()' ${DETECTOR_PATH}/ip6/definitions.xml | sed -re 's/<\/?\w+>//g' | sed 's/^[[:space:]]*#/#/' | tee -a doc/detector.md || true # for afile in ${DETECTOR_PATH}/compact/*.xml ; do # xmllint --format --xpath '//comment/text()' ${afile} | sed -re 's/<\/?\w+>//g' | sed 's/^[[:space:]]*#/#/' | tee -a doc/detector.md || true # done @@ -199,7 +199,7 @@ overlap_check_tgeo: script: ## disable fibers in ECAL for normal overlap check - sed -i '/<fiber/,+6d' ${DETECTOR_PATH}/compact/ecal_barrel_interlayers.xml - - sed -i '/<fiber/,+4d' ${DETECTOR_PATH}/ip6/far_forward_ZDC_Ecal_WSciFi.xml + - sed -i '/<fiber/,+4d' ${DETECTOR_PATH}/ip6/far_forward/ZDC_Ecal_WSciFi.xml - checkOverlaps -c ${DETECTOR_PATH}/athena.xml | tee doc/overlap_check_tgeo.out - echo "$(cat doc/overlap_check_tgeo.out | grep ovlp | wc -l) overlaps..." - if [[ "$(cat doc/overlap_check_tgeo.out | grep ovlp | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi @@ -211,7 +211,7 @@ overlap_check_geant4:full_fast: script: ## disable fibers in ECAL for normal overlap check - sed -i '/<fiber/,+6d' ${DETECTOR_PATH}/compact/ecal_barrel_interlayers.xml - - sed -i '/<fiber/,+4d' ${DETECTOR_PATH}/ip6/far_forward_ZDC_Ecal_WSciFi.xml + - sed -i '/<fiber/,+4d' ${DETECTOR_PATH}/ip6/far_forward/ZDC_Ecal_WSciFi.xml ## reduce the number of fibers in Hadron EMCal for overlap check ## not needed, as we are running with a different setup now #- sed -i 's/radius="EcalEndcapP_FiberRadius"/radius="EcalEndcapP_FiberRadius*10"/' ${DETECTOR_PATH}/compact/ci_ecal_scfi.xml diff --git a/CMakeLists.txt b/CMakeLists.txt index ba7a3d4e4056748db8eae65a694852306c1652ae..adc33bec800d74511d5133812752317c0841c302 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -13,7 +13,14 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Werror") find_package(DD4hep REQUIRED COMPONENTS DDCore DDG4) -find_package(Acts REQUIRED COMPONENTS Core PluginIdentification PluginTGeo PluginDD4hep ) +find_package(ActsDD4hep) +if(ActsDD4hep_FOUND) + add_compile_definitions(USE_ACTSDD4HEP) + set(ActsDD4hep ActsDD4hep::ActsDD4hep) +else() + find_package(Acts REQUIRED COMPONENTS Core PluginIdentification PluginTGeo PluginDD4hep) + set(ActsDD4hep ActsCore ActsPluginDD4hep) +endif() find_package(fmt REQUIRED) ### temporary preprocessor macro to easily switch on/off IRT code # TODO: get rid of `WITH_IRT` when IRT is integrated in CI @@ -50,10 +57,10 @@ dd4hep_add_plugin(${a_lib_name} SOURCES src/SimpleDiskDetector_geo.cpp src/SolenoidCoil_geo.cpp src/TrapEndcapTracker_geo.cpp - USES ActsCore ActsPluginDD4hep + USES ${ActsDD4hep} ) target_link_libraries(${a_lib_name} - PUBLIC DD4hep::DDCore DD4hep::DDRec fmt::fmt #IRT + PUBLIC DD4hep::DDCore DD4hep::DDRec fmt::fmt IRT ) #----------------------------------------------------------------------------------- diff --git a/athena.xml b/athena.xml index 3539b477d271ccbcab02cb52861e393fd9844925..4abeab6bdda4cd96156039ed49918c2051f5ffeb 100644 --- a/athena.xml +++ b/athena.xml @@ -33,8 +33,8 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> <include ref="compact/definitions.xml" /> </define> @@ -84,17 +84,6 @@ - and more... </documentation> - <comment> - Beamline elements - ----------------- - </comment> - <include ref="ip6/forward_ion_beamline.xml"/> - <include ref="ip6/beampipe_hadron_B0.xml" /> - <include ref="ip6/beampipe.xml" /> - <include ref="ip6/inner_vacuum_FF_magnets.xml"/> - - - <documentation level="5"> ## Main magnet @@ -126,70 +115,17 @@ <documentation level="11"> ## Far foward detectors </documentation> - <include ref="ip6/B0_tracker.xml"/> - <include ref="ip6/B0_preshower.xml"/> - <include ref="ip6/far_forward_offM_tracker.xml"/> - <include ref="ip6/far_forward_detectors.xml"/> - <include ref="ip6/roman_pots_eRD24_design.xml"/> - - <fields> - <field name="B0PF_Magnet" type="MultipoleMagnet"> - <position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/> - <rotation x="0" y="B0PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0PF_InnerRadius" dz="B0PF_Length*0.5"/> - <coefficient coefficient="B0PF_Bmax" skew="0.0*tesla"/> - <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> --> - </field> - <field name="B0APF_Magnet" type="MultipoleMagnet"> - <position x="B0APF_XPosition" y="0" z="B0APF_CenterPosition"/> - <rotation x="0" y="B0APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0APF_InnerRadius" dz="B0APF_Length*0.5"/> - <coefficient coefficient="B0APF_Bmax" skew="0.0*tesla"/> - <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> --> - </field> - <field name="Q1APF_Magnet" type="MultipoleMagnet"> - <position x="Q1APF_XPosition" y="0" z="Q1APF_CenterPosition"/> - <rotation x="0" y="Q1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1APF_InnerRadius" dz="Q1APF_Length*0.5"/> - <coefficient coefficient="Q1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1APF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="Q1BPF_Magnet" type="MultipoleMagnet"> - <position x="Q1BPF_XPosition" y="0" z="Q1BPF_CenterPosition"/> - <rotation x="0" y="Q1BPF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1BPF_InnerRadius" dz="Q1BPF_Length*0.5"/> - <coefficient coefficient="Q1BPF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1BPF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="Q2PF_Magnet" type="MultipoleMagnet"> - <position x="Q2PF_XPosition" y="0" z="Q2PF_CenterPosition"/> - <rotation x="0" y="Q2PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q2PF_InnerRadius" dz="Q2PF_Length*0.5"/> - <coefficient coefficient="Q2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B1PF_Magnet" type="MultipoleMagnet"> - <position x="B1PF_XPosition" y="0" z="B1PF_CenterPosition"/> - <rotation x="0" y="B1PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1PF_InnerRadius" dz="B1PF_Length*0.5"/> - <coefficient coefficient="B1PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B1APF_Magnet" type="MultipoleMagnet"> - <position x="B1APF_XPosition" y="0" z="B1APF_CenterPosition"/> - <rotation x="0" y="B1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1APF_InnerRadius" dz="B1APF_Length*0.5"/> - <coefficient coefficient="B1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1APF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B2PF_Magnet" type="MultipoleMagnet"> - <position x="B2PF_XPosition" y="0" z="B2PF_CenterPosition"/> - <rotation x="0" y="B2PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B2PF_InnerRadius" dz="B2PF_Length*0.5"/> - <coefficient coefficient="B2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - </fields> + <include ref="ip6/central_beampipe.xml"/> + + <documentation level="11"> + ## Far foward detectors + </documentation> + <include ref="ip6/far_forward.xml"/> + + <documentation level="11"> + ## Far backward detectors + </documentation> + <include ref="ip6/far_backward.xml"/> <comment> FB elements diff --git a/bin/generate_prim_file b/bin/generate_prim_file index a0593210bd2e13fd48f68ba165f57bee0e4c18b3..063c47439f22098cc4fab2675f9a9e65370948d5 100755 --- a/bin/generate_prim_file +++ b/bin/generate_prim_file @@ -52,7 +52,7 @@ parser.add_argument('-t', '--tag', type=str,dest='file_tag', help='Output file tag') parser.add_argument('--timeout', type=int, - default=60, + default=3600, help='Timeout in seconds') parser.add_argument('passthrough', nargs='*') diff --git a/compact/definitions.xml b/compact/definitions.xml index 449fcab54c508472e93fb964ca90a1d855f16d88..f87cd72ec0056e7d187f19258afb30500a309190 100644 --- a/compact/definitions.xml +++ b/compact/definitions.xml @@ -231,38 +231,78 @@ The unused IDs below are saved for future use. <constant name="SolenoidYoke_ID" value="142"/> <documentation> - #### (150-169) Far Forward Detectors + #### (150-169) Far Forward Detectors - Forward Roman Pot ID: 150 - Forward B0 Tracker ID: 151 - Zero Degree Cal. Ecal ID: 160 - Zero Degree Cal. Hcal ID: 161 - TODO: A lot of the repeated ID's below should be pushed into a single detector + TODO: A lot of the repeated ID's below should be pushed into a single detector </documentation> <constant name="B0Tracker_Station_1_ID" value="150"/> <constant name="B0Tracker_Station_2_ID" value="151"/> <constant name="B0Tracker_Station_3_ID" value="152"/> <constant name="B0Tracker_Station_4_ID" value="153"/> <constant name="B0Preshower_Station_1_ID" value="154"/> - <constant name="ForwardRomanPot_Station_1_ID" value="155"/> + <constant name="ForwardRomanPot_Station_1_ID" value="155"/> <constant name="ForwardRomanPot_Station_2_ID" value="156"/> - <constant name="ForwardOffMTracker_station_1_ID" value="159"/> + <constant name="ForwardOffMTracker_station_1_ID" value="159"/> <constant name="ForwardOffMTracker_station_2_ID" value="160"/> <constant name="ForwardOffMTracker_station_3_ID" value="161"/> <constant name="ForwardOffMTracker_station_4_ID" value="162"/> - <comment> TODO naming consistency </comment> - <constant name="ffi_ZDC_ECAL_ID" value="163"/> - <constant name="ffi_ZDC_HCAL_ID" value="164"/> + <constant name="ZDCEcal_ID" value="163"/> + <constant name="ZDCHcal_ID" value="164"/> <constant name="VacuumMagnetElement_1_ID" value="165"/> <documentation> - #### (170-189) Forward Beamline Magnets + #### (170-189) Far Forward Beamline Magnets </documentation> + <constant name="B0PF_ID" value="170"/> + <constant name="B0APF_ID" value="171"/> + <constant name="Q1APF_ID" value="172"/> + <constant name="Q1BPF_ID" value="173"/> + <constant name="Q2PF_ID" value="174"/> + <constant name="B1PF_ID" value="175"/> + <constant name="B1APF_ID" value="176"/> + <constant name="B2PF_ID" value="177"/> + <constant name="Q0EF_ID" value="180"/> + <constant name="Q1EF_ID" value="181"/> <documentation> - #### (190-199) Backward Beamline Magnets + #### (190-199) Far Backward Beamline Magnets + + - Low-Q2 Tagger 1 Tracker ID: 195 + - Low-Q2 Tagger 1 Calorimeter ID: 196 + - Low-Q2 Tagger 2 Tracker ID: 198 + - Low-Q2 Tagger 2 Calorimeter ID: 199 + + TODO: A lot of the repeated ID's below should be pushed into a single detector + </documentation> + <constant name="LumiCollimator_ID" value="190"/> + <constant name="LumiDipole_ID" value="191"/> + <constant name="TaggerTracker_1_ID" value="195"/> + <constant name="TaggerCalorimeter_1_ID" value="196"/> + <constant name="TaggerTracker_2_ID" value="198"/> + <constant name="TaggerCalorimeter_2_ID" value="199"/> + + <documentation> + #### (200-219) Far Backward Beamline Magnets </documentation> + <constant name="Pipe_to_Q1eR_ID" value="200"/> + <constant name="Magnet_Q1eR_ID" value="201"/> + <constant name="Pipe_in_Q1eR_ID" value="202"/> + <constant name="Pipe_Q1eR_to_Q2eR_ID" value="203"/> + <constant name="Magnet_Q2eR_ID" value="204"/> + <constant name="Pipe_in_Q2eR_ID" value="205"/> + <constant name="Pipe_Q2eR_to_B2AeR_ID" value="206"/> + <constant name="Magnet_B2AeR_ID" value="207"/> + <constant name="Pipe_in_B2AeR_ID" value="208"/> + <constant name="Pipe_B2AeR_to_B2BeR_ID" value="209"/> + <constant name="Magnet_B2BeR_ID" value="210"/> + <constant name="Pipe_in_B2BeR_ID" value="211"/> + <constant name="Magnet_Q3eR_ID" value="212"/> + <constant name="Vacuum_in_Q3eR_ID" value="213"/> <documentation> ## Detector Definition Parameters diff --git a/compact/subsystem_views/calorimeters.xml b/compact/subsystem_views/calorimeters.xml index 824bc12dc467691410b8dc096ab1448ff457c1b2..99cb334b95bc7e881d30f12c55153818826d3337 100644 --- a/compact/subsystem_views/calorimeters.xml +++ b/compact/subsystem_views/calorimeters.xml @@ -33,8 +33,8 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> <include ref="compact/definitions.xml" /> </define> @@ -86,7 +86,7 @@ Beamline elements ----------------- </comment> - <include ref="ip6/beampipe.xml" /> + <include ref="ip6/central_beampipe.xml" /> <documentation level="5"> ## Main magnet @@ -101,14 +101,6 @@ <include ref="compact/ecal.xml"/> <include ref="compact/hcal.xml"/> - <comment> - FB elements - ----------- - None (TODO) - - What is FB? - </comment> - <readouts> </readouts> diff --git a/compact/subsystem_views/dirc_only.xml b/compact/subsystem_views/dirc_only.xml index 89ecc4d25958945eeafc13b7f4422f0bbcccb095..109cd11b5e81c643f9c859f8b73bafd360f8d18a 100644 --- a/compact/subsystem_views/dirc_only.xml +++ b/compact/subsystem_views/dirc_only.xml @@ -33,8 +33,8 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> <include ref="compact/definitions.xml" /> </define> diff --git a/compact/subsystem_views/drich_only.xml b/compact/subsystem_views/drich_only.xml index 572d49391a018f8c4b13fee7d6eaa6e245fe50a0..baeb2df8dd96531921c7094269178232f5dd9f67 100644 --- a/compact/subsystem_views/drich_only.xml +++ b/compact/subsystem_views/drich_only.xml @@ -33,8 +33,8 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> <include ref="compact/definitions.xml" /> </define> diff --git a/compact/subsystem_views/inner_detector.xml b/compact/subsystem_views/inner_detector.xml index c1d211777f8ae77d16d33e8e67e5edb1711c57da..bc3bd675db68d0784256dd5cca9ea4c60c176b9a 100644 --- a/compact/subsystem_views/inner_detector.xml +++ b/compact/subsystem_views/inner_detector.xml @@ -33,8 +33,8 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> <include ref="compact/definitions.xml" /> </define> @@ -87,7 +87,7 @@ Beamline elements ----------------- </comment> - <include ref="ip6/beampipe.xml" /> + <include ref="ip6/central_beampipe.xml" /> <documentation level="5"> ## Main magnet @@ -98,7 +98,6 @@ <documentation level="10"> ## Central tracking detectors </documentation> - <include ref="compact/tracking_config_deathvalley.xml"/> <documentation level="10"> @@ -106,81 +105,6 @@ </documentation> <include ref="compact/pid_config_deathvalley.xml"/> - <documentation level="10"> - ## Central calorimetry - </documentation> - - <documentation level="11"> - ## Far foward detectors - </documentation> - - <fields> - <field name="B0PF_Magnet" type="MultipoleMagnet"> - <position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/> - <rotation x="0" y="B0PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0PF_InnerRadius" dz="B0PF_Length*0.5"/> - <coefficient coefficient="B0PF_Bmax" skew="0.0*tesla"/> - <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> --> - </field> - <field name="B0APF_Magnet" type="MultipoleMagnet"> - <position x="B0APF_XPosition" y="0" z="B0APF_CenterPosition"/> - <rotation x="0" y="B0APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0APF_InnerRadius" dz="B0APF_Length*0.5"/> - <coefficient coefficient="B0APF_Bmax" skew="0.0*tesla"/> - <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> --> - </field> - <field name="Q1APF_Magnet" type="MultipoleMagnet"> - <position x="Q1APF_XPosition" y="0" z="Q1APF_CenterPosition"/> - <rotation x="0" y="Q1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1APF_InnerRadius" dz="Q1APF_Length*0.5"/> - <coefficient coefficient="Q1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1APF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="Q1BPF_Magnet" type="MultipoleMagnet"> - <position x="Q1BPF_XPosition" y="0" z="Q1BPF_CenterPosition"/> - <rotation x="0" y="Q1BPF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1BPF_InnerRadius" dz="Q1BPF_Length*0.5"/> - <coefficient coefficient="Q1BPF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1BPF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="Q2PF_Magnet" type="MultipoleMagnet"> - <position x="Q2PF_XPosition" y="0" z="Q2PF_CenterPosition"/> - <rotation x="0" y="Q2PF_RotationAngle" z="pi/2.0"/> - <shape type="Tube" rmin="0.0" rmax="Q2PF_InnerRadius" dz="Q2PF_Length*0.5"/> - <coefficient coefficient="Q2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B1PF_Magnet" type="MultipoleMagnet"> - <position x="B1PF_XPosition" y="0" z="B1PF_CenterPosition"/> - <rotation x="0" y="B1PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1PF_InnerRadius" dz="B1PF_Length*0.5"/> - <coefficient coefficient="B1PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B1APF_Magnet" type="MultipoleMagnet"> - <position x="B1APF_XPosition" y="0" z="B1APF_CenterPosition"/> - <rotation x="0" y="B1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1APF_InnerRadius" dz="B1APF_Length*0.5"/> - <coefficient coefficient="B1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1APF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B2PF_Magnet" type="MultipoleMagnet"> - <position x="B2PF_XPosition" y="0" z="B2PF_CenterPosition"/> - <rotation x="0" y="B2PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B2PF_InnerRadius" dz="B2PF_Length*0.5"/> - <coefficient coefficient="B2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - </fields> - - <comment> - FB elements - ----------- - None (TODO) - - What is FB? - </comment> - <readouts> </readouts> diff --git a/compact/subsystem_views/ip6.xml b/compact/subsystem_views/ip6.xml index 65477121623c21590f163ab33d61d39c8d098ef5..780b47ea15941fd9d3bf1482ecc58c3368b2d2c5 100644 --- a/compact/subsystem_views/ip6.xml +++ b/compact/subsystem_views/ip6.xml @@ -1,153 +1,102 @@ -<?xml version="1.0" encoding="UTF-8"?> -<lccdd> +<lccdd xmlns:compact="http://www.lcsim.org/schemas/compact/1.0" + xmlns:xs="http://www.w3.org/2001/XMLSchema" + xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> + + <debug> + <type name="surface" value="0"/> + <type name="material" value="0"/> + <type name="readout" value="0"/> + <type name="segmentation" value="0"/> + <type name="limits" value="0"/> + <type name="region" value="0"/> + <type name="includes" value="0"/> + </debug> + + <documentation level="-1"> + # Athena Detector + - https://eicweb.phy.anl.gov/EIC/detectors/athena.git + - https://eicweb.phy.anl.gov/EIC/detectors/ip6.git + </documentation> + + <!-- Some information about detector --> + <info name="Athena Detector" title="Athena Detector" + author="Athena Collaboration" + url="https://eicweb.phy.anl.gov/EIC/detectors/athena.git" + status="development" + version="v1 2021-03-16"> + <comment> Athena </comment> + </info> <define> - <constant name="Pi" value="3.14159265359"/> - <constant name="world_side" value="30*m"/> - <constant name="world_x" value="world_side"/> - <constant name="world_y" value="world_side"/> - <constant name="world_z" value="100*m"/> - <constant name="BeamPipeB0_ID" value="1"/> - <constant name="BeamPipe_ID" value="2"/> - - <include ref="ip6/ip6_defs.xml" /> - <comment> Change this to 275/100/41 to change the field setup</comment> - <include ref="ip6/far_forward_fields_275.xml" /> - - <comment> - - ===================================== - (150-169) Far Forward Detectors - ===================================== - - Forward B0 Tracker ID: 150 - 153 - Forward Roman Pot ID: 155 - 158 - - Zero Degree Cal. Ecal ID: 163 - Zero Degree Cal. Hcal ID: 164 - - </comment> - <constant name="B0Tracker_Station_1_ID" value="150"/> - <constant name="B0Tracker_Station_2_ID" value="151"/> - <constant name="B0Tracker_Station_3_ID" value="152"/> - <constant name="B0Tracker_Station_4_ID" value="153"/> - <constant name="B0Preshower_Station_1_ID" value="154"/> - <constant name="ForwardRomanPot_Station_1_ID" value="155"/> - <constant name="ForwardRomanPot_Station_2_ID" value="156"/> - - <constant name="BeamOrbitTracker_station_1_ID" value="157"/> - <constant name="BeamOrbitTracker_station_2_ID" value="158"/> - <constant name="ForwardOffMTracker_station_1_ID" value="159"/> - <constant name="ForwardOffMTracker_station_2_ID" value="160"/> - <constant name="ForwardOffMTracker_station_3_ID" value="161"/> - <constant name="ForwardOffMTracker_station_4_ID" value="162"/> - <constant name="ffi_ZDC_ECAL_ID" value="163"/> - <constant name="ffi_ZDC_HCAL_ID" value="164"/> - - <constant name="VacuumMagnetElement_1_ID" value="165"/> - - <constant name="tracker_region_zmax" value="10*m"/> - <constant name="tracker_region_rmax" value="1*m"/> - - - <comment> - ===================================== - (170-189) Forward Beamline Magnets - ===================================== - </comment> - - <comment> - ===================================== - (190-199) Backward Beamline Magnets - ===================================== - </comment> - + <documentation level="2"> + ## Main Constant Definitions + + The ip6 (or other ip) defines should be included first. + These files have only a define tags. + </documentation> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> + <include ref="compact/definitions.xml" /> </define> <includes> - <gdmlFile ref="ip6/elements.xml"/> - <gdmlFile ref="ip6/materials.xml"/> + <gdmlFile ref="compact/elements.xml"/> + <gdmlFile ref="compact/materials.xml"/> + <file ref="compact/optical_materials.xml"/> </includes> + <limits> + <limitset name="EICBeamlineLimits"> + <limit name="step_length_max" particles="*" value="1.0" unit="mm" /> + <limit name="track_length_max" particles="*" value="1.0" unit="mm" /> + <limit name="time_max" particles="*" value="0.1" unit="ns" /> + <limit name="ekin_min" particles="*" value="0.001" unit="MeV" /> + <limit name="range_min" particles="*" value="0.1" unit="mm" /> + </limitset> + <limitset name="cal_limits"> + <limit name="step_length_max" particles="*" value="5.0" unit="mm"/> + </limitset> + </limits> + <display> <include ref="compact/colors.xml" /> + <!--include ref="compact/colors2.xml"/--> <include ref="compact/display.xml" /> + <!--include ref="compact/display_detailed.xml"/--> </display> - <include ref="ip6/beampipe.xml" /> - <include ref="ip6/forward_ion_beamline.xml" /> - <include ref="ip6/beampipe_hadron_B0.xml" /> - <include ref="ip6/B0_tracker.xml"/> - <include ref="ip6/B0_preshower.xml"/> - <include ref="ip6/far_forward_offM_tracker.xml"/> - <include ref="ip6/far_forward_detectors.xml"/> - <include ref="ip6/roman_pots_eRD24_design.xml"/> - <!-- - Old BOM not used - <include ref="ip6/beam_orbit_tracker.xml"/> - --> - <include ref="ip6/inner_vacuum_FF_magnets.xml"/> - - <!-- - Magnet file not used for some reason - <include ref="ip6/magnets.xml" /> - --> - <fields> - <field name="B0PF_Magnet" type="MultipoleMagnet"> - <position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/> - <rotation x="0" y="B0PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0PF_InnerRadius" dz="B0PF_Length*0.5"/> - <coefficient coefficient="B0PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B0PF_GradientMax" skew="0.0*tesla/m"/> - </field> - <field name="B0APF_Magnet" type="MultipoleMagnet"> - <position x="B0APF_XPosition" y="0" z="B0APF_CenterPosition"/> - <rotation x="0" y="B0APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0APF_InnerRadius" dz="B0APF_Length*0.5"/> - <coefficient coefficient="B0APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B0APF_GradientMax" skew="0.0*tesla"/> - </field> - <field name="Q1APF_Magnet" type="MultipoleMagnet"> - <position x="Q1APF_XPosition" y="0" z="Q1APF_CenterPosition"/> - <rotation x="0" y="Q1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1APF_InnerRadius" dz="Q1APF_Length*0.5"/> - <coefficient coefficient="Q1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1APF_GradientMax" skew="0.0*tesla/m"/> - </field> - <field name="Q1BPF_Magnet" type="MultipoleMagnet"> - <position x="Q1BPF_XPosition" y="0" z="Q1BPF_CenterPosition"/> - <rotation x="0" y="Q1BPF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1BPF_InnerRadius" dz="Q1BPF_Length*0.5"/> - <coefficient coefficient="Q1BPF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1BPF_GradientMax" skew="0.0*tesla/m"/> - </field> - <field name="Q2PF_Magnet" type="MultipoleMagnet"> - <position x="Q2PF_XPosition" y="0" z="Q2PF_CenterPosition"/> - <rotation x="0" y="Q2PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q2PF_InnerRadius" dz="Q2PF_Length*0.5"/> - <coefficient coefficient="Q2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q2PF_GradientMax" skew="0.0*tesla/m"/> - </field> - <field name="B1PF_Magnet" type="MultipoleMagnet"> - <position x="B1PF_XPosition" y="0" z="B1PF_CenterPosition"/> - <rotation x="0" y="B1PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1PF_InnerRadius" dz="B1PF_Length*0.5"/> - <coefficient coefficient="B1PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1PF_GradientMax" skew="0.0*tesla/m"/> - </field> - <field name="B1APF_Magnet" type="MultipoleMagnet"> - <position x="B1APF_XPosition" y="0" z="B1APF_CenterPosition"/> - <rotation x="0" y="B1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1APF_InnerRadius" dz="B1APF_Length*0.5"/> - <coefficient coefficient="B1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1APF_GradientMax" skew="0.0*tesla/m"/> - </field> - <field name="B2PF_Magnet" type="MultipoleMagnet"> - <position x="B2PF_XPosition" y="0" z="B2PF_CenterPosition"/> - <rotation x="0" y="B2PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B2PF_InnerRadius" dz="B2PF_Length*0.5"/> - <coefficient coefficient="B2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - </fields> + <documentation level="0"> + ## Detector Subsystems + + ### IP Subsystems + + The interaction point subsystems are included before the central detector subsystems. + This is becuase the IP subsystems, for exmaple the beampipe, will define paramters + which are subsquently used in the central detector construction -- e.g. the vertex tracker + uses the beampipe OD to help define its placement. + + The IP subsystems include the Far forward and backward regions. The list of subsystem includes: + - Interaction region beampipe + - B0 tracker + - Off-momentum tracker + - Far forward roman pots + - Zero Degree Calorimeter + - Beam line magnets. + - and more... + </documentation> + + <documentation level="11"> + ## Far foward detectors + </documentation> + <include ref="ip6/central_beampipe.xml"/> + + <documentation level="11"> + ## Far foward detectors + </documentation> + <include ref="ip6/far_forward.xml"/> + + <documentation level="11"> + ## Far backward detectors + </documentation> + <include ref="ip6/far_backward.xml"/> </lccdd> diff --git a/compact/subsystem_views/pfrich_only.xml b/compact/subsystem_views/pfrich_only.xml index 3fd28f9285e1125c43f10d65dce684c38042c49a..0f4c0e2081791f5d8459e295898218c89336247c 100644 --- a/compact/subsystem_views/pfrich_only.xml +++ b/compact/subsystem_views/pfrich_only.xml @@ -33,8 +33,8 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> <include ref="compact/definitions.xml" /> </define> @@ -65,7 +65,7 @@ <documentation level="10"> ## pfRICH only </documentation> - <include ref="ip6/beampipe.xml" /> + <include ref="ip6/central_beampipe.xml" /> <include ref="compact/pfrich.xml" /> </lccdd> diff --git a/compact/subsystem_views/pid_only.xml b/compact/subsystem_views/pid_only.xml index 44207a0c2328d1f1f2c1030fdeee36a9424dd18b..0d5443ad79b6238ba5f0a0a2ca35b0a3190da955 100644 --- a/compact/subsystem_views/pid_only.xml +++ b/compact/subsystem_views/pid_only.xml @@ -33,8 +33,8 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> <include ref="compact/definitions.xml" /> </define> @@ -86,16 +86,7 @@ Beamline elements ----------------- </comment> - <include ref="ip6/beampipe.xml" /> - <comment> - Main magnet - ----------- - Note: When changing magnet, also select dimensions in definitions.xml. - </comment> - - <documentation level="10"> - ## Central tracking detectors - </documentation> + <include ref="ip6/central_beampipe.xml" /> <comment> PID detectors @@ -103,77 +94,6 @@ </comment> <include ref="compact/pid_config_deathvalley.xml"/> - - <comment> - FF elements - ----------- - </comment> - - <fields> - <field name="B0PF_Magnet" type="MultipoleMagnet"> - <position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/> - <rotation x="0" y="B0PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0PF_InnerRadius" dz="B0PF_Length*0.5"/> - <coefficient coefficient="B0PF_Bmax" skew="0.0*tesla"/> - <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> --> - </field> - <field name="B0APF_Magnet" type="MultipoleMagnet"> - <position x="B0APF_XPosition" y="0" z="B0APF_CenterPosition"/> - <rotation x="0" y="B0APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0APF_InnerRadius" dz="B0APF_Length*0.5"/> - <coefficient coefficient="B0APF_Bmax" skew="0.0*tesla"/> - <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> --> - </field> - <field name="Q1APF_Magnet" type="MultipoleMagnet"> - <position x="Q1APF_XPosition" y="0" z="Q1APF_CenterPosition"/> - <rotation x="0" y="Q1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1APF_InnerRadius" dz="Q1APF_Length*0.5"/> - <coefficient coefficient="Q1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1APF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="Q1BPF_Magnet" type="MultipoleMagnet"> - <position x="Q1BPF_XPosition" y="0" z="Q1BPF_CenterPosition"/> - <rotation x="0" y="Q1BPF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1BPF_InnerRadius" dz="Q1BPF_Length*0.5"/> - <coefficient coefficient="Q1BPF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1BPF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="Q2PF_Magnet" type="MultipoleMagnet"> - <position x="Q2PF_XPosition" y="0" z="Q2PF_CenterPosition"/> - <rotation x="0" y="Q2PF_RotationAngle" z="pi/2.0"/> - <shape type="Tube" rmin="0.0" rmax="Q2PF_InnerRadius" dz="Q2PF_Length*0.5"/> - <coefficient coefficient="Q2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B1PF_Magnet" type="MultipoleMagnet"> - <position x="B1PF_XPosition" y="0" z="B1PF_CenterPosition"/> - <rotation x="0" y="B1PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1PF_InnerRadius" dz="B1PF_Length*0.5"/> - <coefficient coefficient="B1PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B1APF_Magnet" type="MultipoleMagnet"> - <position x="B1APF_XPosition" y="0" z="B1APF_CenterPosition"/> - <rotation x="0" y="B1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1APF_InnerRadius" dz="B1APF_Length*0.5"/> - <coefficient coefficient="B1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1APF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B2PF_Magnet" type="MultipoleMagnet"> - <position x="B2PF_XPosition" y="0" z="B2PF_CenterPosition"/> - <rotation x="0" y="B2PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B2PF_InnerRadius" dz="B2PF_Length*0.5"/> - <coefficient coefficient="B2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - </fields> - - <comment> - FB elements - ----------- - None (TODO) - </comment> - <readouts> </readouts> diff --git a/compact/subsystem_views/tof_only.xml b/compact/subsystem_views/tof_only.xml index 4392434c4ad02308f73ef6647a2e69e5c44073b1..dcbdba9dc7f1e4196cc414e341a721f56785f285 100644 --- a/compact/subsystem_views/tof_only.xml +++ b/compact/subsystem_views/tof_only.xml @@ -33,8 +33,8 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> <include ref="compact/definitions.xml" /> </define> @@ -65,7 +65,7 @@ <documentation level="10"> ## TOF only </documentation> - <include ref="ip6/beampipe.xml" /> + <include ref="ip6/central_beampipe.xml" /> <include ref="compact/tof_barrel.xml" /> </lccdd> diff --git a/compact/subsystem_views/tracking_only.xml b/compact/subsystem_views/tracking_only.xml index f3195231431d0f5fe1758ff3a1c76653c792e93a..5bef5df898cb9d25dd032f28e5f2abf2a818da47 100644 --- a/compact/subsystem_views/tracking_only.xml +++ b/compact/subsystem_views/tracking_only.xml @@ -33,8 +33,8 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> <include ref="compact/definitions.xml" /> </define> @@ -86,14 +86,7 @@ Beamline elements ----------------- </comment> - <include ref="ip6/beampipe.xml" /> - - <comment> - Main magnet - ----------- - Note: When changing magnet, also select dimensions in definitions.xml. - </comment> - <!--include ref="compact/solenoid.xml"/--> + <include ref="ip6/central_beampipe.xml" /> <comment> Central tracking detectors @@ -102,74 +95,11 @@ <!--include ref="compact/tracking_config_canyonlands.xml"/--> <include ref="compact/tracking_config_deathvalley.xml"/> + <comment> PID detectors ------------- - <include ref="compact/tof_barrel.xml"/> - - <fields> - <field name="B0PF_Magnet" type="MultipoleMagnet"> - <position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/> - <rotation x="0" y="B0PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0PF_InnerRadius" dz="B0PF_Length*0.5"/> - <coefficient coefficient="B0PF_Bmax" skew="0.0*tesla"/> - <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> --> - </field> - <field name="B0APF_Magnet" type="MultipoleMagnet"> - <position x="B0APF_XPosition" y="0" z="B0APF_CenterPosition"/> - <rotation x="0" y="B0APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0APF_InnerRadius" dz="B0APF_Length*0.5"/> - <coefficient coefficient="B0APF_Bmax" skew="0.0*tesla"/> - <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> --> - </field> - <field name="Q1APF_Magnet" type="MultipoleMagnet"> - <position x="Q1APF_XPosition" y="0" z="Q1APF_CenterPosition"/> - <rotation x="0" y="Q1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1APF_InnerRadius" dz="Q1APF_Length*0.5"/> - <coefficient coefficient="Q1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1APF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="Q1BPF_Magnet" type="MultipoleMagnet"> - <position x="Q1BPF_XPosition" y="0" z="Q1BPF_CenterPosition"/> - <rotation x="0" y="Q1BPF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1BPF_InnerRadius" dz="Q1BPF_Length*0.5"/> - <coefficient coefficient="Q1BPF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1BPF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="Q2PF_Magnet" type="MultipoleMagnet"> - <position x="Q2PF_XPosition" y="0" z="Q2PF_CenterPosition"/> - <rotation x="0" y="Q2PF_RotationAngle" z="pi/2.0"/> - <shape type="Tube" rmin="0.0" rmax="Q2PF_InnerRadius" dz="Q2PF_Length*0.5"/> - <coefficient coefficient="Q2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B1PF_Magnet" type="MultipoleMagnet"> - <position x="B1PF_XPosition" y="0" z="B1PF_CenterPosition"/> - <rotation x="0" y="B1PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1PF_InnerRadius" dz="B1PF_Length*0.5"/> - <coefficient coefficient="B1PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B1APF_Magnet" type="MultipoleMagnet"> - <position x="B1APF_XPosition" y="0" z="B1APF_CenterPosition"/> - <rotation x="0" y="B1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1APF_InnerRadius" dz="B1APF_Length*0.5"/> - <coefficient coefficient="B1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1APF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B2PF_Magnet" type="MultipoleMagnet"> - <position x="B2PF_XPosition" y="0" z="B2PF_CenterPosition"/> - <rotation x="0" y="B2PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B2PF_InnerRadius" dz="B2PF_Length*0.5"/> - <coefficient coefficient="B2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - </fields> - - <comment> - FB elements - ----------- - None (TODO) </comment> + <include ref="compact/tof_barrel.xml"/> <readouts> </readouts> diff --git a/compact/subsystem_views/vertex_only.xml b/compact/subsystem_views/vertex_only.xml index 8c818e8f2faa302dc24184e47e130d58652a54a5..46f9e46e3a50827e5ebc93948a4ca670c3f07972 100644 --- a/compact/subsystem_views/vertex_only.xml +++ b/compact/subsystem_views/vertex_only.xml @@ -33,8 +33,8 @@ The ip6 (or other ip) defines should be included first. These files have only a define tags. </documentation> - <include ref="ip6/ip6_defs.xml" /> - <include ref="ip6/far_forward_fields_275.xml" /> + <include ref="ip6/definitions.xml" /> + <include ref="ip6/far_forward/fields_275.xml" /> <include ref="compact/definitions.xml" /> </define> @@ -82,95 +82,12 @@ - and more... </documentation> - <comment> - Beamline elements - ----------------- - </comment> - - <comment> - Main magnet - ----------- - Note: When changing magnet, also select dimensions in definitions.xml. - </comment> - <!--include ref="compact/solenoid.xml"/--> - <comment> Central tracking detectors -------------------------- </comment> <include ref="compact/vertex_tracker_3layers.xml"/> - <comment> - PID detectors - ------------- - </comment> - - - <fields> - <field name="B0PF_Magnet" type="MultipoleMagnet"> - <position x="B0PF_XPosition" y="0" z="B0PF_CenterPosition"/> - <rotation x="0" y="B0PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0PF_InnerRadius" dz="B0PF_Length*0.5"/> - <coefficient coefficient="B0PF_Bmax" skew="0.0*tesla"/> - <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> --> - </field> - <field name="B0APF_Magnet" type="MultipoleMagnet"> - <position x="B0APF_XPosition" y="0" z="B0APF_CenterPosition"/> - <rotation x="0" y="B0APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B0APF_InnerRadius" dz="B0APF_Length*0.5"/> - <coefficient coefficient="B0APF_Bmax" skew="0.0*tesla"/> - <!--<coefficient coefficient="2.0*tesla/cm" skew="0.2*tesla/cm"/> --> - </field> - <field name="Q1APF_Magnet" type="MultipoleMagnet"> - <position x="Q1APF_XPosition" y="0" z="Q1APF_CenterPosition"/> - <rotation x="0" y="Q1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1APF_InnerRadius" dz="Q1APF_Length*0.5"/> - <coefficient coefficient="Q1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1APF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="Q1BPF_Magnet" type="MultipoleMagnet"> - <position x="Q1BPF_XPosition" y="0" z="Q1BPF_CenterPosition"/> - <rotation x="0" y="Q1BPF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="Q1BPF_InnerRadius" dz="Q1BPF_Length*0.5"/> - <coefficient coefficient="Q1BPF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q1BPF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="Q2PF_Magnet" type="MultipoleMagnet"> - <position x="Q2PF_XPosition" y="0" z="Q2PF_CenterPosition"/> - <rotation x="0" y="Q2PF_RotationAngle" z="pi/2.0"/> - <shape type="Tube" rmin="0.0" rmax="Q2PF_InnerRadius" dz="Q2PF_Length*0.5"/> - <coefficient coefficient="Q2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="Q2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B1PF_Magnet" type="MultipoleMagnet"> - <position x="B1PF_XPosition" y="0" z="B1PF_CenterPosition"/> - <rotation x="0" y="B1PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1PF_InnerRadius" dz="B1PF_Length*0.5"/> - <coefficient coefficient="B1PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B1APF_Magnet" type="MultipoleMagnet"> - <position x="B1APF_XPosition" y="0" z="B1APF_CenterPosition"/> - <rotation x="0" y="B1APF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B1APF_InnerRadius" dz="B1APF_Length*0.5"/> - <coefficient coefficient="B1APF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B1APF_GradientMax" skew="0.0*tesla/cm"/> - </field> - <field name="B2PF_Magnet" type="MultipoleMagnet"> - <position x="B2PF_XPosition" y="0" z="B2PF_CenterPosition"/> - <rotation x="0" y="B2PF_RotationAngle" z="0"/> - <shape type="Tube" rmin="0.0" rmax="B2PF_InnerRadius" dz="B2PF_Length*0.5"/> - <coefficient coefficient="B2PF_Bmax" skew="0.0*tesla"/> - <coefficient coefficient="B2PF_GradientMax" skew="0.0*tesla/cm"/> - </field> - </fields> - - <comment> - FB elements - ----------- - None (TODO) - </comment> - <readouts> </readouts> diff --git a/src/BarrelBarDetectorWithSideFrame_geo.cpp b/src/BarrelBarDetectorWithSideFrame_geo.cpp index d7911bde8a54ec3cc8fde728a7146c22fe61e32a..7b2adc2956f9f8f3c725e839cd5944c9c08a3a85 100644 --- a/src/BarrelBarDetectorWithSideFrame_geo.cpp +++ b/src/BarrelBarDetectorWithSideFrame_geo.cpp @@ -16,6 +16,7 @@ #include "DDRec/DetectorData.h" #include "DDRec/Surface.h" #include "XML/Layering.h" +#include <array> using namespace std; using namespace dd4hep; diff --git a/src/BarrelTrackerWithFrame_geo.cpp b/src/BarrelTrackerWithFrame_geo.cpp index 64210bc5a18ba330e17232d20f7bb4fdea771045..9470042e594c5e8808495c308c2bc52f89deae6c 100644 --- a/src/BarrelTrackerWithFrame_geo.cpp +++ b/src/BarrelTrackerWithFrame_geo.cpp @@ -13,10 +13,15 @@ #include "DDRec/DetectorData.h" #include "XML/Layering.h" #include "XML/Utilities.h" +#include <array> +#if defined(USE_ACTSDD4HEP) +#include "ActsDD4hep/ActsExtension.hpp" +#include "ActsDD4hep/ConvertMaterial.hpp" +#else #include "Acts/Plugins/DD4hep/ActsExtension.hpp" #include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp" - +#endif using namespace std; using namespace dd4hep; diff --git a/src/CompositeTracker_geo.cpp b/src/CompositeTracker_geo.cpp index 33ee7407e77c8a866f16dcd75d30b63e2ec57c17..22f98b9152b568b3376c4a3b3701f20dab8b2062 100644 --- a/src/CompositeTracker_geo.cpp +++ b/src/CompositeTracker_geo.cpp @@ -11,7 +11,11 @@ #include "DD4hep/Printout.h" #include "XML/Utilities.h" +#if defined(USE_ACTSDD4HEP) +#include "ActsDD4hep/ActsExtension.hpp" +#else #include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#endif using namespace dd4hep; using namespace dd4hep::detail; diff --git a/src/CylinderTrackerBarrel_geo.cpp b/src/CylinderTrackerBarrel_geo.cpp index 071b7ee6b18409fc3299f66eaebf33d331f06795..b8141eb31050834cc50c96e5900fc1c14c16ce05 100644 --- a/src/CylinderTrackerBarrel_geo.cpp +++ b/src/CylinderTrackerBarrel_geo.cpp @@ -2,11 +2,17 @@ // Specialized generic detector constructor //========================================================================== -#include "Acts/Plugins/DD4hep/ActsExtension.hpp" -#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp" #include "DD4hep/DetFactoryHelper.h" #include "DD4hep/Printout.h" +#if defined(USE_ACTSDD4HEP) +#include "ActsDD4hep/ActsExtension.hpp" +#include "ActsDD4hep/ConvertMaterial.hpp" +#else +#include "Acts/Plugins/DD4hep/ActsExtension.hpp" +#include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp" +#endif + using namespace std; using namespace dd4hep; using namespace dd4hep::detail; diff --git a/src/FieldMapBrBz.cpp b/src/FieldMapBrBz.cpp index b3c5af11cfb73aed5775ab89838c0c29e7978253..7215411b309311d8d152ad695abb579b7f801483 100644 --- a/src/FieldMapBrBz.cpp +++ b/src/FieldMapBrBz.cpp @@ -195,7 +195,7 @@ static Ref_t create_field_map_brbz(Detector & /*lcdd*/, xml::Handle_t handle) if( !fs::exists(fs::path(field_map_file)) ) { printout(ERROR, "FieldMapBrBz", "file " + field_map_file + " does not exist"); printout(ERROR, "FieldMapBrBz", "use a FileLoader plugin before the field element"); - std::quick_exit(1); + std::_Exit(EXIT_FAILURE); } auto map = new FieldMapBrBz(field_type); diff --git a/src/FileLoaderHelper.h b/src/FileLoaderHelper.h index 0d84d2cb10d35b134c15506da4db327e1ab3da60..821350cdbec5c0ea2108e28cd18e8177de6785fc 100644 --- a/src/FileLoaderHelper.h +++ b/src/FileLoaderHelper.h @@ -54,7 +54,7 @@ EnsureFileFromURLExists( if (fs::create_directories(parent_path) == false) { printout(ERROR, "FileLoader", "parent path " + parent_path.string() + " cannot be created"); printout(ERROR, "FileLoader", "check permissions and retry"); - std::quick_exit(1); + std::_Exit(EXIT_FAILURE); } } @@ -85,7 +85,7 @@ EnsureFileFromURLExists( } catch (const fs::filesystem_error&) { printout(ERROR, "FileLoader", "unable to link from " + hash_path.string() + " to " + cache_hash_path.string()); printout(ERROR, "FileLoader", "check permissions and retry"); - std::quick_exit(1); + std::_Exit(EXIT_FAILURE); } break; } @@ -102,7 +102,8 @@ EnsureFileFromURLExists( if (!fs::exists(hash_path)) { printout(ERROR, "FileLoader", "unable to run cmd " + cmd); printout(ERROR, "FileLoader", "check command and retry"); - std::quick_exit(1); + printout(ERROR, "FileLoader", "hint: allow insecure connections with -k"); + std::_Exit(EXIT_FAILURE); } } @@ -119,14 +120,14 @@ EnsureFileFromURLExists( if (fs::remove(file_path) == false) { printout(ERROR, "FileLoader", "unable to remove symlink " + file_path.string()); printout(ERROR, "FileLoader", "check permissions or remove manually"); - std::quick_exit(1); + std::_Exit(EXIT_FAILURE); } } } else { // file exists but not symlink printout(ERROR, "FileLoader", "will not remove actual file " + file_path.string()); printout(ERROR, "FileLoader", "check content, remove manually, and retry"); - std::quick_exit(1); + std::_Exit(EXIT_FAILURE); } } // file_path now does not exist @@ -138,6 +139,6 @@ EnsureFileFromURLExists( } catch (const fs::filesystem_error&) { printout(ERROR, "FileLoader", "unable to link from " + file_path.string() + " to " + hash_path.string()); printout(ERROR, "FileLoader", "check permissions and retry"); - std::quick_exit(1); + std::_Exit(EXIT_FAILURE); } } diff --git a/src/SimpleDiskDetector_geo.cpp b/src/SimpleDiskDetector_geo.cpp index 7381a06474c49e24b235f8ad5185291afbc093cd..114c58b51de86d56da2e3afca7ff9160b5097238 100644 --- a/src/SimpleDiskDetector_geo.cpp +++ b/src/SimpleDiskDetector_geo.cpp @@ -15,8 +15,14 @@ // //========================================================================== #include "DD4hep/DetFactoryHelper.h" + +#if defined(USE_ACTSDD4HEP) +#include "ActsDD4hep/ActsExtension.hpp" +#include "ActsDD4hep/ConvertMaterial.hpp" +#else #include "Acts/Plugins/DD4hep/ActsExtension.hpp" #include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp" +#endif using namespace std; using namespace dd4hep; diff --git a/src/TrapEndcapTracker_geo.cpp b/src/TrapEndcapTracker_geo.cpp index 4930bc952158b5aa117da21ca75dee367daad663..f65d8498b8c90459e7073c7836a6d2de87ddc62e 100644 --- a/src/TrapEndcapTracker_geo.cpp +++ b/src/TrapEndcapTracker_geo.cpp @@ -6,6 +6,7 @@ * * @{ */ +#include <array> #include <map> #include "DD4hep/DetFactoryHelper.h" #include "DD4hep/Printout.h" @@ -15,8 +16,13 @@ #include "XML/Utilities.h" #include "XML/Layering.h" +#if defined(USE_ACTSDD4HEP) +#include "ActsDD4hep/ActsExtension.hpp" +#include "ActsDD4hep/ConvertMaterial.hpp" +#else #include "Acts/Plugins/DD4hep/ActsExtension.hpp" #include "Acts/Plugins/DD4hep/ConvertDD4hepMaterial.hpp" +#endif using namespace std; using namespace dd4hep;