AlmaLinux (兼容centos)安装Geant4与ROOT

AlmaLinux 介绍

AlmaLinux OS 是一个开源、社区驱动的 Linux 操作系统,它填补了因 CentOS 稳定版本停止维护而留下的空白,同时更加强大。

安装 AlmaLinux

这个我用的是 windows 子系统进行安装

首先打开微软商店,然后搜索AlmaLinux,选择AlmaLinux9安装。

AlmaLinux安装

安装依赖软件包

Cmake 安装

这里 Cmake 我是直接安装的,并没有自己编译,直接安装的版本完全够用。

sudo dnf install cmake

expat 安装

sudo dnf install expat.x86_64 expat expat-devel

qt5core 安装

sudo dnf install 'qt5*-devel.x86_64'

安装 X11、Xmu 和 Motif 库

sudo dnf install libX11-devel libXmu-devel motif-devel

XercesC 安装

XercesC搜索不到

XercesC 在 AmlaLinux 中并不可以直接安装(也可能是我没找到),这里通过源码进行编译安装。

  1. 去xerces-c 网站获取下载链接

获取下载链接

  1. 到终端使用命令wget download-link进行下载

  2. 使用命令解压tar -zxvf 文件名.tar.gz对文件进行解压

  3. cd 下载后的文件夹

  4. 执行./configure命令

  5. 执行make -j线程数,如make -j8

  6. 执行sudo make install

这样就是安装好了。

安装 Geant4

这里说一下,我一开始编译的是最新版的Geant4-11.1.2(截止到2023.10.10),但是报错,这里我就降低一个版本。

下载 Geant4 源码压缩文件与数据压缩文件

打开Old Geant4 releases

Geant4历史版本局部图片

可以看到,最新版的是11.1.2,所以我就下载11.1.1,这里对 11.1.1 进行点击,打开网页页面如下图,这里获取下载链接方法与XercesC安装获取下载链接方法相同,不再过多赘述。

然后就在终端进行wget下载。

注意:这里我把 Geant4 的源码压缩包与 dataset 文件在同一文件夹下

这里对于数据集的下载我是mkdir dataset一个文件夹,然后进入dataset文件夹中,对数据集文件进行wget,这里数据集的下载链接获取同上。

这里可以使用解压命令对Geant4的压缩文件进行解压。

看上图可以发现我也创建了一个data文件夹,这时候我把dataset里面的数据集压缩文件复制到data文件夹中,这里 dataset 文件夹是做备份用的,防止以后用。这里之所以创建一个data文件夹是因为后面编译好的Geant4还需要data文件夹存放数据集,这里我就直接创建,到时候复制就好了。

# 把dataset中的数据集压缩文件复制到data文件夹
cp -r /path/to/dataset/*tar.gz /path/to/data# 批量解压tar.gz文件
for file in *.tar.gz; do tar -zxvf "$file"; done# 批量删除tag.gz文件
rm -rf *tar.gz

编译 Geant4

注意都是在Geant-v11.1.1-build内操作

  1. cmake

当解压好 Geant4 压缩文件后,创建一个Geant-v11.1.1-build文件夹(可以根据自己的文件创建,甚至创建为 Geant4-build 都可以,没有要求),然后使用下面命令进行编译(cd到 Geant-v11.1.1-build 文件夹内进行执行)。

cmake -DCMAKE_INSTALL_PREFIX=/path/to/geant4-v11.1.1-build -DGEANT4_BUILD_MULTITHREADED=ON -DGEANT4_USE_GDML=ON -DGEANT4_USE_QT=ON -DGEANT4_USE_OPENGL_X11=ON -DGEANT4_USE_RAYTRACER_X11=ON -DGEANT4_USE_XM=ON /path/to/geant4-v11.1.1
注意/path/togeant4-v11.1.1-build文件夹的父路径,需要自己替换/path/to/geant4-v11.1.1-build为源码文件夹,/path/to/geant4-v11.1.1-build为要安装的位置,这里pwd一下自己进行路径替换。如geant4-v11.1.1-build/home/admin/app下,那么path/to就是/home/admin/app,下面遇到的所有情况同理。

cmake成功示例

cmake成功后的示例,只要中间不爆红,不退出编译就行。

  1. make -j

再执行 make -j(j 为并行核数),如make -j8

成功示例(copy人家的)

  1. make install
    最后执行make install,就会将安装文件写入,指定的安装文件夹中。

  2. 将数据包 copy 到 Geant 中

cp -r /path/to/data /path/to/geant4-v11.1.1-build/share/Geant4

以上就编译好了

配置环境变量

  1. 执行vi ~/.bashrc命令,把下面内容添加到结尾。
# Geant4配置
export GEANT4=/path/to/geant4-v11.1.1-build
source $GEANT4/bin/geant4.sh
  1. 执行source ~/.bashrc命令

测试

进入存放例子的文件夹,复制一个例程。

我的存放路径是/path/to/geant4-v11.1.1-build/share/Geant4/examples/basic/B1

这里我复制的是B1,其在/path/to/geant4-v11.1.1-build/share/Geant4/examples/basic路径下。basic文件夹是基本的例程,有B1~B5的 5 个例程。

测试步骤:

  1. 进入复制的 B1 文件夹中
  2. 创建一个 build 文件夹并进入 build 文件夹:mkdir build && cd build
  3. 运行cmake ..命令

cmake成功示例

  1. 运行make -j

make -j成功示例

可以看到已经生成一个exampleB1文件。

  1. 运行./exampleB1命令

成功示例

ROOT 安装

命令:

sudo dnf install root python3-root

这里无法使用 jupyter,发现其依赖 gui,暂时不可用,但是可以在 python 上使用 ROOT,运行python3就可以import ROOT,对于在该系统下的 jupyter 使用 ROOT,后面解决了再出文章。

示例:

from ROOT import TH1D,TCanvas
# 创建一个叫c1的画布,标题为Histograms Exmple,画布宽600,高900
c1 = TCanvas("c1", "Histograms Exmple", 800, 600)
# 创建一个叫h1d1,标题为TH1D Exmple,把[-10,10]区间分为200个小区间的直方图
h1d1 = TH1D("h1d1", "TH1D Exmple", 200, -10, 10)
# FillRandom 用于高斯分布、泊松分布等填充。
h1d1.FillRandom("gaus", 10000)  # 使用gaus,并填充10000个数据
h1d1.Draw()

运行结果

个人感觉如果使用python来写root没有docker里面构建jupyter环境方便,而且在jupyter中可以写C++的ROOT代码。(需要Docker文件构建jupyter环境的私我)

直接使用 root 也是可以的。

直接使用root截图

END

好了,本期到此结束,我们下期再见

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/104558.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用XLua在Unity中获取lua全局变量和函数

1、Lua脚本 入口脚本 print("OK") --也会执行重定向 require("Test") 测试脚本 print("TestScript") testNum 1 testBool true testFloat 1.2 testStr "123"function testFun()print("无参无返回") endfunction te…

【想法】取代NI的 PCIe-8371

PCIe-8371 涨价非常厉害。 PCA3 https://www.terasic.com.tw/cgi-bin/page/archive.pl?LanguageEnglish&CategoryNo65&No1143 PCA3 (PCIe Cable Adapter, Gen 3) is a conversion card to connect boards with your host PC. It can support up to PCIe Gen 3 x4. …

基于天牛须优化的BP神经网络(分类应用) - 附代码

基于天牛须优化的BP神经网络(分类应用) - 附代码 文章目录 基于天牛须优化的BP神经网络(分类应用) - 附代码1.鸢尾花iris数据介绍2.数据集整理3.天牛须优化BP神经网络3.1 BP神经网络参数设置3.2 天牛须算法应用 4.测试结果&#x…

vscode虚拟环境使用jupyter

在某虚拟环境内安装torch,但是ipyn文件保存后无法正常导入torch 1.conda环境下安装Jupyter等一切配置,进入虚拟环境 2.conda install nb_conda_kernels 3.安装完成后重新打开VSCode,在运行Jupyter notebook中的代码之前,在右上…

微软和OpenAI正在开发AI芯片, 并计划下个月发布

今年初,Chat**引起了无数网友关注,一度成为了热门话题。这是由人工智能研究实验室OpenAI开发的一款聊天机器人模型,也称为一种人工智能(AI)技术驱动的自然语言处理工具。能够通过学习和理解人类的语言来进行对话&#…

百度SEO优化全攻略(提高网站排名的5个方面)

百度SEO入门介绍: 随着互联网的不断发展,SEO已经成为网站优化的重要一环。而百度作为中国最大的搜索引擎,其SEO优化更是至关重要。SEO不仅能够提高网站排名,还能够提高网站流量、用户体验以及品牌知名度。因此,掌握百…

orgChart.js组织架构图

OrgChart.js是什么? 基于ES6的组织结构图插件。 特征 支持本地数据和远程数据(JSON)。 基于CSS3过渡的平滑扩展/折叠效果。 将图表对齐为4个方向。 允许用户通过拖放节点更改组织结构。 允许用户动态编辑组织图并将最终层次结构保存为…

[CSAWQual 2019]Web_Unagi - 文件上传+XXE注入(XML编码绕过)

[CSAWQual 2019]Web_Unagi 1 解题流程1.1 分析1.2 解题2 思考总结1 解题流程 这篇博客讲了xml进行编码转换绕过的原理:https://www.shawroot.cc/156.html 1.1 分析 页面可以上传,上传一句话php失败,点击示例发现是xml格式,那么就是XXE注入了 点击about得到flag位置: Fla…

蓝桥杯每日一题2023.10.13

组队 - 蓝桥云课 (lanqiao.cn) 题目描述 方法一:由肉眼观察找到在一至五号位的不同编号成员的最大的值 #include<bits/stdc.h> using namespace std; int main() {cout << 98 99 98 97 98;return 0; } 方法二&#xff1a;由dfs一一找寻 #include<bits/st…

图形界面四则运算计算器(Python+PyQt5)

(1) 导入所需的库和模块。 (2) 创建一个名为Calculator的类&#xff0c;继承自QMainWindow。 (3) 在Calculator类的__init__方法中&#xff0c;调用initUI方法初始化界面。 (4) 在initUI方法中&#xff0c;设置窗口标题和大小&#xff0c;创建显示结果的文本框&#xff0c;并调…

【AI视野·今日Sound 声学论文速览 第二十四期】Thu, 12 Oct 2023

AI视野今日CS.Sound 声学论文速览 Thu, 12 Oct 2023 Totally 12 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Sound Papers Enhancing expressivity transfer in textless speech-to-speech translation Authors Jarod Duret LIA , Benjamin O Brien LIA , Yanni…

PyTorch 深度学习之处理多维特征的输入Multiple Dimension Input(六)

1.Multiple Dimension Logistic Regression Model 1.1 Mini-Batch (N samples) 8D->1D 8D->2D 8D->6D 1.2 Neural Network 学习能力太好也不行&#xff08;学习到的是数据集中的噪声&#xff09;&#xff0c;最好的是要泛化能力&#xff0c;超参数尝试 Example, Arti…

Java 基于SpringBoot的某家乡美食系统

1 简介 《Java 基于SpringBoot的某家乡美食系统》该项目含有源码、文档等资料、配套开发软件、软件安装教程等。系统功能完整&#xff0c;适合作为毕业设计、课程设计、数据库大作业学习使用。 功能介绍 这个项目是基于 SpringBoot和 Vue 开发的地方美食系统&#xff0c;包括…

K邻近算法(KNN,K-nearest Neighbors Algorithm)

文章目录 前言应用场景欧几里得距离&#xff08;欧氏距离&#xff09;两类、单一属性&#xff08;1D&#xff09;两类、两种属性&#xff08;2D&#xff09;两类、两种以上属性&#xff08;>3D&#xff09; Examples in R再来一个补充一下什么是变量 什么是变量&#xff1f;…

React之setState

一、useState使用规则 1、useState 函数可以执行多次&#xff0c;每次执行互相独立&#xff0c;每调用一次为函数组件提供一个状态 2、useState只能出现在【函数组件】或者其他hook函数中 3、不能嵌套在if/for/其它函数中&#xff08;react按照hooks的调用顺序识别每一个hook&…

ubuntu下yolov5 tensorrt模型部署

文章目录 ubuntu下yolov5 tensorrt模型部署一、Ubuntu18.04环境配置1.1 安装工具链和opencv1.2 安装Nvidia相关库1.2.1 安装Nvidia显卡驱动1.2.2 安装 cuda11.31.2.3 安装 cudnn8.21.2.4 下载 tensorrt8.4.2.41.2.5 下载仓库TensorRT-Alpha并设置 二、从yolov5源码中导出onnx文…

力扣第108题 将有序数组转二叉搜索树 c++

题目 108. 将有序数组转换为二叉搜索树 简单 相关标签 树 二叉搜索树 数组 分治 二叉树 给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵 高度平衡 二叉搜索树。 高度平衡 二叉树是一棵满足「每个节点的左右两个子树…

【iOS】Mac M1安装iPhone及iPad的app时设置问题

【iOS】Mac M1安装iPhone及iPad的app时设置问题 简介一&#xff0c;设置问题二&#xff0c;适配问题 简介 由于 苹果M1芯片的Mac可用安装iPhone以及iPad应用&#xff0c;因为开发者并没有适配Mac&#xff0c;因此产生了很多奇怪问题&#xff0c;这里总结归纳Mac M1安装iPhone和…

五、OSPF动态路由实验

拓扑图&#xff1a; 基本ip的配置已经配置好了&#xff0c;接下来对两台路由器配置ospf协议&#xff0c;两台PC进行跨网段通讯 R1与R2构成单区域OSPF区域0&#xff0c;首先对R1进行配置 首先进入ospf 默认进程1&#xff0c;router id省略空缺&#xff0c;之后进入area 0区域&…

迁移学习--预训练微调

目录 1、迁移学习作用 2、迁移学习的途径 3、相关的领域 4、在计算机视觉中的应用 5、迁移学习的办法 预训练模型 微调 6、总结 1、迁移学习作用 定义&#xff1a;能在一个任务学习一个模型&#xff0c;然后用来解决相关的别的任务&#xff0c;这样我们在一个地方花…