Skip to content
Snippets Groups Projects
Commit 602b960d authored by Whitney Armstrong's avatar Whitney Armstrong
Browse files

Tracker support

parent 61e0f795
No related branches found
No related tags found
1 merge request!159Tracker support
...@@ -33,9 +33,9 @@ ...@@ -33,9 +33,9 @@
</comment> </comment>
<constant name="TrackerBarrelLayer_rOffset" value="0.5*cm"/> <constant name="TrackerBarrelLayer_rOffset" value="0.5*cm"/>
<constant name="TrackerBarrelSpaceFrame_width" value="4.0*cm"/> <constant name="TrackerBarrelSpaceFrame_width" value="4.0*cm"/>
<constant name="TrackerBarrelSpaceFrame_height" value="1.0835*cm"/> <constant name="TrackerBarrelSpaceFrame_height" value="1.0835*cm"/>
<constant name="TrackerSensor_thickness" value="0.04*mm"/> <constant name="TrackerSensor_thickness" value="0.04*mm"/>
<constant name="TrackerBarrelInner_rmin1" value="21.0*cm"/> <constant name="TrackerBarrelInner_rmin1" value="21.0*cm"/>
<constant name="TrackerBarrelInner_rmin2" value="22.68*cm"/> <constant name="TrackerBarrelInner_rmin2" value="22.68*cm"/>
...@@ -48,12 +48,11 @@ ...@@ -48,12 +48,11 @@
<constant name="TrackerBarrelOuter_length1" value="105.0*cm"/> <constant name="TrackerBarrelOuter_length1" value="105.0*cm"/>
<constant name="TrackerBarrelOuter_length2" value="114.0*cm"/> <constant name="TrackerBarrelOuter_length2" value="114.0*cm"/>
<constant name="TrackerBarrelInner_thickness" value="TrackerBarrelInner_rmin2 - TrackerBarrelInner_rmin1"/> <constant name="TrackerBarrelInner_thickness" value="TrackerBarrelInner_rmin2 - TrackerBarrelInner_rmin1"/>
<constant name="TrackerBarrelOuter_thickness" value="TrackerBarrelOuter_rmin2 - TrackerBarrelOuter_rmin1"/> <constant name="TrackerBarrelOuter_thickness" value="TrackerBarrelOuter_rmin2 - TrackerBarrelOuter_rmin1"/>
<constant name="TrackerBarrelInner_length" value="TrackerBarrelInner_length2+1.0*cm"/>
<constant name="TrackerBarrelOuter_length" value="TrackerBarrelOuter_length2+1.0*cm"/>
<constant name="TrackerBarrelInner_length" value="TrackerBarrelInner_length2+1.0*cm"/>
<constant name="TrackerBarrelOuter_length" value="TrackerBarrelOuter_length2+1.0*cm"/>
<comment> <comment>
Here we are assuming the two endcaps (P and N) are symmetric. Here we are assuming the two endcaps (P and N) are symmetric.
...@@ -64,19 +63,19 @@ ...@@ -64,19 +63,19 @@
<constant name="TrackerEndcapInner_nLayers" value="1"/> <constant name="TrackerEndcapInner_nLayers" value="1"/>
<constant name="TrackerEndcapOuter_nLayers" value="3"/> <constant name="TrackerEndcapOuter_nLayers" value="3"/>
<constant name="TrackerEndcapInner_zmin" value="TrackerBarrelInner_length/2.0"/> <constant name="TrackerEndcapInner_zmin" value="TrackerBarrelInner_length2/2.0 + 1.0*cm"/>
<constant name="TrackerEndcapInner_zmax" value="TrackerBarrelOuter_length/2.0"/> <constant name="TrackerEndcapInner_zmax" value="TrackerBarrelOuter_length1/2.0 - 1.0*cm"/>
<constant name="TrackerEndcapInner_length" value="TrackerEndcapInner_zmax- TrackerEndcapInner_zmin"/> <constant name="TrackerEndcapInner_length" value="TrackerEndcapInner_zmax- TrackerEndcapInner_zmin"/>
<constant name="TrackerEndcapInnerLayer_dz" value="TrackerEndcapInner_length/TrackerEndcapInner_nLayers"/> <constant name="TrackerEndcapInnerLayer_dz" value="TrackerEndcapInner_length/TrackerEndcapInner_nLayers"/>
<constant name="TrackerEndcapInnerLayer_thickness" value="TrackerEndcapInnerLayer_dz - 0.5*cm"/> <constant name="TrackerEndcapInnerLayer_thickness" value="min(5.0*cm,TrackerEndcapInnerLayer_dz - 0.5*cm)"/>
<comment> Note, the -1.0*cm is so the layers do not touch surfaces. <comment> Note, the -1.0*cm is so the layers do not touch surfaces.
This is a limitation of ACTS geometry which will likely go away in the future.</comment> This is a limitation of ACTS geometry which will likely go away in the future.</comment>
<constant name="TrackerEndcapOuter_zmin" value="TrackerBarrelOuter_length/2.0"/> <constant name="TrackerEndcapOuter_zmin" value="TrackerBarrelOuter_length/2.0"/>
<constant name="TrackerEndcapOuter_zmax" value="TrackerEndcapOuter_zmin + 70"/> <constant name="TrackerEndcapOuter_zmax" value="TrackerEndcapOuter_zmin + 70"/>
<constant name="TrackerEndcapOuter_length" value="TrackerEndcapOuter_zmax- TrackerEndcapOuter_zmin"/> <constant name="TrackerEndcapOuter_length" value="TrackerEndcapOuter_zmax- TrackerEndcapOuter_zmin"/>
<constant name="TrackerEndcapOuterLayer_dz" value="TrackerEndcapOuter_length/TrackerEndcapOuter_nLayers"/> <constant name="TrackerEndcapOuterLayer_dz" value="TrackerEndcapOuter_length/TrackerEndcapOuter_nLayers"/>
<constant name="TrackerEndcapOuterLayer_thickness" value="TrackerEndcapOuterLayer_dz - 1.0*cm"/> <constant name="TrackerEndcapOuterLayer_thickness" value="min(5.0*cm,TrackerEndcapOuterLayer_dz - 1.0*cm)"/>
<comment> Note, the -1.0*cm is so the layers do not touch surfaces. <comment> Note, the -1.0*cm is so the layers do not touch surfaces.
This is a limitation of ACTS geometry which will likely go away in the future.</comment> This is a limitation of ACTS geometry which will likely go away in the future.</comment>
...@@ -206,11 +205,11 @@ ...@@ -206,11 +205,11 @@
<envelope vis="AnlRed" <envelope vis="AnlRed"
rmin="TrackerEndcapInner_rmin1" rmin="TrackerEndcapInner_rmin1"
rmax="TrackerEndcapInner_rmax1" rmax="TrackerEndcapInner_rmax1"
length="TrackerEndcapInnerLayer_dz" length="TrackerEndcapInnerLayer_thickness"
zstart="TrackerEndcapInner_zmin" /> zstart="TrackerEndcapInner_zmin + TrackerEndcapInner_length/2.0" />
<ring vis="AnlRed" <ring vis="AnlRed"
r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0" r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
zstart="(50.0*mm)" zstart="0.0"
nmodules="12" dz="2.5 * mm" module="Module1" /> nmodules="12" dz="2.5 * mm" module="Module1" />
</layer> </layer>
</detector> </detector>
...@@ -231,11 +230,11 @@ ...@@ -231,11 +230,11 @@
<envelope vis="AnlRed" <envelope vis="AnlRed"
rmin="TrackerEndcapInner_rmin1" rmin="TrackerEndcapInner_rmin1"
rmax="TrackerEndcapInner_rmax1" rmax="TrackerEndcapInner_rmax1"
length="TrackerEndcapInnerLayer_dz" length="TrackerEndcapInnerLayer_thickness"
zstart="TrackerEndcapInner_zmin" /> zstart="TrackerEndcapInner_zmin + TrackerEndcapInner_length/2.0" />
<ring vis="AnlRed" <ring vis="AnlRed"
r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0" r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
zstart="-(50.0*mm)" zstart="0"
nmodules="12" dz="2.5 * mm" module="Module1" /> nmodules="12" dz="2.5 * mm" module="Module1" />
</layer> </layer>
</detector> </detector>
...@@ -312,8 +311,11 @@ ...@@ -312,8 +311,11 @@
name="TrackerEndcapP_Outer" name="TrackerEndcapP_Outer"
type="athena_TrapEndcapTracker" type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits" readout="TrackerEndcapHits"
vis="AnlRed" vis="TrackerVis"
reflect="false"> reflect="false">
<support vis="TrackerSupportVis" material="CarbonFiber_25percent"
rmin="TrackerEndcapOuter_rmax3+1.0*mm"
thickness="2.0*mm" length="TrackerEndcapOuter_length" zstart="TrackerEndcapOuter_zmin" />
<module name="Module1" vis="AnlProcess_Blue"> <module name="Module1" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/> <trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
...@@ -371,6 +373,9 @@ ...@@ -371,6 +373,9 @@
readout="TrackerEndcapHits" readout="TrackerEndcapHits"
vis="AnlRed" vis="AnlRed"
reflect="true"> reflect="true">
<support vis="TrackerSupportVis" material="CarbonFiber_25percent"
rmin="TrackerEndcapOuter_rmax3+1.0*mm"
thickness="2.0*mm" length="TrackerEndcapOuter_length" zstart="TrackerEndcapOuter_zmin" />
<module name="Module1" vis="AnlProcess_Blue"> <module name="Module1" vis="AnlProcess_Blue">
<trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/> <trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
......
...@@ -113,8 +113,6 @@ The unused IDs below are saved for future use. ...@@ -113,8 +113,6 @@ The unused IDs below are saved for future use.
<constant name="TrackerEndcapP_Layer5_ID" value="69"/> <constant name="TrackerEndcapP_Layer5_ID" value="69"/>
<constant name="TrackerEndcapN_Layer5_ID" value="70"/> <constant name="TrackerEndcapN_Layer5_ID" value="70"/>
<documentation> <documentation>
#### (75-84) Barrel Tracker IDs #### (75-84) Barrel Tracker IDs
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
<comment> <comment>
Tracking Visualizations Tracking Visualizations
</comment> </comment>
<vis name="TrackerSupportVis" ref="AnlBlue" showDaughters="false" /> <vis name="TrackerVis" ref="AnlRed" />
<vis name="TrackerSupportVis" ref="AnlBlue" visible="true" showDaughters="true" />
<vis name="TrackerLayerVis" ref="AnlTeal" visible="true" showDaughters="true" /> <vis name="TrackerLayerVis" ref="AnlTeal" visible="true" showDaughters="true" />
<vis name="TrackerModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="false" /> <vis name="TrackerModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="false" />
......
...@@ -52,6 +52,7 @@ Simple carbon fiber support shell. ...@@ -52,6 +52,7 @@ Simple carbon fiber support shell.
<constant name="VertexEndcap_NLayers" value="1"/> <constant name="VertexEndcap_NLayers" value="1"/>
<constant name="VertexTrackerEndcap_delta" value="(VertexTrackerEndcapP_zmax - VertexTrackerEndcapP_zmin)/VertexEndcap_NLayers"/> <constant name="VertexTrackerEndcap_delta" value="(VertexTrackerEndcapP_zmax - VertexTrackerEndcapP_zmin)/VertexEndcap_NLayers"/>
<constant name="VertexEndcapLayer_dz" value="(VertexTrackerEndcapP_zmax - VertexTrackerEndcapP_zmin)/VertexEndcap_NLayers"/> <constant name="VertexEndcapLayer_dz" value="(VertexTrackerEndcapP_zmax - VertexTrackerEndcapP_zmin)/VertexEndcap_NLayers"/>
<constant name="VertexEndcapLayer_thickness" value="min(5*cm,VertexEndcapLayer_dz)"/>
<constant name="VertexEndcapModOpeningAngle" value="30.0*degree"/> <constant name="VertexEndcapModOpeningAngle" value="30.0*degree"/>
<constant name="VertexEndcapMod1_x1" value="2.0*VertexTrackerEndcapP_rmin*sin(VertexEndcapModOpeningAngle/2.0)"/> <constant name="VertexEndcapMod1_x1" value="2.0*VertexTrackerEndcapP_rmin*sin(VertexEndcapModOpeningAngle/2.0)"/>
...@@ -178,11 +179,11 @@ Simple carbon fiber support shell. ...@@ -178,11 +179,11 @@ Simple carbon fiber support shell.
<envelope vis="AnlRed" <envelope vis="AnlRed"
rmin="VertexTrackerEndcapP_rmin" rmin="VertexTrackerEndcapP_rmin"
rmax="VertexTrackerEndcapP_rmax" rmax="VertexTrackerEndcapP_rmax"
length="VertexEndcapLayer_dz" length="VertexEndcapLayer_thickness"
zstart="VertexTrackerEndcapP_zmin" /> zstart="VertexTrackerEndcapP_zmin + VertexEndcapLayer_dz/2.0" />
<ring vis="AnlRed" <ring vis="AnlRed"
r="VertexTrackerEndcapP_rmin+VertexEndcapMod1_y/2.0" r="VertexTrackerEndcapP_rmin+VertexEndcapMod1_y/2.0"
zstart="25.0*mm" zstart="0.0"
nmodules="12" dz="2.5 * mm" module="Module1" /> nmodules="12" dz="2.5 * mm" module="Module1" />
</layer> </layer>
</detector> </detector>
...@@ -204,11 +205,11 @@ Simple carbon fiber support shell. ...@@ -204,11 +205,11 @@ Simple carbon fiber support shell.
<envelope vis="AnlRed" <envelope vis="AnlRed"
rmin="VertexTrackerEndcapN_rmin" rmin="VertexTrackerEndcapN_rmin"
rmax="VertexTrackerEndcapN_rmax" rmax="VertexTrackerEndcapN_rmax"
length="VertexEndcapLayer_dz" length="VertexEndcapLayer_thickness"
zstart="VertexTrackerEndcapN_zmin" /> zstart="VertexTrackerEndcapN_zmin + VertexEndcapLayer_dz/2.0" />
<ring vis="AnlRed" <ring vis="AnlRed"
r="VertexTrackerEndcapN_rmin+VertexEndcapMod1_y/2.0" r="VertexTrackerEndcapN_rmin+VertexEndcapMod1_y/2.0"
zstart="-25.0*mm" zstart="0.0"
nmodules="12" dz="2.5 * mm" module="Module1" /> nmodules="12" dz="2.5 * mm" module="Module1" />
</layer> </layer>
</detector> </detector>
......
...@@ -40,6 +40,25 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s ...@@ -40,6 +40,25 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
assembly.setVisAttributes(description.invisible()); assembly.setVisAttributes(description.invisible());
sens.setType("tracker"); sens.setType("tracker");
for (xml_coll_t su(x_det, _U(support)); su; ++su) {
std::cout << "support !!!\n";
xml_comp_t x_support = su;
double support_thickness = getAttrOrDefault(x_support, _U(thickness), 2.0 * mm);
double support_length = getAttrOrDefault(x_support, _U(length), 2.0 * mm);
double support_rmin = getAttrOrDefault(x_support, _U(rmin), 2.0 * mm);
double support_zstart = getAttrOrDefault(x_support, _U(zstart), 2.0 * mm);
std::string support_vis = getAttrOrDefault<std::string>(x_support, _Unicode(vis), "AnlRed");
Material support_mat = description.material(x_support.materialStr());
Tube support_tub(support_rmin, support_rmin + support_thickness, support_length / 2);
Volume support_vol("support_tube", support_tub, support_mat); // Create the layer envelope volume.
support_vol.setVisAttributes(description.visAttributes(support_vis));
if(reflect) {
pv = assembly.placeVolume(support_vol, Position(0, 0, -1.0 * (support_zstart + support_length / 2)));
} else {
pv = assembly.placeVolume(support_vol, Position(0, 0, support_zstart + support_length / 2));
}
}
for (xml_coll_t mi(x_det, _U(module)); mi; ++mi, ++m_id) { for (xml_coll_t mi(x_det, _U(module)); mi; ++mi, ++m_id) {
xml_comp_t x_mod = mi; xml_comp_t x_mod = mi;
string m_nam = x_mod.nameStr(); string m_nam = x_mod.nameStr();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment