Geant4  10.02.p03
F01PrimaryGeneratorAction Class Reference

#include <F01PrimaryGeneratorAction.hh>

Inheritance diagram for F01PrimaryGeneratorAction:
Collaboration diagram for F01PrimaryGeneratorAction:

Public Member Functions

 F01PrimaryGeneratorAction (F01DetectorConstruction *)
 
virtual ~F01PrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *)
 
void SetRndmFlag (G4String val)
 
void SetXVertex (G4double x)
 
void SetYVertex (G4double y)
 
void SetZVertex (G4double z)
 
- Public Member Functions inherited from G4VUserPrimaryGeneratorAction
 G4VUserPrimaryGeneratorAction ()
 
virtual ~G4VUserPrimaryGeneratorAction ()
 

Static Public Member Functions

static G4String GetPrimaryName ()
 

Private Attributes

G4ParticleGunfParticleGun
 
F01DetectorConstructionfDetector
 
F01PrimaryGeneratorMessengerfGunMessenger
 
G4String fRndmFlag
 
G4double fXVertex
 
G4double fYVertex
 
G4double fZVertex
 
G4bool fVertexDefined
 

Static Private Attributes

static G4ParticleDefinitionfgPrimaryParticle = 0
 

Detailed Description

Definition at line 50 of file F01PrimaryGeneratorAction.hh.

Constructor & Destructor Documentation

◆ F01PrimaryGeneratorAction()

F01PrimaryGeneratorAction::F01PrimaryGeneratorAction ( F01DetectorConstruction det)

Definition at line 56 of file F01PrimaryGeneratorAction.cc.

59  fParticleGun(0),
60  fDetector(det),
61  fGunMessenger(0),
62  fRndmFlag("off"),
63  fXVertex(0.),
64  fYVertex(0.),
65  fZVertex(0.),
66  fVertexDefined(false)
67 {
68  G4int n_particle = 1;
69  fParticleGun = new G4ParticleGun(n_particle);
70 
71  // create a messenger for this class
73 
74  // default particle kinematic
75 
77  G4String particleName;
78  G4ParticleDefinition* particle
79  = particleTable->FindParticle(particleName="e-");
81 
82  fgPrimaryParticle = particle;
83 
86 
90 
91 }
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
CLHEP::Hep3Vector G4ThreeVector
F01PrimaryGeneratorMessenger * fGunMessenger
void SetParticleMomentumDirection(G4ParticleMomentum aMomentumDirection)
int G4int
Definition: G4Types.hh:78
static G4ParticleDefinition * fgPrimaryParticle
void SetParticlePosition(G4ThreeVector aPosition)
static const double GeV
Definition: G4SIunits.hh:214
void SetParticleEnergy(G4double aKineticEnergy)
static G4ParticleTable * GetParticleTable()
F01DetectorConstruction * fDetector
void SetParticleDefinition(G4ParticleDefinition *aParticleDefinition)
Here is the call graph for this function:

◆ ~F01PrimaryGeneratorAction()

F01PrimaryGeneratorAction::~F01PrimaryGeneratorAction ( )
virtual

Definition at line 95 of file F01PrimaryGeneratorAction.cc.

96 {
97  delete fParticleGun;
98  delete fGunMessenger;
99 }
F01PrimaryGeneratorMessenger * fGunMessenger

Member Function Documentation

◆ GeneratePrimaries()

void F01PrimaryGeneratorAction::GeneratePrimaries ( G4Event anEvent)
virtual

Implements G4VUserPrimaryGeneratorAction.

Definition at line 103 of file F01PrimaryGeneratorAction.cc.

104 {
105  // this function is called at the begining of event
106  //
108 
109  G4double x0,y0,z0;
110  if (fVertexDefined)
111  {
112  x0 = fXVertex;
113  y0 = fYVertex;
114  z0 = fZVertex;
115  }
116  else
117  {
118  x0 = 0.;
119  y0 = 0.;
121  }
122 
123  G4double r0,phi0;
124  if (fRndmFlag == "on")
125  {
126  r0 = (fDetector->GetAbsorberRadius())*std::sqrt(G4UniformRand());
127  phi0 = twopi*G4UniformRand();
128  x0 = r0*std::cos(phi0);
129  y0 = r0*std::sin(phi0);
130  }
131 
134 }
CLHEP::Hep3Vector G4ThreeVector
virtual void GeneratePrimaryVertex(G4Event *evt)
static G4ParticleDefinition * fgPrimaryParticle
void SetParticlePosition(G4ThreeVector aPosition)
#define G4UniformRand()
Definition: Randomize.hh:97
static const double twopi
Definition: G4SIunits.hh:75
F01DetectorConstruction * fDetector
double G4double
Definition: G4Types.hh:76
G4ParticleDefinition * GetParticleDefinition() const
const G4double r0
Here is the call graph for this function:

◆ GetPrimaryName()

G4String F01PrimaryGeneratorAction::GetPrimaryName ( )
static

Definition at line 138 of file F01PrimaryGeneratorAction.cc.

139 {
141 }
static G4ParticleDefinition * fgPrimaryParticle
const G4String & GetParticleName() const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetRndmFlag()

void F01PrimaryGeneratorAction::SetRndmFlag ( G4String  val)
inline

Definition at line 58 of file F01PrimaryGeneratorAction.hh.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetXVertex()

void F01PrimaryGeneratorAction::SetXVertex ( G4double  x)

Definition at line 155 of file F01PrimaryGeneratorAction.cc.

156 {
157  fVertexDefined = true;
158  fXVertex = x;
159  G4cout << " X coordinate of the primary vertex = " << fXVertex/mm <<
160  " mm." << G4endl;
161 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
static const double mm
Definition: G4SIunits.hh:114
Here is the caller graph for this function:

◆ SetYVertex()

void F01PrimaryGeneratorAction::SetYVertex ( G4double  y)

Definition at line 165 of file F01PrimaryGeneratorAction.cc.

166 {
167  fVertexDefined = true;
168  fYVertex = y;
169  G4cout << " Y coordinate of the primary vertex = " << fYVertex/mm <<
170  " mm." << G4endl;
171 }
Double_t y
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
static const double mm
Definition: G4SIunits.hh:114
Here is the caller graph for this function:

◆ SetZVertex()

void F01PrimaryGeneratorAction::SetZVertex ( G4double  z)

Definition at line 145 of file F01PrimaryGeneratorAction.cc.

146 {
147  fVertexDefined = true;
148  fZVertex = z;
149  G4cout << " Z coordinate of the primary vertex = " << fZVertex/mm <<
150  " mm." << G4endl;
151 }
G4GLOB_DLL std::ostream G4cout
#define G4endl
Definition: G4ios.hh:61
static const double mm
Definition: G4SIunits.hh:114
Here is the caller graph for this function:

Member Data Documentation

◆ fDetector

F01DetectorConstruction* F01PrimaryGeneratorAction::fDetector
private

Definition at line 67 of file F01PrimaryGeneratorAction.hh.

◆ fgPrimaryParticle

G4ParticleDefinition * F01PrimaryGeneratorAction::fgPrimaryParticle = 0
staticprivate

Definition at line 72 of file F01PrimaryGeneratorAction.hh.

◆ fGunMessenger

F01PrimaryGeneratorMessenger* F01PrimaryGeneratorAction::fGunMessenger
private

Definition at line 69 of file F01PrimaryGeneratorAction.hh.

◆ fParticleGun

G4ParticleGun* F01PrimaryGeneratorAction::fParticleGun
private

Definition at line 66 of file F01PrimaryGeneratorAction.hh.

◆ fRndmFlag

G4String F01PrimaryGeneratorAction::fRndmFlag
private

Definition at line 70 of file F01PrimaryGeneratorAction.hh.

◆ fVertexDefined

G4bool F01PrimaryGeneratorAction::fVertexDefined
private

Definition at line 74 of file F01PrimaryGeneratorAction.hh.

◆ fXVertex

G4double F01PrimaryGeneratorAction::fXVertex
private

Definition at line 73 of file F01PrimaryGeneratorAction.hh.

◆ fYVertex

G4double F01PrimaryGeneratorAction::fYVertex
private

Definition at line 73 of file F01PrimaryGeneratorAction.hh.

◆ fZVertex

G4double F01PrimaryGeneratorAction::fZVertex
private

Definition at line 73 of file F01PrimaryGeneratorAction.hh.


The documentation for this class was generated from the following files: