Geant4  10.02.p03
B2PrimaryGeneratorAction Class Reference

#include <B2PrimaryGeneratorAction.hh>

Inheritance diagram for B2PrimaryGeneratorAction:
Collaboration diagram for B2PrimaryGeneratorAction:

Public Member Functions

 B2PrimaryGeneratorAction ()
 
virtual ~B2PrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *)
 
G4ParticleGunGetParticleGun ()
 
void SetRandomFlag (G4bool)
 
 B2PrimaryGeneratorAction ()
 
virtual ~B2PrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *)
 
G4ParticleGunGetParticleGun ()
 
void SetRandomFlag (G4bool)
 
 B2PrimaryGeneratorAction ()
 
virtual ~B2PrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *)
 
G4ParticleGunGetParticleGun ()
 
void SetRandomFlag (G4bool)
 
- 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 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 47 of file basic/B2/B2a/include/B2PrimaryGeneratorAction.hh.

Constructor & Destructor Documentation

◆ B2PrimaryGeneratorAction() [1/3]

B2PrimaryGeneratorAction::B2PrimaryGeneratorAction ( )

Definition at line 46 of file basic/B2/B2a/src/B2PrimaryGeneratorAction.cc.

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

◆ ~B2PrimaryGeneratorAction() [1/3]

B2PrimaryGeneratorAction::~B2PrimaryGeneratorAction ( )
virtual

◆ B2PrimaryGeneratorAction() [2/3]

B2PrimaryGeneratorAction::B2PrimaryGeneratorAction ( )

◆ ~B2PrimaryGeneratorAction() [2/3]

virtual B2PrimaryGeneratorAction::~B2PrimaryGeneratorAction ( )
virtual

◆ B2PrimaryGeneratorAction() [3/3]

B2PrimaryGeneratorAction::B2PrimaryGeneratorAction ( )

◆ ~B2PrimaryGeneratorAction() [3/3]

virtual B2PrimaryGeneratorAction::~B2PrimaryGeneratorAction ( )
virtual

Member Function Documentation

◆ GeneratePrimaries() [1/3]

void B2PrimaryGeneratorAction::GeneratePrimaries ( G4Event anEvent)
virtual

Implements G4VUserPrimaryGeneratorAction.

Definition at line 71 of file basic/B2/B2a/src/B2PrimaryGeneratorAction.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* worldLV
82  G4Box* worldBox = NULL;
83  if ( worldLV ) worldBox = dynamic_cast<G4Box*>(worldLV->GetSolid());
84  if ( worldBox ) worldZHalfLength = worldBox->GetZHalfLength();
85  else {
86  G4cerr << "World volume of box not found." << G4endl;
87  G4cerr << "Perhaps you have changed geometry." << G4endl;
88  G4cerr << "The gun will be place in the center." << G4endl;
89  }
90 
91  fParticleGun->SetParticlePosition(G4ThreeVector(0., 0., -worldZHalfLength));
92 
94 }
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()
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4VSolid * GetSolid() const
G4GLOB_DLL std::ostream G4cerr
Here is the call graph for this function:

◆ GeneratePrimaries() [2/3]

virtual void B2PrimaryGeneratorAction::GeneratePrimaries ( G4Event )
virtual

◆ GeneratePrimaries() [3/3]

virtual void B2PrimaryGeneratorAction::GeneratePrimaries ( G4Event )
virtual

◆ GetParticleGun() [1/3]

G4ParticleGun* B2PrimaryGeneratorAction::GetParticleGun ( void  )
inline

Definition at line 55 of file basic/B2/B2a/include/B2PrimaryGeneratorAction.hh.

Here is the call graph for this function:

◆ GetParticleGun() [2/3]

G4ParticleGun* B2PrimaryGeneratorAction::GetParticleGun ( void  )
inline

Definition at line 55 of file extended/parallel/TBB/B2b/include/B2PrimaryGeneratorAction.hh.

Here is the call graph for this function:

◆ GetParticleGun() [3/3]

G4ParticleGun* B2PrimaryGeneratorAction::GetParticleGun ( void  )
inline

Definition at line 55 of file basic/B2/B2b/include/B2PrimaryGeneratorAction.hh.

Here is the call graph for this function:

◆ SetRandomFlag() [1/3]

void B2PrimaryGeneratorAction::SetRandomFlag ( G4bool  )
Here is the caller graph for this function:

◆ SetRandomFlag() [2/3]

void B2PrimaryGeneratorAction::SetRandomFlag ( G4bool  )

◆ SetRandomFlag() [3/3]

void B2PrimaryGeneratorAction::SetRandomFlag ( G4bool  )

Member Data Documentation

◆ fParticleGun

G4ParticleGun * B2PrimaryGeneratorAction::fParticleGun
private

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