diff --git a/athena.xml b/athena.xml index a896d823c484a59a49fa46a2b5ebdd8742273fdc..a4c3f87d95a196b3cd7c96d8c10d2e6820426ecf 100644 --- a/athena.xml +++ b/athena.xml @@ -142,6 +142,16 @@ <composite name="TrackerEndcapP_Outer"/> <composite name="TrackerEndcapN_Outer"/> </detector> + + <detector id="TOFSubAssembly_ID" + name="TOFSubAssembly" + type="DD4hep_SubdetectorAssembly" + vis="TOFSubAssemblyVis"> + <composite name="BarrelTOF"/> + <composite name="ForwardTOF"/> + <composite name="BackwardTOF"/> + </detector> + <!-- <detector id="TrackerBarrelSubAssembly_Inner_ID" name="TrackerBarrelSubAssembly_Inner" @@ -177,6 +187,7 @@ <include ref="compact/central_tracker.xml"/> + <include ref="compact/tof_barrel.xml"/> <!--include ref="compact/rwell_tracker_barrel.xml"/--> <include ref="compact/cb_DIRC.xml"/> diff --git a/compact/definitions.xml b/compact/definitions.xml index ca239b3c8a8d15c32e915c3d5475bff1b2dd1dbf..9f6d5579f1b72d213c50085f65287ff0f8ec5352 100644 --- a/compact/definitions.xml +++ b/compact/definitions.xml @@ -161,13 +161,14 @@ DIRC subsystem ID: 90 Barrel TRD subsystem ID: 91 Barrel TOF subsystem ID: 92 - - Unused IDs: 93-99 + TOFSubAssembly ID: 93 + + Unused IDs: 94-99 </comment> <constant name="BarrelDIRC_ID" value="90"/> <constant name="BarrelTRD_ID" value="91"/> <constant name="BarrelTOF_ID" value="92"/> - + <constant name="TOFSubAssembly_ID" value="93"/> <comment> ===================================== diff --git a/compact/display.xml b/compact/display.xml index 28c80cb47accd3860a10f18aa7765915f8c30054..27e6d71b74b31058d6f7de82ede9594dcb66fc5d 100644 --- a/compact/display.xml +++ b/compact/display.xml @@ -41,7 +41,7 @@ <vis name="EcalEndcapVis" alpha="1.0" r="0.0" g="0.99" b="0.0" showDaughters="false" visible="true" /> <vis name="EcalBarrelVis" alpha="1.0" r="0.0" g="0.99" b="0.0" showDaughters="false" visible="true" /> - + <vis name="TOFVis" alpha="0.5" r="1" g="0" b="1" showDaughters="true" /> <vis name="SolenoidCoilVis" alpha="1.0" r="0.55" g="0.55" b="0.7" showDaughters="true" visible="true" lineStyle="solid" drawingStyle="solid" /> diff --git a/compact/tof_barrel.xml b/compact/tof_barrel.xml new file mode 100644 index 0000000000000000000000000000000000000000..7a36a9e4dfc6ac283898fef680cc4351ccacce49 --- /dev/null +++ b/compact/tof_barrel.xml @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<lccdd> + + <define> + + <constant name="BarrelTOFSpaceFrame_width" value="40.0*mm"/> + <constant name="BarrelTOFSpaceFrame_height" value="sqrt(3.0)*32.0*mm/2.0"/> + <constant name="BarrelTOFSensor_thickness" value="0.3*mm"/> + <constant name="BarrelTOFModule_thickness" value="2.00/100*9.37*cm"/> + <constant name="BarrelTOFService_thickness" value="BarrelTOFModule_thickness-BarrelTOFSensor_thickness"/> + + <comment> + Layer_rOffset is used to add inside space so the _rmin value is the nominal sensor radius. + </comment> + <constant name="BarrelTOFLayer_rOffset" value="0.5*cm"/> + + <constant name="BarrelTOF_rmin1" value="50.0*cm"/> + <constant name="BarrelTOF_rmin2" value="BarrelTOF_rmin1 + BarrelTOFSpaceFrame_width"/> + <constant name="BarrelTOF_length1" value="192.0*cm"/> + <constant name="BarrelTOF_length2" value="200.0*cm"/> + + <constant name="BarrelTOF_thickness" value="BarrelTOF_rmin2 - BarrelTOF_rmin1"/> + <constant name="BarrelTOF_length" value="BarrelTOF_length2"/> + + <comment> TODO: These should be computed </comment> + <constant name="BarrelTOF_NModules" value="80"/> + + </define> + + <display> + </display> + + <detectors> + <detector + id="BarrelTOF_ID" + name="BarrelTOF" + type="athena_TrackerBarrel" + readout="BarrelTOFHits" + insideTrackingVolume="true"> + <dimensions + rmin="BarrelTOF_rmin1-BarrelTOFLayer_rOffset" + rmax="BarrelTOF_rmin2-BarrelTOFLayer_rOffset + BarrelTOF_thickness" + length="BarrelTOF_length"/> + <comment> + Tracker Barrel Modules + </comment> + <module name="BarrelTOF_Module1" vis="OrgangeVis"> + <frame material="CarbonFiber_25percent" vis="BlueGreenVis" + width="BarrelTOFSpaceFrame_width" + height="BarrelTOFSpaceFrame_height" + length="BarrelTOF_length1" + thickness="0.1*mm" /> + <module_component name="silicon" material="Silicon" sensitive="true" + width="BarrelTOFSpaceFrame_width" length="BarrelTOF_length1-0.1*mm" thickness="BarrelTOFSensor_thickness" > + </module_component> + <module_component name="service" material="Silicon" sensitive="false" + width="BarrelTOFSpaceFrame_width" length="BarrelTOF_length1-0.1*mm" thickness="BarrelTOFService_thickness" /> + </module> + <layer module="BarrelTOF_Module1" id="1" vis="TOFVis"> + <barrel_envelope + inner_r="BarrelTOF_rmin1-BarrelTOFLayer_rOffset" + outer_r="BarrelTOF_rmin1-BarrelTOFLayer_rOffset + BarrelTOF_thickness-1.0*mm" + z_length="BarrelTOF_length"/> + <rphi_layout phi_tilt="10.0*degree" nphi="BarrelTOF_NModules" phi0="0.0" rc="BarrelTOF_rmin1" dr="0.0 * mm"/> + <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> + </layer> + </detector> + + </detectors> + + <readouts> + <readout name="BarrelTOFHits"> + <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> + </readouts> + + +</lccdd> diff --git a/compact/tof_endcap.xml b/compact/tof_endcap.xml index aa4a8fb35c92cc66945955ba4319481e80eb8169..295fb7d0437e09bbb88c14976f9669dfd84ecf48 100644 --- a/compact/tof_endcap.xml +++ b/compact/tof_endcap.xml @@ -6,49 +6,130 @@ Forward and backward TOF Parameters -------------------------- </comment> - <constant name="ForwardTOF_zmin" value="BarrelTracking_length/2.0 + ForwardTracking_length + ForwardRICH_length + ForwardTRD_length"/> - <constant name="ForwardTOF_rmin" value="ForwardPID_rmin1"/> - <constant name="ForwardTOF_rmax" value="Solenoid_rmin"/> - <constant name="BackwardTOF_zmin" value="BarrelTracking_length/2.0 + BackwardTracking_length + BackwardCherenkov_length "/> - <constant name="BackwardTOF_rmin" value="ForwardPID_rmin1"/> - <constant name="BackwardTOF_rmax" value="BarrelTracking_rmax"/> + + <constant name="TOFEndcapSensor_thickness" value="0.3*mm"/> + <constant name="TOFEndcap_thickness" value="2.00/100*9.37*cm"/> + <constant name="TOFEndcapService_thickness" value="TOFEndcap_thickness-TOFEndcapSensor_thickness"/> + <constant name="TOFEndcap_nLayers" value="2"/> + + <constant name="ForwardTOF_zmin" value="BarrelTracking_length/2.0 + ForwardTracking_length + ForwardRICH_length + ForwardTRD_length"/> + <constant name="ForwardTOF_dz" value="(ForwardTOF_length-0.4*cm)/TOFEndcap_nLayers"/> + <constant name="ForwardTOF_rmin1" value="ForwardPID_rmin1"/> + <constant name="ForwardTOF_rmin2" value="ForwardPID_rmin1"/> + <constant name="ForwardTOF_rmax1" value="Solenoid_rmin"/> + <constant name="ForwardTOF_rmax2" value="Solenoid_rmin"/> + <constant name="ForwardTOFModOpeningAngle" value="30.0*degree"/> + <constant name="ForwardTOFMod1_x1" value="2.0*ForwardTOF_rmin1*sin(ForwardTOFModOpeningAngle/2.0)"/> + <constant name="ForwardTOFMod1_x2" value="2.0*ForwardTOF_rmax1*sin(ForwardTOFModOpeningAngle/2.0)"/> + <constant name="ForwardTOFMod1_y" value="ForwardTOF_rmax1*cos(ForwardTOFModOpeningAngle/2.0) - ForwardTOF_rmin1"/> + <constant name="ForwardTOFMod2_x1" value="2.0*ForwardTOF_rmin2*sin(ForwardTOFModOpeningAngle/2.0)"/> + <constant name="ForwardTOFMod2_x2" value="2.0*ForwardTOF_rmax2*sin(ForwardTOFModOpeningAngle/2.0)"/> + <constant name="ForwardTOFMod2_y" value="ForwardTOF_rmax2*cos(ForwardTOFModOpeningAngle/2.0) - ForwardTOF_rmin2"/> + + <constant name="BackwardTOF_zmin" value="BarrelTracking_length/2.0 + BackwardTracking_length + BackwardCherenkov_length "/> + <constant name="BackwardTOF_dz" value="(BackwardTOF_length-0.4*cm)/TOFEndcap_nLayers"/> + <constant name="BackwardTOF_rmin1" value="ForwardPID_rmin1"/> + <constant name="BackwardTOF_rmin2" value="ForwardPID_rmin1"/> + <constant name="BackwardTOF_rmax1" value="BarrelTracking_rmax"/> + <constant name="BackwardTOF_rmax2" value="BarrelTracking_rmax"/> + <constant name="BackwardTOFModOpeningAngle" value="30.0*degree"/> + <constant name="BackwardTOFMod1_x1" value="2.0*BackwardTOF_rmin1*sin(BackwardTOFModOpeningAngle/2.0)"/> + <constant name="BackwardTOFMod1_x2" value="2.0*BackwardTOF_rmax1*sin(BackwardTOFModOpeningAngle/2.0)"/> + <constant name="BackwardTOFMod1_y" value="BackwardTOF_rmax1*cos(BackwardTOFModOpeningAngle/2.0) - BackwardTOF_rmin1"/> + <constant name="BackwardTOFMod2_x1" value="2.0*BackwardTOF_rmin2*sin(BackwardTOFModOpeningAngle/2.0)"/> + <constant name="BackwardTOFMod2_x2" value="2.0*BackwardTOF_rmax2*sin(BackwardTOFModOpeningAngle/2.0)"/> + <constant name="BackwardTOFMod2_y" value="BackwardTOF_rmax2*cos(BackwardTOFModOpeningAngle/2.0) - BackwardTOF_rmin2"/> </define> <detectors> - <detector - id="ForwardTOF_ID" - name="ForwardTOF" - type="ref_DiskTracker" - insideTrackingVolume="true" - reflect="false" - vis="AnlOrange"> - <position x="0" y="0" z="0.0"/> - <layer id="1" - vis="AnlOrange" - inner_z="ForwardTOF_zmin" - inner_r="ForwardTOF_rmin" - outer_r="ForwardTOF_rmax"> - <slice material="Air" thickness="ForwardTOF_length/2.0" vis="AnlOrange" /> - </layer> - </detector> - - <detector - id="BackwardTOF_ID" - name="BackwardTOF" - type="ref_DiskTracker" - insideTrackingVolume="true" - reflect="true" - vis="AnlOrange"> - <position x="0" y="0" z="0.0"/> - <layer id="1" - vis="AnlOrange" - inner_z="BackwardTOF_zmin" - inner_r="BackwardTOF_rmin" - outer_r="BackwardTOF_rmax"> - <slice material="Air" thickness="BackwardTOF_length/2.0" vis="AnlOrange" /> - </layer> - </detector> + <detector + id="ForwardTOF_ID" + name="ForwardTOF" + type="refdet_TrapEndcapTracker" + readout="TOFEndcapHits" + vis="TOFVis" + reflect="false"> + <module name="Module1" vis="OrgangeVis"> + <trd x1="ForwardTOFMod1_x1/2.0" x2="ForwardTOFMod1_x2/2.0" z="ForwardTOFMod1_y/2"/> + <module_component thickness="ITS3Thickness" material="Silicon" sensitive="true"/> + <module_component thickness="TOFEndcapService_thickness" material="Silicon"/> + </module> + <module name="Module2" vis="OrgangeVis"> + <trd x1="ForwardTOFMod2_x1/2.0" x2="ForwardTOFMod2_x2/2.0" z="ForwardTOFMod2_y/2"/> + <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true"/> + <module_component thickness="TOFEndcapService_thickness" material="Silicon"/> + </module> + <layer id="1"> + <envelope vis="TOFVis" + rmin="ForwardTOF_rmin1" + rmax="ForwardTOF_rmax1" + length="ForwardTOF_dz" + zstart="ForwardTOF_zmin" /> + <ring vis="AnlRed" + r="ForwardTOF_rmin1+ForwardTOFMod1_y/2.0" + zstart="0.0*mm" + nmodules="12" dz="2.5 * mm" module="Module1" /> + </layer> + <layer id="2"> + <envelope vis="TOFVis" + rmin="ForwardTOF_rmin2" + rmax="ForwardTOF_rmax2" + length="ForwardTOF_dz" + zstart="ForwardTOF_zmin + ForwardTOF_dz" /> + <ring vis="AnlRed" + r="ForwardTOF_rmin2+ForwardTOFMod2_y/2.0" + zstart="0.0*mm" + nmodules="12" dz="2.5 * mm" module="Module2" /> + </layer> + </detector> + <detector + id="BackwardTOF_ID" + name="BackwardTOF" + type="refdet_TrapEndcapTracker" + readout="TOFEndcapHits" + vis="TOFVis" + reflect="true"> + <module name="Module1" vis="OrgangeVis"> + <trd x1="BackwardTOFMod1_x1/2.0" x2="BackwardTOFMod1_x2/2.0" z="BackwardTOFMod1_y/2"/> + <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true"/> + <module_component thickness="TOFEndcapService_thickness" material="Silicon"/> + </module> + <module name="Module2" vis="OrgangeVis"> + <trd x1="BackwardTOFMod2_x1/2.0" x2="BackwardTOFMod2_x2/2.0" z="BackwardTOFMod2_y/2"/> + <module_component thickness="TOFEndcapSensor_thickness" material="Silicon" sensitive="true"/> + <module_component thickness="TOFEndcapService_thickness" material="Silicon"/> + </module> + <layer id="1"> + <envelope vis="TOFVis" + rmin="BackwardTOF_rmin1 + 0 * 1.2*cm" + rmax="BackwardTOF_rmax1" + length="ForwardTOF_dz" + zstart="BackwardTOF_zmin" /> + <ring vis="AnlRed" + r="BackwardTOF_rmin1+BackwardTOFMod1_y/2.0" + zstart="0.0*mm" + nmodules="12" dz="2.5 * mm" module="Module1" /> + </layer> + <layer id="2"> + <envelope vis="TOFVis" + rmin="BackwardTOF_rmin2" + rmax="BackwardTOF_rmax2" + length="BackwardTOF_dz" + zstart="BackwardTOF_zmin + BackwardTOF_dz" /> + <ring vis="AnlRed" + r="BackwardTOF_rmin2+BackwardTOFMod2_y/2.0" + zstart="0.0*mm" + nmodules="12" dz="2.5 * mm" module="Module2" /> + </layer> + </detector> </detectors> + + <readouts> + <readout name="TOFEndcapHits"> + <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>