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 @@
</comment>
<constant name="TrackerBarrelLayer_rOffset" value="0.5*cm"/>
<constant name="TrackerBarrelSpaceFrame_width" value="4.0*cm"/>
<constant name="TrackerBarrelSpaceFrame_height" value="1.0835*cm"/>
<constant name="TrackerSensor_thickness" value="0.04*mm"/>
<constant name="TrackerBarrelSpaceFrame_width" value="4.0*cm"/>
<constant name="TrackerBarrelSpaceFrame_height" value="1.0835*cm"/>
<constant name="TrackerSensor_thickness" value="0.04*mm"/>
<constant name="TrackerBarrelInner_rmin1" value="21.0*cm"/>
<constant name="TrackerBarrelInner_rmin2" value="22.68*cm"/>
......@@ -48,12 +48,11 @@
<constant name="TrackerBarrelOuter_length1" value="105.0*cm"/>
<constant name="TrackerBarrelOuter_length2" value="114.0*cm"/>
<constant name="TrackerBarrelInner_thickness" value="TrackerBarrelInner_rmin2 - TrackerBarrelInner_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_thickness" value="TrackerBarrelInner_rmin2 - TrackerBarrelInner_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"/>
<comment>
Here we are assuming the two endcaps (P and N) are symmetric.
......@@ -64,19 +63,19 @@
<constant name="TrackerEndcapInner_nLayers" value="1"/>
<constant name="TrackerEndcapOuter_nLayers" value="3"/>
<constant name="TrackerEndcapInner_zmin" value="TrackerBarrelInner_length/2.0"/>
<constant name="TrackerEndcapInner_zmax" value="TrackerBarrelOuter_length/2.0"/>
<constant name="TrackerEndcapInner_length" value="TrackerEndcapInner_zmax- TrackerEndcapInner_zmin"/>
<constant name="TrackerEndcapInnerLayer_dz" value="TrackerEndcapInner_length/TrackerEndcapInner_nLayers"/>
<constant name="TrackerEndcapInnerLayer_thickness" value="TrackerEndcapInnerLayer_dz - 0.5*cm"/>
<constant name="TrackerEndcapInner_zmin" value="TrackerBarrelInner_length2/2.0 + 1.0*cm"/>
<constant name="TrackerEndcapInner_zmax" value="TrackerBarrelOuter_length1/2.0 - 1.0*cm"/>
<constant name="TrackerEndcapInner_length" value="TrackerEndcapInner_zmax- TrackerEndcapInner_zmin"/>
<constant name="TrackerEndcapInnerLayer_dz" value="TrackerEndcapInner_length/TrackerEndcapInner_nLayers"/>
<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.
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_zmax" value="TrackerEndcapOuter_zmin + 70"/>
<constant name="TrackerEndcapOuter_length" value="TrackerEndcapOuter_zmax- TrackerEndcapOuter_zmin"/>
<constant name="TrackerEndcapOuterLayer_dz" value="TrackerEndcapOuter_length/TrackerEndcapOuter_nLayers"/>
<constant name="TrackerEndcapOuterLayer_thickness" value="TrackerEndcapOuterLayer_dz - 1.0*cm"/>
<constant name="TrackerEndcapOuter_zmin" value="TrackerBarrelOuter_length/2.0"/>
<constant name="TrackerEndcapOuter_zmax" value="TrackerEndcapOuter_zmin + 70"/>
<constant name="TrackerEndcapOuter_length" value="TrackerEndcapOuter_zmax- TrackerEndcapOuter_zmin"/>
<constant name="TrackerEndcapOuterLayer_dz" value="TrackerEndcapOuter_length/TrackerEndcapOuter_nLayers"/>
<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.
This is a limitation of ACTS geometry which will likely go away in the future.</comment>
......@@ -206,11 +205,11 @@
<envelope vis="AnlRed"
rmin="TrackerEndcapInner_rmin1"
rmax="TrackerEndcapInner_rmax1"
length="TrackerEndcapInnerLayer_dz"
zstart="TrackerEndcapInner_zmin" />
length="TrackerEndcapInnerLayer_thickness"
zstart="TrackerEndcapInner_zmin + TrackerEndcapInner_length/2.0" />
<ring vis="AnlRed"
r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
zstart="(50.0*mm)"
zstart="0.0"
nmodules="12" dz="2.5 * mm" module="Module1" />
</layer>
</detector>
......@@ -231,11 +230,11 @@
<envelope vis="AnlRed"
rmin="TrackerEndcapInner_rmin1"
rmax="TrackerEndcapInner_rmax1"
length="TrackerEndcapInnerLayer_dz"
zstart="TrackerEndcapInner_zmin" />
length="TrackerEndcapInnerLayer_thickness"
zstart="TrackerEndcapInner_zmin + TrackerEndcapInner_length/2.0" />
<ring vis="AnlRed"
r="TrackerEndcapInner_rmin1+TrackerEndcapInnerMod1_y/2.0"
zstart="-(50.0*mm)"
zstart="0"
nmodules="12" dz="2.5 * mm" module="Module1" />
</layer>
</detector>
......@@ -312,8 +311,11 @@
name="TrackerEndcapP_Outer"
type="athena_TrapEndcapTracker"
readout="TrackerEndcapHits"
vis="AnlRed"
vis="TrackerVis"
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">
<trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
......@@ -371,6 +373,9 @@
readout="TrackerEndcapHits"
vis="AnlRed"
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">
<trd x1="TrackerEndcapOuterMod1_x1/2.0" x2="TrackerEndcapOuterMod1_x2/2.0" z="TrackerEndcapOuterMod1_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
......
......@@ -113,8 +113,6 @@ The unused IDs below are saved for future use.
<constant name="TrackerEndcapP_Layer5_ID" value="69"/>
<constant name="TrackerEndcapN_Layer5_ID" value="70"/>
<documentation>
#### (75-84) Barrel Tracker IDs
......
......@@ -10,7 +10,8 @@
<comment>
Tracking Visualizations
</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="TrackerModuleVis" ref="TrackerLayerVis" visible="true" showDaughters="false" />
......
......@@ -52,6 +52,7 @@ Simple carbon fiber support shell.
<constant name="VertexEndcap_NLayers" value="1"/>
<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_thickness" value="min(5*cm,VertexEndcapLayer_dz)"/>
<constant name="VertexEndcapModOpeningAngle" value="30.0*degree"/>
<constant name="VertexEndcapMod1_x1" value="2.0*VertexTrackerEndcapP_rmin*sin(VertexEndcapModOpeningAngle/2.0)"/>
......@@ -178,11 +179,11 @@ Simple carbon fiber support shell.
<envelope vis="AnlRed"
rmin="VertexTrackerEndcapP_rmin"
rmax="VertexTrackerEndcapP_rmax"
length="VertexEndcapLayer_dz"
zstart="VertexTrackerEndcapP_zmin" />
length="VertexEndcapLayer_thickness"
zstart="VertexTrackerEndcapP_zmin + VertexEndcapLayer_dz/2.0" />
<ring vis="AnlRed"
r="VertexTrackerEndcapP_rmin+VertexEndcapMod1_y/2.0"
zstart="25.0*mm"
zstart="0.0"
nmodules="12" dz="2.5 * mm" module="Module1" />
</layer>
</detector>
......@@ -204,11 +205,11 @@ Simple carbon fiber support shell.
<envelope vis="AnlRed"
rmin="VertexTrackerEndcapN_rmin"
rmax="VertexTrackerEndcapN_rmax"
length="VertexEndcapLayer_dz"
zstart="VertexTrackerEndcapN_zmin" />
length="VertexEndcapLayer_thickness"
zstart="VertexTrackerEndcapN_zmin + VertexEndcapLayer_dz/2.0" />
<ring vis="AnlRed"
r="VertexTrackerEndcapN_rmin+VertexEndcapMod1_y/2.0"
zstart="-25.0*mm"
zstart="0.0"
nmodules="12" dz="2.5 * mm" module="Module1" />
</layer>
</detector>
......
......@@ -40,6 +40,25 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
assembly.setVisAttributes(description.invisible());
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) {
xml_comp_t x_mod = mi;
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