149   for(
G4int i=0; i<200; ++i) { 
fSig[i] = 0.0; }
   192     G4cout <<
"oooooooooooooooooooooooooooooooooooooooo"   193            <<
"oooooooooooooooooooooooooooooooooooooooo"   197     G4cout <<
"Initial prefragment A=" <<A
   199            <<
", excitation energy = " <<ex/
MeV <<
" MeV"   213       G4cout <<
"oooooooooooooooooooooooooooooooooooooooo"   214              <<
"oooooooooooooooooooooooooooooooooooooooo"   222     lorentzVector.
setE(lorentzVector.
e()-ex+10.0*
eV);
   235       G4cout <<
"Final fragment is in fact only a nucleon) :" <<
G4endl;
   237       G4cout <<
"oooooooooooooooooooooooooooooooooooooooo"   238              <<
"oooooooooooooooooooooooooooooooooooooooo"   249   if (DAabl > A) DAabl = 
A;
   259   G4int AF = A - DAabl;
   275     for (ZF=minZ; ZF<=zmax; ++ZF)
   277       sum += 
G4Exp(-R*g4pow->
powA(std::abs(ZF - 0.486*AFd + 3.8E-04*AFd*AFd),1.5));
   285     for (ZF=minZ; ZF<=zmax; ++ZF) {
   286       if(sum <= 
fSig[ZF]) { 
break; }
   289   G4int DZabl = Z - ZF;
   305     if (
fragType[ift]->GetPDGCharge() > 0.0)
   339   totalEpost   += massFinalFrag;
   346     G4cout <<
"Final fragment      A=" <<AF
   355                <<
", number of particles emitted = " <<n <<
G4endl;
   364   G4double totalEpre        = massPreFrag + ex;
   365   G4double excess           = totalEpre - totalEpost;
   389     G4double p    = std::sqrt(e*e-mass*mass);
   392     lorentzVector.
boost(-boost);
   396   delete resultNucleus;
   410     G4FragmentVector::iterator iter;
   422     G4cout <<
"oooooooooooooooooooooooooooooooooooooooo"   423            <<
"oooooooooooooooooooooooooooooooooooooooo"   434   G4Fragment theResidualNucleus = *intermediateNucleus;
   437   while (evaporate && 
evapType.size() != 0)
   445     std::vector <G4VEvaporationChannel*>  theChannels1;
   446     theChannels1.clear();
   447     std::vector <G4VEvaporationChannel*>::iterator i;
   448     VectorOfFragmentTypes::iterator iter;
   449     std::vector <VectorOfFragmentTypes::iterator> iters;
   455       i = theChannels1.end() - 1;
   456       (*i)->SetOPTxs(
OPTxs);
   459       iters.push_back(iter);
   465       i = theChannels1.end() - 1;
   466       (*i)->SetOPTxs(
OPTxs);
   469       iters.push_back(iter);
   475       i = theChannels1.end() - 1;
   476       (*i)->SetOPTxs(
OPTxs);
   479       iters.push_back(iter);
   485       i = theChannels1.end() - 1;
   486       (*i)->SetOPTxs(
OPTxs);
   489       iters.push_back(iter);
   495       i = theChannels1.end() - 1;
   496       (*i)->SetOPTxs(
OPTxs);
   499       iters.push_back(iter);
   505       i = theChannels1.end() - 1;
   506       (*i)->SetOPTxs(
OPTxs);
   509       iters.push_back(iter);
   511     G4int nChannels = theChannels1.size();
   516     std::vector<G4VEvaporationChannel*>::iterator iterEv;
   517     for (iterEv=theChannels1.begin(); iterEv!=theChannels1.end(); iterEv++) {
   518       totalProb += (*iterEv)->GetEmissionProbability(intermediateNucleus);
   519       probEvapType[ich] = totalProb;
   522     if (totalProb > 0.0) {
   531       for (ii=0; ii<nChannels; ii++) {
   532         if (xi < probEvapType[ii]) { 
break; }
   534       if (ii >= nChannels) { ii = nChannels - 1; }
   536         BreakUp(*intermediateNucleus);
   538       *intermediateNucleus = *(*evaporationResult)[1];
   540       delete evaporationResult;
   560   for (
unsigned i=0; i<
evapType.size(); i++)
   565     G4double p                 = std::sqrt(e*e-mass*mass);
   567     G4double sintheta          = std::sqrt((1.0 - costheta)*(1.0 + costheta));
   569     G4ThreeVector direction(sintheta*std::cos(phi),sintheta*std::sin(phi),costheta);
   571     lorentzVector.
boost(-boost);
   589   G4cout <<
" *****************************************************************"   591   G4cout <<
" Nuclear ablation model for nuclear-nuclear interactions activated"   593   G4cout <<
" (Written by QinetiQ Ltd for the European Space Agency)"   595   G4cout <<
" !!! WARNING: This model is not well validation and should not be used for accurate simulation !!!"   597   G4cout <<
" *****************************************************************" 
static G4Pow * GetInstance()
 
virtual std::vector< G4VEvaporationChannel * > * GetChannel()=0
 
G4double GetExcitationEnergy() const
 
void SelectSecondariesByDefault(G4ThreeVector)
 
G4int GetBaryonNumber() const
 
VectorOfFragmentTypes evapType
 
CLHEP::Hep3Vector G4ThreeVector
 
virtual ~G4WilsonAblationModel()
 
G4double GetGroundStateMass() const
 
G4ParticleDefinition * fragType[6]
 
void SelectSecondariesByEvaporation(G4Fragment *)
 
std::vector< G4VEvaporationChannel * > * theChannels
 
void PrintWelcomeMessage()
 
G4double powZ(G4int Z, G4double y) const
 
G4bool produceSecondaries
 
const G4String & GetParticleName() const
 
G4GLOB_DLL std::ostream G4cout
 
double A(double temperature)
 
G4IonTable * GetIonTable() const
 
HepLorentzVector & boost(double, double, double)
 
static const double twopi
 
std::vector< G4Fragment * > G4FragmentVector
 
static G4Triton * Triton()
 
static G4Proton * Proton()
 
static G4Neutron * Neutron()
 
Hep3Vector findBoostToCM() const
 
static G4Deuteron * Deuteron()
 
G4double G4Exp(G4double initial_x)
Exponential Function double precision. 
 
static G4ParticleTable * GetParticleTable()
 
const G4LorentzVector & GetMomentum() const
 
G4double GetPDGMass() const
 
G4double powA(G4double A, G4double y) const
 
G4VEvaporationFactory * theChannelFactory
 
G4FragmentVector * fragmentVector
 
G4double GetPDGCharge() const
 
CLHEP::HepLorentzVector G4LorentzVector
 
G4FragmentVector * BreakItUp(const G4Fragment &theNucleus)