Skip to content

Instantly share code, notes, and snippets.

@ZhijieWang
Last active October 13, 2021 17:58
Show Gist options
  • Save ZhijieWang/48e0da5722b2009b25b9b0a296efb67c to your computer and use it in GitHub Desktop.
Save ZhijieWang/48e0da5722b2009b25b9b0a296efb67c to your computer and use it in GitHub Desktop.
GEANT4-build
CMAKE_VERSION=3.21
CMAKE_BUILD=3
GEANT4_VERSION_TAG=v10.7.2
MAX_NUM_G4_THREADS=18
G4_DATASETS=('G4EMLOW.7.7.tar.gz' 'G4ENSDFSTATE.2.2.tar.gz')
G4ENSDFSTATEDATA=/usr/local/geant4-data/G4ENSDFSTATE2.2
G4LEDATA=/usr/local/geant4-data/G4EMLOW7.7
PATH=$PATH:/usr/local/geant4/bin:/opt/cmake/cmake-3.21.3-linux-x86_64/bin/
sudo apt-get install make libexpat1 libexpat1-dev
echo "Installing CMake..."
sudo apt purge --auto-remove cmake # uninstall default CMake version included by Ubuntu's package manager
mkdir ~/temp
cd ~/temp
wget https://cmake.org/files/v$CMAKE_VERSION/cmake-$CMAKE_VERSION.$CMAKE_BUILD-linux-x86_64.sh
sudo mkdir /opt/cmake
sudo bash cmake-$CMAKE_VERSION.$CMAKE_BUILD-linux-x86_64.sh --prefix=/opt/cmake --skip-license
sudo ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake
echo "Downloading Geant4..."
cd ~/temp
git clone --depth 1 --branch $GEANT4_VERSION_TAG https://github.com/Geant4/geant4.git geant4
echo "Downloading Geant4 data..."
mkdir -p ~/temp/local/geant4-data
cd ~/temp/local/geant4-data
for DATASET in "${G4_DATASETS[@]}"
do
echo "Downloading $DATASET..."
wget http://geant4.cern.ch/support/source/$DATASET
tar -xvzf $DATASET
rm -rf $DATASET
done
echo "Building Geant4..."
mkdir -p ~/temp/geant4-build
cd ~/temp/geant4-build
cmake -DCMAKE_BUILD_TYPE=Release -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_INSTALL_DATADIR=$GEANT4_DATA_DIR/geant4_data -DGEANT4_BUILD_STORE_TRAJECTORY=OFF -DGEANT4_BUILD_VERBOSE_CODE=OFF -DCMAKE_INSTALL_PREFIX=~/temp/geant4-install ~/temp/geant4
make -j$MAX_NUM_G4_THREADS
sudo make install
cp -a ~/temp/geant4-install/. /usr/local/geant4
echo "Cleaning up..."
sudo rm -rf ~/temp
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment