RadioactiveDecay

GEANT4 安装的数据库中,有一个文件夹 RadioactiveDecay5.x,里面文件格式 z[xx].a[xx],每个文件对应一个核素,z 后面的数值为其质子数,a 后面的数值为核子数。

我们以 60Co 为例,

picrd1

该数据库为给定原子核的衰变信息。

在每个文件中,以 “#” 开头的行都是注释。

以 “P” 开头的行是数据头,表示原子核的激发态/基态,它可能是进一步衰变的母核。“P” 之后的第一个数字是以 keV 为单位的激发能,后面跟着一个表示浮动能级的字符。如果这是符号 “-”,则假定该能级是固定的;如果是 +X、+Y、+Z、+W、+U 或 +V,则能级是浮动的或未确定的。之后的数字是半衰期(秒)。

“P” 行下的缩进行是该态的衰变方式。这里有几种类型的记录,按列数区分。第一列为衰变模式;第二列为子核激发能;第三列为能级是否浮动(可为空);第四列为衰变分支比;第五列为 Q;在 β- 或 β+ 衰变的模式下,通常会有第六列描述特定衰变道的“禁戒”。这由标签firstForbidden、secondForbidder、thirdForbidded、uniqueFirstForbiddent、uniqueSecondForbiddend、uniqueThirdForbid表示,它们决定了 β 能谱的形状。

添加用户数据

默认情况下,会读取文件夹 RadioactiveDecay5.x 里面的数据。但是对于前沿的研究来说,数据通常是存在不足的。这里介绍一个调用自己修改数据的方式。

main.cc

// 这里省略
  G4VisManager* visManager = 0; 
  G4UImanager* UImanager = G4UImanager::GetUIpointer();
  // 代码里,找到以上两行代码。在这两行代码之后添加数据

  // userDecayData
  UImanager->ApplyCommand("/process/had/rdm/setRadioactiveDecayFile 27 60 wu_z27.a60");
  // 其中 27 为质子数, 60 为核子数, wu_z27.a60 为数据文件

文件 wu_z27.a60 中,修改了基态衰变到 2158.632 和 2505.753 的分支比。

示例

60Co 基态,衰变放出 gamma。测量 Ge 探测器上的能谱。

void wuPrimaryGeneratorActionAll::GeneratePrimaries(G4Event* anEvent)
{
  G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
  G4ParticleDefinition* pp = 0;

  // -------------------------

  //自定义带电粒子
  G4int IonZ = 27;
  G4int IonA = 60;
  G4double IonEstar = 0.0*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(0.0*MeV);  

  // 这里省略代码
  // 。。。。。。
  // 粒子各向同性发射
}

典型数据输出如下:
picrd2

能看到 beta 衰变发射的电子和中微子, 它的物理过程描述为 RadioactiveDecayBase。

统计 gamma 在 Ge 上的能量沉积,需要剔除衰变的电子。

picrd3

蓝色和黑色是 GEANT4 默认数据库的结果,其中蓝色没有剔除衰变的电子(实际测量中,由于探测器存在外壳及源有封装结构,电子几乎无法到达探测器晶体)。红色为修改衰变数据的结果。