Geant4调用DetectorConstruction和PrimaryGeneratorAction
在RunAction中调用DetectorConstruction和PrimaryGeneratorAction
const auto* detectorConstruction = dynamic_cast< const DetectorConstruction* >
(G4RunManager::GetRunManager()->GetUserDetectorConstruction() );
G4Material* targetMaterial = detectorConstruction->GetTargetMaterial();
// There is no primary generator action object for "master"
const auto* generatorAction = dynamic_cast< const PrimaryGeneratorAction* >
(G4RunManager::GetRunManager()->GetUserPrimaryGeneratorAction() );
G4double particleEnergy;
if(generatorAction) {
const G4ParticleGun *particleGun = generatorAction->GetParticleGun();
particleEnergy = particleGun->GetParticleEnergy();//粒子能量
// particleGun->GetParticleMomentum(); //粒子动量
// particleGun->GetParticlePolarization(); //粒子位置
// particleGun->GetNumberOfParticles(); //粒子数量
// particleGun->GetParticleDefinition()->GetParticleName(); //粒子名称
// particleGun->GetParticleDefinition()->GetParticleTable(); //粒子种类
}