From f22e66dc7bc864a86ab680d47cc551d13e688428 Mon Sep 17 00:00:00 2001 From: Matthew Posik Date: Tue, 26 Aug 2025 13:54:04 -0400 Subject: [PATCH 1/7] update disks geo --- compact/tracking/definitions_craterlake.xml | 26 ++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/compact/tracking/definitions_craterlake.xml b/compact/tracking/definitions_craterlake.xml index 8eaed9d6c..4a1b89529 100644 --- a/compact/tracking/definitions_craterlake.xml +++ b/compact/tracking/definitions_craterlake.xml @@ -104,19 +104,19 @@ Main parameters for MPGD endcap disks, offset here is the distance between disks - - - - - - - - - - - - - + + + + + + + + + + + + + See compact/definitions.xml for reserved detector id From b7b898469f7a7cdc932ae1dfa5242e241bddca75 Mon Sep 17 00:00:00 2001 From: Matthew Posik Date: Wed, 27 Aug 2025 10:04:19 -0400 Subject: [PATCH 2/7] Update barrel geoms --- compact/tracking/definitions_craterlake.xml | 12 ++++++------ compact/tracking/mpgd_barrel.xml | 3 ++- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/compact/tracking/definitions_craterlake.xml b/compact/tracking/definitions_craterlake.xml index 4a1b89529..757f9fa68 100644 --- a/compact/tracking/definitions_craterlake.xml +++ b/compact/tracking/definitions_craterlake.xml @@ -27,15 +27,15 @@ Main parameters for the outer MPGD barrel layer - - - + + + Inner MPGD unsegmented barrel - + - negative z - positive z + negative z + positive z diff --git a/compact/tracking/mpgd_barrel.xml b/compact/tracking/mpgd_barrel.xml index 0dc87d5b7..433ccf0b9 100644 --- a/compact/tracking/mpgd_barrel.xml +++ b/compact/tracking/mpgd_barrel.xml @@ -52,9 +52,10 @@ In principle, stave count should not be independenty specified: it is fixed by above intrinsic parameters + 1.3cm is to make envelope match CAD drawings - + From 6d58eac3c46fedbecb0d8a9ba193a629f6fcc0e9 Mon Sep 17 00:00:00 2001 From: Matthew Posik Date: Fri, 5 Sep 2025 10:56:57 -0400 Subject: [PATCH 3/7] Update geo --- compact/tracking/definitions_craterlake.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/compact/tracking/definitions_craterlake.xml b/compact/tracking/definitions_craterlake.xml index 757f9fa68..aa3f19609 100644 --- a/compact/tracking/definitions_craterlake.xml +++ b/compact/tracking/definitions_craterlake.xml @@ -28,8 +28,8 @@ Main parameters for the outer MPGD barrel layer - - + + Inner MPGD unsegmented barrel From 6082fe699d27437a2a8ba8745e78e794db2c4fa8 Mon Sep 17 00:00:00 2001 From: Matthew Posik Date: Fri, 5 Sep 2025 10:57:18 -0400 Subject: [PATCH 4/7] update bot geo --- compact/tracking/mpgd_outerbarrel.xml | 42 +++++++++++++++------------ 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/compact/tracking/mpgd_outerbarrel.xml b/compact/tracking/mpgd_outerbarrel.xml index c4ac71da7..6bd092ba5 100644 --- a/compact/tracking/mpgd_outerbarrel.xml +++ b/compact/tracking/mpgd_outerbarrel.xml @@ -13,20 +13,21 @@ Frames - + Module constants - + - + - + + Layer parameters @@ -45,9 +46,10 @@ - + + + MPGD DIRC module components - MPGD DIRC module components + length="MPGDOuterBarrelModule_length - MPGDOuterBarrelModule_feb_ext"/> + length="MPGDOuterBarrelModule_length - MPGDOuterBarrelModule_feb_ext"/> + length="MPGDOuterBarrelModule_length - MPGDOuterBarrelModule_feb_ext"/> + length="MPGDOuterBarrelModule_length - MPGDOuterBarrelModule_feb_ext"/> + length="MPGDOuterBarrelModule_length - MPGDOuterBarrelModule_feb_ext"/> + length="MPGDOuterBarrelModule_length - MPGDOuterBarrelModule_feb_ext"/> + length="MPGDOuterBarrelModule_length - MPGDOuterBarrelModule_feb_ext"/> + length="MPGDOuterBarrelModule_length - MPGDOuterBarrelModule_feb_ext"/> + length="MPGDOuterBarrelModule_length - MPGDOuterBarrelModule_feb_ext"/> + length="MPGDOuterBarrelModule_length - MPGDOuterBarrelModule_feb_ext"/> + vis="TrackerVis" + offset="MPGDOuterBarrelModule_feb_ext" + length="MPGDOuterBarrelModule_length"/> Frame width gets subtracted from the gas module volumes see src/BarrelPlanarMPGDTracker_geo.cpp @@ -139,9 +142,10 @@ thickness="MPGDOuterBarrelFrame_thickness"/> + Layout for MPGD DIRC layers - + Date: Fri, 5 Sep 2025 10:57:35 -0400 Subject: [PATCH 5/7] update bot geo --- src/BarrelPlanarMPGDTracker_geo.cpp | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/BarrelPlanarMPGDTracker_geo.cpp b/src/BarrelPlanarMPGDTracker_geo.cpp index 23231b8cb..4ac173de0 100644 --- a/src/BarrelPlanarMPGDTracker_geo.cpp +++ b/src/BarrelPlanarMPGDTracker_geo.cpp @@ -52,6 +52,8 @@ static Ref_t create_BarrelPlanarMPGDTracker_geo(Detector& description, xml_h e, dd4hep::xml::Dimension dimensions(x_det.dimensions()); xml_dim_t mpgd_pos = x_det.position(); Assembly assembly(det_name); + + double pcb_feb_ext = 0.0; //extension of PCB board to hold FEBs. // Set detector type flag dd4hep::xml::setDetectorTypeFlag(x_det, sdet); @@ -159,7 +161,12 @@ static Ref_t create_BarrelPlanarMPGDTracker_geo(Detector& description, xml_h e, c_vol.setLimitSet(description, x_comp.limitsStr()); c_vol.setVisAttributes(description, x_comp.visStr()); + if(comp_name == "PCB") { + pcb_feb_ext = x_comp.offset(); + pv = m_vol.placeVolume(c_vol, Position(0,-pcb_feb_ext/2.0, thickness_sum + x_comp.thickness() / 2.0)); + }else { pv = m_vol.placeVolume(c_vol, Position(0, 0, thickness_sum + x_comp.thickness() / 2.0)); + } if (x_comp.isSensitive()) { pv.addPhysVolID("sensor", sensor_number++); @@ -283,14 +290,15 @@ static Ref_t create_BarrelPlanarMPGDTracker_geo(Detector& description, xml_h e, string module_name = _toString(module, "module%d"); DetElement mod_elt(lay_elt, module_name, module); double mod_z = 0.5 * dimensions.length(); - double z_placement = mod_z - j * nz * mod_z; // z location for module placement + double z_placement = mod_z - 0.5*pcb_feb_ext - j *( nz * mod_z - pcb_feb_ext); // z location for module placement double z_offset = z_placement > 0 ? -z0 / 2.0 : z0 / 2.0; // determine the amount of overlap in z the z nz modules have - Transform3D tr(RotationZYX(0.0, ((M_PI / 2) - phic - phi_tilt), -M_PI / 2), - Position(xc, yc, mpgd_pos.z() + z_placement + z_offset)); // in x-y plane, + Transform3D tr(RotationZYX(0, ((M_PI / 2) - phic - phi_tilt), -M_PI / 2)*RotationZ(j*M_PI), + Position(xc, yc, mpgd_pos.z() + z_placement + z_offset)); //RotZYX rotat planes around azimuth, RotZ flip plane so pcb_feb_ext is faceing endcaps + pv = layer_assembly.placeVolume(module_env, tr); pv.addPhysVolID("module", module); mod_elt.setPlacement(pv); From 93576da3954ffe21006e77948fc30727682ca7dc Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Fri, 5 Sep 2025 14:59:35 +0000 Subject: [PATCH 6/7] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- compact/tracking/mpgd_outerbarrel.xml | 8 ++++---- src/BarrelPlanarMPGDTracker_geo.cpp | 26 ++++++++++++++++---------- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/compact/tracking/mpgd_outerbarrel.xml b/compact/tracking/mpgd_outerbarrel.xml index 6bd092ba5..1296be4b6 100644 --- a/compact/tracking/mpgd_outerbarrel.xml +++ b/compact/tracking/mpgd_outerbarrel.xml @@ -46,7 +46,7 @@ - + MPGD DIRC module components @@ -128,9 +128,9 @@ sensitive="false" width="MPGDOuterBarrelModule_width" thickness="MPGDOuterBarrelPCB_thickness" - vis="TrackerVis" + vis="TrackerVis" offset="MPGDOuterBarrelModule_feb_ext" - length="MPGDOuterBarrelModule_length"/> + length="MPGDOuterBarrelModule_length"/> Frame width gets subtracted from the gas module volumes see src/BarrelPlanarMPGDTracker_geo.cpp @@ -142,7 +142,7 @@ thickness="MPGDOuterBarrelFrame_thickness"/> - + Layout for MPGD DIRC layers diff --git a/src/BarrelPlanarMPGDTracker_geo.cpp b/src/BarrelPlanarMPGDTracker_geo.cpp index 4ac173de0..a05a04abf 100644 --- a/src/BarrelPlanarMPGDTracker_geo.cpp +++ b/src/BarrelPlanarMPGDTracker_geo.cpp @@ -52,8 +52,8 @@ static Ref_t create_BarrelPlanarMPGDTracker_geo(Detector& description, xml_h e, dd4hep::xml::Dimension dimensions(x_det.dimensions()); xml_dim_t mpgd_pos = x_det.position(); Assembly assembly(det_name); - - double pcb_feb_ext = 0.0; //extension of PCB board to hold FEBs. + + double pcb_feb_ext = 0.0; //extension of PCB board to hold FEBs. // Set detector type flag dd4hep::xml::setDetectorTypeFlag(x_det, sdet); @@ -161,11 +161,12 @@ static Ref_t create_BarrelPlanarMPGDTracker_geo(Detector& description, xml_h e, c_vol.setLimitSet(description, x_comp.limitsStr()); c_vol.setVisAttributes(description, x_comp.visStr()); - if(comp_name == "PCB") { - pcb_feb_ext = x_comp.offset(); - pv = m_vol.placeVolume(c_vol, Position(0,-pcb_feb_ext/2.0, thickness_sum + x_comp.thickness() / 2.0)); - }else { - pv = m_vol.placeVolume(c_vol, Position(0, 0, thickness_sum + x_comp.thickness() / 2.0)); + if (comp_name == "PCB") { + pcb_feb_ext = x_comp.offset(); + pv = m_vol.placeVolume( + c_vol, Position(0, -pcb_feb_ext / 2.0, thickness_sum + x_comp.thickness() / 2.0)); + } else { + pv = m_vol.placeVolume(c_vol, Position(0, 0, thickness_sum + x_comp.thickness() / 2.0)); } if (x_comp.isSensitive()) { @@ -290,14 +291,19 @@ static Ref_t create_BarrelPlanarMPGDTracker_geo(Detector& description, xml_h e, string module_name = _toString(module, "module%d"); DetElement mod_elt(lay_elt, module_name, module); double mod_z = 0.5 * dimensions.length(); - double z_placement = mod_z - 0.5*pcb_feb_ext - j *( nz * mod_z - pcb_feb_ext); // z location for module placement + double z_placement = mod_z - 0.5 * pcb_feb_ext - + j * (nz * mod_z - pcb_feb_ext); // z location for module placement double z_offset = z_placement > 0 ? -z0 / 2.0 : z0 / 2.0; // determine the amount of overlap in z the z nz modules have - Transform3D tr(RotationZYX(0, ((M_PI / 2) - phic - phi_tilt), -M_PI / 2)*RotationZ(j*M_PI), - Position(xc, yc, mpgd_pos.z() + z_placement + z_offset)); //RotZYX rotat planes around azimuth, RotZ flip plane so pcb_feb_ext is faceing endcaps + Transform3D tr( + RotationZYX(0, ((M_PI / 2) - phic - phi_tilt), -M_PI / 2) * RotationZ(j * M_PI), + Position( + xc, yc, + mpgd_pos.z() + z_placement + + z_offset)); //RotZYX rotat planes around azimuth, RotZ flip plane so pcb_feb_ext is faceing endcaps pv = layer_assembly.placeVolume(module_env, tr); pv.addPhysVolID("module", module); From 07e4b0617722d5715c22e3df4efdd837069ca639 Mon Sep 17 00:00:00 2001 From: Matt Posik Date: Wed, 10 Sep 2025 08:54:25 -0400 Subject: [PATCH 7/7] Update mpgd_outerbarrel.xml remove indentation --- compact/tracking/mpgd_outerbarrel.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/compact/tracking/mpgd_outerbarrel.xml b/compact/tracking/mpgd_outerbarrel.xml index 1296be4b6..9db18856a 100644 --- a/compact/tracking/mpgd_outerbarrel.xml +++ b/compact/tracking/mpgd_outerbarrel.xml @@ -46,7 +46,7 @@ - + MPGD DIRC module components