关于Geant4的代码工具MOMO的一个BUG

 

MOMO为G4初学者建立探测器和添加粒子、物理过程提供了很大的方便。

可是所谓任何人事都不是完美的,MOMO的设计也出现了部分低级BUG。

.

问题出在MOMO的粒子创建(emPhysics栏)子页,

建立"玻色子"的部分有错误,生成代码的void a::ConstructBosons()函数中:

.

添加γ粒子生成的代码是  G4Geantino::GeantinoDefinition();

添加geantino生成的代码是  G4ChargedGeantino::ChargedGeantinoDefinition();

添加chargedgeantino生成的代码是  G4Gamma::GammaDefinition();

.

显然是顺序错了..结果就是某人由于在程序只使用了γ粒子,用MOMO生成的代码在运行是总被告知

*** G4Exception : Event00003

      issued by : G4ParticleGun::SetParticleDefinition()

Null pointer is given.

.

报错报在SetParticleDefinition()函数上,还一直以为是生成粒子的地方出错,找了N久..结果发现被忽悠了=.=`

.

原想在MOMO的官方网站发个Bug报告,可是现在网站好像已经关了。也然怪MOMO几年没有更新过。

.

---------------------------------------------

补充:随着G4版本的不断发展,老旧的MOMO有些地方已经不太适用了,G4.9.3之后更将低能光电过程分成三套不同的物理模型类型,并取消了原来的LowEnergy类型物理过程,低能过程代码的编写方法和原来也不一样..这些估计可以让更多的原先的(以及用MOMO生成的)G4程序全部编译报错=.=^偷懒少写代码有时候更麻烦噢,不是万全之计哎。 

---------------------------------------------

纠正:原来我说"G4好像要取消低能光电过程"是说错了哈..后来看了UserManual,已经把上面的这段话改正了。

你可能感兴趣的:(exception,null,工具)