Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes
G4ParticleGun Class Reference

#include <G4ParticleGun.hh>

Inheritance diagram for G4ParticleGun:
G4VPrimaryGenerator CexmcParticleGun

Public Member Functions

 G4ParticleGun ()
 
 G4ParticleGun (G4int numberofparticles)
 
 G4ParticleGun (G4ParticleDefinition *particleDef, G4int numberofparticles=1)
 
virtual ~G4ParticleGun ()
 
virtual void GeneratePrimaryVertex (G4Event *evt)
 
void SetParticleDefinition (G4ParticleDefinition *aParticleDefinition)
 
void SetParticleEnergy (G4double aKineticEnergy)
 
void SetParticleMomentum (G4double aMomentum)
 
void SetParticleMomentum (G4ParticleMomentum aMomentum)
 
void SetParticleMomentumDirection (G4ParticleMomentum aMomentumDirection)
 
void SetParticleCharge (G4double aCharge)
 
void SetParticlePolarization (G4ThreeVector aVal)
 
void SetNumberOfParticles (G4int i)
 
G4ParticleDefinition * GetParticleDefinition () const
 
G4ParticleMomentum GetParticleMomentumDirection () const
 
G4double GetParticleEnergy () const
 
G4double GetParticleMomentum () const
 
G4double GetParticleCharge () const
 
G4ThreeVector GetParticlePolarization () const
 
G4int GetNumberOfParticles () const
 
- Public Member Functions inherited from G4VPrimaryGenerator
 G4VPrimaryGenerator ()
 
virtual ~G4VPrimaryGenerator ()
 
G4ThreeVector GetParticlePosition ()
 
G4double GetParticleTime ()
 
void SetParticlePosition (G4ThreeVector aPosition)
 
void SetParticleTime (G4double aTime)
 

Protected Member Functions

virtual void SetInitialValues ()
 

Protected Attributes

G4int NumberOfParticlesToBeGenerated
 
G4ParticleDefinition * particle_definition
 
G4ParticleMomentum particle_momentum_direction
 
G4double particle_energy
 
G4double particle_momentum
 
G4double particle_charge
 
G4ThreeVector particle_polarization
 
- Protected Attributes inherited from G4VPrimaryGenerator
G4ThreeVector particle_position
 
G4double particle_time
 

Additional Inherited Members

- Static Public Member Functions inherited from G4VPrimaryGenerator
static G4bool CheckVertexInsideWorld (const G4ThreeVector &pos)
 

Detailed Description

Definition at line 62 of file G4ParticleGun.hh.

Constructor & Destructor Documentation

G4ParticleGun::G4ParticleGun ( )

Definition at line 38 of file G4ParticleGun.cc.

References SetInitialValues().

39 {
41 }
virtual void SetInitialValues()
G4ParticleGun::G4ParticleGun ( G4int  numberofparticles)

Definition at line 43 of file G4ParticleGun.cc.

References NumberOfParticlesToBeGenerated, and SetInitialValues().

44 {
46  NumberOfParticlesToBeGenerated = numberofparticles;
47 }
virtual void SetInitialValues()
G4int NumberOfParticlesToBeGenerated
G4ParticleGun::G4ParticleGun ( G4ParticleDefinition *  particleDef,
G4int  numberofparticles = 1 
)

Definition at line 50 of file G4ParticleGun.cc.

51 {
53  NumberOfParticlesToBeGenerated = numberofparticles;
54  SetParticleDefinition( particleDef );
55 }
virtual void SetInitialValues()
G4int NumberOfParticlesToBeGenerated
void SetParticleDefinition(G4ParticleDefinition *aParticleDefinition)
G4ParticleGun::~G4ParticleGun ( )
virtual

Definition at line 72 of file G4ParticleGun.cc.

73 {
74  delete theMessenger;
75 }

Member Function Documentation

void G4ParticleGun::GeneratePrimaryVertex ( G4Event *  evt)
virtual

Implements G4VPrimaryGenerator.

Definition at line 212 of file G4ParticleGun.cc.

References G4Event::AddPrimaryVertex(), G4ParticleDefinition::GetPDGMass(), NumberOfParticlesToBeGenerated, particle_charge, particle_definition, particle_energy, particle_momentum_direction, particle_polarization, G4VPrimaryGenerator::particle_position, G4VPrimaryGenerator::particle_time, G4PrimaryParticle::SetCharge(), G4PrimaryParticle::SetKineticEnergy(), G4PrimaryParticle::SetMass(), G4PrimaryParticle::SetMomentumDirection(), G4PrimaryParticle::SetPolarization(), G4PrimaryVertex::SetPrimary(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by export_G4ParticleGun(), GB01PrimaryGeneratorAction::GeneratePrimaries(), GB02PrimaryGeneratorAction::GeneratePrimaries(), Par01PrimaryGeneratorAction::GeneratePrimaries(), B02PrimaryGeneratorAction::GeneratePrimaries(), B01PrimaryGeneratorAction::GeneratePrimaries(), B03PrimaryGeneratorAction::GeneratePrimaries(), RE06PrimaryGeneratorAction::GeneratePrimaries(), ExTGPrimaryGeneratorAction::GeneratePrimaries(), RE03PrimaryGeneratorAction::GeneratePrimaries(), LXePrimaryGeneratorAction::GeneratePrimaries(), OpNovicePrimaryGeneratorAction::GeneratePrimaries(), PrimaryGeneratorAction::GeneratePrimaries(), eRositaPrimaryGeneratorAction::GeneratePrimaries(), FCALPrimaryGeneratorAction::GeneratePrimaries(), ExP02PrimaryGeneratorAction::GeneratePrimaries(), PrimaryGeneratorAction1::GeneratePrimaries(), B2PrimaryGeneratorAction::GeneratePrimaries(), F05PrimaryGeneratorAction::GeneratePrimaries(), F06PrimaryGeneratorAction::GeneratePrimaries(), ExN02PrimaryGeneratorAction::GeneratePrimaries(), B3PrimaryGeneratorAction::GeneratePrimaries(), G01PrimaryGeneratorAction::GeneratePrimaries(), G04PrimaryGeneratorAction::GeneratePrimaries(), B4PrimaryGeneratorAction::GeneratePrimaries(), B1PrimaryGeneratorAction::GeneratePrimaries(), PrimaryGeneratorAction2::GeneratePrimaries(), PrimaryGeneratorAction4::GeneratePrimaries(), PrimaryGeneratorAction3::GeneratePrimaries(), ExP01PrimaryGeneratorAction::GeneratePrimaries(), RE04PrimaryGeneratorAction::GeneratePrimaries(), F04PrimaryGeneratorAction::GeneratePrimaries(), B5PrimaryGeneratorAction::GeneratePrimaries(), F02PrimaryGeneratorAction::GeneratePrimaries(), F01PrimaryGeneratorAction::GeneratePrimaries(), F03PrimaryGeneratorAction::GeneratePrimaries(), Em10PrimaryGeneratorAction::GeneratePrimaries(), RE02PrimaryGeneratorAction::GeneratePrimaries(), PurgMagPrimaryGeneratorAction::GeneratePrimaries(), ExG4PrimaryGeneratorAction01::GeneratePrimaries(), G03PrimaryGeneratorAction::GeneratePrimaries(), XrayFluoPlanePrimaryGeneratorAction::GeneratePrimaries(), XrayFluoMercuryPrimaryGeneratorAction::GeneratePrimaries(), G02PrimaryGeneratorAction::GeneratePrimaries(), DicomPrimaryGeneratorAction::GeneratePrimaries(), XrayFluoPrimaryGeneratorAction::GeneratePrimaries(), CexmcPrimaryGeneratorAction::GeneratePrimaries(), GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(), CCalPrimaryGeneratorAction::GeneratePrimaries(), and CML2PrimaryGenerationAction::GeneratePrimaries().

213 {
214  if(particle_definition==0) return;
215 
216  // create a new vertex
217  G4PrimaryVertex* vertex =
219 
220  // create new primaries and set them to the vertex
222  for( G4int i=0; i<NumberOfParticlesToBeGenerated; i++ ){
223  G4PrimaryParticle* particle =
225  particle->SetKineticEnergy( particle_energy );
226  particle->SetMass( mass );
228  particle->SetCharge( particle_charge );
232  vertex->SetPrimary( particle );
233  }
234 
235  evt->AddPrimaryVertex( vertex );
236 }
double x() const
void AddPrimaryVertex(G4PrimaryVertex *aPrimaryVertex)
Definition: G4Event.hh:143
int G4int
Definition: G4Types.hh:78
G4ParticleDefinition * particle_definition
G4ThreeVector particle_position
double z() const
void SetKineticEnergy(G4double eKin)
G4ParticleMomentum particle_momentum_direction
void SetMass(G4double mas)
G4double particle_charge
G4ThreeVector particle_polarization
G4int NumberOfParticlesToBeGenerated
G4double particle_energy
G4double GetPDGMass() const
void SetMomentumDirection(const G4ThreeVector &p)
void SetCharge(G4double chg)
double y() const
void SetPrimary(G4PrimaryParticle *pp)
double G4double
Definition: G4Types.hh:76
void SetPolarization(const G4ThreeVector &pol)
G4int G4ParticleGun::GetNumberOfParticles ( ) const
inline
G4double G4ParticleGun::GetParticleCharge ( ) const
inline

Definition at line 114 of file G4ParticleGun.hh.

References particle_charge.

Referenced by export_G4ParticleGun().

115  { return particle_charge; }
G4double particle_charge
G4ParticleDefinition* G4ParticleGun::GetParticleDefinition ( ) const
inline
G4double G4ParticleGun::GetParticleEnergy ( ) const
inline
G4double G4ParticleGun::GetParticleMomentum ( ) const
inline

Definition at line 112 of file G4ParticleGun.hh.

References particle_momentum.

Referenced by G4ParticleGunMessenger::GetCurrentValue().

113  { return particle_momentum; }
G4double particle_momentum
G4ParticleMomentum G4ParticleGun::GetParticleMomentumDirection ( ) const
inline
G4ThreeVector G4ParticleGun::GetParticlePolarization ( ) const
inline

Definition at line 116 of file G4ParticleGun.hh.

References particle_polarization.

Referenced by export_G4ParticleGun(), and G4ParticleGunMessenger::GetCurrentValue().

117  { return particle_polarization; }
G4ThreeVector particle_polarization
void G4ParticleGun::SetInitialValues ( )
protectedvirtual

Definition at line 57 of file G4ParticleGun.cc.

References NumberOfParticlesToBeGenerated, particle_charge, particle_definition, particle_energy, particle_momentum, particle_momentum_direction, particle_polarization, G4VPrimaryGenerator::particle_position, and G4VPrimaryGenerator::particle_time.

Referenced by G4ParticleGun().

58 {
61  G4ThreeVector zero;
63  particle_energy = 0.0;
64  particle_momentum = 0.0;
65  particle_position = zero;
66  particle_time = 0.0;
67  particle_polarization = zero;
68  particle_charge = 0.0;
69  theMessenger = new G4ParticleGunMessenger(this);
70 }
G4double particle_momentum
G4ParticleDefinition * particle_definition
G4ThreeVector particle_position
G4ParticleMomentum particle_momentum_direction
G4double particle_charge
G4ThreeVector particle_polarization
G4int NumberOfParticlesToBeGenerated
G4double particle_energy
G4ThreeVector G4ParticleMomentum
void G4ParticleGun::SetNumberOfParticles ( G4int  i)
inline
void G4ParticleGun::SetParticleCharge ( G4double  aCharge)
inline

Definition at line 98 of file G4ParticleGun.hh.

References particle_charge.

Referenced by export_G4ParticleGun(), and B3PrimaryGeneratorAction::GeneratePrimaries().

99  { particle_charge = aCharge; }
G4double particle_charge
void G4ParticleGun::SetParticleDefinition ( G4ParticleDefinition *  aParticleDefinition)

Definition at line 102 of file G4ParticleGun.cc.

References FatalException, G4endl, G4Exception(), G4ParticleDefinition::GetDecayTable(), G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::IsShortLived(), and JustWarning.

Referenced by B01PrimaryGeneratorAction::B01PrimaryGeneratorAction(), B02PrimaryGeneratorAction::B02PrimaryGeneratorAction(), B03PrimaryGeneratorAction::B03PrimaryGeneratorAction(), B1PrimaryGeneratorAction::B1PrimaryGeneratorAction(), B2PrimaryGeneratorAction::B2PrimaryGeneratorAction(), B3PrimaryGeneratorAction::B3PrimaryGeneratorAction(), B4PrimaryGeneratorAction::B4PrimaryGeneratorAction(), B5PrimaryGeneratorAction::B5PrimaryGeneratorAction(), CCalPrimaryGeneratorAction::CCalPrimaryGeneratorAction(), Em10PrimaryGeneratorAction::Em10PrimaryGeneratorAction(), eRositaPrimaryGeneratorAction::eRositaPrimaryGeneratorAction(), ExG4PrimaryGeneratorAction01::ExG4PrimaryGeneratorAction01(), ExN02PrimaryGeneratorAction::ExN02PrimaryGeneratorAction(), ExP01PrimaryGeneratorAction::ExP01PrimaryGeneratorAction(), ExP02PrimaryGeneratorAction::ExP02PrimaryGeneratorAction(), export_G4ParticleGun(), ExTGPrimaryGeneratorAction::ExTGPrimaryGeneratorAction(), F01PrimaryGeneratorAction::F01PrimaryGeneratorAction(), F02PrimaryGeneratorAction::F02PrimaryGeneratorAction(), F03PrimaryGeneratorAction::F03PrimaryGeneratorAction(), F04PrimaryGeneratorAction::F04PrimaryGeneratorAction(), F05PrimaryGeneratorAction::F05PrimaryGeneratorAction(), F06PrimaryGeneratorAction::F06PrimaryGeneratorAction(), FCALPrimaryGeneratorAction::FCALPrimaryGeneratorAction(), G01PrimaryGeneratorAction::G01PrimaryGeneratorAction(), G02PrimaryGeneratorAction::G02PrimaryGeneratorAction(), G03PrimaryGeneratorAction::G03PrimaryGeneratorAction(), G04PrimaryGeneratorAction::G04PrimaryGeneratorAction(), G4ParticleGunMessenger::G4ParticleGunMessenger(), GammaRayTelPrimaryGeneratorAction::GammaRayTelPrimaryGeneratorAction(), GB01PrimaryGeneratorAction::GB01PrimaryGeneratorAction(), GB02PrimaryGeneratorAction::GB02PrimaryGeneratorAction(), B3PrimaryGeneratorAction::GeneratePrimaries(), B5PrimaryGeneratorAction::GeneratePrimaries(), DicomPrimaryGeneratorAction::GeneratePrimaries(), XrayFluoPrimaryGeneratorAction::GeneratePrimaries(), LXePrimaryGeneratorAction::LXePrimaryGeneratorAction(), OpNovicePrimaryGeneratorAction::OpNovicePrimaryGeneratorAction(), Par01PrimaryGeneratorAction::Par01PrimaryGeneratorAction(), PurgMagPrimaryGeneratorAction::PurgMagPrimaryGeneratorAction(), RE01PrimaryGeneratorAction::RE01PrimaryGeneratorAction(), RE02PrimaryGeneratorAction::RE02PrimaryGeneratorAction(), RE03PrimaryGeneratorAction::RE03PrimaryGeneratorAction(), RE04PrimaryGeneratorAction::RE04PrimaryGeneratorAction(), RE05PrimaryGeneratorAction::RE05PrimaryGeneratorAction(), RE06PrimaryGeneratorAction::RE06PrimaryGeneratorAction(), CexmcParticleGun::SetBeamParticle(), PrimaryGeneratorAction::SetDefaultKinematic(), G4ParticleGunMessenger::SetNewValue(), XrayFluoMercuryPrimaryGeneratorAction::XrayFluoMercuryPrimaryGeneratorAction(), XrayFluoPlanePrimaryGeneratorAction::XrayFluoPlanePrimaryGeneratorAction(), and XrayFluoPrimaryGeneratorAction::XrayFluoPrimaryGeneratorAction().

103 {
104  if(!aParticleDefinition)
105  {
106  G4Exception("G4ParticleGun::SetParticleDefinition()","Event0101",
107  FatalException,"Null pointer is given.");
108  }
109  if(aParticleDefinition->IsShortLived())
110  {
111  if(!(aParticleDefinition->GetDecayTable()))
112  {
114  ED << "G4ParticleGun does not support shooting a short-lived particle without a valid decay table." << G4endl;
115  ED << "G4ParticleGun::SetParticleDefinition for "
116  << aParticleDefinition->GetParticleName() << " is ignored." << G4endl;
117  G4Exception("G4ParticleGun::SetParticleDefinition()","Event0102",
118  JustWarning,ED);
119  return;
120  }
121  }
122  particle_definition = aParticleDefinition;
124  if(particle_momentum>0.0)
125  {
128  std::sqrt(particle_momentum*particle_momentum+mass*mass)-mass;
129  }
130 }
std::ostringstream G4ExceptionDescription
Definition: globals.hh:76
G4double particle_momentum
G4ParticleDefinition * particle_definition
const G4String & GetParticleName() const
G4DecayTable * GetDecayTable() const
G4double particle_charge
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
G4double particle_energy
G4double GetPDGMass() const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
G4double GetPDGCharge() const
void G4ParticleGun::SetParticleEnergy ( G4double  aKineticEnergy)

Definition at line 132 of file G4ParticleGun.cc.

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), python.hepunit::GeV, particle_definition, particle_energy, and particle_momentum.

Referenced by B01PrimaryGeneratorAction::B01PrimaryGeneratorAction(), B02PrimaryGeneratorAction::B02PrimaryGeneratorAction(), B03PrimaryGeneratorAction::B03PrimaryGeneratorAction(), B1PrimaryGeneratorAction::B1PrimaryGeneratorAction(), B2PrimaryGeneratorAction::B2PrimaryGeneratorAction(), B3PrimaryGeneratorAction::B3PrimaryGeneratorAction(), B4PrimaryGeneratorAction::B4PrimaryGeneratorAction(), CCalPrimaryGeneratorAction::CCalPrimaryGeneratorAction(), Em10PrimaryGeneratorAction::Em10PrimaryGeneratorAction(), eRositaPrimaryGeneratorAction::eRositaPrimaryGeneratorAction(), ExG4PrimaryGeneratorAction01::ExG4PrimaryGeneratorAction01(), ExN02PrimaryGeneratorAction::ExN02PrimaryGeneratorAction(), ExP01PrimaryGeneratorAction::ExP01PrimaryGeneratorAction(), ExP02PrimaryGeneratorAction::ExP02PrimaryGeneratorAction(), export_G4ParticleGun(), ExTGPrimaryGeneratorAction::ExTGPrimaryGeneratorAction(), F01PrimaryGeneratorAction::F01PrimaryGeneratorAction(), F02PrimaryGeneratorAction::F02PrimaryGeneratorAction(), F03PrimaryGeneratorAction::F03PrimaryGeneratorAction(), F04PrimaryGeneratorAction::F04PrimaryGeneratorAction(), FCALPrimaryGeneratorAction::FCALPrimaryGeneratorAction(), G01PrimaryGeneratorAction::G01PrimaryGeneratorAction(), G02PrimaryGeneratorAction::G02PrimaryGeneratorAction(), G03PrimaryGeneratorAction::G03PrimaryGeneratorAction(), G04PrimaryGeneratorAction::G04PrimaryGeneratorAction(), G4ParticleGunMessenger::G4ParticleGunMessenger(), GammaRayTelPrimaryGeneratorAction::GammaRayTelPrimaryGeneratorAction(), GB01PrimaryGeneratorAction::GB01PrimaryGeneratorAction(), GB02PrimaryGeneratorAction::GB02PrimaryGeneratorAction(), PrimaryGeneratorAction1::GeneratePrimaries(), F05PrimaryGeneratorAction::GeneratePrimaries(), F06PrimaryGeneratorAction::GeneratePrimaries(), PrimaryGeneratorAction3::GeneratePrimaries(), PrimaryGeneratorAction2::GeneratePrimaries(), PrimaryGeneratorAction4::GeneratePrimaries(), B5PrimaryGeneratorAction::GeneratePrimaries(), XrayFluoPlanePrimaryGeneratorAction::GeneratePrimaries(), XrayFluoMercuryPrimaryGeneratorAction::GeneratePrimaries(), DicomPrimaryGeneratorAction::GeneratePrimaries(), XrayFluoPrimaryGeneratorAction::GeneratePrimaries(), GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(), CCalPrimaryGeneratorAction::GeneratePrimaries(), CML2PrimaryGenerationAction::GeneratePrimaries(), LXePrimaryGeneratorAction::LXePrimaryGeneratorAction(), OpNovicePrimaryGeneratorAction::OpNovicePrimaryGeneratorAction(), Par01PrimaryGeneratorAction::Par01PrimaryGeneratorAction(), PurgMagPrimaryGeneratorAction::PurgMagPrimaryGeneratorAction(), RE01PrimaryGeneratorAction::RE01PrimaryGeneratorAction(), RE02PrimaryGeneratorAction::RE02PrimaryGeneratorAction(), RE03PrimaryGeneratorAction::RE03PrimaryGeneratorAction(), RE04PrimaryGeneratorAction::RE04PrimaryGeneratorAction(), RE05PrimaryGeneratorAction::RE05PrimaryGeneratorAction(), RE06PrimaryGeneratorAction::RE06PrimaryGeneratorAction(), PrimaryGeneratorAction::SetDefaultKinematic(), G4ParticleGunMessenger::SetNewValue(), XrayFluoMercuryPrimaryGeneratorAction::XrayFluoMercuryPrimaryGeneratorAction(), XrayFluoPlanePrimaryGeneratorAction::XrayFluoPlanePrimaryGeneratorAction(), and XrayFluoPrimaryGeneratorAction::XrayFluoPrimaryGeneratorAction().

133 {
134  particle_energy = aKineticEnergy;
135  if(particle_momentum>0.0){
137  G4cout << "G4ParticleGun::" << particle_definition->GetParticleName()
138  << G4endl;
139  }else{
140  G4cout << "G4ParticleGun::" << " " << G4endl;
141  }
142  G4cout << " was defined in terms of Momentum: "
143  << particle_momentum/GeV << "GeV/c" << G4endl;
144  G4cout << " is now defined in terms of KineticEnergy: "
145  << particle_energy/GeV << "GeV" << G4endl;
146  particle_momentum = 0.0;
147  }
148 }
G4double particle_momentum
G4ParticleDefinition * particle_definition
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
G4double particle_energy
#define G4endl
Definition: G4ios.hh:61
void G4ParticleGun::SetParticleMomentum ( G4double  aMomentum)

Definition at line 150 of file G4ParticleGun.cc.

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGMass(), python.hepunit::GeV, particle_definition, particle_energy, and particle_momentum.

Referenced by export_G4ParticleGun(), CexmcPrimaryGeneratorAction::GeneratePrimaries(), and G4ParticleGunMessenger::SetNewValue().

151 {
152  if(particle_energy>0.0){
154  G4cout << "G4ParticleGun::" << particle_definition->GetParticleName()
155  << G4endl;
156  }else{
157  G4cout << "G4ParticleGun::" << " " << G4endl;
158  }
159  G4cout << " was defined in terms of KineticEnergy: "
160  << particle_energy/GeV << "GeV" << G4endl;
161  G4cout << " is now defined in terms Momentum: "
162  << aMomentum/GeV << "GeV/c" << G4endl;
163  }
164  if(particle_definition==0)
165  {
166  G4cout <<"Particle Definition not defined yet for G4ParticleGun"<< G4endl;
167  G4cout <<"Zero Mass is assumed"<<G4endl;
168  particle_momentum = aMomentum;
169  particle_energy = aMomentum;
170  }
171  else
172  {
174  particle_momentum = aMomentum;
176  std::sqrt(particle_momentum*particle_momentum+mass*mass)-mass;
177  }
178 }
G4double particle_momentum
G4ParticleDefinition * particle_definition
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
G4double particle_energy
G4double GetPDGMass() const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
void G4ParticleGun::SetParticleMomentum ( G4ParticleMomentum  aMomentum)

Definition at line 180 of file G4ParticleGun.cc.

References G4cout, G4endl, G4ParticleDefinition::GetParticleName(), G4ParticleDefinition::GetPDGMass(), python.hepunit::GeV, CLHEP::Hep3Vector::mag(), particle_definition, particle_energy, particle_momentum, particle_momentum_direction, and CLHEP::Hep3Vector::unit().

181 {
182  if(particle_energy>0.0){
184  G4cout << "G4ParticleGun::" << particle_definition->GetParticleName()
185  << G4endl;
186  }else{
187  G4cout << "G4ParticleGun::" << " " << G4endl;
188  }
189  G4cout << " was defined in terms of KineticEnergy: "
190  << particle_energy/GeV << "GeV" << G4endl;
191  G4cout << " is now defined in terms Momentum: "
192  << aMomentum.mag()/GeV << "GeV/c" << G4endl;
193  }
194  if(particle_definition==0)
195  {
196  G4cout <<"Particle Definition not defined yet for G4ParticleGun"<< G4endl;
197  G4cout <<"Zero Mass is assumed"<<G4endl;
198  particle_momentum_direction = aMomentum.unit();
199  particle_momentum = aMomentum.mag();
200  particle_energy = aMomentum.mag();
201  }
202  else
203  {
205  particle_momentum = aMomentum.mag();
206  particle_momentum_direction = aMomentum.unit();
207  particle_energy =
208  std::sqrt(particle_momentum*particle_momentum+mass*mass)-mass;
209  }
210 }
G4double particle_momentum
G4ParticleDefinition * particle_definition
const G4String & GetParticleName() const
G4ParticleMomentum particle_momentum_direction
G4GLOB_DLL std::ostream G4cout
G4double particle_energy
G4double GetPDGMass() const
Hep3Vector unit() const
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
double mag() const
void G4ParticleGun::SetParticleMomentumDirection ( G4ParticleMomentum  aMomentumDirection)
inline

Definition at line 96 of file G4ParticleGun.hh.

References particle_momentum_direction, and CLHEP::Hep3Vector::unit().

Referenced by B01PrimaryGeneratorAction::B01PrimaryGeneratorAction(), B02PrimaryGeneratorAction::B02PrimaryGeneratorAction(), B03PrimaryGeneratorAction::B03PrimaryGeneratorAction(), B1PrimaryGeneratorAction::B1PrimaryGeneratorAction(), B2PrimaryGeneratorAction::B2PrimaryGeneratorAction(), B3PrimaryGeneratorAction::B3PrimaryGeneratorAction(), B4PrimaryGeneratorAction::B4PrimaryGeneratorAction(), CCalPrimaryGeneratorAction::CCalPrimaryGeneratorAction(), Em10PrimaryGeneratorAction::Em10PrimaryGeneratorAction(), eRositaPrimaryGeneratorAction::eRositaPrimaryGeneratorAction(), ExG4PrimaryGeneratorAction01::ExG4PrimaryGeneratorAction01(), ExN02PrimaryGeneratorAction::ExN02PrimaryGeneratorAction(), ExP01PrimaryGeneratorAction::ExP01PrimaryGeneratorAction(), export_G4ParticleGun(), ExTGPrimaryGeneratorAction::ExTGPrimaryGeneratorAction(), F01PrimaryGeneratorAction::F01PrimaryGeneratorAction(), F02PrimaryGeneratorAction::F02PrimaryGeneratorAction(), F03PrimaryGeneratorAction::F03PrimaryGeneratorAction(), F04PrimaryGeneratorAction::F04PrimaryGeneratorAction(), G02PrimaryGeneratorAction::G02PrimaryGeneratorAction(), G03PrimaryGeneratorAction::G03PrimaryGeneratorAction(), G4ParticleGunMessenger::G4ParticleGunMessenger(), GammaRayTelPrimaryGeneratorAction::GammaRayTelPrimaryGeneratorAction(), GB01PrimaryGeneratorAction::GB01PrimaryGeneratorAction(), GB02PrimaryGeneratorAction::GB02PrimaryGeneratorAction(), FCALPrimaryGeneratorAction::GeneratePrimaries(), ExP02PrimaryGeneratorAction::GeneratePrimaries(), PrimaryGeneratorAction1::GeneratePrimaries(), F05PrimaryGeneratorAction::GeneratePrimaries(), F06PrimaryGeneratorAction::GeneratePrimaries(), G01PrimaryGeneratorAction::GeneratePrimaries(), G04PrimaryGeneratorAction::GeneratePrimaries(), PrimaryGeneratorAction3::GeneratePrimaries(), PrimaryGeneratorAction2::GeneratePrimaries(), PrimaryGeneratorAction4::GeneratePrimaries(), F04PrimaryGeneratorAction::GeneratePrimaries(), B5PrimaryGeneratorAction::GeneratePrimaries(), XrayFluoPlanePrimaryGeneratorAction::GeneratePrimaries(), XrayFluoMercuryPrimaryGeneratorAction::GeneratePrimaries(), DicomPrimaryGeneratorAction::GeneratePrimaries(), XrayFluoPrimaryGeneratorAction::GeneratePrimaries(), CexmcPrimaryGeneratorAction::GeneratePrimaries(), GammaRayTelPrimaryGeneratorAction::GeneratePrimaries(), CCalPrimaryGeneratorAction::GeneratePrimaries(), CML2PrimaryGenerationAction::GeneratePrimaries(), LXePrimaryGeneratorAction::LXePrimaryGeneratorAction(), OpNovicePrimaryGeneratorAction::OpNovicePrimaryGeneratorAction(), Par01PrimaryGeneratorAction::Par01PrimaryGeneratorAction(), PurgMagPrimaryGeneratorAction::PurgMagPrimaryGeneratorAction(), RE01PrimaryGeneratorAction::RE01PrimaryGeneratorAction(), RE02PrimaryGeneratorAction::RE02PrimaryGeneratorAction(), RE03PrimaryGeneratorAction::RE03PrimaryGeneratorAction(), RE04PrimaryGeneratorAction::RE04PrimaryGeneratorAction(), RE05PrimaryGeneratorAction::RE05PrimaryGeneratorAction(), RE06PrimaryGeneratorAction::RE06PrimaryGeneratorAction(), PrimaryGeneratorAction::SetDefaultKinematic(), G4ParticleGunMessenger::SetNewValue(), XrayFluoMercuryPrimaryGeneratorAction::XrayFluoMercuryPrimaryGeneratorAction(), XrayFluoPlanePrimaryGeneratorAction::XrayFluoPlanePrimaryGeneratorAction(), and XrayFluoPrimaryGeneratorAction::XrayFluoPrimaryGeneratorAction().

97  { particle_momentum_direction = aMomentumDirection.unit(); }
G4ParticleMomentum particle_momentum_direction
Hep3Vector unit() const
void G4ParticleGun::SetParticlePolarization ( G4ThreeVector  aVal)
inline

Field Documentation

G4int G4ParticleGun::NumberOfParticlesToBeGenerated
protected
G4double G4ParticleGun::particle_charge
protected
G4ParticleDefinition* G4ParticleGun::particle_definition
protected
G4double G4ParticleGun::particle_energy
protected
G4double G4ParticleGun::particle_momentum
protected
G4ParticleMomentum G4ParticleGun::particle_momentum_direction
protected
G4ThreeVector G4ParticleGun::particle_polarization
protected

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