Commit Graph
283 Commits
Author SHA1 Message Date
mazzol_a b73f3b723f added test for apply_remap
Build on RHEL9 / build (push) Successful in 2m40s
Build on RHEL8 / build (push) Successful in 3m24s
Run tests using data on local RHEL8 / build (push) Failing after 4m22s
2026-09-08 12:34:28 +02:00
mazzol_a f8eeca2f7a python bindings for strixel remap 2026-09-07 22:53:58 +02:00
mazzol_a a3cce166f0 solved merge conflict
Build on RHEL9 / build (push) Successful in 2m51s
Build on RHEL8 / build (push) Successful in 3m19s
Run tests using data on local RHEL8 / build (push) Failing after 4m15s
2026-09-02 23:26:15 +02:00
Erik Fröjdh eddb919328 FastPedestal + optimizations in the cluster finder (#341)
Build on RHEL9 / build (push) Successful in 2m42s
Build on RHEL8 / build (push) Successful in 3m21s
Run tests using data on local RHEL8 / build (push) Failing after 3m56s
Build on local RHEL8 / build (push) Successful in 2m54s
Optimized pedestal tracking with FastPedestal and performance improvements to the cluster finder. 
- ~2x faster hitting 14k FPS on benchmark dataset on 16 core threadripper pro


**Changes**
- No bounds check on interior of frame. (only within half of a cluster)
(~15% improvement)
- Cache threshold (std*n_rms) Biggest improvement comes from not
computing std for each access
- Cache pedestal subtracted frame
- Switched to FastPedestal which assumes we reached steady state

**Things tried but rejected:**
- Always store cluster values, commit on val==max (~15% drop in frame
rate)

**Options**
- using 16 bit clusters and 16 bit pedestal. (slows down the single
threaded case but allow us to reach 12k with multi threading)

**Other notes on performance**
- Passing in memory frames from python and doing nothing: 0.8us/frame
- Passing + pedestal subtraction: 28us/frame
- Passing + pedestal + cluster finding (no store): 652us/frame
- Passing + pedestal + cluster finding: 886 us/frame
2026-09-01 18:41:12 +02:00
hinger_v 05b4219f6e Edit doc strings
Build on RHEL9 / build (push) Successful in 2m38s
Build on RHEL8 / build (push) Successful in 3m22s
Run tests using data on local RHEL8 / build (push) Successful in 4m0s
2026-09-01 14:28:13 +02:00
hinger_v 4880b6e449 Remove chip_id dependent generators
Build on RHEL9 / build (push) Successful in 2m30s
Build on RHEL8 / build (push) Successful in 3m15s
Run tests using data on local RHEL8 / build (push) Successful in 3m58s
2026-09-01 13:50:45 +02:00
hinger_v c511231d2a Template SensorConfig on number of strixel groups and make it std::array
Build on RHEL9 / build (push) Successful in 2m31s
Build on RHEL8 / build (push) Successful in 3m20s
Run tests using data on local RHEL8 / build (push) Successful in 3m57s
2026-08-31 20:10:06 +02:00
hinger_v 1816b0c3ab Add test cases for bond shift and rotation, update description of test structure 2026-08-31 19:35:44 +02:00
mazzol_a 152ef2e58c Merge branch 'main' into dev/strixels/remap_simple
Build on RHEL9 / build (push) Successful in 2m39s
Build on RHEL8 / build (push) Successful in 3m23s
Run tests using data on local RHEL8 / build (push) Successful in 4m0s
2026-08-26 17:37:41 +02:00
mazzol_a bffeab15f4 added to documentation 2026-08-26 17:33:49 +02:00
hinger_v 69c2cacbd8 Fix compilation errors 2026-08-25 16:10:18 +02:00
Erik Fröjdh 85f9d0176a Dev/guess clusters (#355)
Build on RHEL9 / build (push) Successful in 2m40s
Build on RHEL8 / build (push) Successful in 3m17s
Run tests using data on local RHEL8 / build (push) Successful in 3m53s
Build on local RHEL8 / build (push) Successful in 2m47s
- exposing ClusterVector::empty in python
- added member guess_n_clusters
2026-08-25 09:15:38 +02:00
Erik Fröjdh 26d11f74a8 Fix/expand const buffer (#354)
Build on RHEL9 / build (push) Successful in 2m34s
Build on RHEL8 / build (push) Successful in 3m15s
Run tests using data on local RHEL8 / build (push) Successful in 3m53s
Build on local RHEL8 / build (push) Successful in 2m46s
Minor API change:

- NDView<T> implicitly converts to NDView<const T> (as std::span in
C++20)
- expand4to8bit and expand24to32bit now takes a view over const uint8_t
to show that the input is not changes

closes #291
2026-08-25 08:51:41 +02:00
hinger_v 16bce7df47 Merge branch 'main' into dev/strixels/remap_simple
Build on RHEL9 / build (push) Successful in 2m28s
Build on RHEL8 / build (push) Successful in 3m10s
Run tests using data on local RHEL8 / build (push) Successful in 3m59s
2026-08-24 19:07:46 +02:00
hinger_v fc871377a0 Add first template for InclusiveROI unit tests 2026-08-24 18:31:21 +02:00
hinger_v d7addfba3e Make gap_rows size_t 2026-08-24 18:30:29 +02:00
hinger_v a0a8fb6341 Remove designated initializers (C++20 -> C++17)
Build on RHEL9 / build (push) Successful in 3m1s
Build on RHEL8 / build (push) Successful in 3m10s
Run tests using data on local RHEL8 / build (push) Successful in 3m54s
2026-08-21 17:05:41 +02:00
hinger_v 794275fa62 Rename all to 'StrixepPixelRemap...' 2026-08-21 14:02:09 +02:00
hinger_v 99e4baffd2 Adapt algorithm to reflect new mirroring definition
Build on RHEL9 / build (push) Successful in 2m28s
Build on RHEL8 / build (push) Successful in 3m14s
Run tests using data on local RHEL8 / build (push) Successful in 3m55s
2026-08-20 17:02:53 +02:00
hinger_v 13b9f288a0 Rework ROI mirroring to clarify intent: Mirror on an axis 2026-08-20 16:49:22 +02:00
hinger_v 57e035abc3 Format
Build on RHEL9 / build (push) Successful in 2m32s
Build on RHEL8 / build (push) Successful in 3m13s
Run tests using data on local RHEL8 / build (push) Successful in 4m1s
2026-08-20 14:44:25 +02:00
hinger_v cb76a948e4 Merge remote-tracking branch 'refs/remotes/origin/dev/strixels/remap_simple' into dev/strixels/remap_simple
Build on RHEL9 / build (push) Successful in 2m40s
Build on RHEL8 / build (push) Successful in 3m27s
Run tests using data on local RHEL8 / build (push) Successful in 4m1s
2026-08-20 13:55:30 +02:00
hinger_v 605c28bc19 Fix names of format helpers and remove unused 2026-08-20 12:30:11 +02:00
Erik Fröjdh fef57c13c9 added const overload for NDArray::view() (#351)
Build on RHEL9 / build (push) Successful in 2m29s
Build on RHEL8 / build (push) Successful in 3m3s
Run tests using data on local RHEL8 / build (push) Successful in 3m59s
Build on local RHEL8 / build (push) Successful in 2m45s
- Added missing const T overload for NDArray::view()
- Tests
2026-08-19 16:21:37 +02:00
mazzol_a e96778909e Merge branch 'main' into dev/strixels/remap_simple
Build on RHEL9 / build (push) Successful in 2m34s
Build on RHEL8 / build (push) Successful in 3m9s
Run tests using data on local RHEL8 / build (push) Successful in 3m56s
2026-08-19 11:47:39 +02:00
Erik Fröjdh aa39470686 Removed unused DynamicCluster (#346)
Build on RHEL9 / build (push) Successful in 2m31s
Build on RHEL8 / build (push) Successful in 3m4s
Run tests using data on local RHEL8 / build (push) Successful in 3m52s
Build on local RHEL8 / build (push) Successful in 2m45s
- Removed unused DynamicCluster
- Removed commented out references to ClusterFileV2
2026-08-14 11:11:43 +02:00
Erik Fröjdh 4f6b69fba6 Removing deprecated use of lmfit (#344)
Build on RHEL9 / build (push) Successful in 2m44s
Build on RHEL8 / build (push) Successful in 3m9s
Run tests using data on local RHEL8 / build (push) Successful in 3m58s
Build on local RHEL8 / build (push) Successful in 2m44s
Removed the lmfit based fitting and the old API for calling functions

closes #296
2026-08-14 10:31:07 +02:00
Erik Fröjdh e26db97b5c Prototype multi threaded file reader (#343)
Build on RHEL9 / build (push) Successful in 2m40s
Build on RHEL8 / build (push) Successful in 3m4s
Run tests using data on local RHEL8 / build (push) Successful in 3m51s
Build on local RHEL8 / build (push) Successful in 2m46s
- Reading files from nfs shares tops out at ~1GB/s for single threaded
reads.
- MultiThreadedFileReader uses our File wrapper to read a generic file
in parallel
- Placed in aare::experimental to show that it's not production ready
2026-08-11 15:28:54 +02:00
hinger_v 4bfe7eceea InclusiveROI comment 2026-07-24 11:47:25 +02:00
hinger_v 13f8c9ea80 Document generators
Build on RHEL9 / build (push) Successful in 2m59s
Build on RHEL8 / build (push) Successful in 3m11s
Run tests using data on local RHEL8 / build (push) Successful in 3m49s
2026-07-22 15:52:58 +02:00
hinger_v 98cdc6ba08 Refactoring and simplifications:
Build on RHEL9 / build (push) Successful in 2m40s
Build on RHEL8 / build (push) Successful in 3m48s
Run tests using data on local RHEL8 / build (push) Successful in 4m1s
- Adjust for reduced remap result struct
- Add predefined SensorConfigs
- Move combine_group_maps to implementation detail of RemapGenerate
- Remove apply_rotation_shift and Rotation flip (have become superfluous)
2026-07-22 14:34:47 +02:00
hinger_v 9b5a15f2a4 Consistently add briefs
Build on RHEL8 / build (push) Failing after 1m31s
Build on RHEL9 / build (push) Failing after 1m34s
Run tests using data on local RHEL8 / build (push) Failing after 2m1s
2026-07-21 16:13:15 +02:00
hinger_v c5ccd44a4c Refactoring suggestion for remap result (better doc) 2026-07-21 16:04:41 +02:00
hinger_v 857059cdaf Fix duplicate include
Build on RHEL8 / build (push) Failing after 1m40s
Build on RHEL9 / build (push) Failing after 2m8s
Run tests using data on local RHEL8 / build (push) Failing after 2m32s
2026-07-21 15:46:09 +02:00
hinger_v 81b91fb959 Refactoring suggestion for mapping result (reduced + doc) 2026-07-21 15:45:39 +02:00
hinger_v 9a63c9ac94 Refactoring suggestion for remap result (correct comments)
Build on RHEL8 / build (push) Failing after 1m28s
Build on RHEL9 / build (push) Failing after 1m38s
Run tests using data on local RHEL8 / build (push) Failing after 2m5s
2026-07-21 15:22:25 +02:00
hinger_v f09ede2646 Refactoring suggestion for mapping result 2026-07-21 15:00:36 +02:00
hinger_v 9344cea819 Improve documentation of structs in defs and rename SensorPlacement -> SensorModulePlacement
Build on RHEL9 / build (push) Successful in 2m34s
Build on RHEL8 / build (push) Successful in 3m6s
Run tests using data on local RHEL8 / build (push) Successful in 4m1s
2026-07-17 15:51:16 +02:00
hinger_v 9bc4a4d6a9 Delete legacy configs
Build on RHEL9 / build (push) Successful in 2m33s
Build on RHEL8 / build (push) Successful in 3m8s
Run tests using data on local RHEL8 / build (push) Successful in 3m53s
2026-07-17 14:23:21 +02:00
hinger_v 6b0598cd30 Move SensorPixelGeometry to SensorConfig and rename group-specific entities to reflect independence of sensor 2026-07-17 14:16:50 +02:00
hinger_v 67690aacf9 Fix only one SensorPlacement also in RemapGenerate.hpp 2026-07-17 11:36:23 +02:00
hinger_v d3e337d061 Fix compiler warning -> ssize_t
Build on RHEL9 / build (push) Successful in 2m34s
Build on RHEL8 / build (push) Successful in 3m32s
Run tests using data on local RHEL8 / build (push) Successful in 4m6s
2026-07-16 19:39:24 +02:00
hinger_v 1b05488173 Separate flat_index < 0 from >= input.size() and throw only at the latter 2026-07-16 19:30:02 +02:00
hinger_v 14bfc19b6a Rework RemapAlgorithm.hpp according to comments
Build on RHEL9 / build (push) Successful in 2m36s
Build on RHEL8 / build (push) Successful in 3m9s
Run tests using data on local RHEL8 / build (push) Successful in 3m53s
- Add assert to flip
- Only one SensorPlacement for strixel_to_pixel_maps
- Pass order_map as NDView to ApplyRemap

Additional:
- Check output.shape() matches order_map.shape (correct buffer allocation)
- Chash nrows and ncols
- pass NDViews by value (copying is cheap and it makes the intent more clear that it only takes a snapshot of the arrays
2026-07-16 19:21:09 +02:00
hinger_v a6927310a5 SImplify and document according to comments
Build on RHEL8 / build (push) Failing after 1m30s
Build on RHEL9 / build (push) Failing after 1m34s
Run tests using data on local RHEL8 / build (push) Failing after 2m10s
2026-07-16 12:15:01 +02:00
hinger_v 98385902df Merge branch 'main' into dev/strixels/remap_simple 2026-07-16 11:05:30 +02:00
hinger_v afd92ac457 Bugfix: Separate Rotation and Routing 2026-07-16 11:04:43 +02:00
4aadb6f7f0 refactor: hide Minuit2 from aare's public API (#331)
Build on RHEL9 / build (push) Successful in 3m13s
Build on RHEL8 / build (push) Successful in 3m52s
Run tests using data on local RHEL8 / build (push) Successful in 3m56s
Build on local RHEL8 / build (push) Successful in 2m45s
- Move Chi2.hpp from include/aare/ to src/ (private)
- Pimpl on FitModel<Model>: MnUserParameters/MnStrategy behind opaque
src/FitModelImpl.hpp, no Minuit2 includes in public headers
- Move fit_pixel/fit_3d bodies to Fit.cpp with explicit instantiations
for all 8 models; drop FCN template param from public API
- CMake: aare::Minuit2 wrapped in $<BUILD_INTERFACE:...> (hidden from
exported targets, same pattern as lmfit), MINUIT2_INSTALL OFF, Chi2.hpp
removed from PUBLICHEADERS
- Update python bindings and benchmark callsites accordingly

---------

Co-authored-by: Erik Fröjdh <erik.frojdh@psi.ch>
Co-authored-by: Alice <alice.mazzoleni@psi.ch>
2026-07-02 16:04:22 +02:00
mazzol_a b4686e6b85 added moench05 defs (#333)
Build on RHEL9 / build (push) Successful in 2m37s
Build on RHEL8 / build (push) Successful in 3m16s
Run tests using data on local RHEL8 / build (push) Successful in 3m56s
Build on local RHEL8 / build (push) Successful in 2m42s
- add moench05 chip/chiptestboard defs
2026-06-26 17:43:06 +02:00
Erik Fröjdh b4b28fc9e0 len() and pedestal subtraction (#328)
Build on RHEL9 / build (push) Successful in 2m57s
Build on RHEL8 / build (push) Successful in 3m28s
Run tests using data on local RHEL8 / build (push) Successful in 4m0s
Build on local RHEL8 / build (push) Successful in 2m44s
Collection of small improvements in usability: 

- NDView works for large arrays
- Direct subtraction of Pedestal from np.array
- len() support for python bindings of files
2026-06-15 11:38:06 +02:00