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

#include <Doxymodules_exoticphysics.h>

Inheritance diagram for ExUCNPrimaryGeneratorAction:
G4VUserPrimaryGeneratorAction

Public Member Functions

 ExUCNPrimaryGeneratorAction (void)
 
virtual ~ExUCNPrimaryGeneratorAction ()
 
virtual void GeneratePrimaries (G4Event *)
 

Private Attributes

G4ParticleGunfParticleGun
 

Detailed Description

Definition at line 89 of file Doxymodules_exoticphysics.h.

Constructor & Destructor Documentation

◆ ExUCNPrimaryGeneratorAction()

ExUCNPrimaryGeneratorAction::ExUCNPrimaryGeneratorAction ( void  )

Definition at line 48 of file ExUCNPrimaryGeneratorAction.cc.

49{
50 G4int n_particle = 1;
51 fParticleGun = new G4ParticleGun(n_particle);
52
53 G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
54
55 G4ParticleDefinition* particle = particleTable->FindParticle("neutron");
56 fParticleGun->SetParticleDefinition(particle);
57}

◆ ~ExUCNPrimaryGeneratorAction()

ExUCNPrimaryGeneratorAction::~ExUCNPrimaryGeneratorAction ( )
virtual

Definition at line 61 of file ExUCNPrimaryGeneratorAction.cc.

62{
63 delete fParticleGun;
64}

Member Function Documentation

◆ GeneratePrimaries()

void ExUCNPrimaryGeneratorAction::GeneratePrimaries ( G4Event anEvent)
virtual

Definition at line 68 of file ExUCNPrimaryGeneratorAction.cc.

69{
70 // This function is called at the begining of event
71
72 fParticleGun->SetParticlePosition(G4ThreeVector(0.0, 0.0, 0.0));
73 fParticleGun->SetParticlePolarization(G4ThreeVector(0,1,0));
74
75 G4double particleEnergy = 1e-9*eV + G4UniformRand()*(1e-7*eV-1e-9*eV);
76 fParticleGun->SetParticleEnergy(particleEnergy);
77
78 G4double theta = 2*pi*G4UniformRand();
79 G4double phi = std::acos(1-2*G4UniformRand());
80 if (phi > pi/2 && phi < pi) phi = pi-phi;
81
82 G4double z = std::sin(phi)*std::cos(theta);
83 G4double x = std::sin(phi)*std::sin(theta);
84 G4double y = std::cos(phi);
85
86 fParticleGun->SetParticleMomentumDirection(G4ThreeVector(x,y,z));
87
88 fParticleGun->GeneratePrimaryVertex(anEvent);
89}

Member Data Documentation

◆ fParticleGun

G4ParticleGun* ExUCNPrimaryGeneratorAction::fParticleGun
private

Definition at line 56 of file ExUCNPrimaryGeneratorAction.hh.


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

Applications | User Support | Publications | Collaboration