Skip to content

Releases: dobrienphd/ParticleZoo

v1.0.2

02 Nov 04:13
d31508c

Choose a tag to compare

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, or make 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

20 Oct 23:57

Choose a tag to compare

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, or make 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

19 Oct 03:08

Choose a tag to compare

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, or make 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.