Releases: dobrienphd/ParticleZoo
v1.0.2
ParticleZoo v1.0.2
Release date: 2025-11-02
Overview
ParticleZoo is a high-performance C++20 library for reading, writing, and manipulating particle phase space files across multiple Monte Carlo ecosystems. It provides a unified Particle data model, streaming I/O, a registry-driven format system, and optional ROOT support, plus a set of practical command-line tools.
Highlights
- Unified API across formats with automatic format detection and explicit overrides
- High-performance, buffered binary I/O and memory-efficient streaming
- Extensible registry for adding new formats without touching core code
- Cross-platform support for Linux, macOS, and Windows
Supported Formats
- EGS (EGSnrc): .egsphsp files in MODE0 and MODE2, including suffixed variants (.egsphsp1, etc.)
- IAEA: .IAEAphsp + header
- TOPAS: .phsp in Binary, ASCII, and Limited variants
- penEasy: .dat ASCII (PENELOPE)
- ROOT (optional): .root with predefined templates (TOPAS, OpenGATE) and custom mappings
Command-Line Tools
- PHSPConvert — convert between formats, optional particle limits and plane projection,
- PHSPCombine — merge multiple phase space files together into a single file, preserving particle history tracking
- PHSPImage — generate 2D fluence/energy fluence images (TIFF for analysis, BMP for quick visual)
- PHSPSplit — split a single phase space into N parts while respecting history boundaries
See “Command-Line Tools” in the README for detailed usage examples and options.
Building
Linux/macOS:
- Configure:
./configure [--prefix=/your/installation/prefix] - Build:
make(release),make debug, ormake release - Install (optional):
make install [PREFIX=/path]
Windows:
- Build:
build.bat [--prefix=C:\path\to\install] [debug|release] - Install (optional):
build.bat install [--prefix=...] [debug|release]
ROOT support (optional): requires root-config in PATH (Linux/macOS). Provided build script for Windows does not support ROOT integration, to use ROOT in Windows requires building manually.
Notable API Components
- Particle — unified particle data model with core and format-specific properties
- PhaseSpaceFileReader/Writer — abstract streaming interfaces for formats
- FormatRegistry — runtime registration/creation and format auto-detection
Known Limitations and Notes
- ROOT builds must match the C++ standard used by ParticleZoo; mismatches may work but are not guaranteed
- Windows ROOT support is not provided by the batch script; use manual compilation if needed
- If automatic format detection fails, specify formats explicitly via CLI flags or API
- Requires modern C++20 compilers/toolchains (see README prerequisites)
License
MIT License. See LICENSE for details.
What's Changed in v1.0.1
- Fix for Windows build process used in provided build script
Full Changelog: v1.0.0...v1.0.1
What's Changed in v1.0.2
- Fix for PhaseSpaceFileWriter::addAdditionalHistories to accumulate additionalHistories rather than overwrite the value, preventing loss of previously accounted histories.
Full Changelog: v1.0.1...v1.0.2
v1.0.1
ParticleZoo v1.0.1
Release date: 2025-10-20
Overview
ParticleZoo is a high-performance C++20 library for reading, writing, and manipulating particle phase space files across multiple Monte Carlo ecosystems. It provides a unified Particle data model, streaming I/O, a registry-driven format system, and optional ROOT support, plus a set of practical command-line tools.
Highlights
- Unified API across formats with automatic format detection and explicit overrides
- High-performance, buffered binary I/O and memory-efficient streaming
- Extensible registry for adding new formats without touching core code
- Cross-platform support for Linux, macOS, and Windows
Supported Formats
- EGS (EGSnrc): .egsphsp files in MODE0 and MODE2, including suffixed variants (.egsphsp1, etc.)
- IAEA: .IAEAphsp + header
- TOPAS: .phsp in Binary, ASCII, and Limited variants
- penEasy: .dat ASCII (PENELOPE)
- ROOT (optional): .root with predefined templates (TOPAS, OpenGATE) and custom mappings
Command-Line Tools
- PHSPConvert — convert between formats, optional particle limits and plane projection,
- PHSPCombine — merge multiple phase space files together into a single file, preserving particle history tracking
- PHSPImage — generate 2D fluence/energy fluence images (TIFF for analysis, BMP for quick visual)
- PHSPSplit — split a single phase space into N parts while respecting history boundaries
See “Command-Line Tools” in the README for detailed usage examples and options.
Building
Linux/macOS:
- Configure:
./configure [--prefix=/your/installation/prefix] - Build:
make(release),make debug, ormake release - Install (optional):
make install [PREFIX=/path]
Windows:
- Build:
build.bat [--prefix=C:\path\to\install] [debug|release] - Install (optional):
build.bat install [--prefix=...] [debug|release]
ROOT support (optional): requires root-config in PATH (Linux/macOS). Provided build script for Windows does not support ROOT integration, to use ROOT in Windows requires building manually.
Notable API Components
- Particle — unified particle data model with core and format-specific properties
- PhaseSpaceFileReader/Writer — abstract streaming interfaces for formats
- FormatRegistry — runtime registration/creation and format auto-detection
Known Limitations and Notes
- ROOT builds must match the C++ standard used by ParticleZoo; mismatches may work but are not guaranteed
- Windows ROOT support is not provided by the batch script; use manual compilation if needed
- If automatic format detection fails, specify formats explicitly via CLI flags or API
- Requires modern C++20 compilers/toolchains (see README prerequisites)
License
MIT License. See LICENSE for details.
What's Changed in v1.0.1
- Fix for Windows build process used in provided build script
Full Changelog: v1.0.0...v1.0.1
v1.0.0
ParticleZoo v1.0.0
Release date: 2025-10-18
Overview
ParticleZoo is a high-performance C++20 library for reading, writing, and manipulating particle phase space files across multiple Monte Carlo ecosystems. It provides a unified Particle data model, streaming I/O, a registry-driven format system, and optional ROOT support, plus a set of practical command-line tools.
Highlights
- Unified API across formats with automatic format detection and explicit overrides
- High-performance, buffered binary I/O and memory-efficient streaming
- Extensible registry for adding new formats without touching core code
- Cross-platform support for Linux, macOS, and Windows
Supported Formats
- EGS (EGSnrc): .egsphsp files in MODE0 and MODE2, including suffixed variants (.egsphsp1, etc.)
- IAEA: .IAEAphsp + header
- TOPAS: .phsp in Binary, ASCII, and Limited variants
- penEasy: .dat ASCII (PENELOPE)
- ROOT (optional): .root with predefined templates (TOPAS, OpenGATE) and custom mappings
Command-Line Tools
- PHSPConvert — convert between formats, optional particle limits and plane projection,
- PHSPCombine — merge multiple phase space files together into a single file, preserving particle history tracking
- PHSPImage — generate 2D fluence/energy fluence images (TIFF for analysis, BMP for quick visual)
- PHSPSplit — split a single phase space into N parts while respecting history boundaries
See “Command-Line Tools” in the README for detailed usage examples and options.
Building
Linux/macOS:
- Configure:
./configure [--prefix=/your/installation/prefix] - Build:
make(release),make debug, ormake release - Install (optional):
make install [PREFIX=/path]
Windows:
- Build:
build.bat [--prefix=C:\path\to\install] [debug|release] - Install (optional):
build.bat install [--prefix=...] [debug|release]
ROOT support (optional): requires root-config in PATH (Linux/macOS). Provided build script for Windows does not support ROOT integration, to use ROOT in Windows requires building manually.
Notable API Components
- Particle — unified particle data model with core and format-specific properties
- PhaseSpaceFileReader/Writer — abstract streaming interfaces for formats
- FormatRegistry — runtime registration/creation and format auto-detection
Known Limitations and Notes
- ROOT builds must match the C++ standard used by ParticleZoo; mismatches may work but are not guaranteed
- Windows ROOT support is not provided by the batch script; use manual compilation if needed
- If automatic format detection fails, specify formats explicitly via CLI flags or API
- Requires modern C++20 compilers/toolchains (see README prerequisites)
License
MIT License. See LICENSE for details.