Skip to content
Snippets Groups Projects
Commit c172e867 authored by lintao@ihep.ac.cn's avatar lintao@ihep.ac.cn
Browse files

Add a dummy Primary Generator Action.

parent aa22f37a
No related branches found
No related tags found
No related merge requests found
......@@ -11,6 +11,7 @@ include(${Geant4_USE_FILE})
set(DetSimCore_srcs
src/DetSimAlg.cpp
src/DetectorConstruction.cpp
src/PrimaryGeneratorAction.cpp
)
gaudi_add_module(DetSimCore ${DetSimCore_srcs}
......
......@@ -6,6 +6,7 @@
#include "G4PhysListFactory.hh"
#include "PrimaryGeneratorAction.h"
DECLARE_COMPONENT(DetSimAlg)
......@@ -33,8 +34,9 @@ DetSimAlg::initialize() {
return StatusCode::FAILURE;
}
// Detector Construction
runmgr->SetUserInitialization(new DetectorConstruction());
// Physics List
G4VUserPhysicsList *physicsList = nullptr;
if (m_physics_lists_name.value() == "CEPC") {
......@@ -44,8 +46,8 @@ DetSimAlg::initialize() {
}
assert(physicsList);
runmgr->SetUserInitialization(physicsList);
runmgr->SetUserAction((G4VUserPrimaryGeneratorAction*)0);
// Primary Generator Action
runmgr->SetUserAction(new PrimaryGeneratorAction());
// after set up the user initialization and user actions, start the initialization.
m_detsimsvc->initializeRM();
......
#include "PrimaryGeneratorAction.h"
#include "G4Event.hh"
#include "G4ParticleTable.hh"
#include "G4IonTable.hh"
#include "G4ParticleDefinition.hh"
PrimaryGeneratorAction::PrimaryGeneratorAction() {
}
PrimaryGeneratorAction::~PrimaryGeneratorAction() {
}
void
PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent) {
// Generate Vertex (G4PrimaryVertex) and Particle (G4PrimaryParticle).
// 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);
}
#ifndef PrimaryGeneratorAction_h
#define PrimaryGeneratorAction_h
#include "G4VUserPrimaryGeneratorAction.hh"
class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction
{
public:
PrimaryGeneratorAction();
~PrimaryGeneratorAction();
public:
void GeneratePrimaries(G4Event* anEvent);
};
#endif
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment