Geant4 10.7.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4Nucleon Class Reference

#include <G4Nucleon.hh>

+ Inheritance diagram for G4Nucleon:

Public Member Functions

 G4Nucleon ()
 
 ~G4Nucleon ()
 
G4bool operator== (const G4Nucleon &right) const
 
G4bool operator!= (const G4Nucleon &right) const
 
G4Nucleonoperator= (const G4Nucleon &right)
 
void SetPosition (const G4ThreeVector aPosition)
 
const G4ThreeVectorGetPosition () const
 
void SetMomentum (G4LorentzVector &aMomentum)
 
const G4LorentzVectorGetMomentum () const
 
virtual const G4LorentzVectorGet4Momentum () const
 
void SetBindingEnergy (G4double anEnergy)
 
G4double GetBindingEnergy () const
 
void SetParticleType (G4Proton *aProton)
 
void SetParticleType (G4Neutron *aNeutron)
 
void SetParticleType (G4AntiProton *aAntiProton)
 
void SetParticleType (G4AntiNeutron *aAntiNeutron)
 
const G4ParticleDefinitionGetParticleType () const
 
virtual const G4ParticleDefinitionGetDefinition () const
 
void Boost (const G4ThreeVector &beta)
 
void Boost (const G4LorentzVector &aMomentum)
 
void Hit (G4VSplitableHadron *aHit)
 
void Hit (G4int)
 
G4VSplitableHadronGetSplitableHadron () const
 
G4bool AreYouHit () const
 
- Public Member Functions inherited from G4VKineticNucleon
 G4VKineticNucleon ()
 
 G4VKineticNucleon (const G4VKineticNucleon &right)
 
virtual ~G4VKineticNucleon ()
 
const G4VKineticNucleonoperator= (const G4VKineticNucleon &right)
 
G4bool operator== (const G4VKineticNucleon &right) const
 
G4bool operator!= (const G4VKineticNucleon &right) const
 
virtual G4KineticTrackVectorDecay ()
 
virtual const G4LorentzVectorGet4Momentum () const =0
 
virtual const G4ParticleDefinitionGetDefinition () const =0
 
virtual const G4ThreeVectorGetPosition () const =0
 

Detailed Description

Definition at line 54 of file G4Nucleon.hh.

Constructor & Destructor Documentation

◆ G4Nucleon()

G4Nucleon::G4Nucleon ( )

Definition at line 38 of file G4Nucleon.cc.

39: theBindingE(0.) , theParticleType(0), theSplitableHadron(0)
40{}

◆ ~G4Nucleon()

G4Nucleon::~G4Nucleon ( )

Definition at line 42 of file G4Nucleon.cc.

43{
44}

Member Function Documentation

◆ AreYouHit()

◆ Boost() [1/2]

void G4Nucleon::Boost ( const G4LorentzVector aMomentum)

Definition at line 46 of file G4Nucleon.cc.

47{
48// see e.g. CERNLIB short writeup U101 for the algorithm
49 G4double mass=aMomentum.mag();
50 G4double factor=
51 ( theMomentum.vect()*aMomentum.vect()/(aMomentum.e()+mass) - theMomentum.e() ) / mass;
52
53 theMomentum.setE(1/mass*theMomentum.dot(aMomentum));
54 theMomentum.setVect(factor*aMomentum.vect() + theMomentum.vect());
55}
double G4double
Definition: G4Types.hh:83
double dot(const HepLorentzVector &) const
Hep3Vector vect() const
void setVect(const Hep3Vector &)

◆ Boost() [2/2]

void G4Nucleon::Boost ( const G4ThreeVector beta)
inline

Definition at line 86 of file G4Nucleon.hh.

86{ theMomentum.boost(beta); }
HepLorentzVector & boost(double, double, double)

◆ Get4Momentum()

◆ GetBindingEnergy()

G4double G4Nucleon::GetBindingEnergy ( ) const
inline

Definition at line 75 of file G4Nucleon.hh.

75{return theBindingE;}

Referenced by operator=(), G4GeneratorPrecompoundInterface::PropagateNuclNucl(), and G4VPartonStringModel::Scatter().

◆ GetDefinition()

virtual const G4ParticleDefinition * G4Nucleon::GetDefinition ( ) const
inlinevirtual

◆ GetMomentum()

const G4LorentzVector & G4Nucleon::GetMomentum ( ) const
inline

Definition at line 71 of file G4Nucleon.hh.

71{return theMomentum;}

Referenced by G4VSplitableHadron::G4VSplitableHadron().

◆ GetParticleType()

const G4ParticleDefinition * G4Nucleon::GetParticleType ( ) const
inline

◆ GetPosition()

const G4ThreeVector & G4Nucleon::GetPosition ( ) const
inlinevirtual

◆ GetSplitableHadron()

G4VSplitableHadron * G4Nucleon::GetSplitableHadron ( ) const
inline

◆ Hit() [1/2]

void G4Nucleon::Hit ( G4int  )
inline

Definition at line 91 of file G4Nucleon.hh.

92 {
93 theSplitableHadron=reinterpret_cast<G4VSplitableHadron *>(1111);
94 }

◆ Hit() [2/2]

void G4Nucleon::Hit ( G4VSplitableHadron aHit)
inline

◆ operator!=()

G4bool G4Nucleon::operator!= ( const G4Nucleon right) const
inline

Definition at line 115 of file G4Nucleon.hh.

116{
117 return this!=&right;
118}

◆ operator=()

G4Nucleon & G4Nucleon::operator= ( const G4Nucleon right)
inline

Definition at line 120 of file G4Nucleon.hh.

121{
122 if (this != &right)
123 {
124 thePosition=right.GetPosition();
125 theMomentum=right.Get4Momentum();
126 theBindingE=right.GetBindingEnergy();
127 theParticleType=right.GetDefinition();
128 theSplitableHadron=right.GetSplitableHadron();
129 }
130 return *this;
131}
const G4ThreeVector & GetPosition() const
Definition: G4Nucleon.hh:138
G4VSplitableHadron * GetSplitableHadron() const
Definition: G4Nucleon.hh:95
virtual const G4LorentzVector & Get4Momentum() const
Definition: G4Nucleon.hh:72
G4double GetBindingEnergy() const
Definition: G4Nucleon.hh:75
virtual const G4ParticleDefinition * GetDefinition() const
Definition: G4Nucleon.hh:84

◆ operator==()

G4bool G4Nucleon::operator== ( const G4Nucleon right) const
inline

Definition at line 111 of file G4Nucleon.hh.

112{
113 return this==&right;
114}

◆ SetBindingEnergy()

void G4Nucleon::SetBindingEnergy ( G4double  anEnergy)
inline

Definition at line 74 of file G4Nucleon.hh.

74{theBindingE = anEnergy;}

◆ SetMomentum()

void G4Nucleon::SetMomentum ( G4LorentzVector aMomentum)
inline

Definition at line 70 of file G4Nucleon.hh.

70{theMomentum = aMomentum;}

Referenced by G4VPartonStringModel::Scatter().

◆ SetParticleType() [1/4]

void G4Nucleon::SetParticleType ( G4AntiNeutron aAntiNeutron)
inline

Definition at line 81 of file G4Nucleon.hh.

81{theParticleType =aAntiNeutron;}

◆ SetParticleType() [2/4]

void G4Nucleon::SetParticleType ( G4AntiProton aAntiProton)
inline

Definition at line 80 of file G4Nucleon.hh.

80{theParticleType =aAntiProton;}

◆ SetParticleType() [3/4]

void G4Nucleon::SetParticleType ( G4Neutron aNeutron)
inline

Definition at line 78 of file G4Nucleon.hh.

78{theParticleType = aNeutron;}

◆ SetParticleType() [4/4]

void G4Nucleon::SetParticleType ( G4Proton aProton)
inline

Definition at line 77 of file G4Nucleon.hh.

77{theParticleType = aProton;}

Referenced by G4FTFModel::Init().

◆ SetPosition()

void G4Nucleon::SetPosition ( const G4ThreeVector  aPosition)
inline

Definition at line 133 of file G4Nucleon.hh.

134{
135 thePosition = aPosition;
136}

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