Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
B4PrimaryGeneratorAction Class Reference

#include <B4PrimaryGeneratorAction.hh>

Inheritance diagram for B4PrimaryGeneratorAction:
G4VUserPrimaryGeneratorAction G4VUserPrimaryGeneratorAction G4VUserPrimaryGeneratorAction G4VUserPrimaryGeneratorAction

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 ()
 

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::B4PrimaryGeneratorAction ( )

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

References G4ParticleTable::FindParticle(), G4ParticleTable::GetParticleTable(), python.hepunit::MeV, G4ParticleGun::SetParticleDefinition(), G4ParticleGun::SetParticleEnergy(), and G4ParticleGun::SetParticleMomentumDirection().

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);
58  fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.));
59  fParticleGun->SetParticleEnergy(50.*MeV);
60 }
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)
B4PrimaryGeneratorAction::~B4PrimaryGeneratorAction ( )
virtual

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

65 {
66  delete fParticleGun;
67 }
B4PrimaryGeneratorAction::B4PrimaryGeneratorAction ( )
virtual B4PrimaryGeneratorAction::~B4PrimaryGeneratorAction ( )
virtual
B4PrimaryGeneratorAction::B4PrimaryGeneratorAction ( )
virtual B4PrimaryGeneratorAction::~B4PrimaryGeneratorAction ( )
virtual
B4PrimaryGeneratorAction::B4PrimaryGeneratorAction ( )
virtual B4PrimaryGeneratorAction::~B4PrimaryGeneratorAction ( )
virtual

Member Function Documentation

void B4PrimaryGeneratorAction::GeneratePrimaries ( G4Event event)
virtual

Implements G4VUserPrimaryGeneratorAction.

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

References G4endl, G4Exception(), G4ParticleGun::GeneratePrimaryVertex(), G4LogicalVolumeStore::GetInstance(), G4LogicalVolume::GetSolid(), G4LogicalVolumeStore::GetVolume(), G4Box::GetZHalfLength(), JustWarning, and G4VPrimaryGenerator::SetParticlePosition().

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
97  fParticleGun
98  ->SetParticlePosition(G4ThreeVector(0., 0., -worldZHalfLength));
99 
100  fParticleGun->GeneratePrimaryVertex(anEvent);
101 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
CLHEP::Hep3Vector G4ThreeVector
Definition: G4Box.hh:63
virtual void GeneratePrimaryVertex(G4Event *evt)
G4double GetZHalfLength() const
G4LogicalVolume * GetVolume(const G4String &name, G4bool verbose=true) const
void SetParticlePosition(G4ThreeVector aPosition)
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
virtual void B4PrimaryGeneratorAction::GeneratePrimaries ( G4Event event)
virtual
virtual void B4PrimaryGeneratorAction::GeneratePrimaries ( G4Event event)
virtual
virtual void B4PrimaryGeneratorAction::GeneratePrimaries ( G4Event event)
virtual
void B4PrimaryGeneratorAction::SetRandomFlag ( G4bool  value)
void B4PrimaryGeneratorAction::SetRandomFlag ( G4bool  value)
void B4PrimaryGeneratorAction::SetRandomFlag ( G4bool  value)
void B4PrimaryGeneratorAction::SetRandomFlag ( G4bool  value)

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