diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 115490cb274cc6a091212361dec3036ac9030bc4..f6b2c7e26a30ec60362e05088a94d2063a2b091d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -112,15 +112,30 @@ dump_geometry: needs: - common:detector script: - - echo "dumping geometry" - - mkdir -p geo - ## full geo with downstream beamline - - dd_web_display --output geo/detector_geo_full.root ${DETECTOR_PATH}/athena.xml - ## only central detector geo - - sed -i '/forward_ion_beamline/d' ${DETECTOR_PATH}/athena.xml - - sed -i '/far_forward/d' ${DETECTOR_PATH}/athena.xml - - dd_web_display --output geo/detector_geo.root ${DETECTOR_PATH}/athena.xml - - echo "Geometry viewer at https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/detector_geo_full.root?job=dump_geometry&item=default;1&opt=clipxyz;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all&" + - echo "dumping geometry" + - mkdir -p geo + ## subsystem views + - | + for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do + geo_name=`basename $xml .xml`_geo.root + cp $xml ${DETECTOR_PATH}/geo.xml + dd_web_display --output geo/${geo_name} ${DETECTOR_PATH}/geo.xml + done + ## full geo with downstream beamline + - dd_web_display --output geo/detector_geo_full.root ${DETECTOR_PATH}/athena.xml + ## only central detector geo + - sed -i '/forward_ion_beamline/d' ${DETECTOR_PATH}/athena.xml + - sed -i '/far_forward/d' ${DETECTOR_PATH}/athena.xml + - dd_web_display --output geo/detector_geo.root ${DETECTOR_PATH}/athena.xml + ## print some useful output + - | + echo "Geometry viewer at:" + echo "https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/detector_geo_full.root?job=dump_geometry&item=default;1&opt=clipxyz;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all&" + for xml in ${DETECTOR_PATH}/compact/subsystem_views/*.xml; do + geo_name=`basename $xml .xml`_geo.root + echo " - Subsystem view for `basename $xml .xml` at:" + echo " https://eic.phy.anl.gov/geoviewer/index.htm?file=https://eicweb.phy.anl.gov/EIC/detectors/athena/-/jobs/${CI_JOB_ID}/artifacts/raw/geo/${geo_name}?job=dump_geometry&item=default;1&opt=clipxyz;transp30;zoom75;ROTY290;ROTZ350;trz0;trr0;ctrl;all&" + done detector_documentation: stage: docs @@ -174,7 +189,7 @@ overlap_check_tgeo: - 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 -overlap_check_geant4: +overlap_check_geant4:full: stage: test needs: - ["common:detector"] @@ -183,6 +198,16 @@ overlap_check_geant4: - echo "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l) overlaps..." - if [[ "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi +overlap_check_geant4:inner_detector: + stage: test + needs: + - ["common:detector"] + script: + - cp ${DETECTOR_PATH}/compact/subsystem_views/inner_detector.xml ${DETECTOR_PATH}/inner_detector.xml + - python scripts/checkOverlaps.py -c ${DETECTOR_PATH}/inner_detector.xml | tee doc/overlap_check_geant4.out + - echo "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l) overlaps..." + - if [[ "$(cat doc/overlap_check_geant4.out | grep GeomVol1002 | wc -l)" -gt "0" ]] ; then echo "Overlaps exist!" && false ; fi + convert_to_gdml: stage: test needs: diff --git a/compact/subsystem_views/calorimeters.xml b/compact/subsystem_views/calorimeters.xml index c3ea7db77b44647101cc1d8df8372218c34727a3..57df8740f7fe218817cfdc85efcdc01708fa51b9 100644 --- a/compact/subsystem_views/calorimeters.xml +++ b/compact/subsystem_views/calorimeters.xml @@ -136,15 +136,6 @@ <composite name="TrackerEndcapN_Outer"/> </detector> - <detector id="TOFSubAssembly_ID" - name="TOFSubAssembly" - type="DD4hep_SubdetectorAssembly" - vis="TOFSubAssemblyVis"> - <composite name="BarrelTOF"/> - <composite name="ForwardTOF"/> - <composite name="BackwardTOF"/> - </detector> - </detectors> diff --git a/compact/subsystem_views/inner_detector.xml b/compact/subsystem_views/inner_detector.xml new file mode 100644 index 0000000000000000000000000000000000000000..ab73075d27ff1136e6e1bfb465bca59ad9e9b757 --- /dev/null +++ b/compact/subsystem_views/inner_detector.xml @@ -0,0 +1,255 @@ +<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> + <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/ip6_defs.xml" /> + <include ref="compact/definitions.xml" /> + </define> + + <includes> + <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> + + <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> + + <comment> + Beamline elements + ----------------- + </comment> + <include ref="ip6/beampipe.xml" /> + + <documentation level="5"> + ## Main magnet + + Note: When changing magnet, also select dimensions in definitions.xml. + </documentation> + + <documentation level="5"> + ### Tracker subassemblies for ACTS + </documentation> + <detectors> + <detector id="VertexBarrelSubAssembly_ID" + name="VertexBarrelSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="VertexBarrel" /> + </detector> + <detector id="VertexEndcapSubAssembly_ID" + name="VertexEndcapSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="VertexEndcapN" /> + <composite name="VertexEndcapP" /> + </detector> + + <detector id="TrackerBarrelSubAssembly_Inner_ID" + name="TrackerBarrelSubAssembly_Inner" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerBarrel_Inner"/> + </detector> + <detector id="TrackerEndcapSubAssembly_Inner_ID" + name="TrackerEndcapSubAssembly_Inner" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerEndcapN_Inner"/> + <composite name="TrackerEndcapP_Inner"/> + </detector> + + <detector id="TrackerBarrelSubAssembly_Outer_ID" + name="TrackerSubAssembly_Outer" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerBarrel_Outer"/> + <composite name="TrackerEndcapP_Outer"/> + <composite name="TrackerEndcapN_Outer"/> + </detector> + + <comment> + TOF disabled for baseline + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TOFSubAssemblyVis"> + <composite name="BarrelTOF"/> + <composite name="ForwardTOF"/> + <composite name="BackwardTOF"/> + </detector> + </comment> + + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="SubAssemblyVis"> + <composite name="GEMTrackerEndcapP"/> + <composite name="GEMTrackerEndcapN"/> + </detector> + + </detectors> + + <documentation level="10"> + ## Central tracking detectors + </documentation> + + <include ref="compact/tracking_config_accadia.xml"/> + + <!--include ref="compact/tracking_config_mgpds.xml"/--> + + <documentation level="10"> + ### PID detectors + </documentation> + <!--include ref="compact/dirc.xml"/--> + <include ref="compact/mrich.xml"/> + <!--include ref="compact/forward_trd.xml"/--> + <include ref="compact/drich.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> + +</lccdd> diff --git a/compact/subsystem_views/inner_tracking_only.xml b/compact/subsystem_views/inner_tracking_only.xml new file mode 100644 index 0000000000000000000000000000000000000000..c0b5ff5b0aba3d91530c96c7e828b33ef3db6503 --- /dev/null +++ b/compact/subsystem_views/inner_tracking_only.xml @@ -0,0 +1,241 @@ +<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> + <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/ip6_defs.xml" /> + <include ref="compact/definitions.xml" /> + </define> + + <includes> + <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/display.xml" /> + </display> + + <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> + + <comment> + Beamline elements + ----------------- + </comment> + + <comment> + Main magnet + ----------- + Note: When changing magnet, also select dimensions in definitions.xml. + </comment> + <!--include ref="compact/solenoid.xml"/--> + + <comment> + Tracker subassemblies for ACTS + ------------------------------ + </comment> + <detectors> + <detector id="VertexBarrelSubAssembly_ID" + name="VertexBarrelSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="VertexBarrel" /> + </detector> + <detector id="VertexEndcapSubAssembly_ID" + name="VertexEndcapSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="VertexEndcapN" /> + <composite name="VertexEndcapP" /> + </detector> + + <detector id="TrackerBarrelSubAssembly_Inner_ID" + name="TrackerBarrelSubAssembly_Inner" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerBarrel_Inner"/> + </detector> + <detector id="TrackerEndcapSubAssembly_Inner_ID" + name="TrackerEndcapSubAssembly_Inner" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerEndcapN_Inner"/> + <composite name="TrackerEndcapP_Inner"/> + </detector> + + <detector id="TrackerBarrelSubAssembly_Outer_ID" + name="TrackerSubAssembly_Outer" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerBarrel_Outer"/> + <composite name="TrackerEndcapP_Outer"/> + <composite name="TrackerEndcapN_Outer"/> + </detector> + + <comment> + TOF disabled for baseline + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TOFSubAssemblyVis"> + <composite name="BarrelTOF"/> + <composite name="ForwardTOF"/> + <composite name="BackwardTOF"/> + </detector> + </comment> + + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="SubAssemblyVis"> + <composite name="GEMTrackerEndcapP"/> + <composite name="GEMTrackerEndcapN"/> + </detector> + + + </detectors> + + <comment> + Central tracking detectors + -------------------------- + </comment> + <include ref="compact/vertex_tracker.xml"/> + <include ref="compact/central_tracker.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> + +</lccdd> diff --git a/compact/subsystem_views/pid_only.xml b/compact/subsystem_views/pid_only.xml index 38ee2f7a3daa5fb0139279b6354421458c64df63..baa45851f49bb29bdd6fd6b4f7580ea68e0f88d0 100644 --- a/compact/subsystem_views/pid_only.xml +++ b/compact/subsystem_views/pid_only.xml @@ -3,13 +3,13 @@ xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> <debug> - <type name="surface" value="1"/> - <type name="material" value="1"/> - <type name="readout" value="1"/> - <type name="segmentation" value="1"/> - <type name="limits" value="1"/> - <type name="region" value="1"/> - <type name="includes" value="1"/> + <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"> @@ -133,20 +133,31 @@ <composite name="TrackerEndcapN_Outer"/> </detector> - <detector id="TOFSubAssembly_ID" - name="TOFSubAssembly" + <comment> + TOF disabled for baseline + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" type="DD4hep_SubdetectorAssembly" vis="TOFSubAssemblyVis"> <composite name="BarrelTOF"/> <composite name="ForwardTOF"/> <composite name="BackwardTOF"/> </detector> + </comment> + + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="SubAssemblyVis"> + <composite name="GEMTrackerEndcapP"/> + <composite name="GEMTrackerEndcapN"/> + </detector> </detectors> - <comment> - Central tracking detectors - -------------------------- + <documentation level="10"> + ## Central tracking detectors + </documentation> <comment> PID detectors @@ -154,7 +165,6 @@ </comment> <!--include ref="compact/dirc.xml"/--> <!--include ref="compact/mrich.xml"/--> - <include ref="compact/forward_trd.xml"/> <include ref="compact/gaseous_rich.xml"/> diff --git a/compact/subsystem_views/tracking_only.xml b/compact/subsystem_views/tracking_only.xml index 8d59a639cf8ba01feca5d4ed77c2ea810a363c1d..0996c864b219e8a0697e12c93ce7bdbfbd3e2fdc 100644 --- a/compact/subsystem_views/tracking_only.xml +++ b/compact/subsystem_views/tracking_only.xml @@ -3,13 +3,13 @@ xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> <debug> - <type name="surface" value="1"/> - <type name="material" value="1"/> - <type name="readout" value="1"/> - <type name="segmentation" value="1"/> - <type name="limits" value="1"/> - <type name="region" value="1"/> - <type name="includes" value="1"/> + <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"> @@ -135,14 +135,26 @@ <composite name="TrackerEndcapN_Outer"/> </detector> - <detector id="TOFSubAssembly_ID" - name="TOFSubAssembly" + <comment> + TOF disabled for baseline + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" type="DD4hep_SubdetectorAssembly" vis="TOFSubAssemblyVis"> <composite name="BarrelTOF"/> <composite name="ForwardTOF"/> <composite name="BackwardTOF"/> </detector> + </comment> + + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="SubAssemblyVis"> + <composite name="GEMTrackerEndcapP"/> + <composite name="GEMTrackerEndcapN"/> + </detector> + </detectors> @@ -150,26 +162,12 @@ Central tracking detectors -------------------------- </comment> - <include ref="compact/vertex_tracker.xml"/> - <include ref="compact/central_tracker.xml"/> - - <!--include ref="compact/tof_barrel.xml"/--> - <!--include ref="compact/tof_endcap.xml"/--> - <!--include ref="compact/rwell_tracker_barrel.xml"--> - <!--include ref="compact/ce_GEM.xml"/--> - <!--include ref="compact/mm_tracker_barrel.xml"/--> - <!--include ref="compact/cb_VTX_Barrel.xml"/--> - <!--include ref="compact/gem_tracker_endcap.xml"/--> + <include ref="compact/tracking_config_accadia.xml"/> <comment> PID detectors ------------- </comment> - <!--include ref="compact/dirc.xml"/--> - <!--include ref="compact/mrich.xml"/--> - <!--include ref="compact/forward_trd.xml"/--> - <!--include ref="compact/gaseous_rich.xml"/--> - <fields> <field name="B0PF_Magnet" type="MultipoleMagnet"> diff --git a/compact/subsystem_views/vertex_only.xml b/compact/subsystem_views/vertex_only.xml index 32e1e933223f5d7260790ac769344641be3a43dd..a5aea68820be62972961fffa67827e069a76c04e 100644 --- a/compact/subsystem_views/vertex_only.xml +++ b/compact/subsystem_views/vertex_only.xml @@ -3,13 +3,13 @@ xs:noNamespaceSchemaLocation="http://www.lcsim.org/schemas/compact/1.0/compact.xsd"> <debug> - <type name="surface" value="1"/> - <type name="material" value="1"/> - <type name="readout" value="1"/> - <type name="segmentation" value="1"/> - <type name="limits" value="1"/> - <type name="region" value="1"/> - <type name="includes" value="1"/> + <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"> @@ -135,14 +135,25 @@ <composite name="TrackerEndcapN_Outer"/> </detector> - <detector id="TOFSubAssembly_ID" - name="TOFSubAssembly" + <comment> + TOF disabled for baseline + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" type="DD4hep_SubdetectorAssembly" vis="TOFSubAssemblyVis"> <composite name="BarrelTOF"/> <composite name="ForwardTOF"/> <composite name="BackwardTOF"/> </detector> + </comment> + + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="SubAssemblyVis"> + <composite name="GEMTrackerEndcapP"/> + <composite name="GEMTrackerEndcapN"/> + </detector> </detectors> diff --git a/geo.xml b/geo.xml new file mode 100644 index 0000000000000000000000000000000000000000..8497b2677d4b10caca36e919d807793813d185b9 --- /dev/null +++ b/geo.xml @@ -0,0 +1,241 @@ +<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="1"/> + <type name="material" value="1"/> + <type name="readout" value="1"/> + <type name="segmentation" value="1"/> + <type name="limits" value="1"/> + <type name="region" value="1"/> + <type name="includes" value="1"/> + </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> + <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/ip6_defs.xml" /> + <include ref="compact/definitions.xml" /> + </define> + + <includes> + <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/display.xml" /> + </display> + + <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> + + <comment> + Beamline elements + ----------------- + </comment> + + <comment> + Main magnet + ----------- + Note: When changing magnet, also select dimensions in definitions.xml. + </comment> + <!--include ref="compact/solenoid.xml"/--> + + <comment> + Tracker subassemblies for ACTS + ------------------------------ + </comment> + <detectors> + <detector id="VertexBarrelSubAssembly_ID" + name="VertexBarrelSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="VertexBarrel" /> + </detector> + <detector id="VertexEndcapSubAssembly_ID" + name="VertexEndcapSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="VertexEndcapN" /> + <composite name="VertexEndcapP" /> + </detector> + + <detector id="TrackerBarrelSubAssembly_Inner_ID" + name="TrackerBarrelSubAssembly_Inner" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerBarrel_Inner"/> + </detector> + <detector id="TrackerEndcapSubAssembly_Inner_ID" + name="TrackerEndcapSubAssembly_Inner" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerEndcapN_Inner"/> + <composite name="TrackerEndcapP_Inner"/> + </detector> + + <detector id="TrackerBarrelSubAssembly_Outer_ID" + name="TrackerSubAssembly_Outer" + type="DD4hep_SubdetectorAssembly" + vis="TrackerSubAssemblyVis"> + <composite name="TrackerBarrel_Outer"/> + <composite name="TrackerEndcapP_Outer"/> + <composite name="TrackerEndcapN_Outer"/> + </detector> + + <comment> + TOF disabled for baseline + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TOFSubAssemblyVis"> + <composite name="BarrelTOF"/> + <composite name="ForwardTOF"/> + <composite name="BackwardTOF"/> + </detector> + </comment> + + <detector id="OuterTrackingSubAssembly_ID" + name="OuterTrackingSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="SubAssemblyVis"> + <composite name="GEMTrackerEndcapP"/> + <composite name="GEMTrackerEndcapN"/> + </detector> + + + </detectors> + + <comment> + Central tracking detectors + -------------------------- + </comment> + <include ref="compact/vertex_tracker.xml"/> + <include ref="compact/central_tracker.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> + +</lccdd>