Geant4-11
Public Member Functions | Private Member Functions | Private Attributes
G4RayShooter Class Reference

#include <G4RayShooter.hh>

Public Member Functions

 G4RayShooter ()
 
void Shoot (G4Event *evt, G4ThreeVector vtx, G4ThreeVector direc)
 
virtual ~G4RayShooter ()
 

Private Member Functions

void SetInitialValues ()
 

Private Attributes

G4ParticleDefinitionparticle_definition = nullptr
 
G4double particle_energy = 0.0
 
G4ParticleMomentum particle_momentum_direction
 
G4ThreeVector particle_polarization
 
G4ThreeVector particle_position
 
G4double particle_time = 0.0
 

Detailed Description

Definition at line 47 of file G4RayShooter.hh.

Constructor & Destructor Documentation

◆ G4RayShooter()

G4RayShooter::G4RayShooter ( )

Definition at line 39 of file G4RayShooter.cc.

40{
42}
void SetInitialValues()
Definition: G4RayShooter.cc:44

References SetInitialValues().

◆ ~G4RayShooter()

G4RayShooter::~G4RayShooter ( )
virtual

Definition at line 53 of file G4RayShooter.cc.

54{
55}

Member Function Documentation

◆ SetInitialValues()

void G4RayShooter::SetInitialValues ( )
private

Definition at line 44 of file G4RayShooter.cc.

45{
48 particle_energy = 1.0*GeV;
51}
G4ThreeVector G4ParticleMomentum
static constexpr double GeV
Definition: G4SIunits.hh:203
G4ThreeVector particle_polarization
Definition: G4RayShooter.hh:68
G4ThreeVector particle_position
Definition: G4RayShooter.hh:66
G4ParticleMomentum particle_momentum_direction
Definition: G4RayShooter.hh:64
G4double particle_energy
Definition: G4RayShooter.hh:65
static const G4LorentzVector zero(0., 0., 0., 0.)

References GeV, particle_energy, particle_momentum_direction, particle_polarization, particle_position, and anonymous_namespace{G4CascadeDeexciteBase.cc}::zero.

Referenced by G4RayShooter().

◆ Shoot()

void G4RayShooter::Shoot ( G4Event evt,
G4ThreeVector  vtx,
G4ThreeVector  direc 
)

Definition at line 57 of file G4RayShooter.cc.

58{
59 if(particle_definition == nullptr)
60 {
62 G4String particleName;
63 particle_definition = particleTable->FindParticle(particleName="geantino");
64 if(particle_definition == nullptr)
65 {
66 G4String msg;
67 msg = "G4RayTracer uses geantino to trace the ray, but your physics list does not\n";
68 msg += "define G4Geantino. Please add G4Geantino in your physics list.";
69 G4Exception("G4RayShooter::Shoot()", "RayTracer001", FatalException, msg);
70 }
71 }
72
73 // Create a new vertex
74 //
76
77 // Create new primaries and set them to the vertex
78 //
82 particle->SetMass( mass );
83 particle->SetMomentumDirection( direc );
87 vertex->SetPrimary( particle );
88
89 evt->AddPrimaryVertex( vertex );
90}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
double G4double
Definition: G4Types.hh:83
double z() const
double x() const
double y() const
void AddPrimaryVertex(G4PrimaryVertex *aPrimaryVertex)
Definition: G4Event.hh:121
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4ParticleTable * GetParticleTable()
void SetPolarization(const G4ThreeVector &pol)
void SetKineticEnergy(G4double eKin)
void SetMomentumDirection(const G4ThreeVector &p)
void SetMass(G4double mas)
void SetPrimary(G4PrimaryParticle *pp)
G4ParticleDefinition * particle_definition
Definition: G4RayShooter.hh:63
G4double particle_time
Definition: G4RayShooter.hh:67

References G4Event::AddPrimaryVertex(), FatalException, G4ParticleTable::FindParticle(), G4Exception(), G4ParticleTable::GetParticleTable(), G4ParticleDefinition::GetPDGMass(), particle_definition, particle_energy, particle_polarization, particle_time, G4PrimaryParticle::SetKineticEnergy(), G4PrimaryParticle::SetMass(), G4PrimaryParticle::SetMomentumDirection(), G4PrimaryParticle::SetPolarization(), G4PrimaryVertex::SetPrimary(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by G4TheRayTracer::CreateBitMap(), and G4MaterialScanner::DoScan().

Field Documentation

◆ particle_definition

G4ParticleDefinition* G4RayShooter::particle_definition = nullptr
private

Definition at line 63 of file G4RayShooter.hh.

Referenced by Shoot().

◆ particle_energy

G4double G4RayShooter::particle_energy = 0.0
private

Definition at line 65 of file G4RayShooter.hh.

Referenced by SetInitialValues(), and Shoot().

◆ particle_momentum_direction

G4ParticleMomentum G4RayShooter::particle_momentum_direction
private

Definition at line 64 of file G4RayShooter.hh.

Referenced by SetInitialValues().

◆ particle_polarization

G4ThreeVector G4RayShooter::particle_polarization
private

Definition at line 68 of file G4RayShooter.hh.

Referenced by SetInitialValues(), and Shoot().

◆ particle_position

G4ThreeVector G4RayShooter::particle_position
private

Definition at line 66 of file G4RayShooter.hh.

Referenced by SetInitialValues().

◆ particle_time

G4double G4RayShooter::particle_time = 0.0
private

Definition at line 67 of file G4RayShooter.hh.

Referenced by Shoot().


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