-
Notifications
You must be signed in to change notification settings - Fork 19
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
feat: Add surface finder container to detector #283
feat: Add surface finder container to detector #283
Conversation
00f057c
to
2c17339
Compare
The device side code does not yet work, but could you have a first look, please @beomki-yeo ? |
Ok, nvm. I need to roll a few things back. I am going to convert it into a draft again |
Ok, I will rebase and comment the cuda integration in the detector until we have a container that runs on device. Otherwise, I think this can stay the way it is now |
There's still some build failures it seems.. |
Is this PR going to be rewritten after #303 ? |
29af60e
to
3d11721
Compare
detector grids inside (Only works on host so far). Apart from that, a brute force surface finder is also added. All can be accessed with custom type IDs, the same way as it is implemented for the masks. The surface finders can be called from the navigator using a neighborhood_kernel, but for now they always return the complete volume range, until the zone function of the grid is properly adapted. The grids are built in the toy geometry in dedicated functions and the detector now uses the custom bin_association to fill surfaces into grids. For now, the grid building is commented out until we have a working implementation of a grid container in a subsequent PR. Further small changes: - The previous surface_finder class is no longer used in favour of the tuple_array_container. All typedefs are done by the type_registry. - The type ID enums are no longer implicitly convertible to an index for type safety, but can be converted, if necessary. - Where possible, all code that contains 'unrolling' has been put into functors and is called in the tuple_container. - The volume index is now fixed to dindex, since this is unlikely to change. - The surface finder link has been removed from the masks, since it is now part of the volume class. - Some minor refactoring (e.g. the edge types are renamed to volume_link for clarity). - More elaborate comments on some geometry classes and their template arguments. - For some reason, the usage of the detector memory resource in the navigator buffer broke, so they get an external resource now.
144268e
to
e856af4
Compare
Add the tuple array container to the detector and puts the toy detector grids inside (Only works on host so far). Apart from that, a brute force surface finder is also added. All can be accessed with custom type IDs, the same way as it is implemented for the masks. The surface finders can be called from the navigator using a
neighborhood_kernel
, but for now they always return the complete volume range, until thezone
function of the grid is properly adapted. The grids are built in the toy geometry in dedicated functions and the detector now uses the custombin_association
to fill surfaces into grids. For now, the grid building in thecsv_io.hpp
is commented out until properly implemented in a subsequent PR.Further small changes:
surface_finder
class is no longer used in favour of thetuple_array_container
. All typedefs are done by thetype_registry
enum
s are no longer implicitly convertible to an index for type safety, but can be converted, if necessarytuple_container
.dindex
, since this is unlikely to changevolume_link
for clarity)Edit: For some reason the usage of the detector vecmem resource broke in the navigator jagged vector buffer, so it gets an external host accessible resource now...