mist — dependency-free C++ infrastructure toolkit

mist started as the “I keep rewriting these same utilities” problem. Every time I began a new project I’d rebuild the same handful of small tools — a random-number wrapper, a coloured logger with progress bars, a Hough transform for ring finding. So I pulled them out into one place and gave them a proper home, with zero dependencies beyond the standard library.

What’s in the box

  • mist::rnd — a tidy wrapper around the C++ standard <random> facilities, with the distribution methods I actually use day to day.
  • mist::logger — a coloured terminal logger with progress bars, level filtering, and ANSI output.
  • mist::ring_finding::hough_transform — a circular Hough transform for ring detection in detector data (the workhorse behind dRICH reconstruction).

Design choices

  • C++20, CMake 3.14+.
  • Zero external dependencies beyond the standard library — drop it into anything without dragging in ROOT or Boost.
  • MIT licensed.

It’s the library that gets FetchContent-pulled into the dRICH analysis framework, and the foundation that mist-hep layers ROOT and RooFit on top of.