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

The primary generator action class with particle gum. More...

#include <Doxymodules_parallel.h>

Inheritance diagram for B2PrimaryGeneratorAction:
G4VUserPrimaryGeneratorAction

Public Member Functions

 B2PrimaryGeneratorAction ()
 
virtual ~B2PrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *)
 
G4ParticleGunGetParticleGun ()
 
void SetRandomFlag (G4bool)
 

Private Attributes

G4ParticleGunfParticleGun
 

Detailed Description

The primary generator action class with particle gum.

It defines a single particle which hits the Tracker 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 96 of file Doxymodules_parallel.h.

Constructor & Destructor Documentation

◆ B2PrimaryGeneratorAction()

B2PrimaryGeneratorAction::B2PrimaryGeneratorAction ( )

Definition at line 45 of file B2PrimaryGeneratorAction.cc.

47{
48 G4int nofParticles = 1;
49 fParticleGun = new G4ParticleGun(nofParticles);
50
51 // default particle kinematic
52
53 G4ParticleDefinition* particleDefinition
54 = G4ParticleTable::GetParticleTable()->FindParticle("proton");
55
56 fParticleGun->SetParticleDefinition(particleDefinition);
57 fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.));
58 fParticleGun->SetParticleEnergy(3.0*GeV);
59}

◆ ~B2PrimaryGeneratorAction()

B2PrimaryGeneratorAction::~B2PrimaryGeneratorAction ( )
virtual

Definition at line 63 of file B2PrimaryGeneratorAction.cc.

64{
65 delete fParticleGun;
66}

Member Function Documentation

◆ GeneratePrimaries()

void B2PrimaryGeneratorAction::GeneratePrimaries ( G4Event anEvent)
virtual

Definition at line 70 of file B2PrimaryGeneratorAction.cc.

71{
72 // This function is called at the begining of event
73
74 // In order to avoid dependence of PrimaryGeneratorAction
75 // on DetectorConstruction class we get world volume
76 // from G4LogicalVolumeStore.
77
78 G4double worldZHalfLength = 0;
79 G4LogicalVolume* worldLV
80 = G4LogicalVolumeStore::GetInstance()->GetVolume("World");
81 G4Box* worldBox = NULL;
82 if ( worldLV ) worldBox = dynamic_cast<G4Box*>(worldLV->GetSolid());
83 if ( worldBox ) worldZHalfLength = worldBox->GetZHalfLength();
84 else {
85 G4cerr << "World volume of box not found." << G4endl;
86 G4cerr << "Perhaps you have changed geometry." << G4endl;
87 G4cerr << "The gun will be place in the center." << G4endl;
88 }
89
90 fParticleGun->SetParticlePosition(G4ThreeVector(0., 0., -worldZHalfLength));
91
92 fParticleGun->GeneratePrimaryVertex(anEvent);
93}

◆ GetParticleGun()

G4ParticleGun * B2PrimaryGeneratorAction::GetParticleGun ( )
inline

Definition at line 54 of file B2PrimaryGeneratorAction.hh.

54{return fParticleGun;}

◆ SetRandomFlag()

void B2PrimaryGeneratorAction::SetRandomFlag ( G4bool  )

Member Data Documentation

◆ fParticleGun

G4ParticleGun* B2PrimaryGeneratorAction::fParticleGun
private

Definition at line 60 of file B2PrimaryGeneratorAction.hh.


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

Applications | User Support | Publications | Collaboration