Geant4  10.02.p03
RE01PrimaryGeneratorAction Class Reference

#include <RE01PrimaryGeneratorAction.hh>

Inheritance diagram for RE01PrimaryGeneratorAction:
Collaboration diagram for RE01PrimaryGeneratorAction:

Public Member Functions

 RE01PrimaryGeneratorAction ()
 
virtual ~RE01PrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *anEvent)
 
void SetHEPEvtGenerator (G4bool f)
 
G4bool GetHEPEvtGenerator ()
 
- Public Member Functions inherited from G4VUserPrimaryGeneratorAction
 G4VUserPrimaryGeneratorAction ()
 
virtual ~G4VUserPrimaryGeneratorAction ()
 

Private Attributes

G4VPrimaryGeneratorfHEPEvt
 
G4VPrimaryGeneratorfParticleGun
 
RE01PrimaryGeneratorMessengerfMessenger
 
G4bool fUseHEPEvt
 

Detailed Description

Definition at line 42 of file RE01PrimaryGeneratorAction.hh.

Constructor & Destructor Documentation

◆ RE01PrimaryGeneratorAction()

RE01PrimaryGeneratorAction::RE01PrimaryGeneratorAction ( )

Definition at line 43 of file RE01PrimaryGeneratorAction.cc.

46 {
47  const char* filename = "pythia_event.data";
48  fHEPEvt = new G4HEPEvtInterface(filename);
49 
50  G4int n_particle = 1;
51  G4ParticleGun* particleGun = new G4ParticleGun(n_particle);
53  G4String particleName;
54  G4ParticleDefinition* particle
55  = particleTable->FindParticle(particleName="mu+");
56  particleGun->SetParticleDefinition(particle);
57  particleGun->SetParticleMomentumDirection(G4ThreeVector(0.,1.,0.));
58  particleGun->SetParticleEnergy(100.*GeV);
59  particleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,0.*cm));
60  fParticleGun = particleGun;
61 
63  fUseHEPEvt = true;
64 
65 }
static const double cm
Definition: G4SIunits.hh:118
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
CLHEP::Hep3Vector G4ThreeVector
void SetParticleMomentumDirection(G4ParticleMomentum aMomentumDirection)
int G4int
Definition: G4Types.hh:78
RE01PrimaryGeneratorMessenger * fMessenger
void SetParticlePosition(G4ThreeVector aPosition)
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:

◆ ~RE01PrimaryGeneratorAction()

RE01PrimaryGeneratorAction::~RE01PrimaryGeneratorAction ( )
virtual

Definition at line 74 of file RE01PrimaryGeneratorAction.cc.

75 {
76  G4AutoLock lock(&RE01PrimGenDestrMutex);
77  if(fHEPEvt) {delete fHEPEvt; fHEPEvt = 0;}
78  delete fParticleGun;
79  delete fMessenger;
80 }
RE01PrimaryGeneratorMessenger * fMessenger

Member Function Documentation

◆ GeneratePrimaries()

void RE01PrimaryGeneratorAction::GeneratePrimaries ( G4Event anEvent)
virtual

Implements G4VUserPrimaryGeneratorAction.

Definition at line 83 of file RE01PrimaryGeneratorAction.cc.

84 {
85  if(fUseHEPEvt)
86  {
87  G4AutoLock lock(&RE01PrimGenMutex);
88  fHEPEvt->GeneratePrimaryVertex(anEvent); }
89  else
90  { fParticleGun->GeneratePrimaryVertex(anEvent); }
91 }
virtual void GeneratePrimaryVertex(G4Event *evt)=0
Here is the call graph for this function:

◆ GetHEPEvtGenerator()

G4bool RE01PrimaryGeneratorAction::GetHEPEvtGenerator ( )
inline

Definition at line 52 of file RE01PrimaryGeneratorAction.hh.

Here is the caller graph for this function:

◆ SetHEPEvtGenerator()

void RE01PrimaryGeneratorAction::SetHEPEvtGenerator ( G4bool  f)
inline

Definition at line 50 of file RE01PrimaryGeneratorAction.hh.

Here is the caller graph for this function:

Member Data Documentation

◆ fHEPEvt

G4VPrimaryGenerator* RE01PrimaryGeneratorAction::fHEPEvt
private

Definition at line 56 of file RE01PrimaryGeneratorAction.hh.

◆ fMessenger

RE01PrimaryGeneratorMessenger* RE01PrimaryGeneratorAction::fMessenger
private

Definition at line 58 of file RE01PrimaryGeneratorAction.hh.

◆ fParticleGun

G4VPrimaryGenerator* RE01PrimaryGeneratorAction::fParticleGun
private

Definition at line 57 of file RE01PrimaryGeneratorAction.hh.

◆ fUseHEPEvt

G4bool RE01PrimaryGeneratorAction::fUseHEPEvt
private

Definition at line 59 of file RE01PrimaryGeneratorAction.hh.


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