Skip to content

perf(DRICH): share CarbonSegment logical volumes within each crown ring - #1117

Open
wdconinc wants to merge 2 commits into
mainfrom
fix/drich-shared-carbon-volumes
Open

perf(DRICH): share CarbonSegment logical volumes within each crown ring#1117
wdconinc wants to merge 2 commits into
mainfrom
fix/drich-shared-carbon-volumes

Conversation

@wdconinc

Copy link
Copy Markdown
Contributor

Briefly, what does this PR introduce?

Within each aerogel corona ring, all phi-segments of the CarbonSegment structural support share the
same ConeSegment shape and material. This PR creates one logical volume per ring and places it N
times with azimuthal rotations, reducing ~82 unique TGeoVolume objects to one per crown ring (~5).

Identified via analysis of geometry DOT file from npdet_to_dot.

What is the urgency of this PR?

  • Low

What kind of change does this PR introduce?

  • Optimization (issue #__)

Please check if any of the following apply

  • AI was used in preparing this PR. Please describe usage below.

GitHub Copilot was used to identify the pattern and draft the refactoring.

Copilot AI review requested due to automatic review settings May 29, 2026 21:18
wdconinc and others added 2 commits May 29, 2026 16:18
Within each aerogel corona ring, all phi-segments have identical ConeSegment shape and material. Create one logical volume per ring and place it numSegments times with RotationZ, rather than creating ~82 unique TGeoVolume objects.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR optimizes DRICH aerogel corona support geometry by reusing one CarbonSegment logical volume per crown ring and placing it repeatedly with azimuthal rotations, reducing redundant logical volume creation while preserving the segment geometry.

Changes:

  • Replaces per-phi ConeSegment/Volume construction with one shared segment volume per crown ring.
  • Places each shared segment volume N times using RotationZ(p * segmentSpacing).
  • Simplifies segment naming to one logical volume name per crown ring.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@github-actions github-actions Bot added the topic: PID Particle identification label May 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

topic: PID Particle identification

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants