// M Hentz, 2016 #ifndef PrimaryGeneratorAction_h #define PrimaryGeneratorAction_h 1 #include "G4VUserPrimaryGeneratorAction.hh" #include "G4GeneralParticleSource.hh" #include "G4ParticleGun.hh" #include "G4VPrimaryGenerator.hh" #include "globals.hh" class G4Event; class DetectorConstruction; class PrimaryGeneratorMessenger; class FileReader; class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction { public: PrimaryGeneratorAction(); ~PrimaryGeneratorAction(); public: virtual void GeneratePrimaries( G4Event* ); void ResetEbeamCumul() { fEbeamCumul = 0.; } G4double GetEbeamCumul() { return fEbeamCumul; } G4GeneralParticleSource* GetParticleGunGPS() { return fParticleGunGPS; } G4ParticleGun* GetParticleGun() { return fParticleGun; } void SetInputFileName( G4String filename ) { fInputFileName = filename; } void SetPrimaryPosition( G4double primaryPosition ) { fPrimaryPosition = primaryPosition; } private: PrimaryGeneratorMessenger* fPrimaryGenMessenger; G4GeneralParticleSource* fParticleGunGPS; G4ParticleGun* fParticleGun; G4double fPrimaryEnergy; G4double fEbeamCumul; G4double fPrimaryPosition; G4bool fFirst; // G4bool fGenerateFromInput; G4String fInputFileName; static FileReader* fReader; }; #endif