//defining a GPS fGPS = new G4GeneralParticleSource(); //Primary particles G4ParticleDefinition* particle = G4ParticleTable::GetParticleTable()->FindParticle("e-"); fGPS->SetParticleDefinition(particle); //Spatial distribution G4SPSPosDistribution* vPosDist = fGPS->GetCurrentSource()->GetPosDist(); vPosDist->SetPosDisType("Plane"); vPosDist->SetPosDisShape("Circle"); vPosDist->SetRadius(50.*mm); vPosDist->SetCentreCoords(G4ThreeVector(0.,0.,0.)); //Angular distribution G4SPSAngDistribution* vAngDist = fGPS->GetCurrentSource()->GetAngDist(); vAngDist->SetParticleMomentumDirection(G4ThreeVector(0., 0., 1.)); //Energy distribution G4SPSEneDistribution* vEneDist = fGPS->GetCurrentSource()->GetEneDist(); vEneDist->SetEnergyDisType("Mono"); vEneDist->SetMonoEnergy(400.*keV);