GEANT4 安装的数据库中,有一个文件夹 PhotoEvaporation5.x,里面文件格式 z[xx].a[xx],每个文件对应一个核素,z 后面的数值为其质子数,a 后面的数值为核子数。
我们以 60Ni 为例,
该数据库为原子核的给定能级的退激数据,能级信号包含自旋宇称、跃迁角动量等。
定义同位素能级的数据包含6列:
在定义能级之后,n_gammas 行信数据描述退激 gamma 的信息。gamma 的信息如下:
默认条件下, GEANT4 会读取文件夹 PhotoEvaporation5.x 的数据。在 gamma 谱学研究中,测量的能级信息往往是 ENSDF 中没有的,因此需要读取我们数据表。
main.cc
// 这里省略
mtrunManager->Initialize();
// 在内核初始化之后添加数据
// 代码里,找到以上两行代码。在这行代码之后添加
// userEvaporationData
//G4NuclearLevelData::GetInstance()->AddPrivateData(Z, A, file_name);
G4NuclearLevelData::GetInstance()->AddPrivateData(28, 60, "wu_z28.a60");
文件 wu_z28.a60 中,修改了能级 2505 keV 的退激 gamma 分支比。
60Ni 2505 keV 能级退激在 Ge 探测器上的能谱。
void wuPrimaryGeneratorActionAll::GeneratePrimaries(G4Event* anEvent)
{
G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
G4ParticleDefinition* pp = 0;
// -------------------------
//自定义带电粒子
G4int IonZ = 28;
G4int IonA = 60;
G4double IonEstar = 2505.753*keV; //exitition energy
G4double IonQ = 1;
pp = particleTable->GetIonTable()->GetIon(IonZ, IonA, IonEstar);//4.10.01版本强制 G4IonTable.hh
particleGun->SetParticleCharge(IonQ);
if(pp)
particleGun->SetParticleDefinition(pp);
else
G4cout<<"##Null pp in wuPrimaryGeneratorAction::SetParticleGun()"<<G4endl;
//primary particle kinetic energy
particleGun->SetParticleEnergy(2.0*MeV);
// 这里省略代码
// 。。。。。。
// 粒子各向同性发射
}
典型数据输出如下:
比较默认数据库和我们修改数据库, Ge 探测器测量的能谱。其中黑色为 GEANT4 默认 ENSDF 库。
解释为何 gamma 峰存在展宽?
图中黑色数据,2505 keV 能级,通过 1173 和 1332 退激到基态,同时也可直接发射 2505 到基态,它们的强度比为 100:2e-6。为何图中 2505 keV 的 gamma 峰这么强?
!date
!jupyter nbconvert PhotoEvaporation.ipynb --to html
2024年 05月 03日 星期五 19:04:36 CST [NbConvertApp] Converting notebook PhotoEvaporation.ipynb to html [NbConvertApp] Writing 567574 bytes to PhotoEvaporation.html