SynradBenchmark is a benchmarking suite designed to evaluate the performance and accuracy of various Monte-Carlo codes for sinchrotron radiation (SR) studies, including SynradG4, Synrad+ (version 1.4.34 or older), Synrad3D, and Geant4 (version 11.2.0 or older). The primary focus of this repository is to benchmark SR photon reflection models in vacuum beam pipes, taking into account surface roughness and photon interactions.
This repository aims to provide:
- A comparative analysis of SR photon reflection models.
- Benchmarking scripts for testing SynradG4, Synrad+, Synrad3D, and Geant4.
- Documentation of performance metrics for surface roughness in a vacuum beam pipe.
- Easy-to-reproduce simulation environments for developers and researchers working in the field of high-energy physics and vacuum technology.
Before using SynradBenchmark, ensure that you have the following dependencies installed:
Additional packages:
- CMake
- GNU Make
- Python 3.x (for data processing and plotting)
- gnuplot (for visualization)
- ROOT CERN (for data storage and analysis)
- Bmad (for the Synrad3D simulation)
- FreeCAD (for a 3D CAD modelling)
- Clone the repository:
git clone git@github.com:eicorg/SynradBenchmark.git
cd SynradBenchmark
- Set up the required dependencies and environment for each tool.
- Please navigate to
README
files in each framework directory to produce data files with SR information for the benchmark (comparison). - Go to the
Compare/
directory and run:
root -l compare_diff_rough_0nm.C
to compare SynradG4, Synrad+, Synrad3D, and Geant4-11.2.0 for RMS roughness = 0 nm -- specular reflection
root -l compare_diff_rough_50nm.C
to compare SynradG4, Synrad+, and Synrad3D for RMS roughness = 50 nm -- diffuse reflection
root -l compare_spec_rough_50nm.C
to compare SynradG4 and Geant4-11.2.0 for RMS roughness = 50 nm -- specular reflection only
Contributions to SynradBenchmark are welcome! Feel free to open issues, submit pull requests, or suggest improvements.
For any questions or further information, please contact:
- Andrii Natochii - natochii@bnl.gov