From ce5758ec83fd9bebe5ce6044b217090fc567d628 Mon Sep 17 00:00:00 2001 From: Whitney Armstrong <warmstrong@anl.gov> Date: Tue, 20 Apr 2021 00:08:25 -0500 Subject: [PATCH] Added detailed GEM layering - Added gem layer structure - Added support module and ability to change the module component TRD parameters from the default envelope values. modified: compact/gem_tracker_endcap.xml modified: src/TrapEndcapTracker_geo.cpp --- compact/gem_tracker_endcap.xml | 130 +++++++++++++++++++++++++++++---- src/TrapEndcapTracker_geo.cpp | 6 +- 2 files changed, 122 insertions(+), 14 deletions(-) diff --git a/compact/gem_tracker_endcap.xml b/compact/gem_tracker_endcap.xml index 78b7f2d2..4c0a5592 100644 --- a/compact/gem_tracker_endcap.xml +++ b/compact/gem_tracker_endcap.xml @@ -3,12 +3,56 @@ <comment> Endcap Tracker </comment> <define> + <constant name="GEMTrackerEndcap_zmin" value="BarrelTracking_length/2.0"/> + <constant name="GEMTrackerEndcap_NLayers" value="5"/> + <constant name="GEMTrackerEndcapLayer_thickness" value="ForwardTrackingGEMLength/GEMTrackerEndcap_NLayers"/> + <constant name="GEMTrackerEndcapFoilX1" value="43.0 * mm"/> <constant name="GEMTrackerEndcapFoilY" value="1020.0 * mm"/> <constant name="GEMTrackerEndcapFoilOpeningAngle" value="30.1*degree"/> <constant name="GEMTrackerEndcapFoilX2" value="2*GEMTrackerEndcapFoilY*tan(GEMTrackerEndcapFoilOpeningAngle/2.0) + GEMTrackerEndcapFoilX1"/> <constant name="GEMTrackerEndcapFoil_rmin" value="GEMTrackerEndcapFoilX1/(tan(GEMTrackerEndcapFoilOpeningAngle/2.0)*2.0)"/> <constant name="GEMTrackerEndcapFoil_rmax" value="(GEMTrackerEndcapFoilY+GEMTrackerEndcapFoil_rmin)/(cos(GEMTrackerEndcapFoilOpeningAngle/2.0))"/> + + + // Frame parameters accoring to Kondo's sbsCrossSection.pdf file), + <constant name="GEMTrackerEndcapFrame_thickness" value="18.0 * mm"/> + <constant name="GEMTrackerEndcapFrameBotEdge_width" value="30.0 * mm"/> + <constant name="GEMTrackerEndcapFrameTopEdge_width" value="30.0 * mm"/> + <constant name="GEMTrackerEndcapFrameSideEdge_width" value=" 8.0 * mm"/> + + <comment> + From https://github.com/eic/EicToyModel/blob/master/source/eicroot/GemGeoParData.cxx + + // FIXME: put aluminum layer later as well), + mEntranceWindowMaterial ( "GemKapton"), + mEntranceWindowThickness ( 50.0 * etm::um), + + // Use evaristo.pdf p.10 for the foil parameters: + // - drift foil : 50um kapton + 3um copper) + // - GEM foil : 30um kapton + 3um copper (80% area fraction)) + // - readout foils : 30um kapton + 3um copper total) + mDriftFoilKaptonThickness ( 50.0 * etm::um), + mDriftFoilCopperThickness ( 3.0 * etm::um), + mGemFoilAreaFraction ( 0.80), + mGemFoilKaptonThickness ( 30.0 * etm::um), + mGemFoilCopperThickness ( 3.0 * etm::um), + + mReadoutG10Thickness ( 0.0 * etm::mm), + mReadoutKaptonThickness ( 30.0 * etm::um), + mReadoutCopperThickness ( 3.0 * etm::um), + + // 3mm thick Nomex honeycomb for SBS GEMs), + mReadoutSupportMaterial ( "GemNomex"), + mReadoutSupportThickness ( 3.0 * etm::mm), + + mEntranceRegionLength ( 3.0 * etm::mm), + mDriftRegionLength ( 3.0 * etm::mm), + // Assume triple GEM layout), + mFirstTransferRegionLength ( 2.0 * etm::mm), + mSecondTransferRegionLength ( 2.0 * etm::mm), + mInductionRegionLength ( 2.0 * etm::mm) + </comment> </define> <limits> @@ -31,23 +75,83 @@ <module name="GEMModule1" vis="Argonne_Process_Blue"> <trd x1="GEMTrackerEndcapFoilX1/2.0" x2="GEMTrackerEndcapFoilX2/2.0" z="GEMTrackerEndcapFoilY/2"/> <comment> Going from HV side to readout side</comment> - <module_component thickness="1.127 * mm" material="Mylar"/> - <module_component thickness="3*mm" material="Ar10CO2"/> - <module_component thickness="0.127 * mm" material="Mylar"/> - <module_component thickness="2*mm" material="Ar10CO2"/> - <module_component thickness="0.127 * mm" material="Mylar"/> - <module_component thickness="2*mm" material="Ar10CO2"/> <module_component thickness="0.127 * mm" material="Mylar"/> - <module_component thickness="2*mm" material="Ar10CO2"/> - <module_component thickness="0.175 * mm" material="Epoxy" sensitive="true" vis="Argonne_Process_Blue"/> + <module_component thickness="50.0*um" material="Kapton" name="entrance_window"/> + <module_component thickness=" 3.0*mm" material="Ar10CO2" name="entrance region" /> + <module_component thickness="50.0*um" material="Kapton"/> + <module_component thickness=" 3.0*um" material="Copper"/> + <module_component thickness=" 3.0*mm" material="Ar10CO2" name="drift region"/> + <module_component thickness="30.0*um" material="Kapton" name="gem_foil"/> + <module_component thickness=" 3.0*um" material="Copper" name="gem_foil_Cu"/> + <module_component thickness=" 2.0*mm" material="Ar10CO2" name="transfer region I"/> + <module_component thickness="30.0*um" material="Kapton" name="gem_foil"/> + <module_component thickness=" 3.0*um" material="Copper" name="gem_foil_Cu"/> + <module_component thickness=" 2.0*mm" material="Ar10CO2" name="transfer region II"/> + <module_component thickness="30.0*um" material="Kapton" name="gem_foil"/> + <module_component thickness=" 3.0*um" material="Copper" name="gem_foil_Cu"/> + <module_component thickness=" 2.0*mm" material="Ar10CO2" name="induction region"/> + <module_component thickness="30.0*um" material="Kapton" name="readout" sensitive="true"/> + <module_component thickness=" 3.0*um" material="Copper" name="readout_Cu"/> + <module_component thickness="127.0*um" material="Mylar"/> + <module_component thickness="200.0*um" material="Epoxy" sensitive="true" vis="Argonne_Process_Blue"/> + </module> + <module name="GEMSupportModule1" vis="Argonne_Process_Blue"> + <trd x1="GEMTrackerEndcapFoilX2/2.0" x2="GEMTrackerEndcapFoilX1/2.0" z="GEMTrackerEndcapFrameBotEdge_width"/> + <module_component thickness="GEMTrackerEndcapFrame_thickness" material="Mylar"/> + </module> + <module name="GEMSupportModule2" vis="Argonne_Process_Blue"> + <trd x1="GEMTrackerEndcapFrameSideEdge_width" x2="GEMTrackerEndcapFrameSideEdge_width" z="GEMTrackerEndcapFoilY/2"/> + <module_component thickness="4.0*mm" material="Mylar"/> </module> <layer id="1" > - <envelope vis="Argonne_Red" - rmin="GEMTrackerEndcapFoil_rmin" rmax="GEMTrackerEndcapFoil_rmax" - zstart="SiliconTrackerOuterBarrelLength/2+15*mm" length="30.0*mm" /> - <ring r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" - zstart="SiliconTrackerOuterBarrelLength/2+20*mm" + <ring vis="Argonne_Red" + r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" + zstart="GEMTrackerEndcap_zmin+0*GEMTrackerEndcapLayer_thickness" + nmodules="12" dz="10 * mm" module="GEMModule1" /> + <ring vis="Argonne_Blue" phi0="15.0*degree" + r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" + zstart="GEMTrackerEndcap_zmin+0*GEMTrackerEndcapLayer_thickness" + nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> + </layer> + <layer id="2" > + <ring vis="Argonne_Red" + r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" + zstart="GEMTrackerEndcap_zmin+1*GEMTrackerEndcapLayer_thickness" + nmodules="12" dz="10 * mm" module="GEMModule1" /> + <ring vis="Argonne_Blue" phi0="15.0*degree" + r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" + zstart="GEMTrackerEndcap_zmin+1*GEMTrackerEndcapLayer_thickness" + nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> + </layer> + <layer id="3" > + <ring vis="Argonne_Red" + r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" + zstart="GEMTrackerEndcap_zmin+2*GEMTrackerEndcapLayer_thickness" + nmodules="12" dz="10 * mm" module="GEMModule1" /> + <ring vis="Argonne_Blue" phi0="15.0*degree" + r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" + zstart="GEMTrackerEndcap_zmin+2*GEMTrackerEndcapLayer_thickness" + nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> + </layer> + <layer id="4" > + <ring vis="Argonne_Red" + r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" + zstart="GEMTrackerEndcap_zmin+3*GEMTrackerEndcapLayer_thickness" + nmodules="12" dz="10 * mm" module="GEMModule1" /> + <ring vis="Argonne_Blue" phi0="15.0*degree" + r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" + zstart="GEMTrackerEndcap_zmin+3*GEMTrackerEndcapLayer_thickness" + nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> + </layer> + <layer id="5" > + <ring vis="Argonne_Red" + r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" + zstart="GEMTrackerEndcap_zmin+4*GEMTrackerEndcapLayer_thickness" nmodules="12" dz="10 * mm" module="GEMModule1" /> + <ring vis="Argonne_Blue" phi0="15.0*degree" + r="GEMTrackerEndcapFoil_rmin+GEMTrackerEndcapFoilY/2.0" + zstart="GEMTrackerEndcap_zmin+4*GEMTrackerEndcapLayer_thickness" + nmodules="12" dz="0 * mm" module="GEMSupportModule2" /> </layer> </detector> diff --git a/src/TrapEndcapTracker_geo.cpp b/src/TrapEndcapTracker_geo.cpp index ea0c961c..30251db0 100644 --- a/src/TrapEndcapTracker_geo.cpp +++ b/src/TrapEndcapTracker_geo.cpp @@ -59,9 +59,13 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s for (ci.reset(), n_sensor = 1, c_id = 0, posY = -y1; ci; ++ci, ++c_id) { xml_comp_t c = ci; double c_thick = c.thickness(); + auto comp_x1 = getAttrOrDefault(c, _Unicode(x1), x1); + auto comp_x2 = getAttrOrDefault(c, _Unicode(x2), x2); + auto comp_height = getAttrOrDefault(c, _Unicode(height), z); + Material c_mat = description.material(c.materialStr()); string c_name = _toString(c_id, "component%d"); - Volume c_vol(c_name, Trapezoid(x1, x2, c_thick / 2e0, c_thick / 2e0, z), c_mat); + Volume c_vol(c_name, Trapezoid(comp_x1, comp_x2, c_thick / 2e0, c_thick / 2e0, comp_height), c_mat); c_vol.setVisAttributes(description.visAttributes(c.visStr())); pv = m_volume.placeVolume(c_vol, Position(0, posY + c_thick / 2, 0)); -- GitLab