用Geant4模拟计算探测器对γ射线的探测效率,在PrimaryGeneratorAction中进行如下设置:
G4int n_particle = 1;
particleGun = new G4ParticleGun(n_particle);
// default particle
G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* particle = particleTable->FindParticle("gamma");
particleGun->SetParticleDefinition(particle);
然后在运行的宏文件Run.mac文件中进行如下设置:
/run/numberOfThreads 10
/run/initialize
/gun/particle gamma
/gun/energy 616.66 keV
/run/beamOn 1000000
如上设置后计算的效率比实验效率高了接近12倍,经检查探测器模型等条件皆没错。
之后怀疑有没有可能是重复定义了粒子类型,于是在Run.mac文件中把/gun/particle gamma这一句给注释掉后再进行计算。计算出来的探测效率与实验效率相差千分之几。
现在问题是解决了,但为啥???