Recent Releases of https://github.com/attpc/spyral

https://github.com/attpc/spyral - v1.0.0 - First Stable Release!

This is the first stable release of Spyral! This means that moving forward we intend to only make backwards-compatible changes until the next full release (i.e. v2.0.0). This is a big milestone for Spyral!

The things that were changed in this specific release are:

  • Added support for new merger format for RCNP campaign
  • Removed padelectronicsmap parameter. Was basically not used and a headache to sync between the merger and Spyral.

Since the pad_electronics map parameter is gone, you will need to update your scripts accordingly. The examples and documentation have been updated accordingly.

What's Changed

  • v1.0.0 first release candidate by @gwm17 in https://github.com/ATTPC/Spyral/pull/262
  • Bump to full release by @gwm17 in https://github.com/ATTPC/Spyral/pull/263
  • v1.0.0 release by @gwm17 in https://github.com/ATTPC/Spyral/pull/264

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.18.0...v1.0.0

- Python
Published by gwm17 10 months ago

https://github.com/attpc/spyral - v1.0.0rc0

What's Changed

  • Release 0.17.0 by @gwm17 in https://github.com/ATTPC/Spyral/pull/254
  • Version 0.17.1 release by @gwm17 in https://github.com/ATTPC/Spyral/pull/256
  • Bump to release by @gwm17 in https://github.com/ATTPC/Spyral/pull/260
  • v1.0.0 first release candidate by @gwm17 in https://github.com/ATTPC/Spyral/pull/262

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.18.0rc1...v1.0.0rc0

- Python
Published by gwm17 10 months ago

https://github.com/attpc/spyral - v0.18.0 - Update numba, spyral-utils

This release of Spyral updates some dependencies, in particular numba and spyral-utils, and makes Spyral compatible with numpy 2.1.

What's Changed

  • Update dependencies, bump version by @gwm17 in https://github.com/ATTPC/Spyral/pull/257
  • Fix type conversion in HardwareID by @gwm17 in https://github.com/ATTPC/Spyral/pull/258
  • Bump to release by @gwm17 in https://github.com/ATTPC/Spyral/pull/260
  • Release 0.18.0 by @gwm17 in https://github.com/ATTPC/Spyral/pull/259

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.17.1...v0.18.0

- Python
Published by gwm17 about 1 year ago

https://github.com/attpc/spyral - v0.18.0rc1

v0.18.0rc1 release candidate

- Python
Published by gwm17 about 1 year ago

https://github.com/attpc/spyral - v0.18.0rc0

v0.18.0 first release candidate

- Python
Published by gwm17 about 1 year ago

https://github.com/attpc/spyral - v0.17.1 - Prepare for new numba

spyral-utils has released version 2.0, with Numpy 2.1 compatiblity. This release pins the spyral-utils version in Spyral to <2.0 until we are have finished testing Spyral compatibility with Numba 0.61 and Numpy 2.1.

What's Changed

  • Pin upper for spyral-utils by @gwm17 in https://github.com/ATTPC/Spyral/pull/255
  • Version 0.17.1 release by @gwm17 in https://github.com/ATTPC/Spyral/pull/256

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.17.0...v0.17.1

- Python
Published by gwm17 about 1 year ago

https://github.com/attpc/spyral - v0.17.0 - Dragon compatibility, calibrate with drift velocity

In this release of Spyral we've added two new features: compatibility with the HPE-Dragon HPC runtime and calibration of point clouds from a known drift velocity instead of a window time. The documentation has been updated for these changes.

What's Changed

  • HPC shared memory by @gwm17 in https://github.com/ATTPC/Spyral/pull/251
  • Calibration from drift velo, update docs by @gwm17 in https://github.com/ATTPC/Spyral/pull/253
  • Release 0.17.0 by @gwm17 in https://github.com/ATTPC/Spyral/pull/254

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.16.0...v0.17.0

- Python
Published by gwm17 about 1 year ago

https://github.com/attpc/spyral - v0.17.0rc0

v0.17.0 first release candidate

- Python
Published by gwm17 about 1 year ago

https://github.com/attpc/spyral - v0.16.0 - New Joining, Update spyral-utils

In this release of Spyral, we changed a lot of things!

  • New cluster joining algorithm, relying on full 3-D data
  • Update spyral-utils allowing for GasMixtureTargets in the solver
  • Cleanup internals, refactor some tricky behavior
  • Add in experimental new start method to hopefully accommodate HPC environments
  • And more!

Check out the documentation for details. Note that spyral-utils minimum version was updated as well.

What's Changed

  • Pull hotfix to gwm17_dev by @gwm17 in https://github.com/ATTPC/Spyral/pull/237
  • Add Zenodo badge by @gwm17 in https://github.com/ATTPC/Spyral/pull/238
  • QoL, Improved Joining by @gwm17 in https://github.com/ATTPC/Spyral/pull/240
  • Fix new joining, update version by @gwm17 in https://github.com/ATTPC/Spyral/pull/243
  • More joining fixes by @gwm17 in https://github.com/ATTPC/Spyral/pull/244
  • Final (hopefully) tweaks to joining by @gwm17 in https://github.com/ATTPC/Spyral/pull/246
  • Update spyral-utils, add preliminary dragon_start, set to release by @gwm17 in https://github.com/ATTPC/Spyral/pull/248
  • Last min bugfixes for release by @gwm17 in https://github.com/ATTPC/Spyral/pull/250
  • 0.16.0 Release PR by @gwm17 in https://github.com/ATTPC/Spyral/pull/249

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.15.1...v0.16.0

- Python
Published by gwm17 about 1 year ago

https://github.com/attpc/spyral - v0.16.0rc3

v0.16.0 release candidate 3

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.16.0rc3

v0.16.0 release candidate 3

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.16.0rc2

v0.16.0 release candidate 2

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.16.0rc1

v0.16.0rc1 pre-release

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.16.0rc0

v0.16.0 first pre-release

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.15.2 - Generate Zenodo DOI

This is a release which just generates a zenodo DOI, no changes were made to Spyral's software

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.15.1 - TraceReader Hotfix

Hotfix for bug in TraceReader when reading current merger or harmonizer formats. Resulted in crash when trying to access FRIBDAQ data.

What's Changed

  • Hotfix reader with MergerCurrent, Harmonic by @gwm17 in https://github.com/ATTPC/Spyral/pull/235
  • Hotfix to TraceReader by @gwm17 in https://github.com/ATTPC/Spyral/pull/236

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.15.0...v0.15.1

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.15.0 - Trace Reader, PointCloud refactor

In this release of Spyral we have cleaned up the TraceReader and PointCloud implementations, as well as cleaning up several bugs found in the pipeline. This update does introduce breaking changes.

  • Fix bug in InterpSolverPhase where the wrong key was given to the asset dictionary
  • Refactor TraceReader to a Protocol; add implementation for harmonizer data
  • Refactor PointCloud to reduce confusion, potentially error-ful behavior
  • Update documentation to reflect these changes
  • Add two new attributes to events, "origrun" and "origevent". These are the original run and event numbers, produced by the DAQ. With the introduction of the harmonizer tooling, the event number and run number of the file may be modified to better balance workloads. These "orig" attributes allow users to still temporally slice data.

As new attributes were added, after updating the entire analysis pipeline will need to be re-run on a dataset.

What's Changed

  • Finish updating docs by @gwm17 in https://github.com/ATTPC/Spyral/pull/221
  • Finish updating docs by @gwm17 in https://github.com/ATTPC/Spyral/pull/222
  • Add Harmonizer compat, Fix bug in InterpSolver by @gwm17 in https://github.com/ATTPC/Spyral/pull/224
  • Fix compat with merger data, refactor PointCloud by @gwm17 in https://github.com/ATTPC/Spyral/pull/226
  • Refactor TraceReader by @gwm17 in https://github.com/ATTPC/Spyral/pull/228
  • Fix bug in pointcloud, bump to release by @gwm17 in https://github.com/ATTPC/Spyral/pull/229
  • Fix bug in clustering by @gwm17 in https://github.com/ATTPC/Spyral/pull/231
  • TraceReader, PointCloud refactor by @gwm17 in https://github.com/ATTPC/Spyral/pull/230

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.14.0...v0.15.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.15.0rc2

Second release candidate for v0.15.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.15.0rc1

Release candidate 1 for v0.15.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.14.0 - Prepare for Polaris, Fix Gated Scaler

Hi everyone,

This is a big release! It addresses a bunch of smaller issues that have cropped up recently:

  • Prepare for use in Polaris, resolving #205 and #215
  • Fix bug in gated IC scaler counting #213
  • Try to make PhaseResult and schemas not as bad #128 and #208
  • Remove old PointcloudLegacyPhase; @sigmanotation has a better repo here to start from for that. Addressed #207

The only change that impacts user scripts is the removal of the PointcloudLegacyPhase, which is no longer available.

Let us know if you have any problems!

What's Changed

  • Rebase from main by @gwm17 in https://github.com/ATTPC/Spyral/pull/191
  • Rebase from dev by @gwm17 in https://github.com/ATTPC/Spyral/pull/192
  • Adding env variable support by @gwm17 in https://github.com/ATTPC/Spyral/pull/196
  • Remove Si-IC coincidence, count IC scaler within multiplicity gate by @gwm17 in https://github.com/ATTPC/Spyral/pull/200
  • Add missing IC counting conditions, update docs by @gwm17 in https://github.com/ATTPC/Spyral/pull/203
  • Release 0.13.0 by @gwm17 in https://github.com/ATTPC/Spyral/pull/204
  • Remove Legacy, minor changes for Dragon compat, overhaul PhaseResult and Schema by @gwm17 in https://github.com/ATTPC/Spyral/pull/210
  • Fix PhaseResult typos by @gwm17 in https://github.com/ATTPC/Spyral/pull/211
  • Dependency compat with Polaris by @gwm17 in https://github.com/ATTPC/Spyral/pull/212
  • Fix self generated IC scaler by @gwm17 in https://github.com/ATTPC/Spyral/pull/214
  • Add generate_assets by @gwm17 in https://github.com/ATTPC/Spyral/pull/216
  • Fix bug in PC phase, bump version to release by @gwm17 in https://github.com/ATTPC/Spyral/pull/218
  • 0.14.0 Release by @gwm17 in https://github.com/ATTPC/Spyral/pull/217
  • Update docs, cleanup docstrings by @gwm17 in https://github.com/ATTPC/Spyral/pull/219
  • Update docs, docstrings by @gwm17 in https://github.com/ATTPC/Spyral/pull/220

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.12.0...v0.14.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.14.0rc4

v0.14.0rc4 pre-release

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.14.0rc3

v0.14.0rc3 pre-release

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.14.0rc2

v0.14.0rc2 pre-release

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.14.0rc1

v0.14.0rc1 pre-release

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.14.0rc0

v0.14.0 Pre-release

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.13.0 - Environment variables, Better IC scaler

In this release of Spyral we added some new features that should hopefully continue to make your analysis more stable.

The first is the addition of a new dependency, python-dotenv, which allows us to load .env files which you can use to control the number of threads that libraries like numpy and polars spawn in the background. This should help avoid resource competition when running a lot of Spyral processes.

The next is addressing an issue that was found with the use of Ion Chamber multiplicity gates and the scalers. When using an ion chamber multiplicity gate, you essentially change the trigger used for the analysis when compared with the scalers. To compensate, Spyral will now make it's own IC scaler based on the same conditions used in the analysis.

Finally, after some detailed analysis of the solvers and some discussion about their impact on downstream analysis like cross sections, we have updated the recommendations in the documentation on which solver to use and when. Please take a look at the docs which have been updated for all of these changes and let us know if you have any questions!

What's Changed

  • Rebase from main by @gwm17 in https://github.com/ATTPC/Spyral/pull/191
  • Rebase from dev by @gwm17 in https://github.com/ATTPC/Spyral/pull/192
  • Adding env variable support by @gwm17 in https://github.com/ATTPC/Spyral/pull/196
  • Remove Si-IC coincidence, count IC scaler within multiplicity gate by @gwm17 in https://github.com/ATTPC/Spyral/pull/200
  • Add missing IC counting conditions, update docs by @gwm17 in https://github.com/ATTPC/Spyral/pull/203
  • Release 0.13.0 by @gwm17 in https://github.com/ATTPC/Spyral/pull/204

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.12.0...v0.13.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.13.0rc0

First release candidate for 0.13.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.12.0 - Bugfixes and Fitting Controls

In this release of Spyral we cleaned up a whole bunch of little bugs and made our development process a little smoother and more rigorous. We also exposed some fitting controls, allowing users to turn off or on certain fit parameters which have been found to have questionable impact: vertex x, vertex y, and azimuthal angle. We also implemented a new system to read traces that should allow us to better handle changes to the merging system. Overall, you should have a much more stable experience with Spyral after this update!

The issues addressed were: #175 #176 #177 #178 #179 #180 #181 #182 #183 #184 #185 and #186

The documentation has been updated accordingly. Let us know what your experience has been with Spyral!

What's Changed

  • Issue templates by @gwm17 in https://github.com/ATTPC/Spyral/pull/172
  • Sync with dev by @gwm17 in https://github.com/ATTPC/Spyral/pull/173
  • Fix a mess of bugs, some small performance gains by @gwm17 in https://github.com/ATTPC/Spyral/pull/182
  • Switch to Ruff, Expose fit controls, Prepare for trace format change by @gwm17 in https://github.com/ATTPC/Spyral/pull/187
  • Update by @gwm17 in https://github.com/ATTPC/Spyral/pull/188
  • Small bugfixes, prepare for full release by @gwm17 in https://github.com/ATTPC/Spyral/pull/189
  • 0.12.0 Release PR by @gwm17 in https://github.com/ATTPC/Spyral/pull/190

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.11.0...v0.12.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.12.0rc1

v0.12.0rc1 pre-release

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.12.0rc0

First 0.12.0 release candidate

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.11.0 - Bugfixes and PID improvements

Hi everyone! This is a small update release of Spyral, but has a few key upgrades in specific areas. The highlights are

  • start_pipeline now has an optional argument to pass a list of run numbers to skip
  • Add psutil dependency to check that mesh is able to fit in physical memory before starting the mesh creation process.
  • Fix a bug with SharedMemory on Windows where resources were de-allocated too early
  • Remove the short lived logdEdx column in favor of the improved sqrtdEdx column for better PID

Let us know if you run into any problems!

What's Changed

  • v0.11.0rc0 PR by @gwm17 in https://github.com/ATTPC/Spyral/pull/169
  • Remove truncation, Update docs, Prepare for 0.11.0 by @gwm17 in https://github.com/ATTPC/Spyral/pull/170
  • Release v0.11.0 by @gwm17 in https://github.com/ATTPC/Spyral/pull/171

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.10.0...v0.11.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.11.0rc0

Pre-release of v0.11.0 for testing

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.10.0 - Error Bars and Clustering Changes

In this release of Spyral we finally tackled a long standing goal of reporting uncertainties on fitted parameters from the solver! It resulted a fair number of breaking changes, as well as including a bunch of small bug fixes.

  • Big goal: Address #150 - A new solver phase InterpLeastSqSolver was developed to report uncertainties on fit parameters by using a different fitting method, the Levenberg-Marquardt Non-Linear Least-Squares algorithm. Both InterpLeastSqSolver and InterpSolver account for data error bars which were estimated from the size of a pad and the width of a time bucket. See the documentation for more details on how/why to use.
  • Relatedly, the new solver showed that our performance was degraded in some cases by over-including noise in clustering. This was addressed by modifying some of the clustering behavior as well as adding a new parameter min_cluster_size_join. Again, see the documentation for more details.
  • Add new column log_dEdx in the estimation phase and ke,sigma_ke for solving phase. Related, bump spyral-utils to 1.1.0 to allow for user specification of particle ID gate axes. See spyral-utils for more info. Addresses #141.
  • Change the way we pass default/non-default to PadMap. No longer rely on global switches, instead handle default/non-default on per case basis. Addresses #143.
  • Fix bugs in #149, #152, #153

Please let us know if you encounter any problems!

What's Changed

  • Release candidate 0 for v0.10.0 by @gwm17 in https://github.com/ATTPC/Spyral/pull/154
  • More modification to leastsq solver, bump to 0.10.0rc1 by @gwm17 in https://github.com/ATTPC/Spyral/pull/155
  • Improve clustering performance on noise by @gwm17 in https://github.com/ATTPC/Spyral/pull/157
  • Bump version for new release candidate by @gwm17 in https://github.com/ATTPC/Spyral/pull/158
  • Fix SharedMemory Windows Bug, turn off allowsinglecluster by @gwm17 in https://github.com/ATTPC/Spyral/pull/159
  • Continued fixing of clustering by @gwm17 in https://github.com/ATTPC/Spyral/pull/160
  • Refactor clustering (again) by @gwm17 in https://github.com/ATTPC/Spyral/pull/161
  • Finalizing LeastSq by @gwm17 in https://github.com/ATTPC/Spyral/pull/164
  • v0.10.0 InterpLeastSqSolver and Clustering improvements by @gwm17 in https://github.com/ATTPC/Spyral/pull/165

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.9.0...v0.10.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.10.0rc4

Another release candidate attempting to fix our clustering

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.10.0rc3

Pre-release 0.10.0rc3

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.10.0rc2

Improve noise removal in clustering phase

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.10.0rc1

Release candidate 1 for v0.10.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.10.0rc0

Release candidate for better errors and some small bugfixes

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.9.0 - Shared Memory

Hi everyone, this release contains a major feature: shared memory! This allows Spyral processes to share resources, and will greatly reduce the memory load when using things like the interpolation mesh. Any phase is allowed to implement shared memory (including user defined phases), but there are some caveats to how it should be used. First is that any shared memory should be treated as read-only. It should not be written to or modified during the main runtime of Spyral. Spyral does not implement any locks for shared memory, and so any modification of the shared memory would result in a race condition. The other is that shared memory is always allocated if the associated phase is to be run, resulting in a constant memory pressure during Spyral's runtime.

The documentation has been updated accordingly. Please let us know what your experience is with this update, and please make a GitHub Issue if you run into any problems!

What's Changed

  • Update gwm17_dev by @gwm17 in https://github.com/ATTPC/Spyral/pull/142
  • Shared Memory for Phases by @gwm17 in https://github.com/ATTPC/Spyral/pull/145
  • Doc updates, print reduction, better exceptions by @gwm17 in https://github.com/ATTPC/Spyral/pull/146
  • Finalize Shared Mem, Update docs and README by @gwm17 in https://github.com/ATTPC/Spyral/pull/147
  • Update to v0.9.0 by @gwm17 in https://github.com/ATTPC/Spyral/pull/148

Full Changelog: https://github.com/ATTPC/Spyral/compare/v0.8.0...v0.9.0

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.9.0rc01

Pre-release 0.9.0rc1

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.9.0rc

Release candidate for shared memory in the pipeline

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.8.0 - Bugfixes and Pad map cleanup

Hi everyone! In this release we focused on bugfixing and cleaning up some old code in the pad map. The biggest user facing change is that the pad_gain_path parameter does not exist any more, so your code will need to be updated to remove this parameter! Otherwise, below is the list of addressed issues:

  • #124 (pad gain and pad xy parts only, time correction needs more testing)
  • #128
  • #131
  • #132
  • #135 docs only
  • #136

Please report any issues you encounter with this release!

- Python
Published by gwm17 over 1 year ago

https://github.com/attpc/spyral - v0.7.0 - Pipeline Bugfixes and Some Cleanup

Hi everyone! In this release of Spyral we focused on cleaning up some bugs in the Pipeline (thanks everyone for reporting them!) and cleaning up some parts that weren't really used any more.

Some highlights:

  • Address a ton of issues: #119 #120 #121 #122 #123 #125 #126 #127
  • Update spyral-utils to 1.0.0
  • Remove fractionalchargethreshold parameter and the charge analysis when joining clusters.
  • clustering functions now return a list of labels for points in the parent point cloud

Thanks again to everyone who helped find these bugs! Note that the changes in here are breaking and that it also updates the version of some dependencies.

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.6.1 - Bugfixes to Default Phases

Fixes a bug where the default InterpSolverPhase saved it's data in the root of the workspace rather than the InterpSolver folder.

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.6.0 - Pipelines and Phases

This is a big release and represents the biggest change to Spyral and it's usage so far! Spyral is now an installable package using pip install attpc_spyral and focuses on a new analysis Pipeline. The default pipeline (v0.5.0 and earlier) still exists, but it is now much easier to inject new analysis by adding custom phases. There is a lot here, too much for just one release note, so we direct you to the updated documentation for more complete details.

  • Add Pipeline and Phase abstract concepts
  • Re-implement original Phases as defaults
  • Overhaul docs for new system
  • Re-organize repo for better usage as a package
  • Remove unused utilities and dependencies

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.5.0 -- Removal of Nearest-Neighbor Smoothing

This release is focused on the removal of Nearest-Neighbor Smoothing (NNS) from the clustering phase and accounting for all of the downstream effects. Some of the highlights are

  • Removal of NNS! Finally! This was an old artifact from the Dalitz clustering method, which could have dramatic and often times unpredictable effects on the data, including the Particle ID.
  • Removal of NNS revealed previously ignored artifact-ing in the point cloud data in the z-coordinate due to the improper handling of conversion from GET TimeBuckets to floating point values. Previously was a simple cast to float, which would result in "clumps" of data in z. Now cast to float and add a random smearing on the interval of [0.0, 1.0) in time buckets. This accurately represents the sampling behavior in the data.
  • Removal of NNS as well as user reports revealed bug where point cloud data could sometimes become NaN or Inf if values outside the legal detector volume were attempted to be sent through the electric field correction. Illegal points are now pruned at the clustering phase.
  • Removal of NNS necessitated a change to the clustering algorithm. No longer cluster on charge. Without NNS, charge is too diffuse to cluster on. This also allowed simplification of scales as all scales are in the same base units (mm). Only scaling applied is to scale the z-axis to match the x and y axis to avoid over emphasis of z separation in data. These changes affect the recommended default value for epsilon in HDBSCAN. Now recommend value of 10.0 for cluster_selection_epsilon.
  • Smoothing factor in estimation phase also needs to be increased. New recommended value is 100.0 (verified with scipy).

Documentation is updated. Notebooks updated. Dependency versions have been bumped in this release, so please reinstall the requirements.txt.

This is a big change to the analysis, and can effect the data outcome. Please use caution when updating, and report any issues or unexpected behavior!

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.4.0 - Ion Chamber Fixes and Scalers

This release changes the way that Spyral interprets ion chamber data as well as adding the parsing of FRIBDAQ scalers. Below is a list of major features and their impact.

  • FRIBDAQ scalers are now extracted in the pointcloud phase. Scalers are written to their own dataframe and are stored in the scalers directory of the workspace.
  • The ion chamber analysis received a bunch of fixes. The multiplicity threshold is now applied more intuitively. The ion chamber delay is now accounted for using a new parameter in the config ic_delay_time_bucket. This new parameter allows the user to set the ion chamber delay; all peaks before the delay are discarded and the first peak after (or at) the delay is used as the triggering peak. Also fixed a bug in how the ion chamber offset was applied to point clouds.
  • Some small improvements to the progress bars
  • Some small bugfixes to notebooks
  • Update examine_ic.ipynb for changes to ion chamber.
  • Fix some documentation mistakes
  • Bump a few deps

This release introduces a new configuration parameter, so please update any existing configuration files you are using. This release also bumps the version of a few dependencies, so please re-install the dependencies in requirements.txt.

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.3.1 - Bugfixes and refactors

This is the v0.3.1 release of Spyral. This is a minor update to address two major edge cases that could cause crashing behavior:

  • Spline creation can fail for two major reasons: too few points (less than 5) or the data is not monotonic in z. We now catch these events and drop them, with a warning in the log files.
  • On some Linux flavors, multiprocessing defaults to using fork instead of spawn to start processes. fork does not play well with the parallel backend used by polars. So now we strictly require the use of spawn to start child processes.

After some testing we also refactored and stabilized the solver_interp code. Unless a revelation occurs, this method most likely will not change dramatically moving forward.

example_analysis.ipynb was also refactored to showcase the use of the vector library bundled as part of spyral-utils.

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.3.0 -- Smoothing Splines

In this release of Spyral, a major change was made to the way that we perform the estimation phase. We now use smoothing splines to generate a smoothed trajectory for estimating parameters such as dEdx and Brho. This results in significantly improved resolution in the particle ID spectrum in particular!

Below is a brief summary: - Smoothing splines in estimation. Significant resolution gains in PID at cost of some runtime performance. - Minor bugfixes in estimation which could result in strange vertex position choices - Bump versions of many deps. In particular, rocket-fft which was not working for python 3.12.

Since dependencies were updated, please use the requirements.txt to update your local environment after updating!

Documentation is also updated for this release

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.2.0 ParticleID moved to spyral-utils, modified IC analysis

For this release there are two major changes to Spyral.

  • The first is a change to the way we handle the IC analysis. Previously, the IC had peaks rejected by looking for coincidences with the Si detector. This allowed us to extract the "true" IC peak as well as optionally correct the start time of the GET event. The parameter event_correct_ic_time was used to control whether the time correction was applied, but the Si-IC coincidence was always applied. Now, if event_correct_ic_time is set to false, the Si-IC coincidence will not be applied and only the raw IC signal will be considered.
  • The second is the move of the ParticleID class to spyral-utils. This makes a particle ID gate more portable and usable for further analysis. Additionally, a new dependency was added to spyral-utils, vector. This allows for more complete four-vector analyses.

There were also minor fixes to the particle ID notebook which should make it less brittle to runs where the IC data was not present.

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.1.2 - Fixed bug in phase_solve

Forgot to remove the centerx, centery arguments to solve in phase_solve. Now fixed. No new dependencies or configuration parameters were added to this release.

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.1.1 - Hotfixes to solver, electric field correction

This release fixes bugs found in the solver fit parameters and the electric field correction (application and generation). No new features, configuration parameters, or dependencies were added to the v0.1.0 code, only these fixes.

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.1.0 Fixed Clustering, Solving, Tested

This is the first major release of Spyral! We fixed a whole host of issues found from the alpha and beta testing, and were able to directly verify results against previously analyzed datasets. Hopefully this means that, at a baseline, Spyral should now be able to analyze your data and produce sane results.

Some highlights: - Fixed clustering algorithm joining logic for circle overlap - Fixed ODE generation bugs related to detecting termination events - Switched from default optimization method using least-squares to L-BFGS-B to match previous methods - Optimize parameters for solving phase - Optimize interpolation mesh size to reduce unused space, increase resolution in time - Add more clustering parameters which allow for more control over noise rejection, improve handling of varied-scale events - Fix some weirdness with plotting in notebooks and switch to using matplotlib for histograms, gate drawing - Add plots in notebooks to show the data that is acutally clustered on rather than just the results - Add extension for legacy (pre-FRIBDAQ) data - Test directly against the results from the analysis with IgorPro for the 10Be(d,p) dataset

And many more small changes! As per usual, some versions of some dependencies were bumped as well so please make sure to re-install the dependencies before using this latest version.

- Python
Published by gwm17 almost 2 years ago

https://github.com/attpc/spyral - v0.1.0-beta

After some feedback, we've made some general improvements to Spryal! Below are some highlights:

  • The electric field correction from Garfield is now optional, which should make it easier to start analyzing data.
  • Fixed a bug in the IC-Si time correction which could result in GET data being shifted far outside the allowed time range.
  • Fixed the particle_id.ipynb which was generally busted. This required the addition of matplotlib; it's not a particularly elegant solution, but it will work for now.
  • Clustering parameters are improved for finer control. Now use a scaling factor to determine minimum cluster size, combined with a lower cutoff.
  • Cleaned up some leftover pieces from the early development cycle. The main branch now only has stable features.
  • Fixed some issues with progress bars.

Please see the documentation at https://attpc.github.io./Spyral for complete details!

- Python
Published by gwm17 about 2 years ago

https://github.com/attpc/spyral - v0.1.0-alpha

Spyral is now open for public use!

- Python
Published by gwm17 about 2 years ago