Geant4 11.2.2
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 (G4Lambda *aLambda)
 
void SetParticleType (G4AntiProton *aAntiProton)
 
void SetParticleType (G4AntiNeutron *aAntiNeutron)
 
void SetParticleType (G4AntiLambda *aAntiLambda)
 
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 ()
 

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 88 of file G4Nucleon.hh.

88{ 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()

◆ GetPosition()

const G4ThreeVector & G4Nucleon::GetPosition ( ) const
inlinevirtual

◆ GetSplitableHadron()

G4VSplitableHadron * G4Nucleon::GetSplitableHadron ( ) const
inline

◆ Hit() [1/2]

void G4Nucleon::Hit ( G4int )
inline

Definition at line 93 of file G4Nucleon.hh.

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

◆ Hit() [2/2]

void G4Nucleon::Hit ( G4VSplitableHadron * aHit)
inline

◆ operator!=()

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

Definition at line 117 of file G4Nucleon.hh.

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

◆ operator=()

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

Definition at line 122 of file G4Nucleon.hh.

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

◆ operator==()

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

Definition at line 113 of file G4Nucleon.hh.

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

◆ 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/6]

void G4Nucleon::SetParticleType ( G4AntiLambda * aAntiLambda)
inline

Definition at line 83 of file G4Nucleon.hh.

83{theParticleType = aAntiLambda;}

◆ SetParticleType() [2/6]

void G4Nucleon::SetParticleType ( G4AntiNeutron * aAntiNeutron)
inline

Definition at line 82 of file G4Nucleon.hh.

82{theParticleType = aAntiNeutron;}

◆ SetParticleType() [3/6]

void G4Nucleon::SetParticleType ( G4AntiProton * aAntiProton)
inline

Definition at line 81 of file G4Nucleon.hh.

81{theParticleType = aAntiProton;}

◆ SetParticleType() [4/6]

void G4Nucleon::SetParticleType ( G4Lambda * aLambda)
inline

Definition at line 79 of file G4Nucleon.hh.

79{theParticleType = aLambda;}

◆ SetParticleType() [5/6]

void G4Nucleon::SetParticleType ( G4Neutron * aNeutron)
inline

Definition at line 78 of file G4Nucleon.hh.

78{theParticleType = aNeutron;}

◆ SetParticleType() [6/6]

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 135 of file G4Nucleon.hh.

136{
137 thePosition = aPosition;
138}

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