49   if (theFragment.GetExcitationEnergy() <= 0.0) {
 
   74   G4int IterationsLimit = 100000;
 
   84       G4double theMeanMult = theMicrocanonicalEnsemble->GetMeanMultiplicity();
 
   85       if (theMeanMult <= MaxAverageMultiplicity) {
 
   88     theChannel = theMicrocanonicalEnsemble->ChooseAandZ(theFragment);
 
   89     _theEnsemble = theMicrocanonicalEnsemble;
 
   97       _theEnsemble = theMacrocanonicalEnsemble;
 
  103     theChannel = theMacrocanonicalEnsemble->
ChooseAandZ(theFragment);
 
  107       if (!ChannelOk) 
delete theChannel; 
 
  110     } 
while (!ChannelOk);
 
  115       theResult->push_back(
new G4Fragment(theFragment));
 
  116       delete theMicrocanonicalEnsemble;
 
  117       if (theMacrocanonicalEnsemble != 0) 
delete theMacrocanonicalEnsemble;
 
  129     if (FindTemperatureOfBreakingChannel(theFragment,theChannel,Temperature)) 
break;
 
  140   } 
while (Iterations++ < IterationsLimit );
 
  145   if (Iterations >= IterationsLimit) 
 
  146     throw G4HadronicException(__FILE__, __LINE__, 
"G4StatMF::BreakItUp: Was not possible to solve for temperature of breaking channel");
 
  150     GetFragments(theFragment.GetA_asInt(),theFragment.GetZ_asInt(),Temperature);
 
  157   InitialMomentum.
boost(-InitialMomentum.boostVector());
 
  162     G4FragmentVector::iterator j;
 
  163     for (j = theResult->begin(); j != theResult->end(); j++) 
 
  164       FragmentsEnergy += (*j)->GetMomentum().
e();
 
  165     SavedScaleFactor = ScaleFactor;
 
  166     ScaleFactor = InitialMomentum.e()/FragmentsEnergy;
 
  168     for (j = theResult->begin(); j != theResult->end(); j++) {
 
  169       ScaledMomentum = ScaleFactor * (*j)->GetMomentum().vect();
 
  170       G4double Mass = (*j)->GetMomentum().m();
 
  172       NewMomentum.
setVect(ScaledMomentum);
 
  173       NewMomentum.
setE(std::sqrt(ScaledMomentum.mag2()+Mass*Mass));
 
  174       (*j)->SetMomentum(NewMomentum);       
 
  177   } 
while (ScaleFactor > 1.0+1.e-5 && std::abs(ScaleFactor-SavedScaleFactor)/ScaleFactor > 1.e-10);
 
  181   G4FragmentVector::iterator i;
 
  182   for (i = theResult->begin(); i != theResult->end(); i++) {
 
  184     FourMom.
boost(theFragment.GetMomentum().boostVector());
 
  185     (*i)->SetMomentum(FourMom);
 
  189   delete theMicrocanonicalEnsemble;
 
  190   if (theMacrocanonicalEnsemble != 0) 
delete theMacrocanonicalEnsemble;
 
G4double GetMeanTemperature(void) const 
 
size_t GetMultiplicity(void)
 
G4StatMFChannel * ChooseAandZ(const G4Fragment &theFragment)
 
static G4double GetMaxAverageMultiplicity(G4int A)
 
HepLorentzVector & boost(double, double, double)
 
std::vector< G4Fragment * > G4FragmentVector
 
void setVect(const Hep3Vector &)
 
G4bool CheckFragments(void)