Skip to content

Commit

Permalink
Tof new geom (#796)
Browse files Browse the repository at this point in the history
### Briefly, what does this PR introduce?
Endcap TOF geometry modified to match the newest technical drawings from
https://indico.bnl.gov/event/24949/attachments/57520/98759/ePICTOF_WP2_FTOFLayout_09272024v2.pdf.

The current epic geometry has each ETOF module located separately. But
the newest drawing shows that a single power board house multiple
modules together. This PR groups modules together according to the
aforementioned drawing.

Furthermore, the current epic geometry shows that sensors are placed
facing front and backing alternatively across rows. However, the latest
drawing shows that ETOF are double sided on every row, but with sensors
placed below the service hybrid on the front side, and above the service
hybrid on the other side. Each module now contains 4 small sensors
instead of one big sensor.

Here's the updated ETOF power board configuration,


![image](https://github.com/user-attachments/assets/2f02bd94-cada-4e14-b908-b6b00ce42066)

Here's the design drawing,


![image](https://github.com/user-attachments/assets/a5216fd1-b873-49b0-bca1-c08996ed336b)

Barrel TOF is also modified. Staves are broken into two so an engagement
ring can fit in the middle. LGAD is also located on both sides
alternatively,


![image](https://github.com/user-attachments/assets/f72eb346-aaa1-408d-8953-2c8ebc7fe873)

Cooling tubes are also incorporated into the staves,


![image](https://github.com/user-attachments/assets/1c12d07f-9741-4849-8d72-80d266574b54)

Latest technical drawing shows that sensor width is half of what was
previously proposed. Sensors right next to the central engagement ring
are only half sized,


![image](https://github.com/user-attachments/assets/3d4dfcca-def7-41db-bf8a-9001a78c751e)


### What kind of change does this PR introduce?
- [ ] Bug fix (issue #__)
- [ ] New feature (issue #__)
- [ ] Documentation update
- [ x] Other: BTOF and ETOF geometry modified according to new technical
drawing

### Please check if this PR fulfills the following:
- [ ] Tests for the changes have been added
- [ ] Documentation has been added / updated
- [x] Changes have been communicated to collaborators

### Does this PR introduce breaking changes? What changes might users
need to make to their code?

No

### Does this PR change default behavior?

BTOF ETOF geometries are changed.

---------

Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
Co-authored-by: Dmitry Kalinkin <[email protected]>
  • Loading branch information
3 people authored Oct 20, 2024
1 parent 21add61 commit 7d595ab
Show file tree
Hide file tree
Showing 5 changed files with 772 additions and 216 deletions.
11 changes: 7 additions & 4 deletions compact/tracking/definitions_craterlake.xml
Original file line number Diff line number Diff line change
Expand Up @@ -41,15 +41,18 @@

<comment> Main parameters for Barrel TOF layers </comment>
<comment> Barrel TOF region </comment>
<constant name="BarrelTOF_zmin" value="112.5*cm"/>
<constant name="BarrelTOF_zmax" value="174.0*cm"/>
<constant name="BarrelTOF1_zmin" value="115.0*cm"/>
<constant name="BarrelTOF1_zmax" value="14.75*cm"/>
<constant name="BarrelTOF2_zmin" value="-15.25*cm"/>
<constant name="BarrelTOF2_zmax" value="174.0*cm"/>

<constant name="BarrelTOF_radius_design" value="64.6*cm"/>

<comment> Forward TOF region </comment>
<constant name="ForwardTOFRegion_zmin" value="174.0*cm" />
<constant name="ForwardTOFRegion_tan" value="CentralTrackingRegionP_tan" />
<constant name="ForwardTOFRegion_minR" value="8*cm" />
<constant name="ForwardTOFRegion_maxR" value="50*cm" />
<constant name="ForwardTOFRegion_minR" value="9.5*cm" />
<constant name="ForwardTOFRegion_maxR" value="60.5*cm" />
<constant name="ForwardTOF_xOffset" value="-2.75*cm" />
<constant name="ForwardTOF_det_height" value="2.0*cm" />
<constant name="ForwardTOF_length" value="min(ForwardTOFRegion_length, 2.*cm)"/>
Expand Down
122 changes: 88 additions & 34 deletions compact/tracking/tof_barrel.xml
Original file line number Diff line number Diff line change
Expand Up @@ -63,19 +63,21 @@
<constant name="BarrelTOF_rOffset2" value="1.4*cm"/>
<constant name="BarrelTOF_rmin" value="BarrelTOF_radius-BarrelTOF_rOffset1"/>
<constant name="BarrelTOF_rmax" value="BarrelTOF_radius+BarrelTOF_rOffset2"/>
<constant name="BarrelTOF_zoffset" value="0.5*(BarrelTOF_zmax - BarrelTOF_zmin)"/>
<constant name="BarrelTOF_length1" value="BarrelTOF_zmin + BarrelTOF_zmax"/>
<constant name="BarrelTOF_length2" value="BarrelTOF_length1"/>
<constant name="BarrelTOF_length" value="BarrelTOF_length2"/>
<constant name="BarrelTOF_zoffset" value="0.5*(BarrelTOF2_zmax - BarrelTOF1_zmin)"/>
<constant name="BarrelTOF1_zoffset" value="BarrelTOF_zoffset - 0.5*(BarrelTOF1_zmax - BarrelTOF1_zmin)"/>
<constant name="BarrelTOF2_zoffset" value="BarrelTOF_zoffset - 0.5*(BarrelTOF2_zmax - BarrelTOF2_zmin)"/>
<constant name="BarrelTOF1_length" value="BarrelTOF1_zmin + BarrelTOF1_zmax"/>
<constant name="BarrelTOF2_length" value="BarrelTOF2_zmin + BarrelTOF2_zmax"/>
<constant name="BarrelTOF_length" value="BarrelTOF1_zmin + BarrelTOF2_zmax"/>

<constant name="BarrelTOF_Sensor_length" value="4*cm"/>
<constant name="BarrelTOF_Sensor_deadspaceY" value="0.1*cm"/>
<constant name="BarrelTOF_Sensor_amount" value="64"/>
<constant name="BarrelTOF_Sensor_length" value="2*cm"/>
<constant name="BarrelTOF_Sensor_overlap" value="1*mm"/>
<constant name="BarrelTOF_Sensor_deadspaceY" value="2*cm - BarrelTOF_Sensor_overlap"/>
<constant name="BarrelTOF1_Sensor_amount" value="33"/>
<constant name="BarrelTOF1_Sensor_amount_back" value="33"/>
<constant name="BarrelTOF2_Sensor_amount" value="41"/>
<constant name="BarrelTOF2_Sensor_amount_back" value="40"/>

<constant name="BarrelTOF_ring_center" value="144*cm"/>
<constant name="BarrelTOF_ring_width" value="0.7*cm"/>
<constant name="BarrelTOF_Sensor_Center_before_ring" value="-0.5*BarrelTOF_length1+BarrelTOF_ring_center-BarrelTOF_ring_width-0.5*BarrelTOF_Sensor_length"/>
<constant name="BarrelTOF_First_Sensor_Center" value="-(0.5*BarrelTOF_Sensor_amount-1)*(BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY) + BarrelTOF_Sensor_Center_before_ring"/>

</define>

Expand All @@ -91,52 +93,104 @@
insideTrackingVolume="true">
<type_flags type="DetType_TRACKER + DetType_BARREL"/>
<dimensions
rmin="BarrelTOF_rmin"
rmax="BarrelTOF_rmax"
length="BarrelTOF_length"/>
rmin="BarrelTOF_rmin - 1*mm"
rmax="BarrelTOF_rmax + 1*mm"
length="BarrelTOF_length"
/>
<comment>
Tracker Barrel Modules
</comment>
<module name="BarrelTOF_Module1" vis="TOFBarrelModuleVis">
<module_component name="sensor" material="Silicon" sensitive="true" width="BarrelTOF_Sensor_width" length="BarrelTOF_Sensor_length" thickness="BarrelTOF_Sensor_thickness" vis="TOFSensorVis" >
<GridSensors start_x="BarrelTOF_Sensor_position" start_y="BarrelTOF_First_Sensor_Center" start_z="0" xdist="0" ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY" nx="1" ny="BarrelTOF_Sensor_amount" ny_before_ring="0.5*BarrelTOF_Sensor_amount" ring_extra_width="BarrelTOF_ring_width-2*BarrelTOF_Sensor_deadspaceY"/>
<comment>
keep_layer means the next module is located at the same thickness level
so you can place component side by side
Just make sure all components you placed side by side share the same thickness
</comment>
<module_component name="sensorFront" material="Silicon" sensitive="true" width="BarrelTOF_Sensor_width" length="BarrelTOF_Sensor_length" thickness="0.5*BarrelTOF_Sensor_thickness" vis="TOFSensorVis" keep_layer="true">
<GridSensors start_x="BarrelTOF_Sensor_position" start_y="-0.5*BarrelTOF1_length + BarrelTOF1_zoffset" start_z="0" xdist="0" ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY" nx="1" ny="BarrelTOF1_Sensor_amount" half_length="left"/>
</module_component>
<module_component name="hybridtop" material="Kapton" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_Hybrid_thickness" vis="TOFHybridVis" >
<position x="BarrelTOF_Service_position" y="0" z="0" />

<module_component name="sensorFront" material="Silicon" sensitive="true" width="BarrelTOF_Sensor_width" length="BarrelTOF_Sensor_length" thickness="0.5*BarrelTOF_Sensor_thickness" vis="TOFSensorVis" >
<GridSensors start_x="BarrelTOF_Sensor_position" start_y="0.5*BarrelTOF2_length-(BarrelTOF2_Sensor_amount-1)*(BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY)+BarrelTOF2_zoffset" start_z="0" xdist="0" ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY" nx="1" ny="BarrelTOF2_Sensor_amount" half_length="both"/>
</module_component>

<module_component name="hybridtop" material="Kapton" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF1_length" thickness="BarrelTOF_Hybrid_thickness" vis="TOFHybridVis" keep_layer="true">
<position x="BarrelTOF_Service_position" y="BarrelTOF1_zoffset" z="0" />
</module_component>
<module_component name="hybridtop" material="Kapton" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF2_length" thickness="BarrelTOF_Hybrid_thickness" vis="TOFHybridVis" >
<position x="BarrelTOF_Service_position" y="BarrelTOF2_zoffset" z="0" />
</module_component>

<module_component name="cfskintop" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF1_length" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" keep_layer="true">
<position x="BarrelTOF_Service_position" y="BarrelTOF1_zoffset" z="0" />
</module_component>
<module_component name="cfskintop" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF2_length" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" >
<position x="BarrelTOF_Service_position" y="BarrelTOF2_zoffset" z="0" />
</module_component>

<module_component name="cfskintop" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF1_length" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" keep_layer="true">
<position x="BarrelTOF_Service_position" y="BarrelTOF1_zoffset" z="0" />
</module_component>
<module_component name="cfskintop" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF2_length" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" >
<position x="BarrelTOF_Service_position" y="BarrelTOF2_zoffset" z="0" />
</module_component>
<module_component name="cfskintop" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" >
<position x="BarrelTOF_Service_position" y="0" z="0" />


<module_component name="cfoam" material="CarbonFoam" sensitive="false" width="BarrelTOF_CFoam_width" length="BarrelTOF1_length" thickness="BarrelTOF_CFoam_thickness" vis="TOFCFoamVis" coolingTube="true" keep_layer="true">
<position x="BarrelTOF_CFoam_position" y="BarrelTOF1_zoffset" z="0" />
<inner_tube name="cooling_tube" material="Aluminum" rmin="0.2*BarrelTOF_CFoam_thickness" rmax="0.24*BarrelTOF_CFoam_thickness"/>
<inner_tube name="coolant" material="NOVEC7200" rmin="0" rmax="0.2*BarrelTOF_CFoam_thickness" vis="TOFWater"/>
</module_component>
<module_component name="cfoam" material="CarbonFoam" sensitive="false" width="BarrelTOF_CFoam_width" length="BarrelTOF2_length" thickness="BarrelTOF_CFoam_thickness" vis="TOFCFoamVis" coolingTube="true" keep_layer="true">
<position x="BarrelTOF_CFoam_position" y="BarrelTOF2_zoffset" z="0" />
<inner_tube name="cooling_tube" material="Aluminum" rmin="0.2*BarrelTOF_CFoam_thickness" rmax="0.24*BarrelTOF_CFoam_thickness"/>
<inner_tube name="coolant" material="NOVEC7200" rmin="0" rmax="0.2*BarrelTOF_CFoam_thickness" vis="TOFWater"/>
</module_component>
<module_component name="choneycomb" material="CFRPMix" sensitive="false" width="BarrelTOF_CHoneycomb_width" length="BarrelTOF1_length" thickness="BarrelTOF_CHoneycomb_thickness" vis="TOFCHoneycombVis" keep_layer="true">
<position x="BarrelTOF_CHoneycomb_position" y="BarrelTOF1_zoffset" z="0" />
<inner_tube name="cooling_tube" material="Aluminum" rmin="0.2*BarrelTOF_CHoneycomb_thickness" rmax="0.24*BarrelTOF_CHoneycomb_thickness"/>
<inner_tube name="coolant" material="NOVEC7200" rmin="0" rmax="0.2*BarrelTOF_CHoneycomb_thickness" vis="TOFWater"/>
</module_component>
<module_component name="choneycomb" material="CFRPMix" sensitive="false" width="BarrelTOF_CHoneycomb_width" length="BarrelTOF2_length" thickness="BarrelTOF_CHoneycomb_thickness" vis="TOFCHoneycombVis">
<position x="BarrelTOF_CHoneycomb_position" y="BarrelTOF2_zoffset" z="0" />
<inner_tube name="cooling_tube" material="Aluminum" rmin="0.2*BarrelTOF_CHoneycomb_thickness" rmax="0.24*BarrelTOF_CHoneycomb_thickness"/>
<inner_tube name="coolant" material="NOVEC7200" rmin="0" rmax="0.2*BarrelTOF_CHoneycomb_thickness" vis="TOFWater"/>
</module_component>
<module_component name="coolingtube" material="Aluminum" sensitive="false" width="BarrelTOF_CoolingTube_width" length="BarrelTOF_length1" thickness="BarrelTOF_CoolingTube_thickness" vis="TOFCoolingTubeVis" >
<position x="BarrelTOF_CoolingTube_position" y="0" z="0" />

<module_component name="cfskinbottom" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF1_length" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" keep_layer="true">
<position x="BarrelTOF_Service_position" y="BarrelTOF1_zoffset" z="0" />
</module_component>
<module_component name="coolant" material="NOVEC7200" sensitive="false" width="BarrelTOF_Coolant_width" length="BarrelTOF_length1" thickness="BarrelTOF_Coolant_thickness" vis="TOFCoolantVis" >
<position x="BarrelTOF_Coolant_position" y="0" z="0" />
<module_component name="cfskinbottom" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF2_length" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" >
<position x="BarrelTOF_Service_position" y="BarrelTOF2_zoffset" z="0" />
</module_component>
<module_component name="cfoam" material="CarbonFoam" sensitive="false" width="BarrelTOF_CFoam_width" length="BarrelTOF_length1" thickness="BarrelTOF_CFoam_thickness" vis="TOFCFoamVis" >
<position x="BarrelTOF_CFoam_position" y="0" z="0" />

<module_component name="hybridbottom" material="Kapton" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF1_length" thickness="BarrelTOF_Hybrid_thickness" vis="TOFHybridVis" keep_layer="true">
<position x="BarrelTOF_Service_position" y="BarrelTOF1_zoffset" z="0" />
</module_component>
<module_component name="choneycomb" material="CFRPMix" sensitive="false" width="BarrelTOF_CHoneycomb_width" length="BarrelTOF_length1" thickness="BarrelTOF_CHoneycomb_thickness" vis="TOFCHoneycombVis" >
<position x="BarrelTOF_CHoneycomb_position" y="0" z="-1*BarrelTOF_CFoam_thickness" />
<module_component name="hybridbottom" material="Kapton" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF2_length" thickness="BarrelTOF_Hybrid_thickness" vis="TOFHybridVis" >
<position x="BarrelTOF_Service_position" y="BarrelTOF2_zoffset" z="0" />
</module_component>
<module_component name="cfskinbottom" material="CFRPMix2" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_CFSkin_thickness" vis="TOFCSkinVis" >
<position x="BarrelTOF_Service_position" y="0" z="0" />

<module_component name="sensorBack" material="Silicon" sensitive="true" width="BarrelTOF_Sensor_width" length="BarrelTOF_Sensor_length" thickness="0.5*BarrelTOF_Sensor_thickness" vis="TOFSensorVis" keep_layer="true">
<GridSensors start_x="BarrelTOF_Sensor_position" start_y="-0.5*BarrelTOF1_length+BarrelTOF_Sensor_length + BarrelTOF1_zoffset-0.5*BarrelTOF_Sensor_overlap" start_z="0" xdist="0" ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY" nx="1" ny="BarrelTOF1_Sensor_amount_back" half_length="right"/>
</module_component>
<module_component name="hybridbottom" material="Kapton" sensitive="false" width="BarrelTOF_Module_width" length="BarrelTOF_length1" thickness="BarrelTOF_Hybrid_thickness" vis="TOFHybridVis" >
<position x="BarrelTOF_Service_position" y="0" z="0" />
<module_component name="sensorBack" material="Silicon" sensitive="true" width="BarrelTOF_Sensor_width" length="BarrelTOF_Sensor_length" thickness="0.5*BarrelTOF_Sensor_thickness" vis="TOFSensorVis" >
<GridSensors start_x="BarrelTOF_Sensor_position" start_y="0.5*BarrelTOF2_length-(BarrelTOF2_Sensor_amount_back-1)*(BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY)-BarrelTOF_Sensor_length+BarrelTOF2_zoffset+0.5*BarrelTOF_Sensor_overlap" start_z="0" xdist="0" ydist="BarrelTOF_Sensor_length+BarrelTOF_Sensor_deadspaceY" nx="1" ny="BarrelTOF2_Sensor_amount_back"/>
</module_component>

</module>
<layer module="BarrelTOF_Module1" id="1" vis="TOFLayerVis">
<barrel_envelope
inner_r="BarrelTOF_rmin"
outer_r="BarrelTOF_rmax"
z_length="BarrelTOF_length+2*BarrelTOF_zOffset"
z_length="BarrelTOF_length"
z0="BarrelTOF_zoffset"/>
<layer_material surface="inner" binning="binPhi,binZ" bins0="BarrelTOF_Module_nphi" bins1="100" />
<layer_material surface="outer" binning="binPhi,binZ" bins0="BarrelTOF_Module_nphi" bins1="100" />
<rphi_layout phi_tilt="BarrelTOF_Module_tiltangle" nphi="BarrelTOF_Module_nphi" phi0="0.0" rc="BarrelTOF_radius" dr="0.0*mm"/>
<z_layout dr="0.0*mm" z0="BarrelTOF_zOffset" nz="BarrelTOF_Module_nz"/>
<z_layout dr="0.0*mm" z0="0" nz="BarrelTOF_Module_nz"/>
</layer>

</detector>
</detectors>

Expand Down
Loading

0 comments on commit 7d595ab

Please sign in to comment.