diff --git a/compact/tof_barrel.xml b/compact/tof_barrel.xml index a673413c45fd38dde79a4f7bf7407c79f00afb5d..d179609272d89c3876da043f86ade470a4d2d64d 100644 --- a/compact/tof_barrel.xml +++ b/compact/tof_barrel.xml @@ -1,124 +1,70 @@ -<?xml version="1.0" encoding="UTF-8"?> <lccdd> + <define> + <constant name="LGADThickness" value=".085*mm"/> + + <constant name="TofBarrelThickness" value="0.55/100*9.37*cm"/> + <constant name="TofBarrelServiceThickness" value="TrkBarrelThickness-LGADThickness"/> - <constant name="BarrelTOFRadius" value=" 45*cm"/> - <constant name="BarrelTOFTotalLength" value="120*cm"/> - <constant name="BarrelTOFTotalThickness" value="50*mm"/> - <constant name="BarrelTOFModulesNPhi" value="30"/> - <constant name="BarrelTOFModulesNZ" value="6"/> - <constant name="BarrelTOFModuleWidth" value="30"/> - <constant name="BarrelTOFModuleLength" value="BarrelTOFTotalLength/BarrelTOFModulesNZ"/> - - <constant name="BarrelTOFThickness_PEEK" value="0.02*cm" /> - <constant name="BarrelTOFThickness_Fiber1" value="0.016*cm" /> - <constant name="BarrelTOFThickness_Rohacell" value="0.02*cm" /> - <constant name="BarrelTOFThickness_Epoxy" value="0.0175*cm" /> - <constant name="BarrelTOFThickness_Fiber2" value="0.016*cm" /> - <constant name="BarrelTOFThickness_Si1" value="0.05*mm" /> - <constant name="BarrelTOFThickness_SiDead1" value="0.15*mm" /> - <constant name="BarrelTOFThickness_Si2" value="0.05*mm" /> - <constant name="BarrelTOFThickness_Kapton" value="3*mil" /> - <constant name="BarrelTOFThickness_Copper" value="0.00038*cm" /> - <constant name="BarrelTOFModuleThickness" value="BarrelTOFThickness_PEEK + BarrelTOFThickness_Fiber1 + BarrelTOFThickness_Rohacell + BarrelTOFThickness_Epoxy + BarrelTOFThickness_Fiber2 - + BarrelTOFThickness_Si1 + BarrelTOFThickness_SiDead1 + BarrelTOFThickness_Si2 + BarrelTOFThickness_Kapton + BarrelTOFThickness_Copper " /> - <constant name="BarrelTOFP0" value="-BarrelTOFTotalThickness/2.0 + BarrelTOFThickness_PEEK/2.0" /> - <constant name="BarrelTOFP1" value="BarrelTOFP0 + BarrelTOFThickness_PEEK/2 + BarrelTOFThickness_Fiber1/2" /> - <constant name="BarrelTOFP2" value="BarrelTOFP1 + BarrelTOFThickness_Fiber1/2 + BarrelTOFThickness_Rohacell/2" /> - <constant name="BarrelTOFP3" value="BarrelTOFP2 + BarrelTOFThickness_Epoxy/2 + BarrelTOFThickness_Rohacell/2" /> - <constant name="BarrelTOFP4" value="BarrelTOFP3 + BarrelTOFThickness_Fiber2/2 + BarrelTOFThickness_Epoxy/2 " /> - <constant name="BarrelTOFP5" value="BarrelTOFP4 + BarrelTOFThickness_Si1/2+ BarrelTOFThickness_Fiber2/2 " /> - <constant name="BarrelTOFP6" value="BarrelTOFP5 + BarrelTOFThickness_SiDead1/2 + BarrelTOFThickness_Si1/2" /> - <constant name="BarrelTOFP7" value="BarrelTOFP6 + BarrelTOFThickness_Kapton/2+BarrelTOFThickness_SiDead1/2 " /> - <constant name="BarrelTOFP8" value="BarrelTOFP7 + BarrelTOFThickness_Copper/2+BarrelTOFThickness_Kapton/2" /> + <constant name="TofBarrel1Radius" value="25.0*cm"/> + <constant name="TofBarrel1Length" value="60.0*cm"/> + <constant name="TofBarrel2Radius" value="45.0*cm"/> + <constant name="TofBarrel2Length" value="120.0*cm"/> </define> + <limits> + </limits> + + <regions> + </regions> + <display> </display> <detectors> - <detector id="BarrelTOFSubAssembly_ID" - name="BarrelTOFSubAssembly" - type="DD4hep_SubdetectorAssembly" - vis="BarrelTOFSubAssemblyVis"> - <composite name="BarrelTOF"/> + <detector id="TofBarrel1Assembly_ID" name="TofBarrelAssembly1" type="DD4hep_SubdetectorAssembly" vis="AnlGreen"> + <composite name="TofBarrel1" /> </detector> - - <detector id="BarrelTOF_ID" name="BarrelTOF" type="refdet_BarrelTOF" - readout="BarrelTOFHits" insideTrackingVolume="true" > - <dimensions rmin="BarrelTOFRadius" rmax="BarrelTOFRadius + BarrelTOFTotalThickness" length="BarrelTOFTotalLength"/> - - <comment> Define available modules </comment> - <module name="UFSD"> - <frame width="15*mm" height="3.0*mm" length="BarrelTOFTotalLength" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" /> - <module_component name="silicon" width="14.0*mm" length="BarrelTOFTotalLength-0.1*mm" - thickness="0.05*mm" material="Silicon" sensitive="true"> - <position z="-0.025*mm" y="0*mm"/> - </module_component> - <!-- - <frame width="BarrelTOFModuleWidth" height="3.0*mm" length="BarrelTOFModuleLength" thickness="0.1 * mm" material="CarbonFiber_25percent" vis="BlueGreenVis" /> - <module_component width="BarrelTOFModuleWidth*0.9" length="BarrelTOFModuleLength*0.9" thickness="BarrelTOFThickness_PEEK" material="PEEK" sensitive="false"> - <position x="BarrelTOFP0" /> - </module_component>--> - <!-- - <module_component width="BarrelTOFModuleWidth" length="BarrelTOFModuleLength" thickness="BarrelTOFThickness_Fiber1" material="CarbonFiber_50D" sensitive="false"> - <position x="BarrelTOFP1" /> - </module_component> - <module_component width="BarrelTOFModuleWidth" length="BarrelTOFModuleLength" thickness="BarrelTOFThickness_Rohacell" material="Rohacell31_50D" sensitive="false"> - <position x="BarrelTOFP2" /> - </module_component> - <module_component width="BarrelTOFModuleWidth" length="BarrelTOFModuleLength" thickness="BarrelTOFThickness_Epoxy" material="Epoxy" sensitive="false"> - <position x="BarrelTOFP3" /> - </module_component> - <module_component width="BarrelTOFModuleWidth" length="BarrelTOFModuleLength" thickness="BarrelTOFThickness_Fiber2" material="CarbonFiber_50D" sensitive="false"> - <position x="BarrelTOFP4" /> - </module_component> - <module_component width="BarrelTOFModuleWidth" length="BarrelTOFModuleLength" thickness="BarrelTOFThickness_Si1" material="Silicon" sensitive="true"> - <position x="BarrelTOFP5" /> - </module_component> - <module_component width="BarrelTOFModuleWidth" length="BarrelTOFModuleLength" thickness="BarrelTOFThickness_SiDead1" material="Silicon" sensitive="false"> - <position x="BarrelTOFP6" /> - </module_component> - <module_component width="BarrelTOFModuleWidth*0.9" length="BarrelTOFModuleLength*0.9" thickness="BarrelTOFThickness_Kapton*0.5" material="Kapton" sensitive="false"> - <position x="BarrelTOFP7" /> - </module_component> - <module_component width="BarrelTOFModuleWidth*0.9" length="BarrelTOFModuleLength*0.9" thickness="BarrelTOFThickness_Copper*0.5" material="Copper" sensitive="false"> - <position x="BarrelTOFP8" /> - </module_component>--> + <detector id="TofBarrel1_ID" name="TofBarrel1" type="refdet_CylinderTrackerBarrel" readout="LGADHits"> + <module name="Module1" id="1" vis="AnlGreen"> + <module_envelope rmin="TofBarrel1Radius" thickness="TofBarrelThickness" length="TofBarrel1Length" phi="360*degree" /> + <module_component rmin="TofBarrel1Radius" thickness="LGADThickness" material="Silicon" name="LGAD" sensitive="true" /> + <module_component rmin="TofBarrel1Radius + LGADThickness" thickness="TofBarrelServiceThickness" material="Silicon" name="TofBarrel1Services" /> </module> - - <comment> Layers composed of many arrayed modules </comment> - <!--<layer module="UFSD" id="1" vis="BarrelTOFVis"> - <barrel_envelope inner_r="BarrelTOFRadius-10*mm" - outer_r="BarrelTOFRadius+10*mm" z_length="BarrelTOFTotalLength"/> - <rphi_layout phi_tilt="10.0*degree" nphi="BarrelTOFModulesNPhi" phi0="0.0" rc="BarrelTOFRadius" dr="0.0 * mm"/> - <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="BarrelTOFModulesNZ"/> + <layer module="Module1" id="1" vis="AnlGreen"> + <barrel_envelope inner_r="TofBarrel1Radius" outer_r="TofBarrel1Radius + TofBarrelThickness" z_length="TofBarrel1Length" /> + <rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="TofBarrel1Radius" dr="0.0*mm" /> + <z_layout dr="0.0*mm" z0="0" nz="1" /> </layer> + </detector> - <layer module="BarrelTOFModule_Layer" id="2" vis="GreenVis"> - <barrel_envelope inner_r="BarrelTOFRadius" outer_r="BarrelTOFRadius + 30.0*mm" z_length="BarrelTOFTotalLength +1.0*mm "/> - <rphi_layout phi_tilt="0.17506" nphi="BarrelTOFModulesNPhi" phi0="0." rc="BarrelTOFRadius + 10.0 * mm" dr="0.0 * mm"/> - <z_layout dr="4.0 * mm" - z0="(BarrelTOFTotalLength - BarrelTOFModuleLength)/2" - nz="BarrelTOFModulesNZ"/>--> - <layer module="UFSD" id="8" vis="SiVertexVis"> - <barrel_envelope inner_r="BarrelTOFRadius" - outer_r="BarrelTOFRadius + 30.0*mm" z_length="BarrelTOFTotalLength"/> - <rphi_layout phi_tilt="10.0*degree" nphi="BarrelTOFModulesNPhi" phi0="0.0" rc="BarrelTOFRadius + 10.0 * mm" dr="0.0 * mm"/> - <z_layout dr="0.0 * mm" z0="0.0 * mm" nz="1"/> + <detector id="TofBarrel2Assembly_ID" name="TofBarrelAssembly2" type="DD4hep_SubdetectorAssembly" vis="AnlGreen"> + <composite name="TofBarrel2" /> + </detector> + <detector id="TofBarrel2_ID" name="TofBarrel2" type="refdet_CylinderTrackerBarrel" readout="LGADHits"> + <module name="Module1" id="1" vis="AnlGreen"> + <module_envelope rmin="TofBarrel2Radius" thickness="TofBarrelThickness" length="TofBarrel2Length" phi="360*degree" /> + <module_component rmin="TofBarrel2Radius" thickness="LGADThickness" material="Silicon" name="LGAD" sensitive="true" /> + <module_component rmin="TofBarrel2Radius + LGADThickness" thickness="TofBarrelServiceThickness" material="Silicon" name="TofBarrel2Services" /> + </module> + <layer module="Module1" id="1" vis="AnlGreen"> + <barrel_envelope inner_r="TofBarrel2Radius" outer_r="TofBarrel2Radius + TofBarrelThickness" z_length="TofBarrel2Length" /> + <rphi_layout phi_tilt="0.0" nphi="1" phi0="0.0" rc="TofBarrel2Radius" dr="0.0*mm" /> + <z_layout dr="0.0*mm" z0="0" nz="1" /> </layer> </detector> - </detectors> - <readouts> - <readout name="BarrelTOFHits"> - <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 name="LGADHits"> + <segmentation type="CartesianGridXY" grid_size_x="0.010*mm" grid_size_y="0.010*mm" /> + <id>system:8,barrel:3,layer:4,module:7,sensor:2,x:32:-16,y:-16</id> </readout> </readouts> + <plugins> + </plugins> + <fields> + </fields> </lccdd> - diff --git a/src/SiVertexBarrel_geo.cpp b/src/SiVertexBarrel_geo.cpp index d03da5a244db7a4707cfc339eeb32a86bacabb15..3a0927d2cb50ca8a194fb58795ed7278f7ea46ba 100644 --- a/src/SiVertexBarrel_geo.cpp +++ b/src/SiVertexBarrel_geo.cpp @@ -221,4 +221,3 @@ static Ref_t create_detector(Detector& description, xml_h e, SensitiveDetector s //@} // clang-format off DECLARE_DETELEMENT(refdet_SiVertexBarrel, create_detector) -DECLARE_DETELEMENT(refdet_BarrelTOF, create_detector)