Skip to content
Snippets Groups Projects
Commit 17f8395a authored by Sylvester Joosten's avatar Sylvester Joosten
Browse files

Revert "Resolve "Implement new hybrid tracker""

This reverts commit e98b896c
parent e98b896c
No related branches found
No related tags found
1 merge request!270Revert "Resolve "Implement new hybrid tracker""
...@@ -86,13 +86,76 @@ ...@@ -86,13 +86,76 @@
Beamline elements Beamline elements
----------------- -----------------
</comment> </comment>
<include ref="ip6/beampipe.xml" />
<comment> <comment>
Main magnet Main magnet
----------- -----------
Note: When changing magnet, also select dimensions in definitions.xml. Note: When changing magnet, also select dimensions in definitions.xml.
</comment> </comment>
<comment>
Tracker subassemblies for ACTS
------------------------------
</comment>
<detectors>
<detector id="VertexBarrelSubAssembly_ID"
name="VertexBarrelSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="VertexBarrel" />
</detector>
<detector id="VertexEndcapSubAssembly_ID"
name="VertexEndcapSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="VertexEndcapN" />
<composite name="VertexEndcapP" />
</detector>
<detector id="TrackerBarrelSubAssembly_Inner_ID"
name="TrackerBarrelSubAssembly_Inner"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerBarrel_Inner"/>
</detector>
<detector id="TrackerEndcapSubAssembly_Inner_ID"
name="TrackerEndcapSubAssembly_Inner"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerEndcapN_Inner"/>
<composite name="TrackerEndcapP_Inner"/>
</detector>
<detector id="TrackerBarrelSubAssembly_Outer_ID"
name="TrackerSubAssembly_Outer"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerBarrel_Outer"/>
<composite name="TrackerEndcapP_Outer"/>
<composite name="TrackerEndcapN_Outer"/>
</detector>
<comment>
TOF disabled for baseline
<detector id="OuterTrackingSubAssembly_ID"
name="OuterTrackingSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TOFSubAssemblyVis">
<composite name="BarrelTOF"/>
<composite name="ForwardTOF"/>
<composite name="BackwardTOF"/>
</detector>
</comment>
<detector id="OuterTrackingSubAssembly_ID"
name="OuterTrackingSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="SubAssemblyVis">
<composite name="GEMTrackerEndcapP"/>
<composite name="GEMTrackerEndcapN"/>
</detector>
</detectors>
<documentation level="10"> <documentation level="10">
## Central tracking detectors ## Central tracking detectors
</documentation> </documentation>
...@@ -101,7 +164,7 @@ ...@@ -101,7 +164,7 @@
PID detectors PID detectors
------------- -------------
</comment> </comment>
<include ref="compact/pid_config_canyonlands.xml"/> <include ref="compact/pid_config_acadia.xml"/>
<comment> <comment>
......
...@@ -86,7 +86,6 @@ ...@@ -86,7 +86,6 @@
Beamline elements Beamline elements
----------------- -----------------
</comment> </comment>
<include ref="ip6/beampipe.xml" />
<comment> <comment>
Main magnet Main magnet
...@@ -95,11 +94,76 @@ ...@@ -95,11 +94,76 @@
</comment> </comment>
<!--include ref="compact/solenoid.xml"/--> <!--include ref="compact/solenoid.xml"/-->
<comment>
Tracker subassemblies for ACTS
------------------------------
</comment>
<detectors>
<detector id="VertexBarrelSubAssembly_ID"
name="VertexBarrelSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="VertexBarrel" />
</detector>
<detector id="VertexEndcapSubAssembly_ID"
name="VertexEndcapSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="VertexEndcapN" />
<composite name="VertexEndcapP" />
</detector>
<detector id="TrackerBarrelSubAssembly_Inner_ID"
name="TrackerBarrelSubAssembly_Inner"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerBarrel_Inner"/>
</detector>
<detector id="TrackerEndcapSubAssembly_Inner_ID"
name="TrackerEndcapSubAssembly_Inner"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerEndcapN_Inner"/>
<composite name="TrackerEndcapP_Inner"/>
</detector>
<detector id="TrackerBarrelSubAssembly_Outer_ID"
name="TrackerSubAssembly_Outer"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerBarrel_Outer"/>
<composite name="TrackerEndcapP_Outer"/>
<composite name="TrackerEndcapN_Outer"/>
</detector>
<comment>
TOF disabled for baseline
<detector id="OuterTrackingSubAssembly_ID"
name="OuterTrackingSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TOFSubAssemblyVis">
<composite name="BarrelTOF"/>
<composite name="ForwardTOF"/>
<composite name="BackwardTOF"/>
</detector>
</comment>
<detector id="OuterTrackingSubAssembly_ID"
name="OuterTrackingSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="SubAssemblyVis">
<composite name="GEMTrackerEndcapP"/>
<composite name="GEMTrackerEndcapN"/>
</detector>
</detectors>
<comment> <comment>
Central tracking detectors Central tracking detectors
-------------------------- --------------------------
</comment> </comment>
<include ref="compact/tracking_config_canyonlands.xml"/> <include ref="compact/tracking_config_acadia.xml"/>
<comment> <comment>
PID detectors PID detectors
......
...@@ -94,11 +94,75 @@ ...@@ -94,11 +94,75 @@
</comment> </comment>
<!--include ref="compact/solenoid.xml"/--> <!--include ref="compact/solenoid.xml"/-->
<comment>
Tracker subassemblies for ACTS
------------------------------
</comment>
<detectors>
<detector id="VertexBarrelSubAssembly_ID"
name="VertexBarrelSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="VertexBarrel" />
</detector>
<detector id="VertexEndcapSubAssembly_ID"
name="VertexEndcapSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="VertexEndcapN" />
<composite name="VertexEndcapP" />
</detector>
<detector id="TrackerBarrelSubAssembly_Inner_ID"
name="TrackerBarrelSubAssembly_Inner"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerBarrel_Inner"/>
</detector>
<detector id="TrackerEndcapSubAssembly_Inner_ID"
name="TrackerEndcapSubAssembly_Inner"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerEndcapN_Inner"/>
<composite name="TrackerEndcapP_Inner"/>
</detector>
<detector id="TrackerBarrelSubAssembly_Outer_ID"
name="TrackerSubAssembly_Outer"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerBarrel_Outer"/>
<composite name="TrackerEndcapP_Outer"/>
<composite name="TrackerEndcapN_Outer"/>
</detector>
<comment>
TOF disabled for baseline
<detector id="OuterTrackingSubAssembly_ID"
name="OuterTrackingSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TOFSubAssemblyVis">
<composite name="BarrelTOF"/>
<composite name="ForwardTOF"/>
<composite name="BackwardTOF"/>
</detector>
</comment>
<detector id="OuterTrackingSubAssembly_ID"
name="OuterTrackingSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="SubAssemblyVis">
<composite name="GEMTrackerEndcapP"/>
<composite name="GEMTrackerEndcapN"/>
</detector>
</detectors>
<comment> <comment>
Central tracking detectors Central tracking detectors
-------------------------- --------------------------
</comment> </comment>
<include ref="compact/vertex_tracker_3layers.xml"/> <include ref="compact/vertex_tracker.xml"/>
<comment> <comment>
PID detectors PID detectors
......
...@@ -9,45 +9,6 @@ ...@@ -9,45 +9,6 @@
### Silicon tracking configuration ### Silicon tracking configuration
</documentation> </documentation>
<documentation level="5">
### Tracker subassemblies for ACTS
</documentation>
<detectors>
<detector id="VertexSubAssembly_0_ID"
name="VertexBarrelSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="VertexEndcapN" />
<composite name="VertexBarrel" />
<composite name="VertexEndcapP" />
</detector>
<detector id="TrackerSubAssembly_0_ID"
name="TrackerBarrelSubAssembly_Inner"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerEndcapN_Inner"/>
<composite name="TrackerBarrel_Inner"/>
<composite name="TrackerEndcapP_Inner"/>
</detector>
<detector id="TrackerSubAssembly_1_ID"
name="TrackerSubAssembly_Outer"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="TrackerBarrel_Outer"/>
<composite name="TrackerEndcapP_Outer"/>
<composite name="TrackerEndcapN_Outer"/>
</detector>
<detector id="TrackerSubAssembly_1_ID"
name="OuterTrackingSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="SubAssemblyVis">
<composite name="GEMTrackerEndcapP"/>
<composite name="GEMTrackerEndcapN"/>
</detector>
</detectors>
<include ref="vertex_tracker.xml"/> <include ref="vertex_tracker.xml"/>
<include ref="central_tracker.xml"/> <include ref="central_tracker.xml"/>
<include ref="gem_tracker_endcap.xml"/> <include ref="gem_tracker_endcap.xml"/>
......
<lccdd>
<display>
</display>
<define>
</define>
<documentation level="10">
### Silicon tracking configuration
</documentation>
<documentation level="5">
### Tracker subassemblies for ACTS
</documentation>
<detectors>
<detector id="VertexSubAssembly_0_ID"
name="VertexBarrelSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="VertexBarrel" />
</detector>
<detector id="TrackerSubAssembly_0_ID"
name="InnerTrackerSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="InnerTrackerEndcapN"/>
<composite name="InnerTrackerBarrel"/>
<composite name="InnerTrackerEndcapP"/>
</detector>
<detector id="TrackerSubAssembly_1_ID"
name="MedialTrackerSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="MedialTrackerEndcapN"/>
<composite name="MedialTrackerBarrel"/>
<composite name="MedialTrackerEndcapP"/>
</detector>
<detector id="TrackerSubAssembly_2_ID"
name="OuterTrackerSubAssembly"
type="DD4hep_SubdetectorAssembly"
vis="TrackerSubAssemblyVis">
<composite name="OuterTrackerEndcapNAssembly"/>
<composite name="OuterTrackerBarrel"/>
<composite name="OuterTrackerEndcapPAssembly"/>
</detector>
<detector id="TrackerCompositeEndcapN_0_ID"
name="OuterTrackerCompositeEndcapN"
type="athena_CompositeTracker"
actsType="endcap"
vis="TrackerSubAssemblyVis">
<position x="0*cm" y="0*cm" z="-1*um" />
<composite name="OuterTrackerEndcapN"/>
<composite name="GEMEndcapN"/>
</detector>
<detector id="TrackerCompositeEndcapP_0_ID"
name="OuterTrackerCompositeEndcapP"
type="athena_CompositeTracker"
actsType="endcap"
vis="TrackerSubAssemblyVis">
<position x="0*cm" y="0*cm" z="0*cm" />
<composite name="OuterTrackerEndcapP"/>
<composite name="GEMEndcapP"/>
</detector>
</detectors>
<include ref="vertex_tracker_3layers.xml"/>
<include ref="central_tracker_hybrid_v2.xml"/>
</lccdd>
...@@ -5,8 +5,8 @@ ...@@ -5,8 +5,8 @@
THis value probably can live in the file that includes this one. THis value probably can live in the file that includes this one.
</comment> </comment>
<constant name="ITS3Thickness" value="40*um"/> <constant name="ITS3Thickness" value="40*um"/>
<constant name="VertexCarbon_thickness" value="0.12*mm"/> <constant name="TrackerCarbon_thickness" value="0.12*mm"/>
<constant name="VertexEndcapAluminumThickness" value="0.15*mm"/> <constant name="TrackerEndcapAluminum_thickness" value="0.15*mm"/>
<documentation> <documentation>
#### Vertex Tracker Barrel Parameters #### Vertex Tracker Barrel Parameters
...@@ -27,14 +27,7 @@ Simple carbon fiber support shell. ...@@ -27,14 +27,7 @@ Simple carbon fiber support shell.
</documentation> </documentation>
<constant name="VertexBarrel_length" value="300.0*mm"/> <constant name="VertexBarrel_length" value="VertexTrackerBarrel_length"/>
<constant name="VertexTrackerEndcapP_rmin" value="VertexTrackingRegion_rmin"/>
<constant name="VertexTrackerEndcapN_rmin" value="VertexTrackingRegion_rmin"/>
<constant name="VertexTrackerEndcapP_rmax" value="VertexTrackingRegion_rmax"/>
<constant name="VertexTrackerEndcapN_rmax" value="VertexTrackingRegion_rmax"/>
<constant name="VertexTrackerEndcapP_zmax" value="VertexTrackingRegionP_zmax"/>
<constant name="VertexTrackerEndcapN_zmax" value="VertexTrackingRegionN_zmax"/>
<constant name="VertexBarrelLayer_length" value="VertexBarrel_length - 1*mm"/> <constant name="VertexBarrelLayer_length" value="VertexBarrel_length - 1*mm"/>
<constant name="VertexBarrelMod_length" value="VertexBarrel_length - 2*mm"/> <constant name="VertexBarrelMod_length" value="VertexBarrel_length - 2*mm"/>
...@@ -105,11 +98,8 @@ Simple carbon fiber support shell. ...@@ -105,11 +98,8 @@ Simple carbon fiber support shell.
</display> </display>
<detectors> <detectors>
<documentation level="5">
### Actual detectors
</documentation>
<detector <detector
id="VertexBarrel_0_ID" id="VertexBarrel_ID"
name="VertexBarrel" name="VertexBarrel"
type="athena_VertexBarrel" type="athena_VertexBarrel"
readout="VertexBarrelHits" readout="VertexBarrelHits"
...@@ -187,7 +177,7 @@ Simple carbon fiber support shell. ...@@ -187,7 +177,7 @@ Simple carbon fiber support shell.
</detector> </detector>
<detector <detector
id="VertexEndcapP_0_ID" id="VertexEndcapP_ID"
name="VertexEndcapP" name="VertexEndcapP"
type="athena_TrapEndcapTracker" type="athena_TrapEndcapTracker"
readout="VertexEndcapHits" readout="VertexEndcapHits"
...@@ -211,8 +201,8 @@ Simple carbon fiber support shell. ...@@ -211,8 +201,8 @@ Simple carbon fiber support shell.
<module name="Module1" vis="AnlProcess_Blue"> <module name="Module1" vis="AnlProcess_Blue">
<trd x1="VertexEndcapMod1_x1/2.0" x2="VertexEndcapMod1_x2/2.0" z="VertexEndcapMod1_y/2"/> <trd x1="VertexEndcapMod1_x1/2.0" x2="VertexEndcapMod1_x2/2.0" z="VertexEndcapMod1_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
<module_component thickness="VertexEndcapAluminumThickness" material="Aluminum"/> <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="VertexCarbon_thickness" material="CarbonFiber"/> <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module> </module>
<layer id="1"> <layer id="1">
<envelope vis="TrackerVis" <envelope vis="TrackerVis"
...@@ -230,7 +220,7 @@ Simple carbon fiber support shell. ...@@ -230,7 +220,7 @@ Simple carbon fiber support shell.
<detector <detector
id="VertexEndcapN_0_ID" id="VertexEndcapN_ID"
name="VertexEndcapN" name="VertexEndcapN"
type="athena_TrapEndcapTracker" type="athena_TrapEndcapTracker"
readout="VertexEndcapHits" readout="VertexEndcapHits"
...@@ -253,8 +243,8 @@ Simple carbon fiber support shell. ...@@ -253,8 +243,8 @@ Simple carbon fiber support shell.
<module name="Module1" vis="AnlProcess_Blue"> <module name="Module1" vis="AnlProcess_Blue">
<trd x1="VertexEndcapMod1_x1/2.0" x2="VertexEndcapMod1_x2/2.0" z="VertexEndcapMod1_y/2"/> <trd x1="VertexEndcapMod1_x1/2.0" x2="VertexEndcapMod1_x2/2.0" z="VertexEndcapMod1_y/2"/>
<module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/>
<module_component thickness="VertexEndcapAluminumThickness" material="Aluminum"/> <module_component thickness="TrackerEndcapAluminum_thickness" material="Aluminum"/>
<module_component thickness="VertexCarbon_thickness" material="CarbonFiber"/> <module_component thickness="TrackerCarbon_thickness" material="CarbonFiber"/>
</module> </module>
<layer id="1"> <layer id="1">
<envelope vis="TrackerVis" <envelope vis="TrackerVis"
...@@ -270,6 +260,58 @@ Simple carbon fiber support shell. ...@@ -270,6 +260,58 @@ Simple carbon fiber support shell.
</layer> </layer>
</detector> </detector>
<!--
<detector id="VertexEndcapP_ID"
name="VertexEndcapP"
type="athena_SimpleDiskTracker"
readout="VertexEndcapHits"
insideTrackingVolume="true"
reflect="false" vis="TrackerVis">
<position x="0" y="0" z="0.0*mm"/>
<layer id="1" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 0.5*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin-3*mm"
outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
<slice material="Silicon" thickness="1.0*mm" vis="AnlOrange" sensitive="true"/>
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="2" vis="AnlOrange"
inner_z="VertexTrackerEndcapP_zmin + 1.5*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapP_rmin"
outer_r="VertexTrackerEndcapP_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
<slice material="Silicon" thickness="1.0*mm" vis="AnlOrange" sensitive="true"/>
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
</detector>
<detector id="VertexEndcapN_ID"
name="VertexEndcapN"
type="athena_SimpleDiskTracker"
readout="VertexEndcapHits"
insideTrackingVolume="true"
reflect="true" vis="TrackerVis">
<position x="0" y="0" z="-0.0*mm-1.0e-9*mm"/>
<layer id="1" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 0.5*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
<slice material="Silicon" thickness="1.0*mm" vis="AnlOrange" sensitive="true"/>
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
<layer id="2" vis="AnlOrange"
inner_z="VertexTrackerEndcapN_zmin + 1.5*VertexTrackerEndcap_delta"
inner_r="VertexTrackerEndcapN_rmin"
outer_r="VertexTrackerEndcapN_rmax">
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
<slice material="Silicon" thickness="1.0*mm" vis="AnlOrange" sensitive="true"/>
<slice material="Air" thickness="1.0*mm" vis="AnlOrange" />
</layer>
</detector>
-->
</detectors> </detectors>
<readouts> <readouts>
......
<?xml version="1.0" encoding="UTF-8"?>
<lccdd>
<define>
<comment>
Main parameters
</comment>
<constant name="SiVertexSensor_thickness" value="40*um"/>
<constant name="VertexBarrelMod_length" value="280.0*mm"/>
<constant name="VertexBarrelMod_rmin" value="3.3*cm"/>
<constant name="VertexBarrelMod_offset" value="1.05*cm"/>
<constant name="VertexBarrelMod_count" value="3"/>
<constant name="VertexBarrelShell_thickness" value="300.0*um"/>
<documentation>
#### Vertex Tracker Barrel Parameters
- The sensor modules are 2 half-cylinders.
- There are 2 sensitive layers
- Each sensor has a thickness is 40um
- There is an outer shell for structural support 300um thick.
- The ID of this shell is set (arbitrarily) to 10 cm.
##### Sensor layers
Currently there are 2 sensor layers. Each is composed of 2 half-cylinders modules with only 40um of silicon thickness.
##### Support shell
Simple carbon fiber support shell.
</documentation>
<constant name="VertexBarrelEnvelope_length" value="VertexTrackingRegion_length"/>
<constant name="VertexBarrelLayer_length" value="VertexBarrelEnvelope_length - 1*mm"/>
<constant name="VertexBarrelLayer_thickness" value="0.2*cm"/>
<constant name="VertexBarrelMod_thickness" value="0.1*cm"/>
<constant name="VertexBarrelMod1_rmin" value="VertexBarrelMod_rmin"/>
<constant name="VertexBarrelMod2_rmin" value="VertexBarrelMod_rmin + 1 * VertexBarrelMod_offset"/>
<constant name="VertexBarrelMod3_rmin" value="VertexBarrelMod_rmin + 2 * VertexBarrelMod_offset"/>
<constant name="VertexBarrelLayer1_rmin" value="VertexBarrelMod_rmin - VertexBarrelLayer_thickness/2.0"/>
<constant name="VertexBarrelLayer1_rmax" value="VertexBarrelLayer1_rmin + VertexBarrelLayer_thickness"/>
<constant name="VertexBarrelLayer2_rmin" value="VertexBarrelLayer1_rmin + 1 * VertexBarrelMod_offset"/>
<constant name="VertexBarrelLayer2_rmax" value="VertexBarrelLayer2_rmin + VertexBarrelLayer_thickness"/>
<constant name="VertexBarrelLayer3_rmin" value="VertexBarrelLayer1_rmin + 2 * VertexBarrelMod_offset"/>
<constant name="VertexBarrelLayer3_rmax" value="VertexBarrelLayer3_rmin + VertexBarrelLayer_thickness"/>
<comment>
"Support" is to "shell" like "layer" is to "module", and is need for the flat stave barrel implementation.
</comment>
<constant name="VertexBarrelShell_rmin" value="VertexBarrelMod_rmin + VertexBarrelMod_count * VertexBarrelMod_offset"/>
<constant name="VertexBarrelShell_rmax" value="VertexBarrelShell_rmin + VertexBarrelShell_thickness"/>
<constant name="VertexBarrelShell_length" value="VertexBarrelMod_length"/>
<constant name="VertexBarrelSupport_thickness" value="0.1*cm"/>
<constant name="VertexBarrelSupport_rmin" value="VertexBarrelShell_rmin-VertexBarrelSupport_thickness/2.0"/>
<constant name="VertexBarrelSupport_rmax" value="VertexBarrelSupport_rmin + VertexBarrelSupport_thickness"/>
<constant name="VertexBarrelSupport_length" value="VertexBarrelLayer_length"/>
<comment>
Extra parameters to approximate a cylinder as a set of skinny staves
due to ACTS limitations.
</comment>
<constant name="VertexBarrelStave_count" value="128"/>
<constant name="VertexBarrelStave1_width" value="2*VertexBarrelMod1_rmin * tan(180*degree/VertexBarrelStave_count)"/>
<constant name="VertexBarrelStave2_width" value="2*VertexBarrelMod2_rmin * tan(180*degree/VertexBarrelStave_count)"/>
<constant name="VertexBarrelStave3_width" value="2*VertexBarrelMod3_rmin * tan(180*degree/VertexBarrelStave_count)"/>
<constant name="VertexBarrelShellStave_width" value="2*VertexBarrelShell_rmin * tan(180*degree/VertexBarrelStave_count)"/>
</define>
<display>
</display>
<detectors>
<documentation level="5">
### Actual detectors
</documentation>
<detector
id="VertexBarrel_0_ID"
name="VertexBarrel"
type="athena_VertexBarrel"
readout="VertexBarrelHits"
insideTrackingVolume="true">
<dimensions
rmin="VertexBarrelLayer1_rmin"
rmax="VertexBarrelSupport_rmax"
length="VertexBarrelEnvelope_length" />
<comment>Vertex Barrel Modules</comment>
<module name="Module1" vis="VertexLayerVis">
<module_component name="ITS3"
material="Silicon"
sensitive="true"
width="VertexBarrelStave1_width"
length="VertexBarrelMod_length"
thickness="SiVertexSensor_thickness"
vis="VertexLayerVis" />
</module>
<module name="Module2" vis="VertexLayerVis">
<module_component name="ITS3"
material="Silicon"
sensitive="true"
width="VertexBarrelStave2_width"
length="VertexBarrelMod_length"
thickness="SiVertexSensor_thickness"
vis="VertexLayerVis" />
</module>
<module name="Module3" vis="VertexLayerVis">
<module_component name="ITS3"
material="Silicon"
sensitive="true"
width="VertexBarrelStave3_width"
length="VertexBarrelMod_length"
thickness="SiVertexSensor_thickness"
vis="VertexLayerVis" />
</module>
<module name="SupportShell" vis="VertexSupportVis">
<module_component name="CF Shell"
material="CarbonFiber"
sensitive="false"
width="VertexBarrelShellStave_width"
length="VertexBarrelShell_length"
thickness="VertexBarrelShell_thickness"
vis="VertexSupportVis" />
</module>
<comment> Layers composed of many arrayed modules </comment>
<layer module="Module1" id="1" vis="VertexLayerVis">
<barrel_envelope
inner_r="VertexBarrelLayer1_rmin"
outer_r="VertexBarrelLayer1_rmax"
z_length="VertexBarrelLayer_length" />
<layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" />
<comment>
phi0 : Starting phi of first module.
phi_tilt : Phi tilt of a module.
rc : Radius of the module center.
nphi : Number of modules in phi.
rphi_dr : The delta radius of every other module.
z0 : Z position of first module in phi.
nz : Number of modules to place in z.
dr : Radial displacement parameter, of every other module.
</comment>
<rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod1_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="Module2" id="2" vis="VertexLayerVis">
<barrel_envelope
inner_r="VertexBarrelLayer2_rmin"
outer_r="VertexBarrelLayer2_rmax"
z_length="VertexBarrelLayer_length" />
<layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" />
<rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod2_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="Module3" id="3" vis="VertexLayerVis">
<barrel_envelope
inner_r="VertexBarrelLayer3_rmin"
outer_r="VertexBarrelLayer3_rmax"
z_length="VertexBarrelLayer_length" />
<layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" />
<rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelMod3_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
<layer module="SupportShell" id="VertexBarrelMod_count + 1" vis="VertexSupportVis">
<barrel_envelope
inner_r="VertexBarrelSupport_rmin"
outer_r="VertexBarrelSupport_rmax"
z_length="VertexBarrelSupport_length" />
<layer_material surface="outer" binning="binPhi,binZ" bins0="VertexBarrelStave_count" bins1="100" />
<rphi_layout phi_tilt="0.0*degree" nphi="VertexBarrelStave_count" phi0="0.0" rc="VertexBarrelShell_rmin" dr="0.0 * mm"/>
<z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/>
</layer>
</detector>
</detectors>
<readouts>
<readout name="VertexBarrelHits">
<segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" />
<id>system:8,layer:4,module:12,sensor:2,x:32:-16,y:-16</id>
</readout>
</readouts>
</lccdd>
//==========================================================================
// Based off DD4hep_SubDetectorAssembly
//
// This is a simple plugin to allow compositing different detectors
// into a single barrel or endcap for ACTS
// Note: positive/negative position strings differentiate between
// positive/negative endcaps
//--------------------------------------------------------------------------
#include "DD4hep/DetFactoryHelper.h"
#include "DD4hep/Printout.h"
#include "XML/Utilities.h"
#include "Acts/Plugins/DD4hep/ActsExtension.hpp"
using namespace dd4hep;
using namespace dd4hep::detail;
static Ref_t create_element(Detector& description, xml_h e, Ref_t)
{
xml_det_t x_det(e);
const std::string det_name = x_det.nameStr();
DetElement sdet(det_name, x_det.id());
Volume vol;
Position pos;
const bool usePos = x_det.hasChild(_U(position));
sdet.setType("compound");
xml::setDetectorTypeFlag(e, sdet);
const std::string actsType = getAttrOrDefault(x_det, _Unicode(actsType), "endcap");
printout(DEBUG, det_name, "+++ Creating composite tracking detector (type: " + actsType + ")");
assert(actsType == "barrel" || actsType == "endcap");
// ACTS extension
{
Acts::ActsExtension* detWorldExt = new Acts::ActsExtension();
detWorldExt->addType(actsType, "detector");
sdet.addExtension<Acts::ActsExtension>(detWorldExt);
}
if (usePos) {
pos = Position(x_det.position().x(), x_det.position().y(), x_det.position().z());
}
vol = Assembly(det_name);
vol.setAttributes(description, x_det.regionStr(), x_det.limitsStr(), x_det.visStr());
Volume mother = description.pickMotherVolume(sdet);
PlacedVolume pv;
if (usePos) {
pv = mother.placeVolume(vol, pos);
} else {
pv = mother.placeVolume(vol);
}
sdet.setPlacement(pv);
for (xml_coll_t c(x_det, _U(composite)); c; ++c) {
xml_dim_t component = c;
const std::string nam = component.nameStr();
description.declareParent(nam, sdet);
}
return sdet;
}
DECLARE_DETELEMENT(athena_CompositeTracker, create_element)
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