Geant4  10.02.p03
B4PrimaryGeneratorAction Class Reference

#include <B4PrimaryGeneratorAction.hh>

Inheritance diagram for B4PrimaryGeneratorAction:
Collaboration diagram for B4PrimaryGeneratorAction:

Public Member Functions

 B4PrimaryGeneratorAction ()
 
virtual ~B4PrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *event)
 
void SetRandomFlag (G4bool value)
 
 B4PrimaryGeneratorAction ()
 
virtual ~B4PrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *event)
 
void SetRandomFlag (G4bool value)
 
 B4PrimaryGeneratorAction ()
 
virtual ~B4PrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *event)
 
void SetRandomFlag (G4bool value)
 
 B4PrimaryGeneratorAction ()
 
virtual ~B4PrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *event)
 
void SetRandomFlag (G4bool value)
 
- Public Member Functions inherited from G4VUserPrimaryGeneratorAction
 G4VUserPrimaryGeneratorAction ()
 
virtual ~G4VUserPrimaryGeneratorAction ()
 

Private Attributes

G4ParticleGunfParticleGun
 

Detailed Description

The primary generator action class with particle gum.

It defines a single particle which hits the calorimeter perpendicular to the input face. The type of the particle can be changed via the G4 build-in commands of G4ParticleGun class (see the macros provided with this example).

Definition at line 47 of file B4a/include/B4PrimaryGeneratorAction.hh.

Constructor & Destructor Documentation

◆ B4PrimaryGeneratorAction() [1/4]

B4PrimaryGeneratorAction::B4PrimaryGeneratorAction ( )

Definition at line 46 of file B4a/src/B4PrimaryGeneratorAction.cc.

48  fParticleGun(0)
49 {
50  G4int nofParticles = 1;
51  fParticleGun = new G4ParticleGun(nofParticles);
52 
53  // default particle kinematic
54  //
55  G4ParticleDefinition* particleDefinition
57  fParticleGun->SetParticleDefinition(particleDefinition);
60 }
static const double MeV
Definition: G4SIunits.hh:211
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
CLHEP::Hep3Vector G4ThreeVector
void SetParticleMomentumDirection(G4ParticleMomentum aMomentumDirection)
int G4int
Definition: G4Types.hh:78
void SetParticleEnergy(G4double aKineticEnergy)
static G4ParticleTable * GetParticleTable()
void SetParticleDefinition(G4ParticleDefinition *aParticleDefinition)
Here is the call graph for this function:

◆ ~B4PrimaryGeneratorAction() [1/4]

B4PrimaryGeneratorAction::~B4PrimaryGeneratorAction ( )
virtual

Definition at line 64 of file B4a/src/B4PrimaryGeneratorAction.cc.

65 {
66  delete fParticleGun;
67 }

◆ B4PrimaryGeneratorAction() [2/4]

B4PrimaryGeneratorAction::B4PrimaryGeneratorAction ( )

◆ ~B4PrimaryGeneratorAction() [2/4]

virtual B4PrimaryGeneratorAction::~B4PrimaryGeneratorAction ( )
virtual

◆ B4PrimaryGeneratorAction() [3/4]

B4PrimaryGeneratorAction::B4PrimaryGeneratorAction ( )

◆ ~B4PrimaryGeneratorAction() [3/4]

virtual B4PrimaryGeneratorAction::~B4PrimaryGeneratorAction ( )
virtual

◆ B4PrimaryGeneratorAction() [4/4]

B4PrimaryGeneratorAction::B4PrimaryGeneratorAction ( )

◆ ~B4PrimaryGeneratorAction() [4/4]

virtual B4PrimaryGeneratorAction::~B4PrimaryGeneratorAction ( )
virtual

Member Function Documentation

◆ GeneratePrimaries() [1/4]

void B4PrimaryGeneratorAction::GeneratePrimaries ( G4Event event)
virtual

Implements G4VUserPrimaryGeneratorAction.

Definition at line 71 of file B4a/src/B4PrimaryGeneratorAction.cc.

72 {
73  // This function is called at the begining of event
74 
75  // In order to avoid dependence of PrimaryGeneratorAction
76  // on DetectorConstruction class we get world volume
77  // from G4LogicalVolumeStore
78  //
79  G4double worldZHalfLength = 0;
80  G4LogicalVolume* worlLV
82  G4Box* worldBox = 0;
83  if ( worlLV) worldBox = dynamic_cast< G4Box*>(worlLV->GetSolid());
84  if ( worldBox ) {
85  worldZHalfLength = worldBox->GetZHalfLength();
86  }
87  else {
89  msg << "World volume of box not found." << G4endl;
90  msg << "Perhaps you have changed geometry." << G4endl;
91  msg << "The gun will be place in the center.";
92  G4Exception("B4PrimaryGeneratorAction::GeneratePrimaries()",
93  "MyCode0002", JustWarning, msg);
94  }
95 
96  // Set gun position
98  ->SetParticlePosition(G4ThreeVector(0., 0., -worldZHalfLength));
99 
101 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Box.hh:64
virtual void GeneratePrimaryVertex(G4Event *evt)
void SetParticlePosition(G4ThreeVector aPosition)
G4double GetZHalfLength() const
G4LogicalVolume * GetVolume(const G4String &name, G4bool verbose=true) const
static G4LogicalVolumeStore * GetInstance()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4VSolid * GetSolid() const
Here is the call graph for this function:

◆ GeneratePrimaries() [2/4]

virtual void B4PrimaryGeneratorAction::GeneratePrimaries ( G4Event event)
virtual

◆ GeneratePrimaries() [3/4]

virtual void B4PrimaryGeneratorAction::GeneratePrimaries ( G4Event event)
virtual

◆ GeneratePrimaries() [4/4]

virtual void B4PrimaryGeneratorAction::GeneratePrimaries ( G4Event event)
virtual

◆ SetRandomFlag() [1/4]

void B4PrimaryGeneratorAction::SetRandomFlag ( G4bool  value)

◆ SetRandomFlag() [2/4]

void B4PrimaryGeneratorAction::SetRandomFlag ( G4bool  value)

◆ SetRandomFlag() [3/4]

void B4PrimaryGeneratorAction::SetRandomFlag ( G4bool  value)

◆ SetRandomFlag() [4/4]

void B4PrimaryGeneratorAction::SetRandomFlag ( G4bool  value)

Member Data Documentation

◆ fParticleGun

G4ParticleGun * B4PrimaryGeneratorAction::fParticleGun
private

Definition at line 59 of file B4a/include/B4PrimaryGeneratorAction.hh.


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