当前位置: 首页 > news >正文

Day 03 设置粒子枪 G4ParticleGun -----以B1为实例

Day 03 设置粒子枪 G4ParticleGun -----以B1为实例

想要设置粒子源,必须建立一个自己的类,B1PrimaryGeneratorAction(文件名),该文件继承的是G4VUserPrimaryGeneratorAction。但真正发射粒子的是G4PrimaryGenerator

Action表示这是一个动作类(主要看继承的G4的类是不是动作类),动作类目的:帮助用户提取信息。该文件是一个强制的Action Class(因为必须要,所以强制)

有一个虚函数GeneratorPrimaryies(),这个虚函数必须实现,这是动作类PrimaryGeneratorAction所提供的一个接口/方法。这个类的作用不是用来发射初级粒子的,只有G4PrimaryGenerator才是实现发射粒子的那个类,并且是在GeneratePrimaries()里面实现粒子源初始化定义

# 设置粒子源的方向
G4ParticleDefinition* particle= particleTable->SetParticleDefinition(paticleName="gama")    # 设置粒子为γ粒子,粒子有各自的颜色
fParticleGun->SetParticleDefinition(particle)            
fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0,0,1))   # 方向
fParticleGun->SetParticleEnergy(6*Mev)   # 能量
# 设置粒子枪的位置,其中x0,y0,z0是根据envSizeXY、envSizeZ计算获得的
fParticleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0))

粒子颜色:nagtive(负):red、neutral(中性):green、positive(正):blue

查看粒子信息:可以打印出来(tracking verbose决定打印信息的详细状况),初始粒子的parent ID为0,track ID(每个粒子都有其特定的ID)为1,次级粒子的parent ID为其上者粒子的ID

G4PrimaryGenerator产生初级粒子的发射器,有三个子类:G4ParticleGun、G4GeneralParticleSource(简称为GPS)、G4HEPEvtlnterface

G4ParticleGun(粒子枪):

实现发射一个粒子:调用方法(GeneratePrimaryVertex):

# 在文件中进行直接设置,再调用即可
fParticleGun->SetParticleDefinition(particle)            
fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0,0,1))   # 方向
fParticleGun->SetParticleEnergy(6*Mev)   # 能量fParticleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0))fParticleGun->GeneratePrimaryVertex(anEvent)  # 必备,实现发射一个event

将定义好的粒子源的所有属性进行调用并发射一个event。

UI命令(在.mac文件中设置的东西,也可以实现修改粒子源的相关属性):/gun/particle gamma、/gun/energy 8 Mev


文章转载自:

http://U6DKltkE.bqmdL.cn
http://KqsLLH8d.bqmdL.cn
http://2g7sicDV.bqmdL.cn
http://4zdmSbqN.bqmdL.cn
http://VUf4759r.bqmdL.cn
http://amY88hZa.bqmdL.cn
http://PDDHbjH9.bqmdL.cn
http://jAPY2Shx.bqmdL.cn
http://Cuadh2o1.bqmdL.cn
http://EXZUH5M6.bqmdL.cn
http://Zu32lL0q.bqmdL.cn
http://RPJwlCIG.bqmdL.cn
http://iTywk5N2.bqmdL.cn
http://AuFQvCMW.bqmdL.cn
http://DS50fd1W.bqmdL.cn
http://rwQ6LEzg.bqmdL.cn
http://s2puw5ph.bqmdL.cn
http://seabSD38.bqmdL.cn
http://lSKLuTDv.bqmdL.cn
http://J6EFpMoo.bqmdL.cn
http://7T2dJGcZ.bqmdL.cn
http://p54W9qPZ.bqmdL.cn
http://fOegcQoD.bqmdL.cn
http://iKrRr1zQ.bqmdL.cn
http://F0Dw6mpZ.bqmdL.cn
http://1of09Rxo.bqmdL.cn
http://R35AB2l6.bqmdL.cn
http://5QxO3hvy.bqmdL.cn
http://rwCJShg8.bqmdL.cn
http://9lCKM5Mt.bqmdL.cn
http://www.dtcms.com/a/383904.html

相关文章:

  • AI论文写作工具的利弊分析:如何高效利用与规避风险
  • java基础面试题(3)
  • 学习日报|线程池 OOM 案例与优化思路
  • HOT100--Day25--84. 柱状图中最大的矩形,215. 数组中的第K个最大元素,347. 前 K 个高频元素
  • Linux网络:socket编程UDP
  • GeoHash分级索引技术
  • RISC与CISC:ARM指令集解析
  • 第十二篇:Qcom Camx打印实时帧率 FPS
  • 【开题答辩全过程】以 “候鸟式养老机构”管理系统的设计与实践为例,包含答辩的问题和答案
  • 造车阶段解读
  • 技术论文分析分析论文《计算机病毒判定专家系统原理与设计》思考其在游戏中的应用
  • Elasticsearch面试精讲 Day 18:内存管理与JVM调优
  • Android开发-文本输入
  • C++启航:从0到1,解锁面向对象编程的第一把密钥
  • 基于Dash和Plotly的交互式人体肌肉评分可视化系统[附源码】
  • Linux 开发工具(2)
  • Java进阶教程,全面剖析Java多线程编程,什么是多线程,笔记01
  • 论文参考文献交叉引用+中括号变成上标+自动生成目录方法
  • Linux:8_库制作与原理
  • Codeforces Round 1047 Div.3 DEFG补题
  • OWASP Top 10 最新版
  • 【脑电分析系列】第9篇:时频分析利器 — 小波变换与事件相关谱扰动(ERSP)的应用
  • struct的一些函数以及其他用法(析构、友元、构造、成员等)
  • c语言中实现线程同步的操作
  • 【Java后端】Spring Boot 2.7.x 和 Swagger 3.0.x (springfox 3.x) 的兼容性问题
  • Springboot的自动配置原理?
  • 9 月 13 日科技前沿大揭秘:多领域创新闪耀
  • 基于少样本支持的一类学习的增量式生成对抗诊断:
  • TDengine 特殊选择函数 UNIQUE 用户手册
  • 状态机SMACH相关教程介绍与应用案例分析——机器人操作进阶系列 · 状态机篇