Support extras (crack, topgroove, bottom_cylinder, top_cylinder) in SSD config file creation#157
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #157 +/- ##
==========================================
+ Coverage 47.85% 50.49% +2.64%
==========================================
Files 27 27
Lines 2466 2533 +67
==========================================
+ Hits 1180 1279 +99
+ Misses 1286 1254 -32 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Thanks for the initiative! There are many changes that undo recent updates which have nothing to do with the additional geometry support. Please undo these and address the ignoring the Li thickness comment. My recommendation is use something with exaggerated n_thickness and plot to check like so:
sim = Simulation{T}(LegendData, meta, xtal_meta, verbose = true, HPGeEnvironment("LAr", 87u"K"), n_thickness = 5u"mm");
plot(sim.detector, st = :slice)Could you also please include a test of each new feature, showing a snippet of the metadata and the resulting plot (using exaggerated n_thickness). Also test one detector with no "extras" to see that the old functionality still works.
There was a problem hiding this comment.
Pull request overview
Adds support in the SolidStateDetectors extension for additional LEGEND SSD geometry “extras” (bottom cylinder, top groove, crack) when generating SSD configuration dictionaries from metadata, refactoring logic previously explored in PR #81 to fit the current extension/metadata pipeline.
Changes:
- Add handling for
geometry.extra.bottom_cylinderandgeometry.extra.topgroovein the generated semiconductor/contact geometries. - Add handling for
geometry.extra.crack, including forcing 3D simulation (phito 360) and cutting the crack volume out of semiconductor and mantle contact geometry. - Update
phiaxis boundary behavior to"periodic"to support 3D cases.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
This should also be extended to include support for |
Thanks for pointing that out |
|
I have used The top taper for V02160A and V02162B might look a bit weird, but that is just because the angle is small and the height of the taper is scaled by tangent of the angle. |
|
Since the n+ contact geometry of V02162B (one with the top groove) looked a bit weird, I went back and made some fixes to the geometry. Now, I think it looks good. Since the top groove height is just 2.7 mm, I have used n_thickness of 1.5 mm to see things better. |
|
@giriPHM Thank you for your work here. Are you certain that all this metadata is public? Since we are sharing this in a public repository, I recommend double-checking what can be shown and what cannot to ensure we do not release any confidential detector data. |
That is a good point, Florian. I was posting those snippets in response to David's comment regarding the test of the features. But I will remove that information till we figure this issue out! |
|
@Copilot. Can you suggest some tests for the added features to address the patch coverage? |
|
Add top cylinder feature with tests; fix borehole depth parameter in active_volume.jl
|
e61c82d to
36a3894
Compare
|
In order to review this conceptually (without looking at every line of code): can you also attach picture for the „normal“ mantle taper case. Just to make sure that the refactoring did not break anything? :) |
fhagemann
left a comment
There was a problem hiding this comment.
Looks good! One final comment









… Refactored and updated from @apearsonn's work in PR #81. Integrated logic into the modern extension structure and verified compatibility with the current metadata pipeline. I did run the tests as well. All the tests passed. There was only one warning that the test seemed to generate. I have attached the screenshot for the output from the test below.
