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

#include <Doxymodules_field.h>

Inheritance diagram for F02PrimaryGeneratorAction:
G4VUserPrimaryGeneratorAction

Public Member Functions

 F02PrimaryGeneratorAction (F02DetectorConstruction *)
 
 ~F02PrimaryGeneratorAction () 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
 
F02DetectorConstructionfDetector = nullptr
 
F02PrimaryGeneratorMessengerfGunMessenger = 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 63 of file Doxymodules_field.h.

Constructor & Destructor Documentation

◆ F02PrimaryGeneratorAction()

F02PrimaryGeneratorAction::F02PrimaryGeneratorAction ( F02DetectorConstruction det)

Definition at line 55 of file F02PrimaryGeneratorAction.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="proton");
71 fParticleGun->SetParticleDefinition(particle);
72
73 fgPrimaryParticle = particle;
74
75 fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.));
76 fParticleGun->SetParticleEnergy(100.*GeV);
77
78 fZVertex = 0. ; // -0.5*(fDetector->GetAbsorberThickness());
79 fParticleGun->SetParticlePosition(G4ThreeVector(fXVertex,fYVertex,fZVertex));
80
81}
static G4ParticleDefinition * fgPrimaryParticle
F02DetectorConstruction * fDetector
F02PrimaryGeneratorMessenger * fGunMessenger

◆ ~F02PrimaryGeneratorAction()

F02PrimaryGeneratorAction::~F02PrimaryGeneratorAction ( )
override

Definition at line 85 of file F02PrimaryGeneratorAction.cc.

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

Member Function Documentation

◆ GeneratePrimaries()

void F02PrimaryGeneratorAction::GeneratePrimaries ( G4Event anEvent)
override

Definition at line 93 of file F02PrimaryGeneratorAction.cc.

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

◆ SetRndmFlag()

void F02PrimaryGeneratorAction::SetRndmFlag ( G4String  val)
inline

Definition at line 57 of file F02PrimaryGeneratorAction.hh.

57{ fRndmFlag = val; }

◆ SetXVertex()

void F02PrimaryGeneratorAction::SetXVertex ( G4double  x)

Definition at line 135 of file F02PrimaryGeneratorAction.cc.

136{
137 fVertexDefined = true;
138 fXVertex = x;
139 G4cout << " X coordinate of the primary vertex = " << fXVertex/mm <<
140 " mm." << G4endl;
141}

◆ SetYVertex()

void F02PrimaryGeneratorAction::SetYVertex ( G4double  y)

Definition at line 145 of file F02PrimaryGeneratorAction.cc.

146{
147 fVertexDefined = true;
148 fYVertex = y;
149 G4cout << " Y coordinate of the primary vertex = " << fYVertex/mm <<
150 " mm." << G4endl;
151}

◆ SetZVertex()

void F02PrimaryGeneratorAction::SetZVertex ( G4double  z)

Definition at line 155 of file F02PrimaryGeneratorAction.cc.

156{
157 fVertexDefined = true;
158 fZVertex = z;
159 G4cout << " Z coordinate of the primary vertex = " << fZVertex/mm <<
160 " mm." << G4endl;
161}

◆ GetPrimaryName()

G4String F02PrimaryGeneratorAction::GetPrimaryName ( )
static

Definition at line 128 of file F02PrimaryGeneratorAction.cc.

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

Member Data Documentation

◆ fParticleGun

G4ParticleGun* F02PrimaryGeneratorAction::fParticleGun = nullptr
private

Definition at line 65 of file F02PrimaryGeneratorAction.hh.

◆ fDetector

F02DetectorConstruction* F02PrimaryGeneratorAction::fDetector = nullptr
private

Definition at line 66 of file F02PrimaryGeneratorAction.hh.

◆ fGunMessenger

F02PrimaryGeneratorMessenger* F02PrimaryGeneratorAction::fGunMessenger = nullptr
private

Definition at line 68 of file F02PrimaryGeneratorAction.hh.

◆ fRndmFlag

G4String F02PrimaryGeneratorAction::fRndmFlag = "off"
private

Definition at line 69 of file F02PrimaryGeneratorAction.hh.

◆ fgPrimaryParticle

G4ParticleDefinition * F02PrimaryGeneratorAction::fgPrimaryParticle = nullptr
staticprivate

Definition at line 71 of file F02PrimaryGeneratorAction.hh.

◆ fXVertex

G4double F02PrimaryGeneratorAction::fXVertex = 0.
private

Definition at line 72 of file F02PrimaryGeneratorAction.hh.

◆ fYVertex

G4double F02PrimaryGeneratorAction::fYVertex = 0.
private

Definition at line 73 of file F02PrimaryGeneratorAction.hh.

◆ fZVertex

G4double F02PrimaryGeneratorAction::fZVertex = 0.
private

Definition at line 74 of file F02PrimaryGeneratorAction.hh.

◆ fVertexDefined

G4bool F02PrimaryGeneratorAction::fVertexDefined = false
private

Definition at line 75 of file F02PrimaryGeneratorAction.hh.


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

Applications | User Support | Publications | Collaboration