Skip to content

A modern, distributed offline software framework for HEP experiments

License

Notifications You must be signed in to change notification settings

zhao-shihan/Mustard

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Mustard

Mustard is a generic offline software framework for particle physics experiments, aimed at providing a modern, high-performace architecture for distributed computing capabilities, unified geometric interfaces, and high-level abstraction of data models out of the box. This framework is a core component of the MACE offline software, and was formerly developed within the MACE offline software.

Pre-built binaries

Pre-built, optimized binaries are available through Apptainer (formerly known as Singularity).

For more information, please check out the image repository homepage.

Dependencies

Toolchain

  1. A C++ compiler (that supports ≥ C++20. GCC ≥ 12, LLVM Clang ≥ 16, or MSVC ≥ 19.30 (i.e., Visual Studio 2022 ≥ 17.0))
  2. A C++ library (that supports ≥ C++20. libstdc++ ≥ 12, or MSVC STL with Visual Studio 2022 ≥ 17.0)
  3. CMake (≥ 3.16)
  4. A build system compatible with CMake (GNU Make, Ninja, or etc.)

Libraries

Required:

  1. MPI (Message Passing Interface) (≥ 3.0, MPICH, OpenMPI, Intel MPI, Microsoft MPI, etc.)
  2. Eigen (A C++ template library for linear algebra) (≥ 3.4.0)
  3. Geant4 (Toolkit for the simulation of the passage of particles through matter) (≥ 11.0.0, with GDML)
  4. ROOT (An open-source data analysis framework) (≥ 6.30.00, with GDML)

Required, built-in if not found (network or pre-downloaded source is required):

  1. argparse (Argument Parser for Modern C++) (≥ 3.1, built-in if not found)
  2. zhao-shihan/backward-cpp (A beautiful stack trace pretty printer for C++) (a backward-cpp fork, built-in if not found)
  3. EFM (A generic bilinear/trilinear interpolator) (main, built-in if not found)
  4. envparse (A simple, header-only environment variable parser in C++) (≥ 1.0.0, built-in if not found)
  5. fmt (A modern formatting library) (≥ 11.0.0, built-in if not found)
  6. muc (A standard non-standard C++ library) (main, built-in if not found)
  7. Microsoft.GSL (ISO C++ guidelines support library) (≥ 4.0.0, built-in if not found)
  8. yaml-cpp (A YAML parser and emitter in C++) (≥ 0.8.0, built-in if not found)

Cite

  1. Shihan Zhao and Jian Tang, Optimization of muonium yield in perforated silica aerogel, arXiv:2401.00222.

About

A modern, distributed offline software framework for HEP experiments

Resources

License

Stars

Watchers

Forks

Packages

No packages published