acts-project / acts-project/acts

Bug: Probable Issues in Bevelled Cylinder Implementation

未關閉
#1,238 9 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視
Stale
主要語言
C++
星號
131
分支
277
平均合併
3 天 13 小時
30 天內合併 PR
112

描述

Relevant Issue: [1104](https://github.com/acts-project/acts/pull/1104) , [1146](https://github.com/acts-project/acts/issues/1146)

The issue is a summary of the probable problems with PR 1104 which implemented the bevelled cylinder surfaces in ACTS. [Slide 8, 9 here.](https://indico.bnl.gov/event/15458/contributions/62426/attachments/40571/67801/ACTS%20integration%20for%20B0%20tracker.pdf)

In [Acts::CylinderBounds::inside](https://github.com/acts-project/acts/blob/main/Core/src/Surfaces/CylinderBounds.cpp#L40):
1) The vector lposition seems to represent a location in the (R*phi, z) coordinates. This would make sense as a cylindrical surface would unwrap to be a rectangle with the same height as the cylinder but a width = 2pi*R. The calculation of the [localx](https://github.com/acts-project/acts/blob/main/Core/src/Surfaces/CylinderBounds.cpp#L56) variable and its use [localx](https://github.com/acts-project/acts/blob/main/Core/src/Surfaces/CylinderBounds.cpp#L62) does not seem to reflect that. The factor of radial location R is missing.
2) The first check in Acts::CylinderBounds::inside is performed on a [shifted lposition variable which normalizes out the radial factor]( https://github.com/acts-project/acts/blob/main/Core/src/Surfaces/CylinderBounds.cpp#L24). This check does not check for any bevels and seems like it would return true even without checking edge cases for a bevelled cylinder. So, the rest of the code block never gets executed.
3) The block of code following [line 62](https://github.com/acts-project/acts/blob/main/Core/src/Surfaces/CylinderBounds.cpp#L62) and line 65, seems to assume that the boundary of a unwrapped bevelled cylinder is a polygon. This wouldn't be the exact case if one takes into account the evolution of the slope along the boundary surfaces.
![BevelledCylinder](https://user-images.githubusercontent.com/7409132/165825648-92629888-f8d8-4d77-b390-0bf524aee049.JPG)

In [Acts::CylinderBounds::inside3D](https://github.com/acts-project/acts/blob/main/Core/src/Surfaces/CylinderBounds.cpp#L89):
1) The inside3D function has two checks: a fast check that does bevelled cylinders but with full azimuthal range (closed surface) and a slow check that can handle phi segments but doesn't check for bevels. Does the fast check need to be updated to check for finite azimuthal range or is the check here sufficient?
2) In the fast check, should this be [bevelMaxZ](https://github.com/acts-project/acts/blob/main/Core/src/Surfaces/CylinderBounds.cpp#L109)? Seems like a typo.
3) In the fast check, it seems to again only check a projection on the yz-plane and may not be sufficient for a bevelled cylinder with finite azimuthal range.

貢獻指南

開啟貢獻指南

研究方向

Read Core/src/Surfaces/CylinderBounds.cpp, focusing on CylinderBounds::inside and inside3D, then review PR 1104, issue 1146, and the referenced slides. Check the reported coordinate, bevel, finite-azimuth, and bevelMaxZ concerns; the work is done when the implementation correctly handles the documented bevelled-cylinder cases.

由索引模型根據 Issue 內容生成。

評估

技術堆疊
cpp
領域
backend
Issue 類型
缺陷
難度
5/5
預估耗時
一週以上
活躍度
停滯
描述清晰度
基本清楚
新手友好度
30/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。