Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Attributes | Static Private Attributes | List of all members
F01PrimaryGeneratorAction Class Reference

#include <Doxymodules_field.h>

Inheritance diagram for F01PrimaryGeneratorAction:
G4VUserPrimaryGeneratorAction

Public Member Functions

 F01PrimaryGeneratorAction (F01DetectorConstruction *)
 
 ~F01PrimaryGeneratorAction () override
 
void GeneratePrimaries (G4Event *) override
 
void SetRndmFlag (G4String val)
 
void SetXVertex (G4double x)
 
void SetYVertex (G4double y)
 
void SetZVertex (G4double z)
 

Static Public Member Functions

static G4String GetPrimaryName ()
 

Private Attributes

G4ParticleGunfParticleGun = nullptr
 
F01DetectorConstructionfDetector = nullptr
 
F01PrimaryGeneratorMessengerfGunMessenger = nullptr
 
G4String fRndmFlag = "off"
 
G4double fXVertex = 0.
 
G4double fYVertex = 0.
 
G4double fZVertex = 0.
 
G4bool fVertexDefined = false
 

Static Private Attributes

static G4ParticleDefinitionfgPrimaryParticle = nullptr
 

Detailed Description

Definition at line 41 of file Doxymodules_field.h.

Constructor & Destructor Documentation

◆ F01PrimaryGeneratorAction()

F01PrimaryGeneratorAction::F01PrimaryGeneratorAction ( F01DetectorConstruction det)

Definition at line 55 of file F01PrimaryGeneratorAction.cc.

57 : fDetector(det)
58{
59 G4int n_particle = 1;
60 fParticleGun = new G4ParticleGun(n_particle);
61
62 // create a messenger for this class
64
65 // default particle kinematic
66
67 G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
68 G4String particleName;
69 G4ParticleDefinition* particle
70 = particleTable->FindParticle(particleName="e-");
71 fParticleGun->SetParticleDefinition(particle);
72
73 fgPrimaryParticle = particle;
74
75 fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,-1.));
76 fParticleGun->SetParticleEnergy(0.5*GeV);
77
80 fParticleGun->SetParticlePosition(G4ThreeVector(fXVertex,fYVertex,fZVertex));
81
82}
static G4ParticleDefinition * fgPrimaryParticle
F01DetectorConstruction * fDetector
F01PrimaryGeneratorMessenger * fGunMessenger

◆ ~F01PrimaryGeneratorAction()

F01PrimaryGeneratorAction::~F01PrimaryGeneratorAction ( )
override

Definition at line 86 of file F01PrimaryGeneratorAction.cc.

87{
88 delete fParticleGun;
89 delete fGunMessenger;
90}

Member Function Documentation

◆ GeneratePrimaries()

void F01PrimaryGeneratorAction::GeneratePrimaries ( G4Event anEvent)
override

Definition at line 94 of file F01PrimaryGeneratorAction.cc.

95{
96 // this function is called at the begining of event
97 //
98 fgPrimaryParticle = fParticleGun->GetParticleDefinition();
99
100 G4double x0,y0,z0;
101 if (fVertexDefined)
102 {
103 x0 = fXVertex;
104 y0 = fYVertex;
105 z0 = fZVertex;
106 }
107 else
108 {
109 x0 = 0.;
110 y0 = 0.;
112 }
113
114 G4double r0,phi0;
115 if (fRndmFlag == "on")
116 {
117 r0 = (fDetector->GetAbsorberRadius())*std::sqrt(G4UniformRand());
118 phi0 = twopi*G4UniformRand();
119 x0 = r0*std::cos(phi0);
120 y0 = r0*std::sin(phi0);
121 }
122
123 fParticleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0));
124 fParticleGun->GeneratePrimaryVertex(anEvent);
125}

◆ SetRndmFlag()

void F01PrimaryGeneratorAction::SetRndmFlag ( G4String  val)
inline

Definition at line 57 of file F01PrimaryGeneratorAction.hh.

57{ fRndmFlag = val; }

◆ SetXVertex()

void F01PrimaryGeneratorAction::SetXVertex ( G4double  x)

Definition at line 146 of file F01PrimaryGeneratorAction.cc.

147{
148 fVertexDefined = true;
149 fXVertex = x;
150 G4cout << " X coordinate of the primary vertex = " << fXVertex/mm <<
151 " mm." << G4endl;
152}

◆ SetYVertex()

void F01PrimaryGeneratorAction::SetYVertex ( G4double  y)

Definition at line 156 of file F01PrimaryGeneratorAction.cc.

157{
158 fVertexDefined = true;
159 fYVertex = y;
160 G4cout << " Y coordinate of the primary vertex = " << fYVertex/mm <<
161 " mm." << G4endl;
162}

◆ SetZVertex()

void F01PrimaryGeneratorAction::SetZVertex ( G4double  z)

Definition at line 136 of file F01PrimaryGeneratorAction.cc.

137{
138 fVertexDefined = true;
139 fZVertex = z;
140 G4cout << " Z coordinate of the primary vertex = " << fZVertex/mm <<
141 " mm." << G4endl;
142}

◆ GetPrimaryName()

G4String F01PrimaryGeneratorAction::GetPrimaryName ( )
static

Definition at line 129 of file F01PrimaryGeneratorAction.cc.

130{
131 return fgPrimaryParticle->GetParticleName();
132}

Member Data Documentation

◆ fParticleGun

G4ParticleGun* F01PrimaryGeneratorAction::fParticleGun = nullptr
private

Definition at line 65 of file F01PrimaryGeneratorAction.hh.

◆ fDetector

F01DetectorConstruction* F01PrimaryGeneratorAction::fDetector = nullptr
private

Definition at line 66 of file F01PrimaryGeneratorAction.hh.

◆ fGunMessenger

F01PrimaryGeneratorMessenger* F01PrimaryGeneratorAction::fGunMessenger = nullptr
private

Definition at line 68 of file F01PrimaryGeneratorAction.hh.

◆ fRndmFlag

G4String F01PrimaryGeneratorAction::fRndmFlag = "off"
private

Definition at line 69 of file F01PrimaryGeneratorAction.hh.

◆ fgPrimaryParticle

G4ParticleDefinition * F01PrimaryGeneratorAction::fgPrimaryParticle = nullptr
staticprivate

Definition at line 71 of file F01PrimaryGeneratorAction.hh.

◆ fXVertex

G4double F01PrimaryGeneratorAction::fXVertex = 0.
private

Definition at line 72 of file F01PrimaryGeneratorAction.hh.

◆ fYVertex

G4double F01PrimaryGeneratorAction::fYVertex = 0.
private

Definition at line 73 of file F01PrimaryGeneratorAction.hh.

◆ fZVertex

G4double F01PrimaryGeneratorAction::fZVertex = 0.
private

Definition at line 74 of file F01PrimaryGeneratorAction.hh.

◆ fVertexDefined

G4bool F01PrimaryGeneratorAction::fVertexDefined = false
private

Definition at line 75 of file F01PrimaryGeneratorAction.hh.


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

Applications | User Support | Publications | Collaboration