Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug fix on Barrel TOF sensors having incorrect segmentation. #834

Merged
merged 8 commits into from
Mar 4, 2025

Conversation

ssedd1123
Copy link
Contributor

Briefly, what does this PR introduce?

We realize that the cell positions are not in the correct places on some BTOF sensors. Specifically, the cell center for the half-sensors immediately to the left and right of the central gap for the engagement ring are all incorrect. This issue is caused by the segmentation class (CartesianGridXY) applying the wrong offset on the half-sensors. Unfortunately, I do not know of a way to apply a different offset value just for the half-sensor while keeping the original value for the normal sensor.

This pull request resolves that issue by making all sensors half-sized. A full sensor is simply two half-sensors placed side-by-side.

Please read our discussion on the ePIC AC-LGAD TOF weekly meeting for details: https://indico.bnl.gov/event/27008/contributions/103896/attachments/60237/103439/BTOF_geometry_bug_EIC_EPIC.pdf

What kind of change does this PR introduce?

  • [x ] Bug fix (issue #__)
  • New feature (issue #__)
  • Documentation update
  • Other: __

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?

BTOF now uses CartesianStripX for segmentation rather than CartesianGridXY. However, the field names for cellID remains unchanged since I renamed the identifies for CartesianStripX to match the behavior of CartesianGridXY.

Does this PR change default behavior?

No.

ssedd1123 and others added 3 commits February 21, 2025 17:38
… two halve size sensors side-by-side. If sensor sizes are allowed to vary, the x-offset value in CartesianGridXY will either messed up the segmentation of full or halve size sensors. You can't satisfy both since the offset value depend on sensor size. The only solution is to only use sensors of the same size across the entire BTOF.
@github-actions github-actions bot added topic: barrel Mid-rapidity detectors topic: forward Positive-rapidity detectors (hadron-going side) topic: PID Particle identification labels Feb 27, 2025
@veprbl
Copy link
Member

veprbl commented Feb 28, 2025

Just a note, I think you can solve it simpler, with multi segmentation defining which offset is used. That would be also future-proof if you need to reposition half sensors with respect to the others.

<segmentation type="MultiSegmentation" key="sensor">
<comment> Strip segmentations ("strip" field !=0) are not used at simulation time but only in digitization at reconstruction time, see digitization class, "MPGDTrackerDigi". </comment>
<segmentation name="Inner" type="MultiSegmentation" key_value="0" key="strip">
<segmentation name="InnerPix" type="CylindricalGridPhiZ" key_value="0" grid_size_phi="1*mrad" grid_size_z="0.150*mm*sqrt(12)" radius="MMInnerSensor_R" />
<segmentation name="InnerPhi" type="CylindricalGridPhiZ" key_value="1" grid_size_phi="1*mrad" grid_size_z="MMModuleLength" radius="MMInnerSensor_R" />
<segmentation name="InnerZ" type="CylindricalGridPhiZ" key_value="2" grid_size_phi="MMInnerAperture" grid_size_z="0.150*mm*sqrt(12)" radius="MMInnerSensor_R" />
</segmentation>
<segmentation name="Outer" type="MultiSegmentation" key_value="1" key="strip">
<segmentation name="OuterPix" type="CylindricalGridPhiZ" key_value="0" grid_size_phi="1*mrad" grid_size_z="0.150*mm*sqrt(12)" radius="MMOuterSensor_R" />
<segmentation name="OuterPhi" type="CylindricalGridPhiZ" key_value="1" grid_size_phi="1*mrad" grid_size_z="MMModuleLength" radius="MMOuterSensor_R" />
<segmentation name="OuterZ" type="CylindricalGridPhiZ" key_value="2" grid_size_phi="MMOuterAperture" grid_size_z="0.150*mm*sqrt(12)" radius="MMOuterSensor_R" />
</segmentation>
</segmentation>

@ssedd1123
Copy link
Contributor Author

Thanks @veprbl for your suggestion. Yeah, that implementation make more sense. I did not know that segmentation class exist. Now I've learnt something new. I will update my pull request soon using MultiSegmentation.

@ssedd1123
Copy link
Contributor Author

The pull request is updated to using MultiSegmentation.

Copy link
Member

@veprbl veprbl left a comment

Choose a reason for hiding this comment

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

Diff LGTM

@ssedd1123 ssedd1123 enabled auto-merge (squash) March 1, 2025 17:52
@ssedd1123 ssedd1123 merged commit 30724e7 into main Mar 4, 2025
88 checks passed
@ssedd1123 ssedd1123 deleted the btof_geom_bug_fix branch March 4, 2025 06:03
github-merge-queue bot pushed a commit to eic/EICrecon that referenced this pull request Mar 4, 2025
#1750)

…on changes.

### Briefly, what does this PR introduce?

The segmentation class of BTOF changes from CartesianGridXY to
MultiSegmentation since eic/epic#834. Therefore,
we need to remove the segmentation class restriction on
LGADChargeSharing class.

### What kind of change does this PR introduce?
- [x ] Bug fix (issue #__)
- [ ] New feature (issue #__)
- [ ] Documentation update
- [ ] Other: __

### Please check if this PR fulfills the following:
- [ ] Tests for the changes have been added
- [ ] Documentation has been added / updated
- [ ] 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?

No.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic: barrel Mid-rapidity detectors topic: forward Positive-rapidity detectors (hadron-going side) topic: PID Particle identification
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants