Skip to content
Snippets Groups Projects
Commit 15bf9111 authored by Wouter Deconinck's avatar Wouter Deconinck
Browse files

Backwards region geometry

parent f3a9781a
Branches
No related tags found
1 merge request!98Backwards region geometry
Pipeline #30781 failed
Pipeline: athena

#30784

    Showing
    with 857 additions and 134 deletions
    ...@@ -24,3 +24,7 @@ fieldmaps ...@@ -24,3 +24,7 @@ fieldmaps
    manifest.txt manifest.txt
    acts.txt acts.txt
    acts2.txt acts2.txt
    # local install directories
    lib/
    share/
    ...@@ -19,15 +19,24 @@ dd4hep_configure_output() ...@@ -19,15 +19,24 @@ dd4hep_configure_output()
    dd4hep_add_plugin(${a_lib_name} dd4hep_add_plugin(${a_lib_name}
    SOURCES SOURCES
    src/CylindricalDipoleMagnet_geo.cpp
    src/B0Tracker_geo.cpp src/B0Tracker_geo.cpp
    src/B0Preshower_geo.cpp src/B0Preshower_geo.cpp
    src/BackwardsBeamPipe_geo.cpp
    src/BackwardsCollimator.cpp
    src/BackwardsLumiVac_geo.cpp
    src/BackwardsTagWin_geo.cpp
    src/BackwardsVacBox_geo.cpp
    src/BackwardsVacDrift_geo.cpp
    src/CylindricalDipoleMagnet_geo.cpp
    src/DD4hep_GdmlDetector.cpp src/DD4hep_GdmlDetector.cpp
    src/ForwardRomanPot_geo.cpp src/ForwardRomanPot_geo.cpp
    src/hadronDownstreamBeamPipe.cpp src/hadronDownstreamBeamPipe.cpp
    src/IP6BeamPipe.cpp src/IP6BeamPipe.cpp
    src/magnetVacuumFF.cpp src/magnetVacuumFF.cpp
    src/OffMomentumTracker_geo.cpp src/OffMomentumTracker_geo.cpp
    src/TaggerCalWSi_geo.cpp
    src/TaggerTracker_geo.cpp
    src/Timepix_geo.cpp
    src/ZeroDegreeCalorimeterEcalWSciFi_geo.cpp src/ZeroDegreeCalorimeterEcalWSciFi_geo.cpp
    src/ZeroDegreeCalorimeterEcal_geo.cpp src/ZeroDegreeCalorimeterEcal_geo.cpp
    src/ZeroDegreeCalorimeterSampling_geo.cpp src/ZeroDegreeCalorimeterSampling_geo.cpp
    ......
    ...@@ -52,7 +52,7 @@ parser.add_argument('-t', '--tag', type=str,dest='file_tag', ...@@ -52,7 +52,7 @@ parser.add_argument('-t', '--tag', type=str,dest='file_tag',
    help='Output file tag') help='Output file tag')
    parser.add_argument('--timeout', type=int, parser.add_argument('--timeout', type=int,
    default=60, default=90,
    help='Timeout in seconds') help='Timeout in seconds')
    parser.add_argument('passthrough', nargs='*') parser.add_argument('passthrough', nargs='*')
    ......
    ...@@ -9,57 +9,89 @@ ...@@ -9,57 +9,89 @@
    <constant name="BeamPipeB0_ID" value="1"/> <constant name="BeamPipeB0_ID" value="1"/>
    <constant name="BeamPipe_ID" value="2"/> <constant name="BeamPipe_ID" value="2"/>
    <include ref="ip6/ip6_defs.xml" /> <include ref="ip6/definitions.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>
    Change this to 275/100/41 to change the field setup
    </comment> </comment>
    <constant name="B0Tracker_Station_1_ID" value="150"/> <include ref="ip6/far_forward/fields_275.xml"/>
    <constant name="B0Tracker_Station_2_ID" value="151"/>
    <constant name="B0Tracker_Station_3_ID" value="152"/> <constant name="tracker_region_zmax" value="10*m"/>
    <constant name="B0Tracker_Station_4_ID" value="153"/> <constant name="tracker_region_rmax" value="1*m"/>
    <constant name="B0Preshower_Station_1_ID" value="154"/>
    <documentation>
    #### (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
    </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="ForwardRomanPot_Station_2_ID" value="156"/>
    <constant name="ForwardOffMTracker_station_1_ID" value="159"/>
    <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_2_ID" value="160"/>
    <constant name="ForwardOffMTracker_station_3_ID" value="161"/> <constant name="ForwardOffMTracker_station_3_ID" value="161"/>
    <constant name="ForwardOffMTracker_station_4_ID" value="162"/> <constant name="ForwardOffMTracker_station_4_ID" value="162"/>
    <constant name="ffi_ZDC_ECAL_ID" value="163"/> <constant name="ZDCEcal_ID" value="163"/>
    <constant name="ffi_ZDC_HCAL_ID" value="164"/> <constant name="ZDCHcal_ID" value="164"/>
    <constant name="VacuumMagnetElement_1_ID" value="165"/>
    <constant name="VacuumMagnetElement_1_ID" value="165"/>
    <documentation>
    <constant name="tracker_region_zmax" value="10*m"/> #### (170-189) Far Forward Beamline Magnets
    <constant name="tracker_region_rmax" value="1*m"/> </documentation>
    <constant name="B0PF_ID" value="170"/>
    <constant name="B0APF_ID" value="171"/>
    <comment> <constant name="Q1APF_ID" value="172"/>
    ===================================== <constant name="Q1BPF_ID" value="173"/>
    (170-189) Forward Beamline Magnets <constant name="Q2PF_ID" value="174"/>
    ===================================== <constant name="B1PF_ID" value="175"/>
    </comment> <constant name="B1APF_ID" value="176"/>
    <constant name="B2PF_ID" value="177"/>
    <comment> <constant name="Q0EF_ID" value="180"/>
    ===================================== <constant name="Q1EF_ID" value="181"/>
    (190-199) Backward Beamline Magnets
    ===================================== <documentation>
    </comment> #### (190-199) Far Backward Beamline Detectors
    - 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"/>
    </define> </define>
    ...@@ -69,85 +101,23 @@ ...@@ -69,85 +101,23 @@
    </includes> </includes>
    <display> <display>
    <include ref="ip6/ip6_colors.xml" /> <include ref="ip6/ip6_colors.xml"/>
    <include ref="ip6/ip6_display.xml" /> <include ref="ip6/ip6_display.xml"/>
    </display> </display>
    <include ref="ip6/beampipe.xml" /> <comment>
    <include ref="ip6/forward_ion_beamline.xml" /> Central beamline
    <include ref="ip6/beampipe_hadron_B0.xml" /> </comment>
    <include ref="ip6/B0_tracker.xml"/> <include ref="ip6/central_beampipe.xml"/>
    <include ref="ip6/B0_preshower.xml"/>
    <include ref="ip6/far_forward_offM_tracker.xml"/> <comment>
    <include ref="ip6/far_forward_detectors.xml"/> Far Forward
    <include ref="ip6/roman_pots_eRD24_design.xml"/> </comment>
    <!-- <include ref="ip6/far_forward.xml"/>
    Old BOM not used
    <include ref="ip6/beam_orbit_tracker.xml"/> <comment>
    --> Far Backward
    <include ref="ip6/inner_vacuum_FF_magnets.xml"/> </comment>
    <include ref="ip6/far_backward.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>
    </lccdd> </lccdd>
    File moved
    File moved
    <?xml version="1.0" encoding="UTF-8"?>
    <lccdd>
    <include ref="ip6/far_backward/definitions.xml"/>
    <include ref="ip6/far_backward/magnets.xml"/>
    <include ref="ip6/far_backward/vacuum.xml"/>
    <include ref="ip6/far_backward/taggers.xml"/>
    <include ref="ip6/far_backward/lumi.xml"/>
    </lccdd>
    <?xml version="1.0" encoding="UTF-8"?>
    <lccdd>
    <define>
    <!-- Connection to central beam pipe -->
    <constant name="Center_Beampipe_End" value="-4560.17 * mm"/>
    <constant name="Center_Beampipe_Rad" value="47.60 * mm"/>
    <!-- Magnet dimensions and positions -->
    <constant name="Q1eR_InnerRadius" value="55.5*mm"/>
    <constant name="Q1eR_Length" value="1.78*m"/>
    <constant name="Q1eR_CenterPosition" value="-6.2*m"/>
    <constant name="Q2eR_InnerRadius" value="64.5*mm"/>
    <constant name="Q2eR_Length" value="1.4*m"/>
    <constant name="Q2eR_CenterPosition" value="-8.3*m"/>
    <constant name="B2AeR_InnerRadius" value="70.0*mm"/>
    <constant name="B2AeR_Length" value="1.78*m"/>
    <constant name="B2AeR_CenterPosition" value="-10.5*m"/>
    <constant name="B2BeR_InnerRadius" value="98.0*mm"/>
    <constant name="B2BeR_Length" value="3.18*m"/>
    <constant name="B2BeR_CenterPosition" value="-13.275*m"/>
    <constant name="Q3eR_InnerRadius" value="0.05*m"/>
    <constant name="Q3eR_Length" value="0.6*m"/>
    <constant name="Q3eR_StartZ" value="-37.696067*m"/>
    <constant name="Q3eR_StartX" value="-0.460027*m"/>
    <constant name="Q3eR_EndZ" value="-38.295969*m"/>
    <constant name="Q3eR_EndX" value="-0.470873*m"/>
    <constant name="Q3eR_XPosition" value="-0.46545*m"/>
    <constant name="Q3eR_Theta" value="0.0180766389*rad"/>
    <constant name="Q3eR_CenterPosition" value="-37.996018*m"/>
    </define>
    </lccdd>
    <?xml version="1.0" encoding="UTF-8"?>
    <lccdd>
    <define>
    <comment>
    <constant name="Collimator_Box_Depth" value="300*mm"/>
    <constant name="Collimator_Box_Width" value="Tag_Box_1_Height"/>
    <constant name="Collimator_Box_Height" value="Tag_Box_1_Height"/>
    <constant name="Collimator_Hole_Height" value="70*mm"/>
    <constant name="Collimator_Hole_Width" value="96*mm"/>
    <constant name="Collimator_Hole_XOff" value="0"/>
    <constant name="CollimatorZ" value="-27*m"/>
    </comment>
    </define>
    <detectors>
    <comment>
    <detector name="LumiMag_shape" type="CylindricalDipoleMagnet">
    <placement x="0" y="0" z="LumiMag_cen_Z" theta="0"/>
    <dimensions x="LumiMag_R*4" y="LumiMag_R*4" z="LumiMag_DZ" r="2*LumiMag_R"/>
    <apperture x="LumiMag_R*2" y="LumiMag_R*2" r="LumiMag_R"/>
    <coil dx="2*cm" dy="1.5*cm"/><!--unchecked-->
    </detector>
    <detector id="FarBackwardLumiCollimator_ID" name="LumiCollimator" type="BackwardsCollimator" vis="Shape1_vis">
    <dimensions height="Collimator_Box_Height" width="Collimator_Box_Width" depth="Collimator_Box_Depth"/>
    <collimator height="Collimator_Hole_Height" width="Collimator_Hole_Width" xOff="Collimator_Hole_XOff"/>
    <placement z="CollimatorZ-Collimator_Box_Depth"/>
    </detector>
    <detector id="FarBackwardLumiDipole_ID" name="LumiDipoleBox" type="DD4hep_TestShape_Creator">
    <check vis="Shape1_vis">
    <shape type="Box" dx="LumiDipole_x" dy="LumiDipole_y" dz="LumiDipole_z/2"/>
    <position x="0" y="0" z="LumiDipole_CenterPosition"/>
    </check>
    </detector>
    </comment>
    </detectors>
    <comment>
    <fields>
    <field name="LumiDipole" type="MultipoleMagnet">
    <shape type="Box" dx="LumiDipole_x" dy="LumiDipole_y" dz="LumiDipole_z/2"/>
    <position x="0" y="0" z="LumiDipole_CenterPosition"/>
    <coefficient coefficient="0.26*tesla"/>
    </field>
    </fields>
    </comment>
    </lccdd>
    <?xml version="1.0" encoding="UTF-8"?>
    <lccdd>
    <detectors>
    <!-- Magnet volumes -->
    <detector id="Magnet_Q1eR_ID" name="Magnet_Q1eR" type="CylindricalDipoleMagnet" vis="RedVis">
    <placement x="0" y="0" z="Q1eR_CenterPosition" theta="0*rad"/>
    <dimensions x="Q1eR_InnerRadius*4" y="Q1eR_InnerRadius*4" z="Q1eR_Length" r="2.0*Q1eR_InnerRadius" />
    <apperture x="Q1eR_InnerRadius*2" y="Q1eR_InnerRadius*2" r="Q1eR_InnerRadius" />
    <coil dx="2*cm" dy="1.5*cm" /><!--unchecked-->
    </detector>
    <detector id="Magnet_Q2eR_ID" name="Magnet_Q2eR" type="CylindricalDipoleMagnet" vis="RedVis">
    <placement x="0" y="0" z="Q2eR_CenterPosition" theta="0*rad"/>
    <dimensions x="Q2eR_InnerRadius*4" y="Q2eR_InnerRadius*4" z="Q2eR_Length" r="2.0*Q2eR_InnerRadius"/>
    <apperture x="Q2eR_InnerRadius*2" y="Q2eR_InnerRadius*2" r="Q2eR_InnerRadius"/>
    <coil dx="2*cm" dy="1.5*cm" /><!--unchecked-->
    </detector>
    <detector id="Magnet_B2AeR_ID" name="Magnet_B2AeR" type="CylindricalDipoleMagnet" vis="RedVis">
    <placement x="0" y="0" z="B2AeR_CenterPosition" theta="0*rad"/>
    <dimensions x="B2AeR_InnerRadius*4" y="B2AeR_InnerRadius*4" z="B2AeR_Length" r="2.0*B2AeR_InnerRadius"/>
    <apperture x="B2AeR_InnerRadius*2" y="B2AeR_InnerRadius*2" r="B2AeR_InnerRadius"/>
    <coil dx="2*cm" dy="1.5*cm" /><!--unchecked-->
    </detector>
    <detector id="Magnet_B2BeR_ID" name="Magnet_B2BeR" type="CylindricalDipoleMagnet" vis="RedVis">
    <placement x="0" y="0" z="B2BeR_CenterPosition" theta="0*rad"/>
    <dimensions x="B2BeR_InnerRadius*4" y="B2BeR_InnerRadius*4" z="B2BeR_Length" r="2.0*B2BeR_InnerRadius"/>
    <apperture x="B2BeR_InnerRadius*2" y="B2BeR_InnerRadius*2" r="B2BeR_InnerRadius"/>
    <coil dx="2*cm" dy="1.5*cm" /><!--unchecked-->
    </detector>
    <detector id="Magnet_Q3eR_ID" name="Magnet_Q3eR" type="CylindricalDipoleMagnet" vis="RedVis">
    <placement x="(Q3eR_StartX+Q3eR_EndX)/2" y="0" z="(Q3eR_StartZ+Q3eR_EndZ)/2" theta="Q3eR_Theta"/>
    <dimensions x="Q3eR_InnerRadius*4" y="Q3eR_InnerRadius*4" z="Q3eR_Length" r="2.0*Q3eR_InnerRadius"/>
    <apperture x="Q3eR_InnerRadius*2" y="Q3eR_InnerRadius*2" r="Q3eR_InnerRadius"/>
    <coil dx="2*cm" dy="1.5*cm" /><!--unchecked-->
    </detector>
    <!-- Inner vacuum for magnets -->
    <detector id="Pipe_to_Q1eR_ID" name="Pipe_to_Q1eR" type="BackwardsBeamPipe">
    <Pipe wall_thickness="2*mm" outerD1="Q1eR_InnerRadius*2" outerD2="Center_Beampipe_Rad*2"
    end1="Center_Beampipe_End" end2="Q1eR_CenterPosition+Q1eR_Length/2"/>
    </detector>
    <detector id="Pipe_in_Q1eR_ID" name="Pipe_in_Q1eR" type="BackwardsBeamPipe">
    <Pipe wall_thickness="2*mm" outerD1="Q1eR_InnerRadius*2" outerD2="Q1eR_InnerRadius*2"
    end1="Q1eR_CenterPosition+Q1eR_Length/2" end2="Q1eR_CenterPosition-Q1eR_Length/2"/>
    </detector>
    <detector id="Pipe_Q1eR_to_Q2eR_ID" name="Pipe_Q1eR_to_Q2eR" type="BackwardsBeamPipe">
    <Pipe wall_thickness="2*mm" outerD1="Q2eR_InnerRadius*2" outerD2="Q1eR_InnerRadius*2"
    end1="Q1eR_CenterPosition-Q1eR_Length/2" end2="Q2eR_CenterPosition+Q2eR_Length/2"/>
    </detector>
    <detector id="Pipe_in_Q2eR_ID" name="Pipe_in_Q2eR" type="BackwardsBeamPipe">
    <Pipe wall_thickness="2*mm" outerD1="Q2eR_InnerRadius*2" outerD2="Q2eR_InnerRadius*2"
    end1="Q2eR_CenterPosition+Q2eR_Length/2" end2="Q2eR_CenterPosition-Q2eR_Length/2"/>
    </detector>
    <detector id="Pipe_Q2eR_to_B2AeR_ID" name="Pipe_Q2eR_to_B2AeR" type="BackwardsBeamPipe">
    <Pipe wall_thickness="2*mm" outerD1="B2AeR_InnerRadius*2" outerD2="Q2eR_InnerRadius*2"
    end1="Q2eR_CenterPosition-Q2eR_Length/2" end2="B2AeR_CenterPosition+B2AeR_Length/2"/>
    </detector>
    <detector id="Pipe_in_B2AeR_ID" name="Pipe_in_B2AeR" type="BackwardsBeamPipe">
    <Pipe wall_thickness="2*mm" outerD1="B2AeR_InnerRadius*2" outerD2="B2AeR_InnerRadius*2"
    end1="B2AeR_CenterPosition+B2AeR_Length/2" end2="B2AeR_CenterPosition-B2AeR_Length/2"/>
    </detector>
    <detector id="Pipe_B2AeR_to_B2BeR_ID" name="Pipe_B2AeR_to_B2BeR" type="BackwardsBeamPipe">
    <Pipe wall_thickness="2*mm" outerD1="B2BeR_InnerRadius*2" outerD2="B2AeR_InnerRadius*2"
    end1="B2AeR_CenterPosition-B2AeR_Length/2" end2="B2BeR_CenterPosition+B2BeR_Length/2"/>
    </detector>
    <detector id="Pipe_in_B2BeR_ID" name="Pipe_in_B2BeR" type="BackwardsBeamPipe">
    <Pipe wall_thickness="2*mm" outerD1="B2BeR_InnerRadius*2" outerD2="B2BeR_InnerRadius*2"
    end1="B2BeR_CenterPosition+B2BeR_Length/2" end2="B2BeR_CenterPosition-B2BeR_Length/2"/>
    </detector>
    <detector name="Q3eRvac" type="DD4hep_TubeSegment" vis="Shape1_vis">
    <material name="Vacuum"/>
    <tubs rmin="0" rmax="Q3eR_InnerRadius" zhalf="Q3eR_Length/2"/>
    <position x="-(Q3eR_StartX+Q3eR_EndX)/2" y="0" z="(Q3eR_StartZ+Q3eR_EndZ)/2"/>
    <rotation x="0*rad" y="Q3eR_Theta" z="0*rad"/>
    </detector>
    </detectors>
    <fields>
    <!-- Magnetic fields -->
    <field name="Magnet_Q1eR_Field" type="MultipoleMagnet">
    <shape type="Tube" rmax="Q1eR_InnerRadius" dz="Q1eR_Length/2"/>
    <position x="0" y="0" z="Q1eR_CenterPosition"/>
    <coefficient/>
    <coefficient coefficient="-13.3153*tesla/meter"/>
    </field>
    <field name="Magnet_Q2eR_Field" type="MultipoleMagnet">
    <shape type="Tube" rmax="Q2eR_InnerRadius" dz="Q2eR_Length/2"/>
    <position x="0" y="0" z="Q2eR_CenterPosition"/>
    <coefficient/>
    <coefficient coefficient="12.0595*tesla/meter"/>
    </field>
    <field name="Magnet_Q3eR_Field" type="MultipoleMagnet">
    <shape type="Tube" rmax="Q3eR_InnerRadius" dz="Q3eR_Length/2"/>
    <position x="0" y="0" z="Q3eR_CenterPosition"/>
    <coefficient/>
    <coefficient coefficient="12.0595*tesla/meter"/>
    </field>
    <field name="Magnet_B2AeR_Field" type="MultipoleMagnet">
    <shape type="Tube" rmax="B2AeR_InnerRadius" dz="B2AeR_Length/2"/>
    <position x="0" y="0" z="B2AeR_CenterPosition"/>
    <coefficient coefficient="0.192*tesla"/>
    </field>
    <field name="Magnet_B2BeR_Field" type="MultipoleMagnet">
    <shape type="Tube" rmax="B2BeR_InnerRadius" dz="B2BeR_Length/2"/>
    <position x="0" y="0" z="B2BeR_CenterPosition"/>
    <coefficient coefficient="0.238*tesla"/>
    </field>
    </fields>
    </lccdd>
    <?xml version="1.0" encoding="UTF-8"?>
    <lccdd>
    <define>
    <constant name="Tag_Tracker_1_Depth" value="130*mm"/>
    <constant name="Tag_Cal_1_Depth" value="180*mm"/>
    <constant name="Tag_Tracker_2_Depth" value="Tag_Tracker_1_Depth"/>
    <constant name="Tag_Cal_2_Depth" value="Tag_Cal_1_Depth"/>
    <constant name="pixel_size" value="55*um"/>
    </define>
    <detectors>
    <detector id="TaggerTracker_1_ID"
    name="TaggerTrackerHits_1"
    type="TaggerTracker"
    readout="TaggerTracker1Hits"
    vis="Shape1_vis"
    place_into="Tagger1box">
    <dimensions x="Tag1_size_X/2" y="Tag1_size_Y/2" z="Tag_Tracker_1_Depth"/>
    <position x="0" y="0" z="Tag1_Length/2-Tag_Tracker_1_Depth/2"/>
    <rotation x="0*rad" y="0*rad" z="0*rad"/>
    <trackLayer id="1" type="timepix" z="0 *mm" sensor_thickness="200*um"/>
    <trackLayer id="2" type="timepix" z="100 *mm" sensor_thickness="200*um"/>
    </detector>
    <detector id="TaggerCalorimeter_1_ID"
    name="TaggerCalorimeter_1"
    type="TaggerCalWSi"
    readout="TaggerCalorimeter1Hits"
    vis="Shape1_vis"
    place_into="Tagger1box">
    <dimensions x="Tag1_size_X/2" y="Tag1_size_Y/2" z="Tag_Cal_1_Depth"/>
    <position x="0" y="0" z="Tag1_Length/2-Tag_Tracker_1_Depth-Tag_Cal_1_Depth/2"/>
    <rotation x="0*rad" y="0*rad" z="0*rad"/>
    </detector>
    <detector id="TaggerTracker_2_ID"
    name="TaggerTracker_2"
    type="TaggerTracker"
    readout="TaggerTracker2Hits"
    vis="Shape1_vis"
    place_into="Tagger2box">
    <dimensions x="Tag2_size_X/2" y="Tag2_size_Y/2" z="Tag_Tracker_2_Depth"/>
    <position x="0" y="0" z="Tag2_Length/2-Tag_Tracker_2_Depth/2"/>
    <rotation x="0*rad" y="0*rad" z="0*rad"/>
    <trackLayer id="1" type="timepix" z="0 *mm" sensor_thickness="200*um"/>
    <trackLayer id="2" type="timepix" z="100 *mm" sensor_thickness="200*um"/>
    </detector>
    <detector id="TaggerCalorimeter_2_ID"
    name="TaggerCalorimeter_2"
    type="TaggerCalWSi"
    readout="TaggerCalorimeter2Hits"
    vis="Shape1_vis"
    place_into="Tagger2box">
    <dimensions x="Tag2_size_X/2" y="Tag2_size_Y/2" z="Tag_Cal_2_Depth"/>
    <position x="0" y="0" z="Tag2_Length/2-Tag_Tracker_2_Depth-Tag_Cal_2_Depth/2"/>
    <rotation x="0*rad" y="0*rad" z="0*rad"/>
    </detector>
    <comment>
    </comment>
    </detectors>
    <readouts>
    <readout name="TaggerTracker1Hits">
    <segmentation type="CartesianGridXY" grid_size_x="pixel_size" grid_size_y="pixel_size" />
    <id>system:8,layer:2,x:32:-16,y:-16</id>
    </readout>
    <readout name="TaggerCalorimeter1Hits">
    <segmentation type="CartesianGridXY" grid_size_x="pixel_size" grid_size_y="pixel_size" />
    <id>system:8,layer:22,x:32:-16,y:-16</id>
    </readout>
    <readout name="TaggerTracker2Hits">
    <segmentation type="CartesianGridXY" grid_size_x="pixel_size" grid_size_y="pixel_size" />
    <id>system:8,layer:2,x:32:-16,y:-16</id>
    </readout>
    <readout name="TaggerCalorimeter2Hits">
    <segmentation type="CartesianGridXY" grid_size_x="pixel_size" grid_size_y="pixel_size" />
    <id>system:8,layer:22,x:32:-16,y:-16</id>
    </readout>
    </readouts>
    </lccdd>
    <?xml version="1.0" encoding="UTF-8"?>
    <lccdd>
    <define>
    <!-- Q3eR top and bottom at its front -->
    <constant name="Q3eR_ZT" value="Q3eR_StartZ - Q3eR_InnerRadius*sin(Q3eR_Theta)"/>
    <constant name="Q3eR_XT" value="Q3eR_StartX + Q3eR_InnerRadius*cos(Q3eR_Theta)"/>
    <constant name="Q3eR_ZB" value="Q3eR_StartZ + Q3eR_InnerRadius*sin(Q3eR_Theta)"/>
    <constant name="Q3eR_XB" value="Q3eR_StartX - Q3eR_InnerRadius*cos(Q3eR_Theta)"/>
    <!-- Exit window front side -->
    <constant name="ExitWin_Z" value="-18.5*m"/>
    <constant name="ExitWin_XB" value="-0.037*m"/>
    <!-- B2BeR end -->
    <constant name="B2BeR_Z" value="-14.865*m"/>
    <constant name="B2BeR_XB" value="-0.098*m"/>
    <!-- Auxiliary point in front of drift vacuum section -->
    <constant name="ExitWin_XA" value="B2BeR_XB-(B2BeR_Z-ExitWin_Z)*(B2BeR_XB-Q3eR_XB)/(B2BeR_Z-Q3eR_ZB)"/>
    <!-- Tagger 1 -->
    <constant name="Tag1_size_X" value="0.4*m"/>
    <constant name="Tag1_size_Y" value="0.4*m"/>
    <constant name="Tag1_pos_Z" value="-24*m"/>
    <constant name="Tag1_Theta" value="0.0180766389*rad"/>
    <constant name="Tag1_Length" value="0.35*m"/>
    <constant name="Tag1_XT" value="B2BeR_XB-(B2BeR_Z-Tag1_pos_Z)*(B2BeR_XB-Q3eR_XB)/(B2BeR_Z-Q3eR_ZB)"/>
    <constant name="Tag1_ZB" value="Tag1_pos_Z+Tag1_size_X*sin(Tag1_Theta)"/>
    <constant name="Tag1_XB" value="Tag1_XT-Tag1_size_X*cos(Tag1_Theta)"/>
    <!-- Tagger 2 -->
    <constant name="Tag2_size_X" value="0.3*m"/>
    <constant name="Tag2_size_Y" value="0.2*m"/>
    <constant name="Tag2_pos_Z" value="-36*m"/>
    <constant name="Tag2_Theta" value="0.0180766389*rad"/>
    <constant name="Tag2_Length" value="Tag1_Length"/>
    <constant name="Tag2_XT" value="B2BeR_XB-(B2BeR_Z-Tag2_pos_Z)*(B2BeR_XB-Q3eR_XB)/(B2BeR_Z-Q3eR_ZB)"/>
    <constant name="Tag2_ZB" value="Tag2_pos_Z+Tag2_size_X*sin(Tag2_Theta)"/>
    <constant name="Tag2_XB" value="Tag2_XT-Tag2_size_X*cos(Tag2_Theta)"/>
    <!-- Luminosity exit window -->
    <constant name="LumiWin_Z" value="-18.5*m"/>
    <constant name="LumiWin_XY" value="0.074*m"/>
    <constant name="LumiWin_DZ" value="0.29*m"/>
    <!-- Luminosity dipole magnet -->
    <constant name="LumiMag_cen_Z" value="-28*m"/>
    <constant name="LumiMag_R" value="0.1*m"/>
    <constant name="LumiMag_DZ" value="0.6*m"/>
    <!-- Luminosity spectrometers up and down -->
    <constant name="LumiSpec_Z" value="-36.4*m"/>
    <constant name="LumiSpec_XY" value="0.2*m"/>
    <constant name="LumiSpec_DZ" value="0.35*m"/>
    <constant name="LumiSpec_cen_Y" value="0.142*m"/>
    <!-- Luminosity direct photon detector -->
    <constant name="LumiD_Z" value="-37*m"/>
    <constant name="LumiD_XY" value="0.2*m"/>
    <constant name="LumiD_DZ" value="0.35*m"/>
    </define>
    <detectors>
    <detector name="vac_b2b_window" type="BackwardsVacBox" ysiz="Tag1_size_Y" vis="Shape1_vis">
    <points win_xmin="ExitWin_XA" />
    </detector>
    <detector name="vac_b2b_drift" type="BackwardsVacDrift" ysiz="Tag1_size_Y" vis="Shape1_vis">
    <points
    zQT="Q3eR_ZT"
    xQT="Q3eR_XT"
    zQB="Q3eR_ZB"
    xQB="Q3eR_XB"
    zW="ExitWin_Z"
    xW="ExitWin_XB"
    xA="ExitWin_XA"
    />
    </detector>
    <detector name="vac_tag1_win" type="BackwardsTagWin" ysiz="Tag1_size_Y" vis="Shape1_vis">
    <points
    zB="B2BeR_Z"
    xB="B2BeR_XB"
    zT="Tag1_pos_Z"
    xT="Tag1_XT"
    zTB="Tag1_ZB"
    xTB="Tag1_XB"
    />
    </detector>
    <detector name="vac_tag2_win" type="BackwardsTagWin" ysiz="Tag2_size_Y" vis="Shape1_vis">
    <points
    zB="Tag1_pos_Z-Tag1_Length"
    xB="B2BeR_XB-(B2BeR_Z-(Tag1_pos_Z-Tag1_Length))*(B2BeR_XB-Q3eR_XB)/(B2BeR_Z-Q3eR_ZB)"
    zT="Tag2_pos_Z"
    xT="Tag2_XT"
    zTB="Tag2_ZB"
    xTB="Tag2_XB"
    />
    </detector>
    <detector name="Tagger1box" type="DD4hep_BoxSegment" vis="Shape1_vis">
    <material name="Vacuum"/>
    <box x="Tag1_size_X/2" y="Tag1_size_Y/2" z="Tag1_Length/2"/>
    <position
    x="Tag1_XT-0.5*sqrt(Tag1_Length*Tag1_Length+Tag1_size_X*Tag1_size_X)*sin(atan(Tag1_size_X/Tag1_Length)+Tag1_Theta)"
    y="0"
    z="Tag1_pos_Z-0.5*sqrt(Tag1_Length*Tag1_Length+Tag1_size_X*Tag1_size_X)*cos(atan(Tag1_size_X/Tag1_Length)+Tag1_Theta)"/>
    <rotation x="0" y="Tag1_Theta" z="0"/>
    </detector>
    <detector name="Tagger2box" type="DD4hep_BoxSegment" vis="Shape1_vis">
    <material name="Vacuum"/>
    <box x="Tag2_size_X/2" y="Tag2_size_Y/2" z="Tag2_Length/2"/>
    <position
    x="Tag2_XT-0.5*sqrt(Tag2_Length*Tag2_Length+Tag2_size_X*Tag2_size_X)*sin(atan(Tag2_size_X/Tag2_Length)+Tag2_Theta)"
    y="0"
    z="Tag2_pos_Z-0.5*sqrt(Tag2_Length*Tag2_Length+Tag2_size_X*Tag2_size_X)*cos(atan(Tag2_size_X/Tag2_Length)+Tag2_Theta)"/>
    <rotation x="0" y="Tag2_Theta" z="0"/>
    </detector>
    <detector name="ExitWinBox" type="DD4hep_BoxSegment" vis="Shape2_vis">
    <material name="Vacuum"/>
    <box x="LumiWin_XY/2" y="LumiWin_XY/2" z="LumiWin_DZ/2"/>
    <position x="0" y="0" z="LumiWin_Z-LumiWin_DZ/2"/>
    <rotation x="0" y="0" z="0"/>
    </detector>
    <detector name="LumiMagvac" type="DD4hep_TubeSegment" vis="Shape1_vis">
    <material name="Vacuum"/>
    <tubs rmin="0" rmax="LumiMag_R" zhalf="LumiMag_DZ/2"/>
    <position x="0" y="0" z="LumiMag_cen_Z"/>
    <rotation x="0" y="0" z="0"/>
    </detector>
    <detector name="LumiSUbox" type="DD4hep_BoxSegment" vis="Shape2_vis">
    <material name="Vacuum"/>
    <box x="LumiSpec_XY/2" y="LumiSpec_XY/2" z="LumiSpec_DZ/2"/>
    <position x="0" y="LumiSpec_cen_Y" z="LumiSpec_Z-LumiSpec_DZ/2"/>
    <rotation x="0" y="0" z="0"/>
    </detector>
    <detector name="LumiSDbox" type="DD4hep_BoxSegment" vis="Shape2_vis">
    <material name="Vacuum"/>
    <box x="LumiSpec_XY/2" y="LumiSpec_XY/2" z="LumiSpec_DZ/2"/>
    <position x="0" y="-LumiSpec_cen_Y" z="LumiSpec_Z-LumiSpec_DZ/2"/>
    <rotation x="0" y="0" z="0"/>
    </detector>
    <detector name="LumiDbox" type="DD4hep_BoxSegment" vis="Shape2_vis">
    <material name="Vacuum"/>
    <box x="LumiD_XY/2" y="LumiD_XY/2" z="LumiD_DZ/2"/>
    <position x="0" y="0" z="LumiD_Z-LumiD_DZ/2"/>
    <rotation x="0" y="0" z="0"/>
    </detector>
    <detector name="vac_lumi_win_mag" type="BackwardsLumiVac" z0="LumiWin_Z-LumiWin_DZ" z1="LumiMag_cen_Z+LumiMag_DZ/2">
    <points
    dX0="LumiWin_XY/2"
    dY0="LumiWin_XY/2"
    dX1="LumiMag_R"
    dY1="LumiMag_R"
    />
    </detector>
    <detector name="vac_lumi_mag_spec" type="BackwardsLumiVac" z0="LumiMag_cen_Z-LumiMag_DZ/2" z1="LumiSpec_Z">
    <points
    dX0="LumiMag_R"
    dY0="LumiMag_R"
    dX1="LumiSpec_XY/2"
    dY1="LumiSpec_cen_Y+LumiSpec_XY/2"
    />
    </detector>
    <detector name="vac_lumi_spec_phot" type="BackwardsLumiVac" z0="LumiSpec_Z-LumiSpec_DZ" z1="LumiD_Z">
    <points
    dX0="LumiSpec_XY/2"
    dY0="LumiSpec_cen_Y-LumiSpec_XY/2"
    dX1="LumiD_XY/2"
    dY1="LumiD_XY/2"
    />
    </detector>
    <detector name="vac_lumi_spec_mid" type="DD4hep_BoxSegment" vis="Shape1_vis">
    <material name="Vacuum"/>
    <box x="LumiSpec_XY/2" y="LumiSpec_cen_Y-LumiSpec_XY/2" z="LumiSpec_DZ/2"/>
    <position x="0" y="0" z="LumiSpec_Z-LumiSpec_DZ/2"/>
    <rotation x="0" y="0" z="0"/>
    </detector>
    </detectors>
    </lccdd>
    <?xml version="1.0" encoding="UTF-8"?>
    <lccdd>
    <include ref="ip6/far_forward/ion_beamline.xml" />
    <include ref="ip6/far_forward/beampipe_hadron_B0.xml" />
    <include ref="ip6/far_forward/B0_tracker.xml"/>
    <include ref="ip6/far_forward/B0_preshower.xml"/>
    <include ref="ip6/far_forward/offM_tracker.xml"/>
    <include ref="ip6/far_forward/ZDC.xml"/>
    <include ref="ip6/far_forward/roman_pots_eRD24_design.xml"/>
    <!--
    Old BOM not used
    <include ref="ip6/far_forward/beam_orbit_tracker.xml"/>
    -->
    <include ref="ip6/far_forward/vacuum.xml"/>
    <include ref="ip6/far_forward/magnets.xml"/>
    </lccdd>
    File moved
    File moved
    <lccdd>
    <comment>Far Forward Hadron Detectors</comment>
    <define>
    <comment>
    -------------------------------------------
    Zero Degree Calorimeter General Parameters
    -------------------------------------------
    </comment>
    <constant name="ZDC_z_pos" value="3560.0 * cm"/> <!-- need to shift FORWARD toward IP to account for 50cm shift -->
    <constant name="ZDC_x_pos" value="ZDC_z_pos * ionCrossingAngle"/>
    <constant name="ZDC_y_pos" value="0.0 * cm"/>
    <constant name="ZDC_rotateX_angle" value="0.0 * rad"/>
    <constant name="ZDC_rotateY_angle" value="0.0125 * rad"/> <!-- was negative prior to big flip -->
    <constant name="ZDC_rotateZ_angle" value="0.0 * rad"/>
    <constant name="ZDC_width" value="60.0 * cm"/>
    <constant name="ZDC_length" value="200.0 * cm"/>
    <comment>
    -------------------------------
    Zero Degree Calorimeter - ECAL
    -------------------------------
    </comment>
    <constant name="ZDCEcal_z_pos" value="ZDC_z_pos"/>
    <constant name="ZDCEcal_x_pos" value="ZDCEcal_z_pos * ionCrossingAngle"/>
    <constant name="ZDCEcal_y_pos" value="ZDC_y_pos"/>
    <constant name="ZDCEcal_rotateX_angle" value="ZDC_rotateX_angle"/>
    <constant name="ZDCEcal_rotateY_angle" value="ZDC_rotateY_angle"/>
    <constant name="ZDCEcal_rotateZ_angle" value="ZDC_rotateZ_angle"/>
    <constant name="ZDCEcal_width" value="ZDC_width"/>
    <constant name="ZDC_SiWSciFi_NRepeat" value="1"/>
    <constant name="ZDC_Silicon_1_Thickness" value="300.0 * um"/>
    <constant name="ZDC_WSciFi_Thickness" value="170.0 * mm"/> <!-- length of WSciFi tower block -->
    <constant name="ZDC_Glue_1_Thickness" value="0.11 * mm"/>
    <constant name="ZDC_FPC_Thickness" value="0.28 * mm"/>
    <constant name="ZDC_Air_1_Thickness" value="1.2 * mm"/>
    <constant name="ZDC_Air_2_Thickness" value="3.0 * cm"/>
    <constant name="ZDCEcal_layer_thickness" value="ZDC_Silicon_1_Thickness + ZDC_Glue_1_Thickness + ZDC_FPC_Thickness +
    ZDC_Air_1_Thickness + ZDC_WSciFi_Thickness + ZDC_Air_2_Thickness"/>
    <!--<constant name="ZDCEcal_length" value="ZDC_SiWSciFi_NRepeat * ZDCEcal_layer_thickness"/>-->
    <constant name="ZDCEcal_length" value="170.0 * mm"/> <!-- 1 interaction length -->
    <comment>
    -------------------------------
    Zero Degree Calorimeter - HCAL
    -------------------------------
    </comment>
    <constant name="ZDCHcal_x_pos" value="ZDCEcal_x_pos"/>
    <constant name="ZDCHcal_y_pos" value="ZDCEcal_y_pos"/>
    <constant name="ZDCHcal_z_pos" value="ZDCEcal_z_pos + ZDCEcal_length + 10.0 * cm"/>
    <constant name="ZDCHcal_rotateX_angle" value="ZDC_rotateX_angle"/>
    <constant name="ZDCHcal_rotateY_angle" value="ZDC_rotateY_angle"/>
    <constant name="ZDCHcal_rotateZ_angle" value="ZDC_rotateZ_angle"/>
    <constant name="ZDCHcal_width" value="ZDC_width"/>
    <constant name="ZDCHcal_length" value="ZDC_length"/>
    <constant name="ZDC_SiPb_NRepeat" value="0"/> <!-- changed from 12 -->
    <constant name="ZDC_PbScint_NRepeat" value="120"/> <!-- 7 interaction length -->
    <constant name="ZDC_Gap_NRepeat" value="0"/>
    <constant name="ZDC_Silicon_2_Thickness" value="320.0 * um"/>
    <constant name="ZDC_Tungsten_Thickness" value="3.5 * mm"/>
    <constant name="ZDC_Glue_2_Thickness" value="0.13 * mm"/>
    <constant name="ZDC_Air_3_Thickness" value="1.0 * mm"/>
    <constant name="ZDC_Air_4_Thickness" value="0.0013 * mm"/>
    <constant name="ZDC_Lead_Thickness" value="10.0 * mm"/>
    <constant name="ZDC_Scint_Thickness" value="2.5 * mm"/> <!-- a quarter of Lead thickness -->
    <constant name="ZDC_Gap_Thickness" value="2.0 * cm"/>
    </define>
    <include ref="ip6/far_forward/ZDC_Ecal_WSciFi.xml"/>
    <include ref="ip6/far_forward/ZDC_Hcal.xml"/>
    </lccdd>
    ...@@ -7,30 +7,30 @@ ...@@ -7,30 +7,30 @@
    </comment> </comment>
    <detectors> <detectors>
    <detector id="ffi_ZDC_ECAL_ID" name="ffi_ZDC_ECAL" type="ffi_ZDC_Sampling" readout="ffi_ZDC_ECAL_Hits" vis="ffi_ZDC_ECAL_Vis"> <detector id="ZDCEcal_ID" name="ZDCEcal" type="ZDC_Sampling" readout="ZDCEcal_Hits" vis="ZDCEcal_Vis">
    <position x="ffi_ZDC_ECAL_x_pos" y="ffi_ZDC_ECAL_y_pos" z="ffi_ZDC_ECAL_z_pos"/> <position x="ZDCEcal_x_pos" y="ZDCEcal_y_pos" z="ZDCEcal_z_pos"/>
    <rotation x="ffi_ZDC_ECAL_rotateX_angle" y="ffi_ZDC_ECAL_rotateY_angle" z="ffi_ZDC_ECAL_rotateZ_angle"/> <rotation x="ZDCEcal_rotateX_angle" y="ZDCEcal_rotateY_angle" z="ZDCEcal_rotateZ_angle"/>
    <dimensions x="ffi_ZDC_ECAL_width" z="ffi_ZDC_ECAL_length"/> <dimensions x="ZDCEcal_width" z="ZDCEcal_length"/>
    <layer repeat="ffi_ZDC_SiWSciFi_NRepeat"> <layer repeat="ZDC_SiWSciFi_NRepeat">
    <slice name="Silicon_1_slice" material="Silicon" thickness="ffi_ZDC_Silicon_1_Thickness" vis="RedVis" sensitive="true"/> <slice name="Silicon_1_slice" material="Silicon" thickness="ZDC_Silicon_1_Thickness" vis="RedVis" sensitive="true"/>
    <slice name="Glue_1_slice" material="ZDC_EpoxyGlue" thickness="ffi_ZDC_Glue_1_Thickness" vis="AnlGold"/> <slice name="Glue_1_slice" material="ZDC_EpoxyGlue" thickness="ZDC_Glue_1_Thickness" vis="AnlGold"/>
    <slice name="FPC_slice" material="ZDC_EpoxyGlue" thickness="ffi_ZDC_FPC_Thickness" vis="AnlGold"/> <slice name="FPC_slice" material="ZDC_EpoxyGlue" thickness="ZDC_FPC_Thickness" vis="AnlGold"/>
    <slice name="Air_1_slice" material="Air" thickness="ffi_ZDC_Air_1_Thickness" vis="InvisibleNoDaughters"/> <slice name="Air_1_slice" material="Air" thickness="ZDC_Air_1_Thickness" vis="InvisibleNoDaughters"/>
    <slice name="WSciFi_slice" material="ZDC_WSciFiMixture" thickness="ffi_ZDC_WSciFi_Thickness" vis="AnlGold" sensitive="true"/> <!-- now this is a WSciFi mixture --> <slice name="WSciFi_slice" material="ZDC_WSciFiMixture" thickness="ZDC_WSciFi_Thickness" vis="AnlGold" sensitive="true"/> <!-- now this is a WSciFi mixture -->
    <slice name="Air_2_slice" material="Air" thickness="ffi_ZDC_Air_2_Thickness" vis="InvisibleNoDaughters"/> <slice name="Air_2_slice" material="Air" thickness="ZDC_Air_2_Thickness" vis="InvisibleNoDaughters"/>
    </layer> </layer>
    </detector> </detector>
    </detectors> </detectors>
    <readouts> <readouts>
    <readout name="ffi_ZDC_ECAL_Hits"> <readout name="ZDCEcal_Hits">
    <segmentation type="MultiSegmentation" key="slice"> <segmentation type="MultiSegmentation" key="slice">
    <segmentation name="Si_HG_grid" type="CartesianGridXY" key_value="1" grid_size_x="3.0*mm" grid_size_y="3.0*mm"/> <segmentation name="Si_HG_grid" type="CartesianGridXY" key_value="1" grid_size_x="3.0*mm" grid_size_y="3.0*mm"/>
    <segmentation name="WSciFi_grid" type="CartesianGridXY" key_value="5" grid_size_x="2.5*cm" grid_size_y="2.5*cm"/> <segmentation name="WSciFi_grid" type="CartesianGridXY" key_value="5" grid_size_x="2.5*cm" grid_size_y="2.5*cm"/>
    </segmentation> </segmentation>
    <hits_collections> <hits_collections>
    <hits_collection name="ffiZDCSiHits" key="slice" key_value="1"/> <hits_collection name="ZDCSiHits" key="slice" key_value="1"/>
    <hits_collection name="ffiZDCWSciFiHits" key="slice" key_value="5"/> <hits_collection name="ZDCWSciFiHits" key="slice" key_value="5"/>
    </hits_collections> </hits_collections>
    <id>system:8,layer:12,slice:12,x:32:-16,y:-16</id> <id>system:8,layer:12,slice:12,x:32:-16,y:-16</id>
    </readout> </readout>
    ......
    ...@@ -7,27 +7,27 @@ ...@@ -7,27 +7,27 @@
    </comment> </comment>
    <define> <define>
    <constant name="ffi_ZDC_ECAL_FiberRadius" value="0.235*mm"/> <constant name="ZDCEcal_FiberRadius" value="0.235*mm"/>
    <constant name="ffi_ZDC_ECAL_FiberOffset" value="0.5*mm"/> <constant name="ZDCEcal_FiberOffset" value="0.5*mm"/>
    <constant name="ffi_ZDC_ECAL_FiberSpaceX" value="0.265*mm"/> <constant name="ZDCEcal_FiberSpaceX" value="0.265*mm"/>
    <constant name="ffi_ZDC_ECAL_FiberSpaceY" value="0.425*mm"/> <constant name="ZDCEcal_FiberSpaceY" value="0.425*mm"/>
    </define> </define>
    <detectors> <detectors>
    <detector id="ffi_ZDC_ECAL_ID" <detector id="ZDCEcal_ID"
    name="ffi_ZDC_ECAL" name="ZDCEcal"
    type="ZDCEcalScFiCalorimeter" type="ZDCEcalScFiCalorimeter"
    vis="ffi_ZDC_ECAL_Vis" vis="ZDCEcal_Vis"
    readout="ZDCEcalHits"> readout="ZDCEcalHits">
    <position x="ffi_ZDC_ECAL_x_pos" y="ffi_ZDC_ECAL_y_pos" z="ffi_ZDC_ECAL_z_pos"/> <position x="ZDCEcal_x_pos" y="ZDCEcal_y_pos" z="ZDCEcal_z_pos"/>
    <rotation x="ffi_ZDC_ECAL_rotateX_angle" y="ffi_ZDC_ECAL_rotateY_angle" z="ffi_ZDC_ECAL_rotateZ_angle"/> <rotation x="ZDCEcal_rotateX_angle" y="ZDCEcal_rotateY_angle" z="ZDCEcal_rotateZ_angle"/>
    <dimensions x="ffi_ZDC_ECAL_width" z="ffi_ZDC_ECAL_length"/> <dimensions x="ZDCEcal_width" z="ZDCEcal_length"/>
    <module sizex="25*mm" sizey="25*mm" sizez="170*mm" material="WSciFi_UCLA_Abs" vis="ffi_ZDC_ECAL_module_Vis"> <module sizex="25*mm" sizey="25*mm" sizez="170*mm" material="WSciFi_UCLA_Abs" vis="ZDCEcal_module_Vis">
    <fiber material="Polystyrene" <fiber material="Polystyrene"
    radius="ffi_ZDC_ECAL_FiberRadius" radius="ZDCEcal_FiberRadius"
    offset="ffi_ZDC_ECAL_FiberOffset" offset="ZDCEcal_FiberOffset"
    spacex="ffi_ZDC_ECAL_FiberSpaceX" spacex="ZDCEcal_FiberSpaceX"
    spacey="ffi_ZDC_ECAL_FiberSpaceY"/> spacey="ZDCEcal_FiberSpaceY"/>
    </module> </module>
    </detector> </detector>
    </detectors> </detectors>
    ......
    ...@@ -7,14 +7,14 @@ ...@@ -7,14 +7,14 @@
    </comment> </comment>
    <detectors> <detectors>
    <detector id="ffi_ZDC_HCAL_ID" name="ffi_ZDC_HCAL" type="ffi_ZDC_Sampling" readout="ZDCHcalHits" vis="ffi_ZDC_HCAL_Vis"> <detector id="ZDCHcal_ID" name="ZDCHcal" type="ZDC_Sampling" readout="ZDCHcalHits" vis="ZDCHcal_Vis">
    <position x="ffi_ZDC_HCAL_x_pos" y="ffi_ZDC_HCAL_y_pos" z="ffi_ZDC_HCAL_z_pos"/> <position x="ZDCHcal_x_pos" y="ZDCHcal_y_pos" z="ZDCHcal_z_pos"/>
    <rotation x="ffi_ZDC_HCAL_rotateX_angle" y="ffi_ZDC_HCAL_rotateY_angle" z="ffi_ZDC_HCAL_rotateZ_angle"/> <rotation x="ZDCHcal_rotateX_angle" y="ZDCHcal_rotateY_angle" z="ZDCHcal_rotateZ_angle"/>
    <dimensions x="ffi_ZDC_HCAL_width" z="ffi_ZDC_HCAL_length"/> <dimensions x="ZDCHcal_width" z="ZDCHcal_length"/>
    <layer repeat="ffi_ZDC_PbScint_NRepeat"> <layer repeat="ZDC_PbScint_NRepeat">
    <slice name="Lead_slice" material="Pb" thickness="ffi_ZDC_Lead_Thickness" vis="AnlGray"/> <slice name="Lead_slice" material="Pb" thickness="ZDC_Lead_Thickness" vis="AnlGray"/>
    <slice name="Scint_slice" material="PlasticScint" thickness="ffi_ZDC_Scint_Thickness" vis="AnlOrange" sensitive="true"/> <slice name="Scint_slice" material="PlasticScint" thickness="ZDC_Scint_Thickness" vis="AnlOrange" sensitive="true"/>
    <slice name="Air_4_slice" material="Air" thickness="ffi_ZDC_Air_4_Thickness" vis="InvisibleNoDaughters"/> <slice name="Air_4_slice" material="Air" thickness="ZDC_Air_4_Thickness" vis="InvisibleNoDaughters"/>
    </layer> </layer>
    </detector> </detector>
    </detectors> </detectors>
    ......
    ...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
    <detectors> <detectors>
    <detector <detector
    id="BeamOrbitTracker_station_1_ID" id="ForwardBeamOrbitTracker_station_1_ID"
    name="BeamOrbitTracker_station_1" name="BeamOrbitTracker_station_1"
    readout="BeamOrbitHits" readout="BeamOrbitHits"
    type="ip6_OffMomentumTracker" type="ip6_OffMomentumTracker"
    ...@@ -32,7 +32,7 @@ ...@@ -32,7 +32,7 @@
    <detector <detector
    id="BeamOrbitTracker_station_2_ID" id="ForwardBeamOrbitTracker_station_2_ID"
    name="BeamOrbitTracker_station_2" name="BeamOrbitTracker_station_2"
    readout="BeamOrbitHits" readout="BeamOrbitHits"
    type="ip6_OffMomentumTracker" type="ip6_OffMomentumTracker"
    ......
    0% Loading or .
    You are about to add 0 people to the discussion. Proceed with caution.
    Please register or to comment