Geant4  10.02.p03
G4Nucleon Class Reference

#include <G4Nucleon.hh>

Inheritance diagram for G4Nucleon:
Collaboration 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)
 
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)
 
int operator== (const G4VKineticNucleon &right) const
 
int operator!= (const G4VKineticNucleon &right) const
 
virtual G4KineticTrackVectorDecay ()
 

Private Attributes

G4ThreeVector thePosition
 
G4LorentzVector theMomentum
 
G4double theBindingE
 
const G4ParticleDefinitiontheParticleType
 
G4VSplitableHadrontheSplitableHadron
 

Detailed Description

Definition at line 54 of file G4Nucleon.hh.

Constructor & Destructor Documentation

◆ G4Nucleon()

G4Nucleon::G4Nucleon ( )

Definition at line 38 of file G4Nucleon.cc.

40 {}
const G4ParticleDefinition * theParticleType
Definition: G4Nucleon.hh:104
G4double theBindingE
Definition: G4Nucleon.hh:103
G4VSplitableHadron * theSplitableHadron
Definition: G4Nucleon.hh:105

◆ ~G4Nucleon()

G4Nucleon::~G4Nucleon ( )

Definition at line 42 of file G4Nucleon.cc.

43 {
44 }

Member Function Documentation

◆ AreYouHit()

G4bool G4Nucleon::AreYouHit ( ) const
inline

Definition at line 97 of file G4Nucleon.hh.

97 { return theSplitableHadron!=0;}
G4VSplitableHadron * theSplitableHadron
Definition: G4Nucleon.hh:105
Here is the caller graph for this function:

◆ Boost() [1/2]

void G4Nucleon::Boost ( const G4ThreeVector beta)
inline

Definition at line 87 of file G4Nucleon.hh.

87 { theMomentum.boost(beta); }
G4LorentzVector theMomentum
Definition: G4Nucleon.hh:102
HepLorentzVector & boost(double, double, double)
Here is the call graph for this function:

◆ Boost() [2/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();
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 }
G4LorentzVector theMomentum
Definition: G4Nucleon.hh:102
Hep3Vector vect() const
static const G4double factor
double dot(const HepLorentzVector &) const
void setVect(const Hep3Vector &)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ Get4Momentum()

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

Implements G4VKineticNucleon.

Definition at line 72 of file G4Nucleon.hh.

72 {return theMomentum;}
G4LorentzVector theMomentum
Definition: G4Nucleon.hh:102
Here is the caller graph for this function:

◆ GetBindingEnergy()

G4double G4Nucleon::GetBindingEnergy ( ) const
inline

Definition at line 75 of file G4Nucleon.hh.

75 {return theBindingE;}
G4double theBindingE
Definition: G4Nucleon.hh:103
Here is the caller graph for this function:

◆ GetDefinition()

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

Implements G4VKineticNucleon.

Definition at line 85 of file G4Nucleon.hh.

85 {return theParticleType;}
const G4ParticleDefinition * theParticleType
Definition: G4Nucleon.hh:104
Here is the caller graph for this function:

◆ GetMomentum()

const G4LorentzVector& G4Nucleon::GetMomentum ( void  ) const
inline

Definition at line 71 of file G4Nucleon.hh.

71 {return theMomentum;}
G4LorentzVector theMomentum
Definition: G4Nucleon.hh:102
Here is the caller graph for this function:

◆ GetParticleType()

const G4ParticleDefinition* G4Nucleon::GetParticleType ( ) const
inline

Definition at line 84 of file G4Nucleon.hh.

84 {return theParticleType;}
const G4ParticleDefinition * theParticleType
Definition: G4Nucleon.hh:104
Here is the caller graph for this function:

◆ GetPosition()

virtual const G4ThreeVector& G4Nucleon::GetPosition ( void  ) const
inlinevirtual

Implements G4VKineticNucleon.

Definition at line 68 of file G4Nucleon.hh.

68 {return thePosition;}
G4ThreeVector thePosition
Definition: G4Nucleon.hh:101
Here is the caller graph for this function:

◆ GetSplitableHadron()

G4VSplitableHadron* G4Nucleon::GetSplitableHadron ( ) const
inline

Definition at line 96 of file G4Nucleon.hh.

96 { return theSplitableHadron;}
G4VSplitableHadron * theSplitableHadron
Definition: G4Nucleon.hh:105
Here is the caller graph for this function:

◆ Hit() [1/2]

void G4Nucleon::Hit ( G4VSplitableHadron aHit)
inline

Definition at line 90 of file G4Nucleon.hh.

90 { theSplitableHadron=aHit;}
G4VSplitableHadron * theSplitableHadron
Definition: G4Nucleon.hh:105
Here is the caller graph for this function:

◆ Hit() [2/2]

void G4Nucleon::Hit ( G4int  )
inline

Definition at line 92 of file G4Nucleon.hh.

93  {
94  theSplitableHadron=reinterpret_cast<G4VSplitableHadron *>(1111);
95  }
G4VSplitableHadron * theSplitableHadron
Definition: G4Nucleon.hh:105

◆ 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();
130  }
131  return *this;
132 }
const G4ParticleDefinition * theParticleType
Definition: G4Nucleon.hh:104
G4LorentzVector theMomentum
Definition: G4Nucleon.hh:102
G4ThreeVector thePosition
Definition: G4Nucleon.hh:101
virtual const G4LorentzVector & Get4Momentum() const
Definition: G4Nucleon.hh:72
G4double theBindingE
Definition: G4Nucleon.hh:103
virtual const G4ThreeVector & GetPosition() const
Definition: G4Nucleon.hh:68
virtual const G4ParticleDefinition * GetDefinition() const
Definition: G4Nucleon.hh:85
G4VSplitableHadron * GetSplitableHadron() const
Definition: G4Nucleon.hh:96
G4double GetBindingEnergy() const
Definition: G4Nucleon.hh:75
G4VSplitableHadron * theSplitableHadron
Definition: G4Nucleon.hh:105
Here is the call graph for this function:

◆ 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;}
G4double theBindingE
Definition: G4Nucleon.hh:103
Here is the caller graph for this function:

◆ SetMomentum()

void G4Nucleon::SetMomentum ( G4LorentzVector aMomentum)
inline

Definition at line 70 of file G4Nucleon.hh.

70 {theMomentum = aMomentum;}
G4LorentzVector theMomentum
Definition: G4Nucleon.hh:102
Here is the caller graph for this function:

◆ SetParticleType() [1/4]

void G4Nucleon::SetParticleType ( G4Proton aProton)
inline

Definition at line 77 of file G4Nucleon.hh.

77 {theParticleType = aProton;}
const G4ParticleDefinition * theParticleType
Definition: G4Nucleon.hh:104
Here is the caller graph for this function:

◆ SetParticleType() [2/4]

void G4Nucleon::SetParticleType ( G4Neutron aNeutron)
inline

Definition at line 78 of file G4Nucleon.hh.

78 {theParticleType = aNeutron;}
const G4ParticleDefinition * theParticleType
Definition: G4Nucleon.hh:104

◆ SetParticleType() [3/4]

void G4Nucleon::SetParticleType ( G4AntiProton aAntiProton)
inline

Definition at line 80 of file G4Nucleon.hh.

80 {theParticleType =aAntiProton;} //VU
const G4ParticleDefinition * theParticleType
Definition: G4Nucleon.hh:104

◆ SetParticleType() [4/4]

void G4Nucleon::SetParticleType ( G4AntiNeutron aAntiNeutron)
inline

Definition at line 81 of file G4Nucleon.hh.

81 {theParticleType =aAntiNeutron;}//VU
const G4ParticleDefinition * theParticleType
Definition: G4Nucleon.hh:104

◆ SetPosition()

void G4Nucleon::SetPosition ( G4ThreeVector aPosition)
inline

Definition at line 67 of file G4Nucleon.hh.

67 {thePosition = aPosition;}
G4ThreeVector thePosition
Definition: G4Nucleon.hh:101

Member Data Documentation

◆ theBindingE

G4double G4Nucleon::theBindingE
private

Definition at line 103 of file G4Nucleon.hh.

◆ theMomentum

G4LorentzVector G4Nucleon::theMomentum
private

Definition at line 102 of file G4Nucleon.hh.

◆ theParticleType

const G4ParticleDefinition* G4Nucleon::theParticleType
private

Definition at line 104 of file G4Nucleon.hh.

◆ thePosition

G4ThreeVector G4Nucleon::thePosition
private

Definition at line 101 of file G4Nucleon.hh.

◆ theSplitableHadron

G4VSplitableHadron* G4Nucleon::theSplitableHadron
private

Definition at line 105 of file G4Nucleon.hh.


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