diff --git a/ip6/B0_preshower.xml b/ip6/B0_preshower.xml index 98ba38c9cbfcbbbb48660e25cf90bc20aca5f76a..c21691b68293014a301f93f809658343e13fa43e 100644 --- a/ip6/B0_preshower.xml +++ b/ip6/B0_preshower.xml @@ -5,14 +5,14 @@ ### B0 Tracker Parameters </comment> <constant name="B0Preshower_rotation" value="ionCrossingAngle"/> - <constant name="B0Preshower_Station_1_xpos" value="-0.15749922*m" /> + <constant name="B0Preshower_Station_1_xpos" value="-0.17249922*m" /> <constant name="B0Preshower_length" value="5.0*cm" /> <comment> where do these numbers come from? </comment> - <constant name="B0PreshowerCenter_xpos" value="-0.15749922*m" /> - <constant name="B0PreshowerCenter_zpos" value="6.2*m" /> + <constant name="B0PreshowerCenter_xpos" value="-0.17249922*m" /> + <constant name="B0PreshowerCenter_zpos" value="6.7*m" /> <comment> This angle is the angle subtended in phi for each trap segment. diff --git a/ip6/B0_tracker.xml b/ip6/B0_tracker.xml index fd081a7503449bd9897d39641e201ab7b2ceaeca..6721f1e566d68e1806350aa65ae659e528b3de53 100644 --- a/ip6/B0_tracker.xml +++ b/ip6/B0_tracker.xml @@ -12,8 +12,8 @@ </comment> <constant name="B0Tracker_length" value="60.0*cm"/> <constant name="B0Tracker_zoffset" value="10.0*cm"/> - <constant name="B0TrackerCenter_zpos" value="5.7*m"/> - <constant name="B0TrackerCenter_xpos" value="-0.145001*m" /> + <constant name="B0TrackerCenter_zpos" value="6.2*m"/> + <constant name="B0TrackerCenter_xpos" value="-0.16000052*m" /> <!--constant name="B0Tracker_zpos" value="B0PF_CenterPosition + B0PF_Length/2.0 - B0Tracker_length/2.0 + B0Tracker_zoffset"/--> <constant name="B0Tracker_zmin" value="B0TrackerCenter_zpos - B0Tracker_length/2.0 "/> <constant name="B0Tracker_rotation" value="ionCrossingAngle"/> diff --git a/ip6/beampipe_hadron_B0.xml b/ip6/beampipe_hadron_B0.xml index de5bffdb03191aaddb87ed9b7b333ba9e1ee8290..e5c90a38b00c70e0da511910810c83166ceb33d4 100644 --- a/ip6/beampipe_hadron_B0.xml +++ b/ip6/beampipe_hadron_B0.xml @@ -9,7 +9,7 @@ <detectors> <detector id="BeamPipeB0_ID" name="BeamPipeB0" type="hadronDownstreamBeamPipe" vis="BeamPipeVis"> - <position x="-0.150*m" y="0*m" z="5.9*m" /> + <position x="-0.165*m" y="0*m" z="6.4*m" /> <rotation x="0*rad" y="0*rad" z="0*rad" /> </detector> diff --git a/ip6/far_forward_detectors.xml b/ip6/far_forward_detectors.xml index 62dde942dbdc74c05cdbfabf858a029f923ace27..112474e97e08d7e6f3c70bfa694ce2dea9f6f450 100644 --- a/ip6/far_forward_detectors.xml +++ b/ip6/far_forward_detectors.xml @@ -8,7 +8,7 @@ Zero Degree Calorimeter General Parameters ------------------------------------------- </comment> - <constant name="ffi_ZDC_z_pos" value="3710.0 * cm"/> + <constant name="ffi_ZDC_z_pos" value="3560.0 * cm"/> <!-- need to shift FORWARD toward IP to account for 50cm shift --> <constant name="ffi_ZDC_x_pos" value="ffi_ZDC_z_pos * ionCrossingAngle"/> <constant name="ffi_ZDC_y_pos" value="0.0 * cm"/> <constant name="ffi_ZDC_rotateX_angle" value="0.0 * rad"/> diff --git a/ip6/far_forward_offM_tracker.xml b/ip6/far_forward_offM_tracker.xml index 271b992b6ee30c97f31cc14b7e7351bc705ef3a4..de3ab4038f502cdada69909ea92d06a3fc02c749 100644 --- a/ip6/far_forward_offM_tracker.xml +++ b/ip6/far_forward_offM_tracker.xml @@ -19,7 +19,7 @@ insideTrackingVolume="true" reflect="false" vis="AnlRed"> - <position x="-755.0*mm" y="0" z="22000*mm"/> + <position x="-780.0*mm" y="0" z="22500*mm"/> <layer id="1" vis="RedVis" x="10.0*cm" @@ -36,7 +36,7 @@ insideTrackingVolume="true" reflect="false" vis="AnlRed"> - <position x="-850.0*mm" y="0" z="24000*mm"/> + <position x="-870.0*mm" y="0" z="24500*mm"/> <layer id="1" vis="RedVis" x="10.0*cm" diff --git a/ip6/ip6_defs.xml b/ip6/ip6_defs.xml index f240430a5554a79ad30a7040873cfe3de5e013ea..99c35c886fe1670ef0adaf02659ece0003f1c552 100644 --- a/ip6/ip6_defs.xml +++ b/ip6/ip6_defs.xml @@ -25,31 +25,49 @@ B1APF 0.600444 0.0 20.8159 0.1680 0.1680 0.4360 1.500 25.0 -2.700 0.000 B2PF 1.522232 0.0 41.9092 0.2 0.2 0.5 5.76 25.0 5.94 0.000 + + Hadron magnets -- with BIG FLIP and 50cm shift + + ## +## name center_x center_y center_z rin(z-in) rin(z-out) dout length angle B gradient +## [m] [m] [m] [m] [m] [m] [m] [mrad] [T] [T/m] +## + + B0PF -0.145779265 0.0 6.400000000 0.2000 0.2000 0.5000 1.200 0.00 1.1840539 0.000 + B0PFq -0.145779265 0.0 6.400000000 0.2000 0.2000 0.5000 1.200 0.00 0.0000000 -8.12238283 + B0APF -0.210480535 0.0 8.198946015 0.0430 0.0430 0.1860 0.600 -25.0 3.4314469 0.000 + Q1APF -0.254342857 0.0 9.628296939 0.0560 0.0560 0.2120 1.460 -19.5 0.0000000 -72.608 + Q1BPF -0.312840809 0.0 11.56243847 0.0780 0.0780 0.2560 1.610 -15.0 0.0000000 -63.24525402 + Q2PF -0.407362293 0.0 14.66604545 0.1315 0.1315 0.3620 3.800 -14.8 0.0000000 36.88301623 + B1PF -0.503165042 0.0 18.56486896 0.1350 0.1350 0.3700 3.000 -34.0 3.4479890 0.000 + B1APF -0.612903791 0.0 21.31298439 0.1680 0.1680 0.4360 1.500 -25.0 2.7000000 0.000 + B2APF -1.491239596 0.0 40.74293743 0.2 0.2 0.5 4.4 -28.22 -4.7890142 0.000 + </comment> <comment> All magnet values are input by hand and represent the implementation in EICRoot used for the Yellow Report.</comment> - <constant name="B0PF_GradientMax" value="0.0*tesla/m"/> + <constant name="B0PF_GradientMax" value="-8.12238283*tesla/m"/> <constant name="B0APF_GradientMax" value="0.0*tesla/m"/> <constant name="Q1APF_GradientMax" value="-72.608*tesla/m"/> - <constant name="Q1BPF_GradientMax" value="-66.180*tesla/m"/> - <constant name="Q2PF_GradientMax" value="40.737*tesla/m"/> + <constant name="Q1BPF_GradientMax" value="-66.24525402*tesla/m"/> + <constant name="Q2PF_GradientMax" value="36.88301623*tesla/m"/> <constant name="B1PF_GradientMax" value="0.0*tesla/m"/> <constant name="B1APF_GradientMax" value="0.0*tesla/m"/> <constant name="B2PF_GradientMax" value="0.0*tesla/m"/> - <constant name="Q0EF_GradientMax" value="-9.55*tesla/m"/> - <constant name="Q1EF_GradientMax" value="4.363*tesla/m"/> + <constant name="Q0EF_GradientMax" value="-13.12887*tesla/m"/> + <constant name="Q1EF_GradientMax" value="5.85089*tesla/m"/> <!-- big flip - dipole fields change sign, quads stay the same --> - <constant name="B0PF_Bmax" value="1.3*tesla"/> - <constant name="B0APF_Bmax" value="3.474*tesla"/> + <constant name="B0PF_Bmax" value="1.1840539*tesla"/> + <constant name="B0APF_Bmax" value="3.4314469*tesla"/> <constant name="Q1APF_Bmax" value="0.0*tesla"/> <constant name="Q1BPF_Bmax" value="0.0*tesla"/> <constant name="Q2PF_Bmax" value="0.0*tesla"/> - <constant name="B1PF_Bmax" value="3.4*tesla"/> + <constant name="B1PF_Bmax" value="3.447989*tesla"/> <constant name="B1APF_Bmax" value="2.7*tesla"/> - <constant name="B2PF_Bmax" value="-5.94*tesla"/> + <constant name="B2PF_Bmax" value="-4.7890142*tesla"/> <constant name="Q0EF_BMax" value="0.0*tesla"/> <constant name="Q1EF_BMax" value="0.0*tesla"/> @@ -77,29 +95,29 @@ <constant name="Q2PF_RotationAngle" value="-14.8*0.001*rad"/> <constant name="B1PF_RotationAngle" value="-34.0*0.001*rad"/> <constant name="B1APF_RotationAngle" value="-25.0*0.001*rad"/> - <constant name="B2PF_RotationAngle" value="-25.0*0.001*rad"/> + <constant name="B2PF_RotationAngle" value="-28.22*0.001*rad"/> <constant name="Q0EF_RotationAngle" value="-0.0*rad"/> <constant name="Q1EF_RotationAngle" value="-0.0*rad"/> - <constant name="B0PF_CenterPosition" value="5.89913*m"/> - <constant name="B0APF_CenterPosition" value="7.69866*m"/> - <constant name="Q1APF_CenterPosition" value="9.22834*m"/> - <constant name="Q1BPF_CenterPosition" value="11.0629*m"/> - <constant name="Q2PF_CenterPosition" value="14.1673*m"/> - <constant name="B1PF_CenterPosition" value="18.0667*m"/> - <constant name="B1APF_CenterPosition" value="20.8159*m"/> - <constant name="B2PF_CenterPosition" value="41.9092*m"/> - <constant name="Q0EF_CenterPosition" value="5.2995*m"/> - <constant name="Q1EF_CenterPosition" value="10.259*m"/> - - <constant name="B0PF_XPosition" value="-0.132497*m"/> - <constant name="B0APF_XPosition" value="-0.197995*m"/> - <constant name="Q1APF_XPosition" value="-0.244734*m"/> - <constant name="Q1BPF_XPosition" value="-0.300512*m"/> - <constant name="Q2PF_XPosition" value="-0.39495*m"/> - <constant name="B1PF_XPosition" value="-0.490747*m"/> - <constant name="B1APF_XPosition" value="-0.600444*m"/> - <constant name="B2PF_XPosition" value="-1.522232*m"/> + <constant name="B0PF_CenterPosition" value="6.4*m"/> + <constant name="B0APF_CenterPosition" value="8.198946015*m"/> + <constant name="Q1APF_CenterPosition" value="9.628296939*m"/> + <constant name="Q1BPF_CenterPosition" value="11.56243847*m"/> + <constant name="Q2PF_CenterPosition" value="14.66604545*m"/> + <constant name="B1PF_CenterPosition" value="18.56486896*m"/> + <constant name="B1APF_CenterPosition" value="21.31298439*m"/> + <constant name="B2PF_CenterPosition" value="40.74293743*m"/> + <constant name="Q0EF_CenterPosition" value="5.8*m"/> + <constant name="Q1EF_CenterPosition" value="10.76*m"/> + + <constant name="B0PF_XPosition" value="-0.145779265*m"/> + <constant name="B0APF_XPosition" value="-0.210480535*m"/> + <constant name="Q1APF_XPosition" value="-0.254342857*m"/> + <constant name="Q1BPF_XPosition" value="-0.312840809*m"/> + <constant name="Q2PF_XPosition" value="-0.407362293*m"/> + <constant name="B1PF_XPosition" value="-0.503165042*m"/> + <constant name="B1APF_XPosition" value="-0.612903791*m"/> + <constant name="B2PF_XPosition" value="-1.491239596*m"/> <constant name="Q0EF_XPosition" value="-0.0*m"/> <constant name="Q1EF_XPosition" value="-0.0*m"/> diff --git a/ip6/roman_pots_eRD24_design.xml b/ip6/roman_pots_eRD24_design.xml index 7ef1ba39f671832e02f0fc5715627b8164488254..b571b7ad4a1fc7f904cb86a8de15f8aa69b40297 100644 --- a/ip6/roman_pots_eRD24_design.xml +++ b/ip6/roman_pots_eRD24_design.xml @@ -12,9 +12,9 @@ <!-- Global "station" location, rotation, position information --> <constant name="ForwardRomanPotStation1_zpos" value="26.0*m"/> - <constant name="ForwardRomanPotStation1_xpos" value="-0.844877*m"/> + <constant name="ForwardRomanPotStation1_xpos" value="-0.832224*m"/> <constant name="ForwardRomanPotStation2_zpos" value="28.0*m"/> - <constant name="ForwardRomanPotStation2_xpos" value="-0.935873*m"/> + <constant name="ForwardRomanPotStation2_xpos" value="-0.922032*m"/> <constant name="ForwardRomanPotStation1_rotation" value="-0.047*rad"/> <constant name="ForwardRomanPotStation2_rotation" value="-0.047*rad"/> diff --git a/src/hadronDownstreamBeamPipe.cpp b/src/hadronDownstreamBeamPipe.cpp index 094e1c4cbefe9cc4f8008626190f7da72af9508f..2b23af12acc140e8fef948cea468630b5f21b9b6 100644 --- a/src/hadronDownstreamBeamPipe.cpp +++ b/src/hadronDownstreamBeamPipe.cpp @@ -49,7 +49,8 @@ static Ref_t create_detector(Detector& det, xml_h e, SensitiveDetector sens) { /// hard-code defintion here, then refine and make more general - double drift_beam_pipe_angle = -0.0475492667; + double drift_beam_pipe_angle = -0.047666638; + //double zPosShift = 50.0; //cm double b0_hadron_tube_inner_r = 2.9; // cm double b0_hadron_tube_outer_r = 3.1; //cm @@ -57,7 +58,7 @@ static Ref_t create_detector(Detector& det, xml_h e, SensitiveDetector sens) { double drift_hadron_section_1_inner_r = 19.5; double drift_hadron_section_1_outer_r = 20.5; - double drift_hadron_section_1_length = 392.0; //393.4334363; + double drift_hadron_section_1_length = 342.225466; //393.4334363; double drift_hadron_section_2_inner_r = 19.5; double drift_hadron_section_2_outer_r = 20.5; @@ -67,11 +68,11 @@ static Ref_t create_detector(Detector& det, xml_h e, SensitiveDetector sens) { double drift_hadron_section_3_outer_r_ent = 20.5; double drift_hadron_section_3_inner_r_ex = 5.0; double drift_hadron_section_3_outer_r_ex = 5.2; - double drift_hadron_section_3_length = 250.0; + double drift_hadron_section_3_length = 150.0; double drift_hadron_section_4_inner_r = 5.0; double drift_hadron_section_4_outer_r = 5.2; - double drift_hadron_section_4_length = 900.0; + double drift_hadron_section_4_length = 850.0; //This is the beam tube in the B0 magnet for the hadron beam @@ -110,22 +111,25 @@ static Ref_t create_detector(Detector& det, xml_h e, SensitiveDetector sens) { DetElement tube_de_1(sdet, "sector1_de", 1); tube_de_1.setPlacement(pv_b0_hadron_tube); - auto pv_drift_tube_section_1 = assembly.placeVolume( v_drift_tube_section_1, Transform3D(RotationY(drift_beam_pipe_angle), Position(-71.269416, 0.0, 2353.7))); //2353.06094))); + //first tube section - right after b1apf - has same size as RP chamber, but keeping separate. + auto pv_drift_tube_section_1 = assembly.placeVolume( v_drift_tube_section_1, Transform3D(RotationY(drift_beam_pipe_angle), Position(-73.23100294, 0.0, 2378.69291))); //2353.06094))); pv_drift_tube_section_1.addPhysVolID("sector", 1); DetElement tube_de_2(sdet, "sector2_de", 1); tube_de_2.setPlacement(pv_drift_tube_section_1); - auto pv_drift_tube_section_2 = assembly.placeVolume( v_drift_tube_section_2, Transform3D(RotationY(drift_beam_pipe_angle), Position(-87.74933, 0.0, 2699.38578))); + //Second section - RP scattering chamber -- keeping separate for now. + auto pv_drift_tube_section_2 = assembly.placeVolume( v_drift_tube_section_2, Transform3D(RotationY(drift_beam_pipe_angle), Position(-88.5315717, 0.0, 2699.440911))); pv_drift_tube_section_2.addPhysVolID("sector", 1); DetElement tube_de_3(sdet, "sector3_de", 1); tube_de_3.setPlacement(pv_drift_tube_section_2); - auto pv_drift_tube_section_3 = assembly.placeVolume( v_drift_tube_section_3, Transform3D(RotationY(drift_beam_pipe_angle), Position(-100.820452, 0.0, 2974.07496))); + //Third section -- tapered section acting as poor man's universal exit window. + auto pv_drift_tube_section_3 = assembly.placeVolume( v_drift_tube_section_3, Transform3D(RotationY(drift_beam_pipe_angle), Position(-99.25250431, 0.0, 2924.185347))); pv_drift_tube_section_3.addPhysVolID("sector", 1); DetElement tube_de_4(sdet, "sector4_de", 1); tube_de_4.setPlacement(pv_drift_tube_section_3); - auto pv_drift_tube_section_4 = assembly.placeVolume( v_drift_tube_section_4, Transform3D(RotationY(drift_beam_pipe_angle), Position(-128.150979, 0.0, 3548.42507))); + auto pv_drift_tube_section_4 = assembly.placeVolume( v_drift_tube_section_4, Transform3D(RotationY(drift_beam_pipe_angle), Position(-123.076799, 0.0, 3423.617428))); pv_drift_tube_section_4.addPhysVolID("sector", 1); DetElement tube_de_5(sdet, "sector5_de", 1); tube_de_5.setPlacement(pv_drift_tube_section_4);