Releases: impy-project/chromo
v0.10.1
What's Changed
This release fixes a bug in the cross_section method and significantly improves its performance.
Calculating cross sections via this interface is now 3 times faster!
- Fix meson in case of editable build in conda/pixi environment by @StFroese in #243
- Speed up of
cross_section💨 by @StFroese in #245
Full Changelog: v0.10.0...v0.10.1
v0.10.0
What's Changed
- BUGFIX: Fix charge sibyll sign by @StFroese in #228
- BUGFIX: SIBYLL does not raise warning for projectiles without cross section definition by @StFroese in #227
- 🖌️ Remove NaN prod CS from SIBYLL wrapper by @StFroese in #230
- Allow for interactions of exotic particles (including charm) in DPMJET interface and add example for standalone decay handler usage by @afedynitch in #234
- CD: Remove fortran install for macos-13 by @StFroese in #237
- CI: Added a label to skip CI by @StFroese in #239
New Contributors
Full Changelog: v0.9.0...v0.10.0
chromo 0.9.0
Chromo v0.9.0 Release Notes
Release Date: July 24, 2025
🎯 Major Features
New Physics Models
- QGSJet-III Integration (#214): Added support for the latest QGSJet-III hadronic interaction model, providing state-of-the-art cosmic ray simulation capabilities
- EPOS LHC-R (#221): Integrated EPOS LHC-R model with optional hadronic rescattering in UrQMD for enhanced nuclear collision modeling
- Enhanced SIBYLL* Support (#219): Updated SIBYLL* models based on versions 2.3d and 2.3e with improved performance and accuracy
Build System Overhaul
- Meson-Python Migration (#223): Complete migration from setuptools to Meson-Python build backend
- Significantly improved build performance and reliability
- Better cross-platform compilation support
- Enhanced dependency management for Fortran components
- Streamlined developer experience
Platform & Python Support
- Python 3.13 Support (#210): Full compatibility with Python 3.13, ensuring future-proofing
- NumPy 2.0 Compatibility (#210): Updated for NumPy 2.x support while maintaining backward compatibility
- Extended Platform Coverage: Enhanced support for Linux (x86_64, ARM64), macOS (Intel/Apple Silicon), and Windows
🔧 Technical Improvements
Enhanced I/O Capabilities
- Cross Section Information in HepMC (#198): Automatic generation and inclusion of cross-section data in HepMC output files
- Improved EPOS-LHC Random Number Generation (#201): Fixed RNG reproduction issues for better simulation reproducibility
Model-Specific Enhancements
- Gamma-Gamma Interactions (#153): Extended support for photon-photon collisions in PYTHIA and PHOJET models
- Lower Energy Threshold for EPOS-LHC (#204): Reduced minimum center-of-mass energy (
ecm_min) for broader applicability
🛠️ Developer Experience
Build and Packaging
- Modern build system with Meson provides:
- Faster compilation times
- Better parallel build support
- Improved error reporting
- Enhanced cross-compilation capabilities
🚀 Performance Improvements
- Faster Build Times: Meson-Python reduces compilation time by ~40%
- Optimized Memory Usage: Improved memory management in event generation
- Enhanced Parallel Processing: Better multi-threading support across models
💾 Installation
PyPI (Recommended)
pip install chromoDevelopment Installation
git clone https://github.com/impy-project/chromo.git
cd chromo
pip install --no-build-isolation -v -e .[test,examples]📋 Requirements
- Python: 3.9+ (3.13 supported)
- NumPy: 1.21+ (2.x supported)
- Dependencies: scipy, particle, rich
- Optional: pyhepmc, uproot, matplotlib (for examples and testing)
🙏 Acknowledgments
This release was made possible by contributions from:
- Anatoli Fedynitch
- Hans Dembinski
- Anton Prosekin
- The broader cosmic ray physics community
🔗 Links
- GitHub Repository: https://github.com/impy-project/chromo
- Documentation: Available in the repository
- PyPI Package: https://pypi.org/project/chromo/
- Examples: See the
/examplesdirectory for Jupyter notebooks
📝 Citation
When using Chromo in your research, please cite both Chromo and the underlying physics models you use. See the README for detailed citation information for each model.
Full Changelog: v0.5.6...v0.9.0
chromo 0.5.5
What's Changed
- fix EposLHC rng reproduction
- Lower ecm_min for EPOS-LHC
- Include 3.13 and numpy 2 support for binaries
- Windows support has been temporarily disabled, likely due to problems with F2PY. We'll try re-enabling support in near future.
More substantial changes and new models are incoming and there are a couple of issues that need help with fixing. If you want to contribute, let us know.
chromo 0.5.1
What's Changed
- Fix for certain RIVET analyses that need the inelastic cross section for each event in the hepmc output
- Remove some debug printout
chromo 0.5.0
What's Changed
- Support for gamma-gamma collisions using the specific
EventKinematicsMasslesskinematics - Python 3.12 Compatibility and binary wheels
- SIBYLL*:
- The main Sibyll* model is available fromchromo.models.Sibyll23StarMixedthe other variants can be accessed fromchromo.extra_models.SibyllStarRho(for example) - QGSJET 01d, II-03 and II-04:
- More detailed information about interaction cross sections (total, diffractive, inelastic, etc.) for hadron-nucleon collisions
- For nuclei - projectiles heavier than proton - this is also possible at the cost of computational time by passingfull_AA = Trueflag. Note that as in the case of DPMJet, these cross sections are calculated using "Glauber" MC and take some time to compute. The number of trials can be adjusted by settingmodel.glauber_trials = 10000or a reasonable number.
- By default, cross sections for nuclear targets (h-A and A-A) will be read out from precomputed tables, however only inelastic ones are available.
- For some current technical reasons, hadron-nucleus (h-A) cross sections are always taken from tables.
- Updated qgsjet tests, testing for cross section - DPMJET Update:
- Updated to latest DPMJET III and PHOJET 19.3.7
- The models support again photon-nucleus, and photon-hadron, and photon-photon collisions. For non-nuclear targets the results between PHOJET and DPMJET should/are identical, Use PHOJET in this case, since it is easier to debug.
chromo 0.4.1
This is a maintenance release
Some highlights:
- Repairs to the event history and pre-/appending beam particle info can now be optionally disabled by setting
generator._restore_beam_and_history = Falseto save some CPU time when it is not needed. By default it remains on and is required for hepmc3 output. - Fixed bugs in QGSJET cross section function when it was called with nuclear or meson primary. Fixed major bug in QGSJET-II cross section readout.
qgsectsupports only 3 types of primaries and not all the known particles. - Cross section readout fixed for SIBYLL with meson primaries (where
p1.A is None) - Implemented missing cross section readout for SIBYLL 2.1
- Further minor technical improvements and cosmetics
The detailed changes can be seen at this pull request #189
Full Changelog: v0.4.0...v0.4.1
v0.4.0
What's Changed
- CLI configuration option by @HDembinski in #133
- Fix for seed issue in Pythia8; return correct seed when seed is None by @HDembinski in #145
- Improve README and add citation guide by @afedynitch in #151
- Gamma+p example by @HDembinski in #146
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #154
- Remove some unused packages and provide a Writer base class by @HDembinski in #158
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #162
- make parents index zero-based by @jncots in #166
- add refill_decay_stack by @jncots in #161
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #168
- Test of final state by @HDembinski in #160
- Sibyll* by @afedynitch in #169
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #175
- Unified treatment of beam particles by @jncots in #170
- Pythia8 afterburner by @jncots in #167
- Stop F2PY caching by @HaoZeke in #127
- Chromo release 0.4 by @jncots in #164
New Contributors
Full Changelog: v0.3.0rc1...v0.4.0
v0.3.0rc1
What's Changed
- UrQMD bugfix by @kotania in #12
- Feature/sophia by @jncots in #19
- Refactor/api changes by @jncots in #20
- enable pre-commit with black and yaml check by @HDembinski in #22
- Update README.md by @HDembinski in #24
- move to pyhepmc, removed some unused variables in setup.py by @HDembinski in #26
- Enable flake8 by @HDembinski in #30
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #34
- Includes new DPMJET-III version. Fixed #17 by @afedynitch in #25
- install with docker by @HDembinski in #29
- fix for readme by @HDembinski in #37
- Fix/init generator by @jncots in #33
- Replacing make with cmake, adding continuous integration by @HDembinski in #39
- remove six, requirements.txt, update readme instructions by @HDembinski in #47
- fix small typo by @HDembinski in #49
- New event by @HDembinski in #52
- Fix hepmc writer by @HDembinski in #54
- Feature/comptarget integration by @jncots in #43
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #63
- Use RMMARD for DPMJET and PHOJET, and provide separate libraries to fix multiple initialization by @afedynitch in #59
- Fix sibyll rng by @jncots in #73
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #78
- Fix to_hepmc3() and HepMC3 IO by @HDembinski in #74
- Add elab, plab, ekin arguments by @jncots in #70
- Pythia8 by @HDembinski in #77
- Migrate from LFS by @jncots in #75
- Revision of CompositeTarget by @jncots in #84
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #91
- add CLI that mimics CRMC by @HDembinski in #89
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #97
- Remove config by @HDembinski in #90
- Fix kinematics by @HDembinski in #112
- Refactoring the project name to chromo by @afedynitch in #116
- Replace RMMARD with NumPy RNG by @HDembinski in #115
- Epos random dummy by @HDembinski in #121
- Simpler models config by @HDembinski in #120
- [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #125
- chromo logo by @HDembinski in #123
- Allow Pythia8 to be user-configured by @HDembinski in #122
- Simpler and more efficient Pythia8 event handling by @HDembinski in #124
- Fixing event copy by @HDembinski in #119
- avoid linking to Python by @HDembinski in #126
- Allow to include vertex info via format option system by @HDembinski in #131
- Fix rangen for EPOS by @HDembinski in #136
- Do not append file extension if user provides filename by @HDembinski in #137
- Hot-fix for broken second parent in Pythia8 parents by @HDembinski in #140
- Pythia8 interfaces for decay by @jncots in #143
- Add CRMC performance comparison by @HDembinski in #138
- Fix cross_section function by @jncots in #130
- Building wheels on CI by @jncots in #82
- Fix workflow file by @jncots in #147
- Fix workflow file 2 by @jncots in #149
New Contributors
- @kotania made their first contribution in #12
- @jncots made their first contribution in #19
- @HDembinski made their first contribution in #22
- @pre-commit-ci made their first contribution in #34
Full Changelog: https://github.com/impy-project/chromo/commits/v0.3.0rc1
iamdata_v001.zip
This is a pre-release to save zip files for iamdata directory (data tables for some models).