Newer
Older
#include "PrimaryGeneratorAction.h"
#include "G4Event.hh"
#include "G4ParticleTable.hh"
#include "G4IonTable.hh"
#include "G4ParticleDefinition.hh"
PrimaryGeneratorAction::PrimaryGeneratorAction(ToolHandle<IG4PrimaryCnvTool>& cnvtool)
: G4VUserPrimaryGeneratorAction(),
tool(cnvtool) {
}
PrimaryGeneratorAction::~PrimaryGeneratorAction() {
}
void
PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) {
// Generate Vertex (G4PrimaryVertex) and Particle (G4PrimaryParticle).
if (tool) {
tool->mutate(anEvent);
}
// // Following is an example:
// double x = 0.0;
// double y = 0.0;
// double z = 0.0;
// double t = 0.0;
// G4PrimaryVertex* g4vtx = new G4PrimaryVertex(x, y, z, t);
// G4int pdgcode = 22;
// // check the pdgid
// G4ParticleTable* particletbl = G4ParticleTable::GetParticleTable();
// G4ParticleDefinition* particle_def = particletbl->FindParticle(pdgcode);
// double px = 0.0;
// double py = 0.0;
// double pz = 0.0;
// G4PrimaryParticle* g4prim=new G4PrimaryParticle(particle_def, px, py, pz);
// g4vtx->SetPrimary(g4prim);
// anEvent->AddPrimaryVertex(g4vtx);