Geant4  10.02.p03
F02PrimaryGeneratorAction Class Reference

#include <F02PrimaryGeneratorAction.hh>

Inheritance diagram for F02PrimaryGeneratorAction:
Collaboration diagram for F02PrimaryGeneratorAction:

Public Member Functions

 F02PrimaryGeneratorAction (F02DetectorConstruction *)
 
virtual ~F02PrimaryGeneratorAction ()
 
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
 
F02DetectorConstructionfDetector
 
F02PrimaryGeneratorMessengerfGunMessenger
 
G4String fRndmFlag
 
G4double fXVertex
 
G4double fYVertex
 
G4double fZVertex
 
G4bool fVertexDefined
 

Static Private Attributes

static G4ParticleDefinitionfgPrimaryParticle = 0
 

Detailed Description

Definition at line 50 of file F02PrimaryGeneratorAction.hh.

Constructor & Destructor Documentation

◆ F02PrimaryGeneratorAction()

F02PrimaryGeneratorAction::F02PrimaryGeneratorAction ( F02DetectorConstruction det)

Definition at line 56 of file F02PrimaryGeneratorAction.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="proton");
81 
82  fgPrimaryParticle = particle;
83 
86 
87  fZVertex = 0. ; // -0.5*(fDetector->GetAbsorberThickness());
89 
90 }
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
CLHEP::Hep3Vector G4ThreeVector
void SetParticleMomentumDirection(G4ParticleMomentum aMomentumDirection)
int G4int
Definition: G4Types.hh:78
F02DetectorConstruction * fDetector
void SetParticlePosition(G4ThreeVector aPosition)
static const double GeV
Definition: G4SIunits.hh:214
static G4ParticleDefinition * fgPrimaryParticle
void SetParticleEnergy(G4double aKineticEnergy)
F02PrimaryGeneratorMessenger * fGunMessenger
static G4ParticleTable * GetParticleTable()
void SetParticleDefinition(G4ParticleDefinition *aParticleDefinition)
Here is the call graph for this function:

◆ ~F02PrimaryGeneratorAction()

F02PrimaryGeneratorAction::~F02PrimaryGeneratorAction ( )
virtual

Definition at line 94 of file F02PrimaryGeneratorAction.cc.

95 {
96  delete fParticleGun;
97  delete fGunMessenger;
98 }
F02PrimaryGeneratorMessenger * fGunMessenger

Member Function Documentation

◆ GeneratePrimaries()

void F02PrimaryGeneratorAction::GeneratePrimaries ( G4Event anEvent)
virtual

Implements G4VUserPrimaryGeneratorAction.

Definition at line 102 of file F02PrimaryGeneratorAction.cc.

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

◆ GetPrimaryName()

G4String F02PrimaryGeneratorAction::GetPrimaryName ( )
static

Definition at line 137 of file F02PrimaryGeneratorAction.cc.

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

◆ SetRndmFlag()

void F02PrimaryGeneratorAction::SetRndmFlag ( G4String  val)
inline

Definition at line 58 of file F02PrimaryGeneratorAction.hh.

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

◆ SetXVertex()

void F02PrimaryGeneratorAction::SetXVertex ( G4double  x)

Definition at line 144 of file F02PrimaryGeneratorAction.cc.

145 {
146  fVertexDefined = true;
147  fXVertex = x;
148  G4cout << " X coordinate of the primary vertex = " << fXVertex/mm <<
149  " mm." << G4endl;
150 }
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 F02PrimaryGeneratorAction::SetYVertex ( G4double  y)

Definition at line 154 of file F02PrimaryGeneratorAction.cc.

155 {
156  fVertexDefined = true;
157  fYVertex = y;
158  G4cout << " Y coordinate of the primary vertex = " << fYVertex/mm <<
159  " mm." << G4endl;
160 }
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 F02PrimaryGeneratorAction::SetZVertex ( G4double  z)

Definition at line 164 of file F02PrimaryGeneratorAction.cc.

165 {
166  fVertexDefined = true;
167  fZVertex = z;
168  G4cout << " Z coordinate of the primary vertex = " << fZVertex/mm <<
169  " mm." << G4endl;
170 }
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

F02DetectorConstruction* F02PrimaryGeneratorAction::fDetector
private

Definition at line 67 of file F02PrimaryGeneratorAction.hh.

◆ fgPrimaryParticle

G4ParticleDefinition * F02PrimaryGeneratorAction::fgPrimaryParticle = 0
staticprivate

Definition at line 72 of file F02PrimaryGeneratorAction.hh.

◆ fGunMessenger

F02PrimaryGeneratorMessenger* F02PrimaryGeneratorAction::fGunMessenger
private

Definition at line 69 of file F02PrimaryGeneratorAction.hh.

◆ fParticleGun

G4ParticleGun* F02PrimaryGeneratorAction::fParticleGun
private

Definition at line 66 of file F02PrimaryGeneratorAction.hh.

◆ fRndmFlag

G4String F02PrimaryGeneratorAction::fRndmFlag
private

Definition at line 70 of file F02PrimaryGeneratorAction.hh.

◆ fVertexDefined

G4bool F02PrimaryGeneratorAction::fVertexDefined
private

Definition at line 74 of file F02PrimaryGeneratorAction.hh.

◆ fXVertex

G4double F02PrimaryGeneratorAction::fXVertex
private

Definition at line 73 of file F02PrimaryGeneratorAction.hh.

◆ fYVertex

G4double F02PrimaryGeneratorAction::fYVertex
private

Definition at line 73 of file F02PrimaryGeneratorAction.hh.

◆ fZVertex

G4double F02PrimaryGeneratorAction::fZVertex
private

Definition at line 73 of file F02PrimaryGeneratorAction.hh.


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