猪头Geant4讲座(8)
时间:2025-04-20
时间:2025-04-20
值得一提的是,在Geant4中为了定义复杂的混合物,还提供了
AddMaterial(G4Material* material, //the material
G4double fraction); //fractionOfMass
函数,通过这个函数可以将已经定义好的材料作为新材料的一种组成直接添加。
如$G4INSTALL/example/novice/N03中气凝胶就是由62.5%的二氧化硅、37.4%的水和0.1%的碳组成的,由于二氧化硅和水在之前都已经定义了,因此直接使用AddMaterial(G4Material* material, G4double fraction)添加即可,而碳则是一种元素需要用AddElement(G4Element* element , G4double fraction)添加,如下:
G4Material* Aerog =
new G4Material("Aerogel", density= 0.200*g/cm3, ncomponents=3);
Aerog->AddMaterial(SiO2, fractionmass=62.5*perCent);
Aerog->AddMaterial(H2O , fractionmass=37.4*perCent);
Aerog->AddElement (C , fractionmass= 0.1*perCent);
而对于单质,由于是由一种元素组成的,因此可以将元素定义和材料定义合并,
参考$G4INSTLL/source/materials/include/G4Material.hh如下
// Constructor to create a material from scratch.
//
G4Material(const G4String& name, //its name
G4double z, //atomic number
G4double a, //mass of mole
G4double density, //density
G4State state = kStateUndefined, //solid,gas
G4double temp = STP_Temperature, //temperature
G4double pressure = STP_Pressure); //pressure
如$G4INSTALL/example/novice/N03中铝材料就是直接定义的。
new G4Material("Aluminium", z=13., a=26.98*g/mole, density=2.700*g/cm3);
需要注意的是在采用直接定义法定义元素或者直接定义单质的时候,其中的原子序数的类型是G4double,而不是G4int,但是从$G4INSTLL/source/materials/include/中看,这个变量最终似乎是被转换为G4int型处理的。由于时间关系,本人没有进行深入地研究,有兴趣的同仁可以研究一下这里为什么不用G4int而用G4double,是否还有别的含义。
猪头Geant4讲座第六讲——几何模型
上一讲我们讲过了,几何结构类(DetectorConstruction)属于强制初始化类,其主要功能是构建模拟问题的几何结构,包括各部分的材料、形状、尺寸、位置等信息。
前面我讲了材料如何定义,今天我主要讲几何模型的建立以及各部分材料的设置。
在讲如何建立几何模型前我想首先讲一下Geant4中所采用的几何建模思想。
学过MCNP或Fluka的都知道MCNP和Fluka采用的是CG模型,所谓CG模型就是Combination
上一篇:日常工作准则