#ifndef YOURPRIMARYGENERATORACTION_HH #define YOURPRIMARYGENERATORACTION_HH #include "G4VUserPrimaryGeneratorAction.hh" class YourDetectorConstruction; class G4ParticleGun; class G4Event; class YourPrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: YourPrimaryGeneratorAction(YourDetectorConstruction* det); ~YourPrimaryGeneratorAction(); // pure virtaul method to implement virtual void GeneratePrimaries(G4Event*); // // Additional // set default properties of the primary particles // type: e- // E : 30 MeV // dir : [1,0,0] | world o x-pos -----> | tar(zero)get | world | // pos : (x-pos, 0, 0) set by calling UpdatePosition() void SetDefault(); // make sure that initial X positon is correct void UpdatePosition(); private: YourDetectorConstruction* fDetector; G4ParticleGun* fGun; }; #endif