Geant4 9.6.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 ()
 
int operator== (const G4Nucleon &right) const
 
int operator!= (const G4Nucleon &right) const
 
G4Nucleonoperator= (const G4Nucleon &right)
 
void SetPosition (G4ThreeVector &aPosition)
 
virtual 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)
 
G4ParticleDefinitionGetParticleType () const
 
virtual 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)
 
int operator== (const G4VKineticNucleon &right) const
 
int operator!= (const G4VKineticNucleon &right) const
 
virtual G4KineticTrackVectorDecay ()
 
virtual const G4LorentzVectorGet4Momentum () const =0
 
virtual 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:64
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 87 of file G4Nucleon.hh.

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

◆ Get4Momentum()

virtual const G4LorentzVector & G4Nucleon::Get4Momentum ( ) const
inlinevirtual

◆ GetBindingEnergy()

G4double G4Nucleon::GetBindingEnergy ( ) const
inline

◆ GetDefinition()

◆ GetMomentum()

◆ GetParticleType()

G4ParticleDefinition * G4Nucleon::GetParticleType ( ) const
inline

◆ GetPosition()

◆ GetSplitableHadron()

G4VSplitableHadron * G4Nucleon::GetSplitableHadron ( ) const
inline

Definition at line 96 of file G4Nucleon.hh.

96{ return theSplitableHadron;}

Referenced by G4FTFParticipants::GetList(), G4FTFModel::GetStrings(), operator=(), and G4FTFModel::~G4FTFModel().

◆ Hit() [1/2]

void G4Nucleon::Hit ( G4int  )
inline

Definition at line 92 of file G4Nucleon.hh.

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

◆ Hit() [2/2]

void G4Nucleon::Hit ( G4VSplitableHadron aHit)
inline

Definition at line 90 of file G4Nucleon.hh.

90{ theSplitableHadron=aHit;}

Referenced by G4FTFParticipants::GetList(), G4KineticTrack::Hit(), and G4QGSParticipants::SelectInteractions().

◆ operator!=()

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

Definition at line 116 of file G4Nucleon.hh.

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

◆ operator=()

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

Definition at line 121 of file G4Nucleon.hh.

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

◆ operator==()

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

Definition at line 112 of file G4Nucleon.hh.

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

◆ SetBindingEnergy()

void G4Nucleon::SetBindingEnergy ( G4double  anEnergy)
inline

Definition at line 74 of file G4Nucleon.hh.

74{theBindingE = anEnergy;}

Referenced by G4FTFParticipants::GetList().

◆ SetMomentum()

void G4Nucleon::SetMomentum ( G4LorentzVector aMomentum)
inline

Definition at line 70 of file G4Nucleon.hh.

70{theMomentum = aMomentum;}

Referenced by G4QGSParticipants::SelectInteractions().

◆ SetParticleType() [1/4]

void G4Nucleon::SetParticleType ( G4AntiNeutron aAntiNeutron)
inline

Definition at line 81 of file G4Nucleon.hh.

81{theParticleType =aAntiNeutron;}//VU

◆ SetParticleType() [2/4]

void G4Nucleon::SetParticleType ( G4AntiProton aAntiProton)
inline

Definition at line 80 of file G4Nucleon.hh.

80{theParticleType =aAntiProton;} //VU

◆ 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 ( G4ThreeVector aPosition)
inline

Definition at line 67 of file G4Nucleon.hh.

67{thePosition = aPosition;}

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