Commit ce5758ec authored by Whitney Armstrong's avatar Whitney Armstrong
Browse files

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
parent 432e428e
Pipeline #8380 failed with stages
in 1 minute and 17 seconds
......@@ -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>
......
......@@ -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));
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment