DRICH: move PDU placements into per-sector sensorbox subvolumes#1115
Open
wdconinc wants to merge 1 commit into
Open
DRICH: move PDU placements into per-sector sensorbox subvolumes#1115wdconinc wants to merge 1 commit into
wdconinc wants to merge 1 commit into
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR restructures the dRICH geometry so that the 210 PDU assemblies in each sector are placed inside a dedicated per-sector “sensorbox” gas subvolume, reducing the number of direct daughters under DRICH_gas and improving TGeo voxelisation/navigation performance for optical photon tracking.
Changes:
- Add per-sector sensorbox gas subvolumes (
DRICH_sensorbox_sec{N}) placed intoDRICH_gasusing the existinggasvolSensorboxTubesolid. - Move PDU placements from direct children of
DRICH_gasto children of the corresponding per-sector sensorbox, transforming placements into the sensorbox local frame viasensorboxGasPlacement.Inverse() * pduAssemblyPlacement.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
Contributor
Author
|
As in #1051, this introduces changes in the number of steps (boundary injected) so hits are in general going to be different. |
Contributor
Author
(ignore the fEcalWScFi line which is the impact from #1051 in this forward region; also, time per event is inflated due to profiling instrumentation) |
Group the 210 PDU assemblies per sector into dedicated per-sector gas
subvolumes (DRICH_sensorbox_sec{N}) to reduce the number of direct
daughters of DRICH_gas from 1,269 to 15. This improves TGeo voxelisation
and navigation performance for optical photon tracking.
Structure before:
DRICH_gas: 1,269 daughters (aerogel + airgap + filter + 6 mirrors + 6×210 PDUs)
Structure after:
DRICH_gas: 15 daughters (aerogel + airgap + filter + 6 mirrors + 6 sensorboxes)
DRICH_sensorbox_sec{N}: 210 PDU daughters each
The gasvolSensorboxTube solid was already defined for inclusion in the
gasvolUnion. The per-sector gas volumes use the same solid and are placed
at the same position as the union contribution. PDU placements are adjusted
to be in the sensorbox local coordinate frame via the composed inverse
transform. physVolIDs (sector, pdu, sipm) and optical skin surfaces are
unaffected.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ad29451 to
df2bf72
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Group the 210 PDU assemblies per sector into dedicated per-sector gas subvolumes (
DRICH_sensorbox_sec{N}) to reduce the number of direct daughters ofDRICH_gasfrom 1,269 to 15. This improves TGeo voxelisation and navigation performance for optical photon tracking in Geant4.Motivation
Perfetto-traced forward-θ simulation (θ ∈ [3°, 25°], 2 events) showed:
DRICH_gashad 1,269 daughters (6 × 210 PDU assemblies + aerogel + airgap + filter + 6 mirrors)Geometry change
Before:
After:
Implementation
The
gasvolSensorboxTubesolid was already defined (and used in the gas union solid). Per-sectorVolumeobjects are created using this solid with the same gas material, placed ingasvolVolat the same position as the union contribution. PDU placement transforms are adjusted to the sensorbox local coordinate frame via the composed inverse transform.No changes to:
sector,pdu,sipm) — still set at the same levelspssVol, unaffected by hierarchy)pduAssemblyPlacementin gas coordinates for position calculations)