Geant4  10.02.p03
RE05PrimaryGeneratorAction Class Reference

#include <RE05PrimaryGeneratorAction.hh>

Inheritance diagram for RE05PrimaryGeneratorAction:
Collaboration diagram for RE05PrimaryGeneratorAction:

Public Member Functions

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

Private Attributes

G4VPrimaryGeneratorparticleGun
 
RE05PrimaryGeneratorMessengermessenger
 
G4bool useHEPEvt
 

Static Private Attributes

static G4VPrimaryGeneratorHEPEvt = 0
 

Detailed Description

Definition at line 42 of file RE05PrimaryGeneratorAction.hh.

Constructor & Destructor Documentation

◆ RE05PrimaryGeneratorAction()

RE05PrimaryGeneratorAction::RE05PrimaryGeneratorAction ( )

Definition at line 46 of file RE05PrimaryGeneratorAction.cc.

47 {
48  if(!HEPEvt)
49  {
50  const char* filename = "pythia_event.data";
51  HEPEvt = new G4HEPEvtInterface(filename,1);
52  }
53 
54  G4int n_particle = 1;
55  G4ParticleGun* fParticleGun = new G4ParticleGun(n_particle);
57  G4String particleName;
58  G4ParticleDefinition* particle
59  = particleTable->FindParticle(particleName="mu+");
60  fParticleGun->SetParticleDefinition(particle);
61  fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,1.,0.));
62  fParticleGun->SetParticleEnergy(100.*GeV);
63  fParticleGun->SetParticlePosition(G4ThreeVector(0.*cm,0.*cm,0.*cm));
64  particleGun = fParticleGun;
65 
67  useHEPEvt = true;
68 }
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
void SetParticlePosition(G4ThreeVector aPosition)
RE05PrimaryGeneratorMessenger * messenger
static const double GeV
Definition: G4SIunits.hh:214
void SetParticleEnergy(G4double aKineticEnergy)
static G4ParticleTable * GetParticleTable()
static G4VPrimaryGenerator * HEPEvt
void SetParticleDefinition(G4ParticleDefinition *aParticleDefinition)
Here is the call graph for this function:

◆ ~RE05PrimaryGeneratorAction()

RE05PrimaryGeneratorAction::~RE05PrimaryGeneratorAction ( )
virtual

Definition at line 77 of file RE05PrimaryGeneratorAction.cc.

78 {
79  G4AutoLock lock(&RE05PrimGenDestrMutex);
80  if(HEPEvt) { delete HEPEvt; HEPEvt=0; }
81  delete particleGun;
82  delete messenger;
83 }
RE05PrimaryGeneratorMessenger * messenger
static G4VPrimaryGenerator * HEPEvt

Member Function Documentation

◆ GeneratePrimaries()

void RE05PrimaryGeneratorAction::GeneratePrimaries ( G4Event anEvent)
virtual

Implements G4VUserPrimaryGeneratorAction.

Definition at line 87 of file RE05PrimaryGeneratorAction.cc.

88 {
89  if(useHEPEvt)
90  {
91  G4AutoLock lock(&RE05PrimGenMutex);
92  HEPEvt->GeneratePrimaryVertex(anEvent);
93  }
94  else
95  { particleGun->GeneratePrimaryVertex(anEvent); }
96 }
virtual void GeneratePrimaryVertex(G4Event *evt)=0
static G4VPrimaryGenerator * HEPEvt
Here is the call graph for this function:

◆ GetHEPEvtGenerator()

G4bool RE05PrimaryGeneratorAction::GetHEPEvtGenerator ( )
inline

Definition at line 60 of file RE05PrimaryGeneratorAction.hh.

Here is the caller graph for this function:

◆ SetHEPEvtGenerator()

void RE05PrimaryGeneratorAction::SetHEPEvtGenerator ( G4bool  f)
inline

Definition at line 58 of file RE05PrimaryGeneratorAction.hh.

Here is the caller graph for this function:

Member Data Documentation

◆ HEPEvt

G4VPrimaryGenerator * RE05PrimaryGeneratorAction::HEPEvt = 0
staticprivate

Definition at line 52 of file RE05PrimaryGeneratorAction.hh.

◆ messenger

RE05PrimaryGeneratorMessenger* RE05PrimaryGeneratorAction::messenger
private

Definition at line 54 of file RE05PrimaryGeneratorAction.hh.

◆ particleGun

G4VPrimaryGenerator* RE05PrimaryGeneratorAction::particleGun
private

Definition at line 53 of file RE05PrimaryGeneratorAction.hh.

◆ useHEPEvt

G4bool RE05PrimaryGeneratorAction::useHEPEvt
private

Definition at line 55 of file RE05PrimaryGeneratorAction.hh.


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