39 lines
962 B
C++
39 lines
962 B
C++
|
#ifndef B1PrimaryGeneratorAction_h
|
|||
|
#define B1PrimaryGeneratorAction_h 1
|
|||
|
|
|||
|
#include "G4ParticleGun.hh"
|
|||
|
#include "G4VUserPrimaryGeneratorAction.hh"
|
|||
|
#include "globals.hh"
|
|||
|
|
|||
|
class G4ParticleGun;
|
|||
|
class G4Event;
|
|||
|
class G4Box;
|
|||
|
|
|||
|
/// The primary generator action class with particle gun.
|
|||
|
///
|
|||
|
/// The default kinematic is a 6 MeV gamma, randomly distribued
|
|||
|
/// in front of the phantom across 80% of the (X,Y) phantom size.
|
|||
|
|
|||
|
namespace B1 {
|
|||
|
|
|||
|
// G4ParticleGun 粒子枪,即辐射源
|
|||
|
class PrimaryGeneratorAction : public G4VUserPrimaryGeneratorAction {
|
|||
|
public:
|
|||
|
PrimaryGeneratorAction();
|
|||
|
~PrimaryGeneratorAction() override;
|
|||
|
|
|||
|
// method from the base class
|
|||
|
void GeneratePrimaries(G4Event*) override;
|
|||
|
|
|||
|
// method to access particle gun
|
|||
|
const G4ParticleGun* GetParticleGun() const { return fParticleGun; }
|
|||
|
|
|||
|
private:
|
|||
|
G4ParticleGun* fParticleGun = nullptr; // pointer a to G4 gun class
|
|||
|
G4Box* fEnvelopeBox = nullptr;
|
|||
|
};
|
|||
|
|
|||
|
} // namespace B1
|
|||
|
|
|||
|
#endif
|