使用GEANT4的模拟技术1

GEANT4用户指南:从工具包到用户程序
本文详细介绍了如何使用GEANT4工具包来开发用户程序,覆盖了从工具包介绍到用户程序的基本概念、核心操作直至高级应用的全过程。包括探测器几何设置、源粒子发射、物理模型选择、模拟精度调整、内核交互、可视化模拟结果等关键步骤,并提供了实例指导。

简介

本文来源于意大利国家核物理研究院INFN的08年的slides。原文名称simulation techniques using geant4,原文主要讲述的是开发geant4用户程序的方法。这里做个笔记包括个人感想

GEANT4介绍------工具包+用户程序

GEANT4提供的是用户程序和工具包,以及若干文档。

GEANT4是一个工具包

这里强调他是一种工具包,英文是TOOLKIT,也就是说,提供的是一些库文件、计算核心以及数据库。而不是提供特定的程序。这样可以带来很强的灵活性, 还能保证G4本身的开发的高度可维护性,这个可维护性是我想的,暂时没找到合适的、强大的根据。由于是工具包, 因此,用户运行程序不能独立于G4内核以及数据库,虽然也有人将模拟的程序集成到其他软件, 可以部分提取G4内核和部分数据库, 但是不如将整个内核与部分数据库提取,经过压缩后, 体积并不大。另外一个关键问题是,由于G4是只提供库文件、内核以及数据库的, 所以用户必须写出自己的代码来, 唯有如此,才能完成特地的任务。

导致的结果

  • 不存在G4的默认值

    这句话我不太赞同, 现在新版本已经将一些物理过程打包, 具体可以参考心版本的一些例子,他们的调用方式可以看出来这一点。

  • 必须提供必要的信息来设置自己的模拟

    所谓的必要信息其实就是探测器几何、源粒子发射以及物理模型的构造。

  • 必须仔细谨慎选择用哪种工具来使用

指导---提供了许多例子

例子包括novice 和 advance,其实这是老版本的说法,对于新版本,例子novice其实已经删除了,正如文章所说,novice的作用仅仅是帮助用于了解g4。而关键的是advanced,这一部分才是实际应用。因此对于每个学习G4的人,至少都要看看ADVANCED例子。

基本概念

必须做的

  • 描述实验设置
  • 为模拟的输入提供初始粒子
  • 确定使用g4提供的哪些物理模型和粒子,确定模拟精度,
    通过设定产生和追踪次级粒子的截断值。

也许想要做的

  • 与内核进行交互,从而控制模拟
  • 可视化模拟设置或结果
  • 产生柱状图,元组tuples等,以便进行进一步分析。

与G4内核交互

geant4默认提供了一些工具可以使用

  • 告诉内核关于你的模拟设置
  • 单独和内核本身交互

G4提供的用户交互工具是基本类

  • 用户可以根据这个创建自己的具体类
  • G4可以使用他自己的基本类透明的处理你的派生类,这叫多态性(polymorphism)

用户交互的抽象基类

  • 用户派生具体类是强制性的,也就是说用户必须根据这个派生出具体的类

用户交互的具体基类---带有virtual的虚方法

  • 这种情况下,用户派生类是可选的。

用户类

初始化类

  • G4VUserDetectorConstruction
  • G4VUserPhysicsList

行为类

  • G4VUserDetectorConstruction
  • G4UserRunAction
  • G4UserEventAction
  • G4UserTrackingAction
  • G4UserStackingAction
  • G4UserSteppingAction

上述类中的强制类有

  • G4VUserDetectorConstruction

    用于描述实验设置

  • G4VUserPhysicsList

    选择想要激活的物理过程

  • G4VUserPrimaryGeneratorAction

    产生初级粒子

转载于:https://www.cnblogs.com/liq07lzucn/p/4477678.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值