Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
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
G4ParticleDefinition
GetDefinition () 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 ()
 

Detailed Description

Definition at line 54 of file G4Nucleon.hh.

Constructor & Destructor Documentation

G4Nucleon::G4Nucleon ( )

Definition at line 38 of file G4Nucleon.cc.

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

Definition at line 42 of file G4Nucleon.cc.

43 {
44 }

Member Function Documentation

G4bool G4Nucleon::AreYouHit ( ) const
inline

Definition at line 97 of file G4Nucleon.hh.

97 { return theSplitableHadron!=0;}

Here is the caller graph for this function:

void G4Nucleon::Boost ( const G4ThreeVector beta)
inline

Definition at line 87 of file G4Nucleon.hh.

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

Here is the call graph for this function:

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 dot(const HepLorentzVector &) const
Hep3Vector vect() const
double mag() const
void setVect(const Hep3Vector &)
double G4double
Definition: G4Types.hh:76

Here is the call graph for this function:

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

Implements G4VKineticNucleon.

Definition at line 72 of file G4Nucleon.hh.

72 {return theMomentum;}

Here is the caller graph for this function:

G4double G4Nucleon::GetBindingEnergy ( ) const
inline

Definition at line 75 of file G4Nucleon.hh.

75 {return theBindingE;}

Here is the caller graph for this function:

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

Implements G4VKineticNucleon.

Definition at line 85 of file G4Nucleon.hh.

85 {return theParticleType;}

Here is the caller graph for this function:

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

Definition at line 71 of file G4Nucleon.hh.

71 {return theMomentum;}

Here is the caller graph for this function:

const G4ParticleDefinition* G4Nucleon::GetParticleType ( ) const
inline

Definition at line 84 of file G4Nucleon.hh.

84 {return theParticleType;}

Here is the caller graph for this function:

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

Implements G4VKineticNucleon.

Definition at line 68 of file G4Nucleon.hh.

68 {return thePosition;}

Here is the caller graph for this function:

G4VSplitableHadron* G4Nucleon::GetSplitableHadron ( ) const
inline

Definition at line 96 of file G4Nucleon.hh.

96 { return theSplitableHadron;}

Here is the caller graph for this function:

void G4Nucleon::Hit ( G4VSplitableHadron aHit)
inline

Definition at line 90 of file G4Nucleon.hh.

90 { theSplitableHadron=aHit;}

Here is the caller graph for this function:

void G4Nucleon::Hit ( G4int  )
inline

Definition at line 92 of file G4Nucleon.hh.

93  {
94  theSplitableHadron=reinterpret_cast<G4VSplitableHadron *>(1111);
95  }
int G4Nucleon::operator!= ( const G4Nucleon right) const
inline

Definition at line 116 of file G4Nucleon.hh.

117 {
118  return this!=&right;
119 }
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 }
virtual const G4LorentzVector & Get4Momentum() const
Definition: G4Nucleon.hh:72
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

Here is the call graph for this function:

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

Definition at line 112 of file G4Nucleon.hh.

113 {
114  return this==&right;
115 }
void G4Nucleon::SetBindingEnergy ( G4double  anEnergy)
inline

Definition at line 74 of file G4Nucleon.hh.

74 {theBindingE = anEnergy;}
void G4Nucleon::SetMomentum ( G4LorentzVector aMomentum)
inline

Definition at line 70 of file G4Nucleon.hh.

70 {theMomentum = aMomentum;}

Here is the caller graph for this function:

void G4Nucleon::SetParticleType ( G4Proton aProton)
inline

Definition at line 77 of file G4Nucleon.hh.

77 {theParticleType = aProton;}

Here is the caller graph for this function:

void G4Nucleon::SetParticleType ( G4Neutron aNeutron)
inline

Definition at line 78 of file G4Nucleon.hh.

78 {theParticleType = aNeutron;}
void G4Nucleon::SetParticleType ( G4AntiProton aAntiProton)
inline

Definition at line 80 of file G4Nucleon.hh.

80 {theParticleType =aAntiProton;} //VU
void G4Nucleon::SetParticleType ( G4AntiNeutron aAntiNeutron)
inline

Definition at line 81 of file G4Nucleon.hh.

81 {theParticleType =aAntiNeutron;}//VU
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: