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. …

luajit简介

LuaJIT是一种高效的Lua解释器,其通过即时编译技术将Lua代码转换为机器代码,从而提供了非常快速的执行速度。在本文中,我们将介绍LuaJIT的原理、使用方法以及在嵌入式Linux系统中的应用示例。 LuaJIT的原理 LuaJIT基于Lua 5.1实现&#xff0…

Java前后端交互的一些细节

在后端进行POST请求后端接收前端数据时,关于PrintWriter:参考地址 注意传进来的对象为空说明未在数据库查到拥有该账号的用户,所以需要告诉前端“账号密码不正确”,如果不为空说明有该用户,所以可以登录。 Overridep…

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

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

sql注入(6), 更新注入, 堆叠注入, 宽字节注入

一, 更新注入 更新操作只返回布尔型结果, 所以无法像select语句进行多样化测试, 所以更新类的操作重点就是报错注入. 注意报错注入的前提是页面上能够看到数据库的报错信息, 利用报错信息显示我们需要的数据. 情景 修改密码时对url进行post请求, 提交密码. url: http://192.…

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;并调…

GDB 跳转执行

1、 s:进入某个函数 finish :从这个函数中出来 (gdb) b dkauth_mgr.c:132 Breakpoint 1 at 0x3423cfd4: file /home/jintao/cvf-integration/apps/cvf/services/dkauth/src/dkauth_mgr.c, line 132. (gdb) r The program being debugged has been started already. Start it …

【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文…