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

Cleanup of geometry constructions

- Renamed the vertex and tracker barrel detectors
- Commented out endcap tracker
- Added more detailed to space frame construction.
parent 449516ab
Branches
Tags
1 merge request!6Cleanup of geometry constructions
......@@ -111,7 +111,8 @@
<include ref="ip6/forward_ion_beamline.xml"/>
<include ref="ip6/beampipe.xml"/>
<include ref="compact/allsilicon_simplified.xml"/>
<include ref="compact/vertex_tracker.xml"/>
<include ref="compact/central_tracker.xml"/>
<include ref="compact/rwell_tracker_barrel.xml"/>
<include ref="compact/cb_DIRC.xml"/>
......@@ -119,7 +120,6 @@
<include ref="compact/ecal.xml"/>
<include ref="compact/hcal.xml"/>
<!--include ref="compact/ce_GEM.xml"/-->
<!--include ref="compact/vertex_tracker.xml"/-->
<!--include ref="compact/gem_tracker_endcap.xml"/-->
<include ref="compact/ce_mrich.xml"/>
<include ref="compact/tof_endcap.xml"/>
......
......@@ -12,7 +12,6 @@
</comment>
<define>
<constant name="ITS3Thickness" value=".03*mm"/>
<constant name="VtxRadius1" value="3.3*cm"/>
<constant name="VtxRadius2" value="5.7*cm"/>
......@@ -22,7 +21,7 @@
<constant name="TrkBarrelThickness" value="0.55/100*9.37*cm"/>
<constant name="TrkBarrelServiceThickness" value="TrkBarrelThickness-ITS3Thickness"/>
<constant name="TrkBarrel1Radius1" value="21.0*cm"/>
<constant name="TrkBarrel1Radius2" value="22.68*cm"/>
<constant name="TrkBarrel1Length1" value="54.0*cm"/>
......
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<comment>
---------------
Silicon Tracker
---------------
https://github.com/reynier0611/g4lblvtx/blob/master/macros/auxiliary_studies/simplified_geometry/Fun4All_G4_simplified_v2.C
With some added info on ITS3 chip from
https://indico.bnl.gov/event/10677/contributions/45591/attachments/33204/53254/20210318-IR2%40EIC-SVT.pdf
To be used as standin until we get more detailed specs from the working group on the tracker.
Note that most details are replaced with
Note: initial implementation with hard-coded values,
TODO: add parametrization
</comment>
<define>
<constant name="TrackerBarrelSpaceFrame_width" value="42.0*mm"/>
<constant name="TrackerBarrelSpaceFrame_height" value="sqrt(3.0)*42.0*mm/2.0"/>
<constant name="TrackerSensor_thickness" value="0.03*mm"/>
<constant name="TrackerBarrel_thickness" value="0.55/100*9.37*cm"/>
<constant name="TrackerBarrelService_thickness" value="TrackerBarrel_thickness-TrackerSensor_thickness"/>
<comment>
Layer_rOffset is used to add inside space so the _rmin value is the nominal sensor radius.
</comment>
<constant name="TrackerBarrelLayer_rOffset" value="0.5*cm"/>
<constant name="TrackerBarrel1_rmin1" value="21.0*cm"/>
<constant name="TrackerBarrel1_rmin2" value="TrackerBarrel1_rmin1 + TrackerBarrelSpaceFrame_width"/>
<constant name="TrackerBarrel1_length1" value="54.0*cm"/>
<constant name="TrackerBarrel1_length2" value="60.0*cm"/>
<constant name="TrackerBarrel2_rmin1" value="39.3*cm"/>
<constant name="TrackerBarrel2_rmin2" value="TrackerBarrel2_rmin1 + TrackerBarrelSpaceFrame_width"/>
<constant name="TrackerBarrel2_length1" value="105.0*cm"/>
<constant name="TrackerBarrel2_length2" value="114.0*cm"/>
<constant name="TrackerBarrelGroup1_thickness" value="TrackerBarrel1_rmin2 - TrackerBarrel1_rmin1"/>
<constant name="TrackerBarrelGroup2_thickness" value="TrackerBarrel2_rmin2 - TrackerBarrel2_rmin1"/>
<constant name="TrackerBarrelGroup1_length" value="TrackerBarrel1_length2"/>
<constant name="TrackerBarrelGroup2_length" value="TrackerBarrel2_length2"/>
<constant name="TrackerEndcap_thickness" value="0.25/100*9.37*cm"/>
<constant name="TrackerEndcapService_thickness" value="TrackerEndcap_thickness-TrackerSensor_thickness"/>
<constant name="TrackerEndcap_nLayers" value="3"/>
<constant name="TrackerEndcapInner_zmin" value="25.0*cm"/>
<constant name="TrackerEndcapInner_zmax" value="49.0*cm"/>
<constant name="TrackerEndcapOuter_zmin" value="73.0*cm"/>
<constant name="TrackerEndcapOuter_zmax" value="121.0*cm"/>
<constant name="TrackerEndcapOuter_deltaz" value="(TrackerEndcapOuter_zmax-TrackerEndcapOuter_zmin)/(TrackerEndcap_nLayers-1)" />
<constant name="TrackerEndcapInner1_rmin" value="Beampipe_rmax+1.0*cm"/>
<constant name="TrackerEndcapInner2_rmin" value="Beampipe_rmax+1.0*cm"/>
<constant name="TrackerEndcapOuter_rmin" value="3.18*cm"/>
<constant name="TrackerEndcapInner1_rmax" value="18.5*cm"/>
<constant name="TrackerEndcapInner2_rmax" value="18.5*cm + TrackerBarrelGroup1_thickness"/>
<constant name="TrackerEndcapOuter_rmax" value="43.23*cm"/>
<comment> TODO: These should be computed </comment>
<constant name="TrackerBarrelGroup1_NModules" value="30"/>
<constant name="TrackerBarrelGroup2_NModules" value="56"/>
</define>
<display>
</display>
<detectors>
<detector id="TrackerSubAssemblyLayer1_ID"
name="TrackerSubAssemblyLayer1"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<!--
<composite name="VertexTrackerEndcapN"/>
<composite name="VertexTrackerEndcapP"/>
-->
<composite name="TrackerBarrel_Inner1"/>
</detector>
<comment>
Inner Tracker Barrel (group 1)
</comment>
<detector
id="TrackerBarrel_Layer1_ID"
name="TrackerBarrel_Inner1"
type="athena_TrackerBarrel"
readout="TrackerBarrelHits"
insideTrackingVolume="true">
<dimensions
rmin="TrackerBarrel1_rmin1-TrackerBarrelLayer_rOffset"
rmax="TrackerBarrel1_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelGroup1_thickness"
length="TrackerBarrelGroup1_length"/>
<comment>
Tracker Barrel Modules
</comment>
<module name="TrackerBarrelGroup1_Module1" vis="PurpleVis">
<frame
width="TrackerBarrelSpaceFrame_width"
height="TrackerBarrelSpaceFrame_height"
length="TrackerBarrel1_length1"
thickness="0.1*mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
<module_component name="silicon"
width="TrackerBarrelSpaceFrame_width"
length="TrackerBarrel1_length1-0.1*mm" thickness="0.05*mm" material="Silicon" sensitive="true">
<position z="-0.025*mm" y="0*mm"/>
</module_component>
</module>
<comment>
Tracker Barrel Inner Layers
</comment>
<layer module="TrackerBarrelGroup1_Module1" id="1" vis="VertexVis">
<barrel_envelope
inner_r="TrackerBarrel1_rmin1-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrel1_rmin1-TrackerBarrelLayer_rOffset + TrackerBarrelGroup1_thickness"
z_length="TrackerBarrel1_length1"/>
<rphi_layout phi_tilt="10.0*degree" nphi="TrackerBarrelGroup1_NModules" phi0="0.0" rc="TrackerBarrel1_rmin1" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="TrackerBarrelGroup1_Module1" id="2" vis="VertexVis">
<barrel_envelope
inner_r="TrackerBarrel1_rmin2-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrel1_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelGroup1_thickness"
z_length="TrackerBarrel1_length2"/>
<rphi_layout phi_tilt="10.0*degree" nphi="TrackerBarrelGroup1_NModules" phi0="0.0" rc="TrackerBarrel1_rmin2" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
<comment>
Outer tracker barrel (Group2)
</comment>
<detector
id="TrackerBarrel_Layer2_ID"
name="TrackerBarrel_Outer2"
type="athena_TrackerBarrel"
readout="TrackerBarrelHits"
insideTrackingVolume="true">
<dimensions
rmin="TrackerBarrel2_rmin1-TrackerBarrelLayer_rOffset"
rmax="TrackerBarrel2_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelGroup2_thickness"
length="TrackerBarrelGroup2_length"/>
<comment>
Tracker Barrel Modules
</comment>
<module name="TrackerBarrelGroup2_Module1" vis="PurpleVis">
<frame
width="TrackerBarrelSpaceFrame_width"
height="TrackerBarrelSpaceFrame_height"
length="TrackerBarrel2_length1"
thickness="0.1*mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
<module_component name="silicon"
width="TrackerBarrelSpaceFrame_width"
length="TrackerBarrel2_length1-0.1*mm"
thickness="0.05*mm" material="Silicon" sensitive="true">
<position z="-0.025*mm" y="0*mm"/>
</module_component>
</module>
<comment>
Tracker Barrel Inner Layers
</comment>
<layer module="TrackerBarrelGroup2_Module1" id="1" vis="VertexVis">
<barrel_envelope
inner_r="TrackerBarrel2_rmin1-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrel2_rmin1-TrackerBarrelLayer_rOffset + TrackerBarrelGroup2_thickness"
z_length="TrackerBarrelGroup2_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="TrackerBarrelGroup2_NModules" phi0="0.0" rc="TrackerBarrel2_rmin1" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="TrackerBarrelGroup2_Module1" id="2" vis="VertexVis">
<barrel_envelope
inner_r="TrackerBarrel2_rmin2-TrackerBarrelLayer_rOffset"
outer_r="TrackerBarrel2_rmin2-TrackerBarrelLayer_rOffset + TrackerBarrelGroup2_thickness"
z_length="TrackerBarrelGroup2_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="TrackerBarrelGroup2_NModules" phi0="0.0" rc="TrackerBarrel2_rmin2" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
<!--
<detector id="VertexEndcapP_ID" name="VertexTrackerEndcapP" type="ref_DiskTracker"
insideTrackingVolume="true" reflect="false" vis="AnlRed">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 0*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="2" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 1*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="3" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 2*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="4" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 3*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="5" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 4*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
</detector>
<detector id="VertexEndcapN_ID" name="VertexTrackerEndcapN" type="ref_DiskTracker"
insideTrackingVolume="true" reflect="true" vis="AnlRed">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 0*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="2" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 1*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="3" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 2*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="4" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 3*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="5" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 4*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
</detector>
-->
</detectors>
<readouts>
<readout name="TrackerBarrelHits">
<segmentation type="CartesianGridXY" grid_size_x="0.150*mm" grid_size_y="0.150*mm" />
<id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
</readout>
<readout name="TrackerEndcapHits">
<segmentation type="CartesianGridXY" grid_size_x="0.20*mm" grid_size_y="0.20*mm" />
<id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
</readout>
</readouts>
</lccdd>
......@@ -68,12 +68,10 @@
Layer 4 subassembly ID: 29
Layer 5 subassembly ID: 30
</comment>
<constant name="cb_VTX_Barrel_ID" value="25"/>
<constant name="SiVertexBarrel_ID" value="cb_VTX_Barrel_ID"/>
<constant name="SiVertexSubAssembly_ID" value="26"/>
<constant name="SiVertexEndcapP_ID" value="30"/>
<constant name="SiVertexEndcapN_ID" value="40"/>
<constant name="AllSiliconVtx_ID" value="41"/>
<constant name="VertexBarrel_ID" value="25"/>
<constant name="VertexSubAssembly_ID" value="26"/>
<constant name="VertexEndcapP_ID" value="30"/>
<constant name="VertexEndcapN_ID" value="40"/>
<comment>
Unused values reserved for vertex:
......@@ -102,49 +100,34 @@
</comment>
<constant name="SiTrackerSubAssembly_ID" value="50"/>
<constant name="SiTrackerSubAssemblyLayer1_ID" value="51"/>
<constant name="SiTrackerSubAssemblyLayer2_ID" value="52"/>
<constant name="SiTrackerSubAssemblyLayer3_ID" value="53"/>
<constant name="SiTrackerSubAssemblyLayer4_ID" value="54"/>
<constant name="SiTrackerSubAssemblyLayer5_ID" value="55"/>
<constant name="TrackerSubAssembly_ID" value="50"/>
<constant name="TrackerSubAssemblyLayer1_ID" value="51"/>
<constant name="TrackerSubAssemblyLayer2_ID" value="52"/>
<constant name="TrackerSubAssemblyLayer3_ID" value="53"/>
<constant name="TrackerSubAssemblyLayer4_ID" value="54"/>
<constant name="TrackerSubAssemblyLayer5_ID" value="55"/>
<constant name="SiTrackerBarrel_Layer1_ID" value="56"/>
<constant name="SiTrackerEndcapP_Layer1_ID" value="57"/>
<constant name="SiTrackerEndcapN_Layer1_ID" value="58"/>
<constant name="TrackerBarrel_Layer1_ID" value="56"/>
<constant name="TrackerEndcapP_Layer1_ID" value="57"/>
<constant name="TrackerEndcapN_Layer1_ID" value="58"/>
<constant name="SiTrackerBarrel_Layer2_ID" value="59"/>
<constant name="SiTrackerEndcapP_Layer2_ID" value="60"/>
<constant name="SiTrackerEndcapN_Layer2_ID" value="61"/>
<constant name="TrackerBarrel_Layer2_ID" value="59"/>
<constant name="TrackerEndcapP_Layer2_ID" value="60"/>
<constant name="TrackerEndcapN_Layer2_ID" value="61"/>
<constant name="SiTrackerBarrel_Layer3_ID" value="62"/>
<constant name="SiTrackerEndcapP_Layer3_ID" value="63"/>
<constant name="SiTrackerEndcapN_Layer3_ID" value="64"/>
<constant name="TrackerBarrel_Layer3_ID" value="62"/>
<constant name="TrackerEndcapP_Layer3_ID" value="63"/>
<constant name="TrackerEndcapN_Layer3_ID" value="64"/>
<constant name="SiTrackerBarrel_Layer4_ID" value="65"/>
<constant name="SiTrackerEndcapP_Layer4_ID" value="66"/>
<constant name="SiTrackerEndcapN_Layer4_ID" value="67"/>
<constant name="TrackerBarrel_Layer4_ID" value="65"/>
<constant name="TrackerEndcapP_Layer4_ID" value="66"/>
<constant name="TrackerEndcapN_Layer4_ID" value="67"/>
<constant name="SiTrackerBarrel_Layer5_ID" value="68"/>
<constant name="SiTrackerEndcapP_Layer5_ID" value="69"/>
<constant name="SiTrackerEndcapN_Layer5_ID" value="70"/>
<constant name="TrackerBarrel_Layer5_ID" value="68"/>
<constant name="TrackerEndcapP_Layer5_ID" value="69"/>
<constant name="TrackerEndcapN_Layer5_ID" value="70"/>
<constant name="cb_CTD_Si_ID" value="74"/>
<comment>
Start over the IDs for all-silicon, as these are mutually exclusive detectors
</comment>
<constant name="AllSiliconTrk1Assembly_ID" value="50"/>
<constant name="AllSiliconTrkBarrel1_ID" value="51"/>
<constant name="AllSiliconTrkDisk1N_ID" value="52"/>
<constant name="AllSiliconTrkDisk1P_ID" value="53"/>
<constant name="AllSiliconTrk2Assembly_ID" value="54"/>
<constant name="AllSiliconTrkBarrel2_ID" value="55"/>
<constant name="AllSiliconTrkDisk2N_ID" value="56"/>
<constant name="AllSiliconTrkDisk2P_ID" value="57"/>
<constant name="AllSiliconTrkOuterN_ID" value="58"/>
<constant name="AllSiliconTrkOuterP_ID" value="59"/>
<constant name="AllSiliconSupport_ID" value="60"/>
<comment>
===================
......@@ -369,6 +352,7 @@
============================
Tracking Detector Parameters
============================
Generic tracking space allocations
</comment>
<constant name="ForwardTracking_length" value="0.0*cm"/>
......@@ -387,27 +371,30 @@
Vertex Tracker Parameters
-------------------------
</comment>
<constant name="VertexTrackerBarrel_rmin" value="Beampipe_rmax+5.0*mm"/>
<constant name="VertexTrackerBarrel_rmax" value="150.0*mm"/>
<constant name="VertexTrackerBarrel_length" value="400.0*mm"/>
<constant name="VertexTrackerBarrel_zmax" value="VertexTrackerBarrel_length/2.0"/>
<constant name="VertexTrackerEndcapP_rmax" value="VertexTrackerBarrel_rmax"/>
<constant name="VertexTrackerEndcapN_rmax" value="VertexTrackerBarrel_rmax"/>
<constant name="VertexTrackerEndcapP_rmin" value="VertexTrackerBarrel_rmin"/>
<constant name="VertexTrackerEndcapN_rmin" value="VertexTrackerBarrel_rmin"/>
<constant name="VertexTrackerEndcapP_zmax" value="600.0*mm"/>
<constant name="VertexTrackerEndcapN_zmax" value="600.0*mm"/>
<constant name="VertexTrackerBarrel_rmin" value="Beampipe_rmax+5.0*mm"/>
<constant name="VertexTrackerBarrel_rmax" value="150.0*mm"/>
<constant name="VertexTrackerBarrel_length" value="400.0*mm"/>
<constant name="VertexTrackerBarrel_zmax" value="VertexTrackerBarrel_length/2.0"/>
<constant name="VertexTrackerEndcapP_rmax" value="VertexTrackerBarrel_rmax"/>
<constant name="VertexTrackerEndcapN_rmax" value="VertexTrackerBarrel_rmax"/>
<constant name="VertexTrackerEndcapP_rmin" value="VertexTrackerBarrel_rmin"/>
<constant name="VertexTrackerEndcapN_rmin" value="VertexTrackerBarrel_rmin"/>
<constant name="VertexTrackerEndcapP_zmax" value="600.0*mm"/>
<constant name="VertexTrackerEndcapN_zmax" value="600.0*mm"/>
<comment>
Vertex Tracking Region
</comment>
<constant name="VertexTrackingRegion_length" value="VertexTrackerEndcapP_zmax + VertexTrackerEndcapN_zmax "/>
<constant name="VertexTrackingRegion_zmin" value="VertexTrackingRegion_length/2.0"/>
<constant name="VertexTrackingRegion_rmax" value="VertexTrackingRegion_length/2.0"/>
<comment>Deprecated</comment>
<constant name="VertexTrackerOuterRadius" value="VertexTrackerBarrel_rmax"/>
<constant name="VertexTrackerInnerRadius" value="VertexTrackerBarrel_rmin"/>
<constant name="VertexTrackerOuterBarrelLength" value="VertexTrackingRegion_length"/>
<comment>Deprecated
name="VertexTrackerOuterRadius" value="VertexTrackerBarrel_rmax"
name="VertexTrackerInnerRadius" value="VertexTrackerBarrel_rmin"
name="VertexTrackerOuterBarrelLength" value="VertexTrackingRegion_length"
</comment>
<comment>
--------------------------
......@@ -423,15 +410,18 @@
<constant name="TrackerBarrelInner_zmax" value="TrackerBarrelInner_length/2.0"/>
<constant name="TrackerBarrelOuter_zmax" value="TrackerBarrelOuter_length/2.0"/>
<comment> Deprecated </comment>
<constant name="SiliconTrackerInnerRadius" value="TrackerBarrel_rmin"/>
<constant name="SiliconTrackerInnerBarrelLength" value="TrackerBarrelInner_length"/>
<constant name="SiliconTrackerOuterRadius" value="TrackerBarrel_rmax"/>
<constant name="SiliconTrackerOuterBarrelLength" value="TrackerBarrelOuter_length"/>
<constant name="SiliconTrackerOuterBarrel_zmax" value="TrackerBarrelOuter_length/2.0"/>
<comment> Deprecated
constant name="SiliconTrackerInnerRadius" value="TrackerBarrel_rmin"
constant name="SiliconTrackerInnerBarrelLength" value="TrackerBarrelInner_length"
constant name="SiliconTrackerOuterRadius" value="TrackerBarrel_rmax"
constant name="SiliconTrackerOuterBarrelLength" value="TrackerBarrelOuter_length"
constant name="SiliconTrackerOuterBarrel_zmax" value="TrackerBarrelOuter_length/2.0"
</comment>
<comment>
Central tracking boundaries
--------------------------------------------
Central tracking and PID detector boundaries
--------------------------------------------
The central tracking detectors are assumed to be symmtric about the origin.
......@@ -449,8 +439,6 @@
<constant name="tracker_region_rmax" value="Solenoid_rmax/2.0"/>
<constant name="tracker_region_zmax" value="Solenoid_length/2.0"/>
<comment>
----------------------
Calorimeter Parameters
......@@ -491,7 +479,7 @@
<constant name="EcalEndcapP_zmin" value="CentralTracking_length/2.0 + ForwardPIDLength"/>
<constant name="EcalEndcapN_zmin" value="CentralTracking_length/2.0 + BackwardPIDLength"/>
<constant name="BarrelLength" value="SiliconTrackerOuterBarrelLength + ForwardPIDLength + BackwardPIDLength" />
<constant name="BarrelLength" value="TrackerBarrelOuter_length + ForwardPIDLength + BackwardPIDLength" />
<constant name="Barrel_offset" value="(EcalEndcapP_zmin-EcalEndcapN_zmin)/2.0" />
<comment>
......
<lccdd>
<define>
<constant name="CrystalEndcap_rmin" value="VertexTrackerInnerRadius"/>
<constant name="CrystalEndcap_rmin" value="VertexTrackerBarrel_rmin"/>
<constant name="CrystalEndcap_rmax" value="EcalEndcapN_rmin"/>
<constant name="CrystalBox_x_length" value="20.0*mm"/>
<constant name="CrystalBox_y_length" value="20.0*mm"/>
......
......@@ -3,14 +3,19 @@
<define>
<constant name="ForwardRICH_zmin" value="BarrelTracking_length/2.0 + ForwardTracking_length "/>
<constant name="ForwardRICH_rmin" value="ForwardPID_rmin1"/>
<constant name="ForwardRICH_rmax0" value="SiliconTrackerOuterRadius"/>
<constant name="ForwardRICH_rmax0" value="TrackerBarrel_rmax"/>
<constant name="ForwardRICH_rmax1" value="EcalBarrel_rmin"/>
<constant name="ForwardRICH_rmax2" value="Solenoid_rmin-6*cm"/>
<constant name="ForwardRICHDepth" value="0.9*m"/>
</define>
<detectors>
<detector id="ForwardRICH_ID" name="ForwardRICH" type="refdet_ForwardRICH" readout="ForwardRICHHits" vis="RICHVis">
<detector
id="ForwardRICH_ID"
name="ForwardRICH"
type="refdet_ForwardRICH"
readout="ForwardRICHHits"
vis="RICHVis">
<dimensions
z0="ForwardRICH_zmin"
snout_length="ForwardRICH_length - ForwardRICHDepth"
......
......@@ -2,25 +2,23 @@
<lccdd>
<define>
<constant name="VertexTrackerRadius1" value="46*mm"/>
<constant name="VertexTrackerRadius2" value="54*mm"/>
<constant name="VertexTrackerRadius3" value="62*mm"/>
<constant name="VertexTrackerRadius4" value="70*mm"/>
<constant name="VertexTrackerRadius5" value="80*mm"/>
<constant name="VertexTrackerRadius6" value="95*mm"/>
<constant name="VertexTrackerRadius7" value="110*mm"/>
<constant name="VertexTrackerRadius8" value="125*mm"/>
<constant name="VertexTrackerNModules1" value="14"/>
<constant name="VertexTrackerNModules2" value="18"/>
<constant name="VertexTrackerNModules3" value="22"/>
<constant name="VertexTrackerNModules4" value="24"/>
<constant name="VertexTrackerNModules5" value="28"/>
<constant name="VertexTrackerNModules6" value="32"/>
<constant name="VertexTrackerNModules7" value="36"/>
<constant name="VertexTrackerNModules8" value="40"/>
<constant name="ITS3Thickness" value="0.03*mm"/>
<constant name="VertexBarrel_rmin1" value="3.3*cm"/>
<constant name="VertexBarrel_rmin2" value="5.7*cm"/>
<constant name="VertexBarrelModule_maxThickness" value="VertexBarrel_rmin2 - VertexBarrel_rmin1"/>
<constant name="VertexBarrel_length" value="30*cm"/>
<constant name="VertexBarrel_thickness" value="0.05/100*9.37*cm"/>
<constant name="VertexBarrelService_thickness" value="VertexBarrel_thickness-ITS3Thickness"/>
<constant name="VertexBarrel_rmin" value="VertexBarrel_rmin1"/>
<constant name="VertexBarrel_rmax" value="VertexBarrel_rmin2+VertexBarrelModule_maxThickness"/>
<constant name="VertexBarrelLayer_rOffset" value="4.0*mm"/>
<comment> TODO: These should be computed </comment>
<constant name="VertexBarrel_NModules1" value="14"/>
<constant name="VertexBarrel_NModules2" value="24"/>
<!--
<constant name="VertexTrackerEndcapP_rmin" value="VertexTrackerInnerRadius"/>
<constant name="VertexTrackerEndcapP_rmax" value="VertexTrackerOuterRadius"/>
<constant name="VertexTrackerEndcapP_zmin" value="VertexTrackerBarrel_length + 5*mm"/>
......@@ -45,83 +43,63 @@
<detectors>
<detector id="SiVertexSubAssembly_ID"
name="SiVertexSubAssembly"
<detector id="VertexSubAssembly_ID"
name="VertexSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="SiTrackerSubAssemblyVis">
vis="TrackerSubAssemblyVis">
<composite name="VertexTrackerEndcapN"/>
<composite name="VertexTrackerEndcapP"/>
<composite name="SiVertexBarrel"/>
<composite name="VertexBarrel"/>
</detector>
<detector id="SiVertexBarrel_ID" name="SiVertexBarrel" type="refdet_SiVertexBarrel"
readout="SiVertexBarrelHits" insideTrackingVolume="true" >
<dimensions rmin="VertexTrackerBarrel_rmin" rmax="VertexTrackerBarrel_rmax" length="VertexTrackerBarrel_length"/>
<detector
id="VertexBarrel_ID"
name="VertexBarrel"
type="athena_VertexBarrel"
readout="VertexBarrelHits"
insideTrackingVolume="true">
<dimensions rmin="VertexBarrel_rmin-VertexBarrelLayer_rOffset" rmax="VertexBarrel_rmax-VertexBarrelLayer_rOffset" length="VertexBarrel_length"/>
<comment> Define available modules </comment>
<module name="SOIPIXD" vis="PurpleVis">
<frame width="15*mm" height="3.0*mm" length="VertexTrackerBarrel_length" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
<module_component name="silicon" width="14.0*mm" length="VertexTrackerBarrel_length-0.1*mm"
thickness="0.05*mm" material="Silicon" sensitive="true">
<module name="Module1" vis="PurpleVis">
<frame width="15*mm" height="10.0*mm" length="VertexBarrel_length" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
<module_component name="silicon"
width="14.0*mm" length="VertexBarrel_length-0.1*mm" thickness="0.05*mm" material="Silicon" sensitive="true">
<position z="-0.025*mm" y="0*mm"/>
</module_component>
</module>
<module name="UFSD">
<frame width="15*mm" height="3.0*mm" length="VertexTrackerBarrel_length" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
<module_component name="silicon" width="14.0*mm" length="VertexTrackerBarrel_length-0.1*mm"
thickness="0.05*mm" material="Silicon" sensitive="true">
<module name="Module2">
<frame width="15*mm" height="10.0*mm" length="VertexBarrel_length" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" />
<module_component name="silicon"
width="14.0*mm" length="VertexBarrel_length-0.1*mm" thickness="0.05*mm" material="Silicon" sensitive="true">
<position z="-0.025*mm" y="0*mm"/>
</module_component>
</module>
<comment> Layers composed of many arrayed modules </comment>
<layer module="SOIPIXD" id="2" vis="SiVertexVis">
<barrel_envelope inner_r="(VertexTrackerRadius1+VertexTrackerRadius2)/2"
outer_r="(VertexTrackerRadius2+VertexTrackerRadius3)/2" z_length="VertexTrackerBarrel_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules2" phi0="0.0" rc="VertexTrackerRadius2" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="UFSD" id="3" vis="SiVertexVis">
<barrel_envelope inner_r="(VertexTrackerRadius2+VertexTrackerRadius3)/2"
outer_r="(VertexTrackerRadius3+VertexTrackerRadius4)/2" z_length="VertexTrackerBarrel_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules3" phi0="0.0" rc="VertexTrackerRadius3" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="UFSD" id="4" vis="SiVertexVis">
<barrel_envelope inner_r="(VertexTrackerRadius3+VertexTrackerRadius4)/2"
outer_r="(VertexTrackerRadius4+VertexTrackerRadius5)/2" z_length="VertexTrackerBarrel_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules4" phi0="0.0" rc="VertexTrackerRadius4" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="UFSD" id="5" vis="SiVertexVis">
<barrel_envelope inner_r="(VertexTrackerRadius4+VertexTrackerRadius5)/2"
outer_r="(VertexTrackerRadius5+VertexTrackerRadius6)/2" z_length="VertexTrackerBarrel_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules5" phi0="0.0" rc="VertexTrackerRadius5" dr="0.0 * mm"/>
<layer module="Module1" id="1" vis="VertexVis">
<barrel_envelope
inner_r="VertexBarrel_rmin1-VertexBarrelLayer_rOffset"
outer_r="VertexBarrel_rmin2-VertexBarrelLayer_rOffset"
z_length="VertexBarrel_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="VertexBarrel_NModules1" phi0="0.0" rc="VertexBarrel_rmin1" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="UFSD" id="6" vis="SiVertexVis">
<barrel_envelope inner_r="(VertexTrackerRadius5+VertexTrackerRadius6)/2"
outer_r="(VertexTrackerRadius6+VertexTrackerRadius7)/2" z_length="VertexTrackerBarrel_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules6" phi0="0.0" rc="VertexTrackerRadius6" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="SOIPIXD" id="7" vis="SiVertexVis">
<barrel_envelope inner_r="(VertexTrackerRadius6+VertexTrackerRadius7)/2"
outer_r="(VertexTrackerRadius7+VertexTrackerRadius8)/2" z_length="VertexTrackerBarrel_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules7" phi0="0.0" rc="VertexTrackerRadius7" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="SOIPIXD" id="8" vis="SiVertexVis">
<barrel_envelope inner_r="(VertexTrackerRadius7+VertexTrackerRadius8)/2"
outer_r="VertexTrackerRadius8+5*mm" z_length="VertexTrackerBarrel_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="VertexTrackerNModules8" phi0="0.0" rc="VertexTrackerRadius8" dr="0.0 * mm"/>
<layer module="Module2" id="2" vis="VertexVis">
<barrel_envelope
inner_r="VertexBarrel_rmin2-VertexBarrelLayer_rOffset"
outer_r="VertexBarrel_rmax-VertexBarrelLayer_rOffset"
z_length="VertexBarrel_length"/>
<rphi_layout phi_tilt="10.0*degree" nphi="VertexBarrel_NModules2" phi0="0.0" rc="VertexBarrel_rmin2" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
<detector id="SiVertexEndcapP_ID" name="VertexTrackerEndcapP" type="ref_DiskTracker"
<!--
<detector id="VertexEndcapP_ID" name="VertexTrackerEndcapP" type="ref_DiskTracker"
insideTrackingVolume="true" reflect="false" vis="AnlRed">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlOrange"
......@@ -156,7 +134,7 @@
</layer>
</detector>
<detector id="SiVertexEndcapN_ID" name="VertexTrackerEndcapN" type="ref_DiskTracker"
<detector id="VertexEndcapN_ID" name="VertexTrackerEndcapN" type="ref_DiskTracker"
insideTrackingVolume="true" reflect="true" vis="AnlRed">
<position x="0" y="0" z="0"/>
<layer id="1" vis="AnlOrange"
......@@ -190,15 +168,16 @@
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
</detector>
-->
</detectors>
<readouts>
<readout name="SiVertexBarrelHits">
<segmentation type="CartesianGridXY" grid_size_x="0.20*mm" grid_size_y="0.20*mm" />
<readout name="VertexBarrelHits">
<segmentation type="CartesianGridXY" grid_size_x="0.050*mm" grid_size_y="0.050*mm" />
<id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
</readout>
<readout name="VertexTrackerEndcapHits">
<readout name="VertexEndcapHits">
<segmentation type="CartesianGridXY" grid_size_x="0.20*mm" grid_size_y="0.20*mm" />
<id>system:8,barrel:2,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
</readout>
......
/control/verbose 2
/run/initialize
/gps/verbose 2
/gps/particle pi-
/gps/number 1
/gps/ene/type Gauss
/gps/ene/mono 10.0 GeV
/gps/ene/sigma 3.0 GeV
/gps/pos/type Volume
/gps/pos/shape Cylinder
/gps/pos/centre 0.0 0.0 0.0 cm
/gps/pos/radius 0.01 cm
/gps/pos/halfz 10 cm
/gps/position 0 0 0 cm
#/gps/direction 0 0.1 1.0
/gps/ang/type iso
/gps/ang/mintheta 10 degree
/gps/ang/maxtheta 170 degree
/run/beamOn 100
......@@ -48,6 +48,35 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
Volume assembly(det_name,topVolumeShape,air);
// The Cold Plate is approximately 30 mm wide and is based on the same carbon-ply layup
//as for the IB Stave. Two pipes with an inner diameter of 2.67 mm and a wall thickness
//of 64 μm have been used. The two pipes are interconnected at one end of the Cold Plate
//providing a loop, whose inlet and outlet are on the same side and correspond to the
//
//requirements have led to an equilateral section of the frame with a 42 mm wide side, that
//provides almost the same rigidity for all the possible Stave positions.
//
// module mat um
//
//Aluminium 50
//Polyimide 100
//Carbon fibre 120
//Silicon 50
//Eccobond-45 100
//
//Metal layers Aluminium 200
//Insulating layers Polyimide 200
//Glue Cooling tube wall Eccobond-45 100
//
//Carbon fleece 40
//Carbon paper 30
//Polyimide 64
//Water
//Carbon fibre 120
//Eccobond-45 100
sens.setType("tracker");
// loop over the modules
......@@ -68,7 +97,7 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
Trd1 moduleframe_part1(frame_width / 2, 0.001 * mm, m_env.length() / 2,
frame_height / 2);
Trd1 moduleframe_part2(frame_width2/2, 0.001 * mm,
m_env.length() / 2, frame_height2/2);
m_env.length() / 2 + 0.01 * mm, frame_height2/2);
SubtractionSolid moduleframe(moduleframe_part1, moduleframe_part2,Position(0.0,frame_thickness,0.0));
Volume v_module(m_nam+"_vol", moduleframe, description.material(m_env.materialStr()));
v_module.setVisAttributes(description, m_env.visStr());
......@@ -126,7 +155,7 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
int lay_id = x_layer.id();
string m_nam = x_layer.moduleStr();
string lay_nam = _toString(x_layer.id(), "layer%d");
Tube lay_tub(x_barrel.inner_r()+0.1*mm, x_barrel.outer_r()-0.1*mm, x_barrel.z_length() / 2);
Tube lay_tub(x_barrel.inner_r(), x_barrel.outer_r(), x_barrel.z_length()/2.0 );
Volume lay_vol(lay_nam, lay_tub, air); // Create the layer envelope volume.
lay_vol.setVisAttributes(description.visAttributes(x_layer.visStr()));
double phi0 = x_layout.phi0(); // Starting phi of first module.
......@@ -221,6 +250,6 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s
//@}
// clang-format off
DECLARE_DETELEMENT(BarrelTrackerWithFrame, create_detector)
DECLARE_DETELEMENT(athena_SiVertexTracker, create_detector)
DECLARE_DETELEMENT(athena_SiBarrelTracker, create_detector)
DECLARE_DETELEMENT(athena_VertexBarrel, create_detector)
DECLARE_DETELEMENT(athena_TrackerBarrel, create_detector)
DECLARE_DETELEMENT(refdet_SiVertexBarrel, create_detector)
......@@ -10,7 +10,7 @@
#include <XML/Helper.h>
#include "TMath.h"
#include "TString.h"
#include "ref_utils.h"
#include "GeometryHelpers.h"
#include "Math/Point2D.h"
#include "DDRec/Surface.h"
#include "DDRec/DetectorData.h"
......
#include "ref_utils.h"
#include "GeometryHelpers.h"
// some utility functions that can be shared
namespace ref::utils {
......
File moved
File moved
File moved
......@@ -7,7 +7,7 @@
#include "DD4hep/OpticalSurfaces.h"
#include "DD4hep/DetFactoryHelper.h"
#include "DD4hep/Printout.h"
#include "ref_utils.h"
#include "GeometryHelpers.h"
using namespace std;
using namespace dd4hep;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment