Sipm

Latest version: v2.3.1

Safety actively analyzes 722491 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 2

2.1.0

Performance updates and bug fixes
* Way faster algorithm for amplitude calculation (hash table instead of nested for loop)
* When updating a SiPM property also update related values (e.g. sampling time modifies n samples)
* When available use AVX512 instruction for rng generation
* Generate groups of rng values and store in temp array to limit overhead
* Optimized generation of 2 rand float and 2 rand integers with a single rng call
* Optimized generation of arrays of rand Gaussian and int values
* Signals and amplitudes use float instead of double (2x speed up when using SIMD instructions)
* Internally store and handle hit pointers instead of copying hits
* Return hit ptr in Python as py::return_value_policy::reference_internal in order to avoid memory errors
* Faster peak, integral, tot, toa and top calculation
New features
* Added micro benchmark using Google Benchmark
* Hits can store the parent hit ptr
* Returning hit pointer to parent instead of "index" method (hits graph)
* Added SiPMSmallVector with small vector optimization (local storage for small vec)
* Added custom alloc and free providing aligned storage handling (when available)
* Added custom (smaller, simpler and faster) version of std::pair
* Input photons outside of the signal window are discarded
* Performing tests using GitHub actions
Removed features
* Removed redundant templates
* Removed SiPMMath.h header
* Removed SiPMVector type which was giving only minimal speedup

What's Changed
* Merging branch dev into main by EdoPro98 in https://github.com/EdoPro98/SimSiPM/pull/10
* Merging latest changes from main to dev by EdoPro98 in https://github.com/EdoPro98/SimSiPM/pull/11
* [Typo] fix 2 typos in README.md by luhuadong in https://github.com/EdoPro98/SimSiPM/pull/12
* [CMake] Set header files to PUBLIC and add the installation folder by jmcarcell in https://github.com/EdoPro98/SimSiPM/pull/17
* Merge dev with main by EdoPro98 in https://github.com/EdoPro98/SimSiPM/pull/18

New Contributors
* luhuadong made their first contribution in https://github.com/EdoPro98/SimSiPM/pull/12
* jmcarcell made their first contribution in https://github.com/EdoPro98/SimSiPM/pull/17

**Full Changelog**: https://github.com/EdoPro98/SimSiPM/compare/v2.0.2...v2.1.0

2.0.2

Merging branch dev into main

Changes and additions in dev branch become official! Refer to 5 for list of changes.

**Full Changelog**: https://github.com/EdoPro98/SimSiPM/compare/v2.0.1-beta...v2.0.2

2.0.1beta

2.0.0beta

Compatibility
Compatibility with previous versions (1.x.x) of the library is not ensured. Older code calling the library should work fine since most of changes are additions.
What's Changed
Added:
* [SiPM] New logic for XT and AP generation. AP and XT are generated in the same method allowing for XT to generate AP events and vice versa.
* [SiPM] Introduced delayed optical crosstalk (DXT). In some SiPMs a fraction of XT events is delayed from the generating event, DXT describes this effect. (Off by default)
* [SiPM] New namespace `math` contains advanced an high performance math functions that use intriscics (SSE - AVX2 - FMA)
* [SiPM] Now each *SiPMHit* stores a pointer to the *parent* hit. If it is a photoelectron hit or a DCR hit just store `nullptr`. This is useful for debugging and to study the effect of different noise sources.
* [SiPM] Now each *SiPMHit* stores a vector of pointers to the *children* hits.
* [SiPM] New interpolation method for *SpectralPde* borrowed from Geant4.
* [CMake] Use install prefix for python installation by vvolkl in https://github.com/EdoPro98/SimSiPM/pull/4
* [README] Fix readme typo by vvolkl in https://github.com/EdoPro98/SimSiPM/pull/2
Modified:
* [SiPM] Improved algorithm for SiPM hit creation and handling. All hits are created with amplitude 1 and then amplitude is calculated as last step. This allows for general better description of saturation and consecutive AP events.
* [SiPM] Improved and faster algorithm for hit amplitude calculation. Improved speed by looking only at hits that are located "before in time" the one being checked, no need to check at later times.
* [Pybind11] Better use of pybind11 module variables. Almost all functionality of C++ version is wrapped to Python.
* [Python] Updated setup.py file. Now versioning is handled in the SiPM.h file and copied in all other files.
* [PyTest/GTest] Overall better tests with looser constraints that should fail only in case of real bugs.
* [Doxygen] New file format as prescribed by new Doxygen version.
* [README] Updated readme with better instructions.
Removed:
* [SiPM] Removed superfluous `const` in return arguments
* [SiPM] Removed unused methods
* [SiPM] Removed *SiPMSimulator* class. Never used and superfluous
* [OpenMP] Removed OpenMP support. It was used only in *SiPMSimulator* class.

New Contributors
* vvolkl made their first contribution in https://github.com/EdoPro98/SimSiPM/pull/4

**Full Changelog**: https://github.com/EdoPro98/SimSiPM/compare/1.2.3-beta...v2.0.0-beta

1.2.4

Stable release for the upload on spack and cvmfs.

Changelog
Added
- Random integer generation now is in range 0 -> max - 1 included (to be consistent with most rngs)
- Better testing
- New CMakeLists.txt for the installation of python module in desired path

1.2.3beta

Changelog
Improved:
- New and faster way to convert bits from prng in double values [0-1].
- Minor performance improvements
- Minor changes and cleaner code
- Ready for beta version

Added:
- Tests for rng and most classes
- Added support also for pypy3 python version

Removed:
- Removed experimental support for Windows. Now supporting ONLY Linux and MacOS

Page 1 of 2

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.