G4VPreCompoundFragment Class Reference

#include <G4VPreCompoundFragment.hh>

Inheritance diagram for G4VPreCompoundFragment:

G4HETCFragment G4PreCompoundFragment G4HETCChargedFragment G4HETCNeutron G4PreCompoundIon G4PreCompoundNucleon G4HETCAlpha G4HETCDeuteron G4HETCHe3 G4HETCProton G4HETCTriton G4PreCompoundAlpha G4PreCompoundDeuteron G4PreCompoundHe3 G4PreCompoundTriton G4PreCompoundNeutron G4PreCompoundProton

Public Member Functions

 G4VPreCompoundFragment (const G4ParticleDefinition *, G4VCoulombBarrier *aCoulombBarrier)
virtual ~G4VPreCompoundFragment ()
void Initialize (const G4Fragment &aFragment)
virtual G4double CalcEmissionProbability (const G4Fragment &aFragment)=0
virtual G4double GetKineticEnergy (const G4Fragment &aFragment)=0
G4ReactionProductGetReactionProduct () const
G4int GetA () const
G4int GetZ () const
G4int GetRestA () const
G4int GetRestZ () const
G4double ResidualA13 () const
G4double GetCoulombBarrier () const
G4double GetBindingEnergy () const
G4double GetMaximalKineticEnergy () const
G4double GetEnergyThreshold () const
G4double GetEmissionProbability () const
G4double GetNuclearMass () const
G4double GetRestNuclearMass () const
G4double GetReducedMass () const
const G4LorentzVectorGetMomentum () const
void SetMomentum (const G4LorentzVector &value)
const G4String GetName () const
void SetOPTxs (G4int)
void UseSICB (G4bool)

Protected Member Functions

G4bool IsItPossible (const G4Fragment &aFragment) const

Protected Attributes

G4PreCompoundParameterstheParameters
G4Powg4pow
G4double theEmissionProbability
G4double theCoulombBarrier
G4int OPTxs
G4bool useSICB

Friends

std::ostream & operator<< (std::ostream &, const G4VPreCompoundFragment *)
std::ostream & operator<< (std::ostream &, const G4VPreCompoundFragment &)

Detailed Description

Definition at line 54 of file G4VPreCompoundFragment.hh.


Constructor & Destructor Documentation

G4VPreCompoundFragment::G4VPreCompoundFragment ( const G4ParticleDefinition ,
G4VCoulombBarrier aCoulombBarrier 
)

Definition at line 39 of file G4VPreCompoundFragment.cc.

References g4pow, G4VPreCompoundFragment(), G4PreCompoundParameters::GetAddress(), G4ParticleDefinition::GetBaryonNumber(), G4Pow::GetInstance(), G4ParticleDefinition::GetPDGCharge(), G4ParticleDefinition::GetPDGMass(), and theParameters.

Referenced by G4VPreCompoundFragment().

00041   : particle(part), theCoulombBarrierPtr(aCoulombBarrier),
00042     theRestNucleusA(0),theRestNucleusZ(0),theBindingEnergy(0.0), 
00043     theMaximalKineticEnergy(-MeV),theRestNucleusMass(0.0),
00044     theReducedMass(0.0),theMomentum(0.,0.,0.,0.),
00045     theEmissionProbability(0.0),theCoulombBarrier(0.0),
00046     OPTxs(3),useSICB(false)
00047 {
00048   theA = particle->GetBaryonNumber();
00049   theZ = G4int(particle->GetPDGCharge()/eplus + 0.1);
00050   theMass = particle->GetPDGMass();
00051   theParameters = G4PreCompoundParameters::GetAddress();
00052   g4pow = G4Pow::GetInstance();
00053   theRestNucleusA13 = 0;
00054 }

G4VPreCompoundFragment::~G4VPreCompoundFragment (  )  [virtual]

Definition at line 56 of file G4VPreCompoundFragment.cc.

00057 {}


Member Function Documentation

virtual G4double G4VPreCompoundFragment::CalcEmissionProbability ( const G4Fragment aFragment  )  [pure virtual]

Implemented in G4HETCFragment, and G4PreCompoundFragment.

G4int G4VPreCompoundFragment::GetA (  )  const [inline]

Definition at line 58 of file G4VPreCompoundFragment.icc.

Referenced by G4PreCompoundTriton::CrossSection(), G4PreCompoundProton::CrossSection(), G4PreCompoundNeutron::CrossSection(), G4PreCompoundHe3::CrossSection(), G4PreCompoundDeuteron::CrossSection(), G4PreCompoundAlpha::CrossSection(), G4PreCompoundAlpha::G4PreCompoundAlpha(), G4PreCompoundDeuteron::G4PreCompoundDeuteron(), G4PreCompoundHe3::G4PreCompoundHe3(), G4PreCompoundNeutron::G4PreCompoundNeutron(), G4PreCompoundProton::G4PreCompoundProton(), G4PreCompoundTriton::G4PreCompoundTriton(), G4HETCTriton::K(), G4HETCNeutron::K(), G4HETCHe3::K(), G4HETCDeuteron::K(), G4HETCAlpha::K(), operator<<(), G4PreCompoundEmission::PerformEmission(), G4PreCompoundNucleon::ProbabilityDistributionFunction(), and G4PreCompoundIon::ProbabilityDistributionFunction().

00059 { 
00060   return theA;
00061 }

G4double G4VPreCompoundFragment::GetBindingEnergy (  )  const [inline]

Definition at line 88 of file G4VPreCompoundFragment.icc.

Referenced by G4PreCompoundNucleon::ProbabilityDistributionFunction(), and G4PreCompoundIon::ProbabilityDistributionFunction().

00089 {
00090   return theBindingEnergy;
00091 }

G4double G4VPreCompoundFragment::GetCoulombBarrier (  )  const [inline]

Definition at line 83 of file G4VPreCompoundFragment.icc.

References theCoulombBarrier.

Referenced by G4PreCompoundProton::GetBeta(), G4PreCompoundIon::GetBeta(), G4HETCTriton::GetBeta(), G4HETCProton::GetBeta(), G4HETCHe3::GetBeta(), G4HETCDeuteron::GetBeta(), G4HETCAlpha::GetBeta(), G4HETCChargedFragment::GetKineticEnergy(), and Initialize().

00084 {
00085   return theCoulombBarrier;
00086 }

G4double G4VPreCompoundFragment::GetEmissionProbability (  )  const [inline]

Definition at line 103 of file G4VPreCompoundFragment.icc.

References theEmissionProbability.

Referenced by G4PreCompoundFragment::GetKineticEnergy().

00104 { 
00105   return theEmissionProbability;
00106 }

G4double G4VPreCompoundFragment::GetEnergyThreshold (  )  const [inline]

Definition at line 98 of file G4VPreCompoundFragment.icc.

References theCoulombBarrier.

Referenced by G4HETCFragment::CalcEmissionProbability().

00099 { 
00100   return theMaximalKineticEnergy - theCoulombBarrier;
00101 }

virtual G4double G4VPreCompoundFragment::GetKineticEnergy ( const G4Fragment aFragment  )  [pure virtual]

Implemented in G4HETCChargedFragment, G4HETCNeutron, and G4PreCompoundFragment.

Referenced by G4PreCompoundEmission::PerformEmission().

G4double G4VPreCompoundFragment::GetMaximalKineticEnergy (  )  const [inline]

Definition at line 93 of file G4VPreCompoundFragment.icc.

Referenced by G4PreCompoundFragment::CalcEmissionProbability(), G4HETCFragment::CalcEmissionProbability(), G4PreCompoundFragment::GetKineticEnergy(), G4HETCNeutron::GetKineticEnergy(), G4HETCChargedFragment::GetKineticEnergy(), and G4PreCompoundIon::ProbabilityDistributionFunction().

00094 { 
00095   return theMaximalKineticEnergy;
00096 }

const G4LorentzVector & G4VPreCompoundFragment::GetMomentum (  )  const [inline]

Definition at line 124 of file G4VPreCompoundFragment.icc.

Referenced by GetReactionProduct().

00125 { 
00126   return theMomentum;
00127 }

const G4String G4VPreCompoundFragment::GetName (  )  const [inline]

Definition at line 136 of file G4VPreCompoundFragment.icc.

References G4ParticleDefinition::GetParticleName().

00137 { 
00138   return particle->GetParticleName(); 
00139 }

G4double G4VPreCompoundFragment::GetNuclearMass (  )  const [inline]

Definition at line 108 of file G4VPreCompoundFragment.icc.

Referenced by operator<<(), and G4PreCompoundEmission::PerformEmission().

00109 {
00110   return theMass;
00111 }

G4ReactionProduct * G4VPreCompoundFragment::GetReactionProduct (  )  const [inline]

Definition at line 49 of file G4VPreCompoundFragment.icc.

References GetMomentum(), G4ReactionProduct::SetMomentum(), and G4ReactionProduct::SetTotalEnergy().

Referenced by G4PreCompoundEmission::PerformEmission().

00050 {
00051   G4ReactionProduct * theReactionProduct =
00052     new G4ReactionProduct(const_cast<G4ParticleDefinition*>(particle));
00053   theReactionProduct->SetMomentum(GetMomentum().vect());
00054   theReactionProduct->SetTotalEnergy(GetMomentum().e());
00055   return theReactionProduct;
00056 }

G4double G4VPreCompoundFragment::GetReducedMass (  )  const [inline]

Definition at line 118 of file G4VPreCompoundFragment.icc.

Referenced by G4PreCompoundNucleon::ProbabilityDistributionFunction(), and G4PreCompoundIon::ProbabilityDistributionFunction().

00119 {
00120   return theReducedMass;
00121 }

G4int G4VPreCompoundFragment::GetRestA (  )  const [inline]

Definition at line 68 of file G4VPreCompoundFragment.icc.

Referenced by G4PreCompoundTriton::CrossSection(), G4PreCompoundProton::CrossSection(), G4PreCompoundNeutron::CrossSection(), G4PreCompoundHe3::CrossSection(), G4PreCompoundDeuteron::CrossSection(), G4PreCompoundAlpha::CrossSection(), G4PreCompoundAlpha::G4PreCompoundAlpha(), G4PreCompoundHe3::G4PreCompoundHe3(), G4PreCompoundNeutron::G4PreCompoundNeutron(), G4PreCompoundProton::G4PreCompoundProton(), G4PreCompoundTriton::G4PreCompoundTriton(), G4HETCNeutron::GetAlpha(), G4HETCNeutron::GetBeta(), G4HETCTriton::K(), G4HETCProton::K(), G4HETCNeutron::K(), G4HETCHe3::K(), G4HETCDeuteron::K(), G4HETCAlpha::K(), G4PreCompoundEmission::PerformEmission(), G4PreCompoundNucleon::ProbabilityDistributionFunction(), and G4PreCompoundIon::ProbabilityDistributionFunction().

00069 { 
00070   return theRestNucleusA;
00071 }

G4double G4VPreCompoundFragment::GetRestNuclearMass (  )  const [inline]

Definition at line 113 of file G4VPreCompoundFragment.icc.

00114 {
00115   return theRestNucleusMass;
00116 }

G4int G4VPreCompoundFragment::GetRestZ (  )  const [inline]

Definition at line 73 of file G4VPreCompoundFragment.icc.

Referenced by G4PreCompoundTriton::CrossSection(), G4PreCompoundProton::CrossSection(), G4PreCompoundNeutron::CrossSection(), G4PreCompoundHe3::CrossSection(), G4PreCompoundDeuteron::CrossSection(), G4PreCompoundAlpha::CrossSection(), G4PreCompoundAlpha::G4PreCompoundAlpha(), G4PreCompoundHe3::G4PreCompoundHe3(), G4PreCompoundNeutron::G4PreCompoundNeutron(), G4PreCompoundProton::G4PreCompoundProton(), G4PreCompoundTriton::G4PreCompoundTriton(), G4HETCTriton::GetAlpha(), G4HETCProton::GetAlpha(), G4HETCHe3::GetAlpha(), G4HETCDeuteron::GetAlpha(), G4HETCAlpha::GetAlpha(), G4HETCTriton::K(), G4HETCProton::K(), G4HETCNeutron::K(), G4HETCHe3::K(), G4HETCDeuteron::K(), G4HETCAlpha::K(), and G4PreCompoundEmission::PerformEmission().

00074 { 
00075   return theRestNucleusZ;
00076 }

G4int G4VPreCompoundFragment::GetZ (  )  const [inline]

Definition at line 63 of file G4VPreCompoundFragment.icc.

Referenced by G4PreCompoundTriton::CrossSection(), G4PreCompoundProton::CrossSection(), G4PreCompoundNeutron::CrossSection(), G4PreCompoundHe3::CrossSection(), G4PreCompoundDeuteron::CrossSection(), G4PreCompoundAlpha::CrossSection(), G4PreCompoundAlpha::G4PreCompoundAlpha(), G4PreCompoundDeuteron::G4PreCompoundDeuteron(), G4PreCompoundHe3::G4PreCompoundHe3(), G4PreCompoundNeutron::G4PreCompoundNeutron(), G4PreCompoundProton::G4PreCompoundProton(), G4PreCompoundTriton::G4PreCompoundTriton(), G4HETCTriton::GetAlpha(), G4HETCHe3::GetAlpha(), G4HETCDeuteron::GetAlpha(), G4HETCAlpha::GetAlpha(), G4HETCTriton::K(), G4HETCProton::K(), G4HETCNeutron::K(), G4HETCHe3::K(), G4HETCDeuteron::K(), G4HETCAlpha::K(), operator<<(), G4PreCompoundEmission::PerformEmission(), and G4PreCompoundNucleon::ProbabilityDistributionFunction().

00064 { 
00065   return theZ;
00066 }

void G4VPreCompoundFragment::Initialize ( const G4Fragment aFragment  ) 

Definition at line 77 of file G4VPreCompoundFragment.cc.

References g4pow, G4Fragment::GetA_asInt(), GetCoulombBarrier(), G4Fragment::GetExcitationEnergy(), G4Fragment::GetGroundStateMass(), G4Fragment::GetMomentum(), G4NucleiProperties::GetNuclearMass(), G4Fragment::GetZ_asInt(), theCoulombBarrier, and G4Pow::Z13().

00078 {
00079   theRestNucleusA = aFragment.GetA_asInt() - theA;
00080   theRestNucleusZ = aFragment.GetZ_asInt() - theZ;
00081 
00082   if ((theRestNucleusA < theRestNucleusZ) ||
00083       (theRestNucleusA < theA) ||
00084       (theRestNucleusZ < theZ)) 
00085     {
00086       // In order to be sure that emission probability will be 0.
00087       theMaximalKineticEnergy = 0.0;
00088       return;
00089     }
00090 
00091   theRestNucleusA13 = g4pow->Z13(theRestNucleusA);
00092     
00093   // Calculate Coulomb barrier
00094   theCoulombBarrier = theCoulombBarrierPtr->
00095     GetCoulombBarrier(theRestNucleusA,theRestNucleusZ,
00096                       aFragment.GetExcitationEnergy());
00097 
00098   // Calculate masses
00099   theRestNucleusMass = 
00100     G4NucleiProperties::GetNuclearMass(theRestNucleusA, theRestNucleusZ);
00101   theReducedMass = theRestNucleusMass*theMass/(theRestNucleusMass + theMass);
00102 
00103   // Compute Binding Energies for fragments 
00104   // needed to separate a fragment from the nucleus
00105   theBindingEnergy = 
00106     theRestNucleusMass + theMass - aFragment.GetGroundStateMass();
00107     
00108   // Compute Maximal Kinetic Energy which can be carried by fragments 
00109   // after separation - the true assimptotic value
00110   G4double Ecm  = aFragment.GetMomentum().m();
00111   theMaximalKineticEnergy = 
00112     ((Ecm-theRestNucleusMass)*(Ecm+theRestNucleusMass) + theMass*theMass)/(2.0*Ecm)-theMass;
00113 }

G4bool G4VPreCompoundFragment::IsItPossible ( const G4Fragment aFragment  )  const [inline, protected]

Definition at line 39 of file G4VPreCompoundFragment.icc.

References G4Fragment::GetNumberOfCharged(), and G4Fragment::GetNumberOfParticles().

Referenced by G4PreCompoundNucleon::ProbabilityDistributionFunction(), and G4PreCompoundIon::ProbabilityDistributionFunction().

00040 {
00041   G4int pplus = aFragment.GetNumberOfCharged();
00042   G4int pneut = aFragment.GetNumberOfParticles()-pplus;
00043   return ((pneut >= theA - theZ) && (pplus >= theZ) 
00044         && (theMaximalKineticEnergy > 0));
00045 }

G4double G4VPreCompoundFragment::ResidualA13 (  )  const [inline]

Definition at line 78 of file G4VPreCompoundFragment.icc.

Referenced by G4PreCompoundTriton::CrossSection(), G4PreCompoundProton::CrossSection(), G4PreCompoundNeutron::CrossSection(), G4PreCompoundHe3::CrossSection(), G4PreCompoundDeuteron::CrossSection(), G4PreCompoundAlpha::CrossSection(), G4PreCompoundAlpha::G4PreCompoundAlpha(), G4PreCompoundHe3::G4PreCompoundHe3(), G4PreCompoundNeutron::G4PreCompoundNeutron(), G4PreCompoundProton::G4PreCompoundProton(), G4PreCompoundTriton::G4PreCompoundTriton(), G4PreCompoundNucleon::GetOpt0(), and G4PreCompoundIon::GetOpt0().

00079 {
00080   return theRestNucleusA13;
00081 }

void G4VPreCompoundFragment::SetMomentum ( const G4LorentzVector value  )  [inline]

Definition at line 130 of file G4VPreCompoundFragment.icc.

Referenced by G4PreCompoundEmission::PerformEmission().

00131 { 
00132   theMomentum = value;
00133 }

void G4VPreCompoundFragment::SetOPTxs ( G4int   )  [inline]

Definition at line 142 of file G4VPreCompoundFragment.icc.

References OPTxs.

00143 {
00144   OPTxs=opt;
00145 }

void G4VPreCompoundFragment::UseSICB ( G4bool   )  [inline]

Definition at line 148 of file G4VPreCompoundFragment.icc.

References useSICB.

00149 {
00150   useSICB=use;
00151 }


Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const G4VPreCompoundFragment theFragment 
) [friend]

Definition at line 60 of file G4VPreCompoundFragment.cc.

00061 {
00062   out << &theFragment;
00063   return out; 
00064 }

std::ostream& operator<< ( std::ostream &  out,
const G4VPreCompoundFragment theFragment 
) [friend]

Definition at line 67 of file G4VPreCompoundFragment.cc.

00068 {
00069   out 
00070     << "PreCompoundModel Emitted Fragment: Z= " << theFragment->GetZ() 
00071     << " A= " << theFragment->GetA()
00072     << " Mass(GeV)= " << theFragment->GetNuclearMass()/CLHEP::GeV;
00073   return out;
00074 }


Field Documentation

G4Pow* G4VPreCompoundFragment::g4pow [protected]

Definition at line 170 of file G4VPreCompoundFragment.hh.

Referenced by G4PreCompoundTriton::CrossSection(), G4PreCompoundProton::CrossSection(), G4PreCompoundNeutron::CrossSection(), G4PreCompoundHe3::CrossSection(), G4PreCompoundDeuteron::CrossSection(), G4PreCompoundAlpha::CrossSection(), G4VPreCompoundFragment(), G4HETCNeutron::GetAlpha(), G4HETCNeutron::GetBeta(), G4PreCompoundProton::GetOpt1(), G4PreCompoundTriton::GetOpt12(), G4PreCompoundHe3::GetOpt12(), G4PreCompoundDeuteron::GetOpt12(), G4PreCompoundAlpha::GetOpt12(), G4PreCompoundProton::GetOpt2(), G4PreCompoundProton::GetOpt3(), G4PreCompoundTriton::GetOpt34(), G4PreCompoundHe3::GetOpt34(), G4PreCompoundDeuteron::GetOpt34(), G4PreCompoundAlpha::GetOpt34(), Initialize(), G4PreCompoundNucleon::ProbabilityDistributionFunction(), and G4PreCompoundIon::ProbabilityDistributionFunction().

G4int G4VPreCompoundFragment::OPTxs [protected]

Definition at line 176 of file G4VPreCompoundFragment.hh.

Referenced by G4PreCompoundFragment::CalcEmissionProbability(), G4PreCompoundTriton::CrossSection(), G4PreCompoundProton::CrossSection(), G4PreCompoundNeutron::CrossSection(), G4PreCompoundHe3::CrossSection(), G4PreCompoundDeuteron::CrossSection(), G4PreCompoundAlpha::CrossSection(), G4PreCompoundFragment::GetKineticEnergy(), and SetOPTxs().

G4double G4VPreCompoundFragment::theCoulombBarrier [protected]

Definition at line 173 of file G4VPreCompoundFragment.hh.

Referenced by G4PreCompoundFragment::CalcEmissionProbability(), G4HETCFragment::CalcEmissionProbability(), GetCoulombBarrier(), GetEnergyThreshold(), G4PreCompoundFragment::GetKineticEnergy(), G4PreCompoundProton::GetOpt2(), and Initialize().

G4double G4VPreCompoundFragment::theEmissionProbability [protected]

Definition at line 172 of file G4VPreCompoundFragment.hh.

Referenced by G4PreCompoundFragment::CalcEmissionProbability(), G4HETCFragment::CalcEmissionProbability(), and GetEmissionProbability().

G4PreCompoundParameters* G4VPreCompoundFragment::theParameters [protected]

Definition at line 169 of file G4VPreCompoundFragment.hh.

Referenced by G4HETCFragment::G4HETCFragment(), G4PreCompoundIon::G4PreCompoundIon(), G4VPreCompoundFragment(), G4HETCNeutron::GetKineticEnergy(), G4HETCChargedFragment::GetKineticEnergy(), G4PreCompoundNucleon::GetOpt0(), G4PreCompoundIon::GetOpt0(), G4PreCompoundNucleon::ProbabilityDistributionFunction(), and G4PreCompoundIon::ProbabilityDistributionFunction().

G4bool G4VPreCompoundFragment::useSICB [protected]

Definition at line 178 of file G4VPreCompoundFragment.hh.

Referenced by G4PreCompoundFragment::CalcEmissionProbability(), G4PreCompoundFragment::GetKineticEnergy(), G4PreCompoundProton::GetOpt2(), and UseSICB().


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:53:53 2013 for Geant4 by  doxygen 1.4.7