90   maxZForFermiBreakUp(9),maxAForFermiBreakUp(17),minEForMultiFrag(4*
GeV),
 
   91   minExcitation(
keV),OPTxs(3),useSICB(false),isEvapLocal(true)
 
  132   std::list<G4Fragment*> theEvapList;        
 
  135   std::list<G4Fragment*> thePhotoEvapList;
 
  138   std::list<G4Fragment*> theResults;
 
  152       theResults.push_back( theInitialStatePtr );
 
  155   else if(exEnergy < minExcitation && nist->GetIsotopeAbundance(Z, A) > 0.0)
 
  157       theResults.push_back( theInitialStatePtr );
 
  169           theEvapList.push_back(theInitialStatePtr); 
 
  174           if(!theTempResult) { theEvapList.push_back(theInitialStatePtr); }
 
  176             size_t nsec = theTempResult->size();
 
  177             if(0 == nsec) { theEvapList.push_back(theInitialStatePtr); }
 
  181               G4bool deletePrimary = 
true;
 
  182               G4FragmentVector::iterator j;
 
  183               for (j = theTempResult->begin(); j != theTempResult->end(); ++j) {  
 
  184                 if((*j) == theInitialStatePtr) { deletePrimary = 
false; }
 
  185                 A = (*j)->GetA_asInt();  
 
  188                 if(A <= 1) { theResults.push_back(*j); }
 
  192                   G4double exEnergy1 = (*j)->GetExcitationEnergy();
 
  196                     Z = (*j)->GetZ_asInt(); 
 
  198                       theResults.push_back(*j); 
 
  205                         if(ffrag->
IsStable()) { theResults.push_back(*j); }
 
  206                         else                  { theEvapList.push_back(*j); }
 
  210                         theEvapList.push_back(*j); 
 
  215                   } 
else { theEvapList.push_back(*j); } 
 
  218               if( deletePrimary ) { 
delete theInitialStatePtr; }
 
  220             delete theTempResult;
 
  233   std::list<G4Fragment*>::iterator iList;
 
  234   for (iList = theEvapList.begin(); iList != theEvapList.end(); ++iList)
 
  239       Z = (*iList)->GetZ_asInt();
 
  248           if(1 == theTempResult->size()) {
 
  249             delete *(theTempResult->begin());
 
  250             delete theTempResult;
 
  259       G4bool deletePrimary = 
true;
 
  260       size_t nsec = theTempResult->size();
 
  265         G4FragmentVector::iterator j;
 
  266         for (j = theTempResult->begin(); j != theTempResult->end(); ++j) {
 
  267           if((*j) == (*iList)) { deletePrimary = 
false; }
 
  270           A = (*j)->GetA_asInt();
 
  271           exEnergy = (*j)->GetExcitationEnergy();
 
  273           if(A <= 1) { theResults.push_back(*j); }    
 
  278             else                         { thePhotoEvapList.push_back(*j); }
 
  284               Z = (*j)->GetZ_asInt();
 
  288                 theResults.push_back(*j); 
 
  295                   if(ffrag->
IsStable()) { theResults.push_back(*j); }
 
  296                   else                  { theEvapList.push_back(*j); }
 
  300                   theEvapList.push_back(*j);
 
  306               thePhotoEvapList.push_back(*j); 
 
  308               theEvapList.push_back(*j);        
 
  313       if( deletePrimary ) { 
delete (*iList); }
 
  314       delete theTempResult;
 
  326   for(iList = thePhotoEvapList.begin(); iList != thePhotoEvapList.end(); ++iList)
 
  335         size_t nsec = theTempResult->size();
 
  341             G4FragmentVector::iterator j;
 
  342             for (j = theTempResult->begin(); j != theTempResult->end(); ++j)
 
  344                 theResults.push_back(*j); 
 
  347         delete theTempResult;
 
  351       theResults.push_back(*iList); 
 
  364   theReactionProductVector->reserve( theResults.size() );
 
  366   G4int theFragmentA, theFragmentZ;
 
  368   std::list<G4Fragment*>::iterator i;
 
  369   for (i = theResults.begin(); i != theResults.end(); ++i) 
 
  371       theFragmentA = (*i)->GetA_asInt();
 
  372       theFragmentZ = (*i)->GetZ_asInt();
 
  373       G4double etot= (*i)->GetMomentum().e();
 
  375       if (theFragmentA == 0) {       
 
  376         theKindOfFragment = (*i)->GetParticleDefinition();   
 
  377       } 
else if (theFragmentA == 1 && theFragmentZ == 0) { 
 
  379       } 
else if (theFragmentA == 1 && theFragmentZ == 1) { 
 
  381       } 
else if (theFragmentA == 2 && theFragmentZ == 1) { 
 
  383       } 
else if (theFragmentA == 3 && theFragmentZ == 1) { 
 
  385       } 
else if (theFragmentA == 3 && theFragmentZ == 2) { 
 
  387       } 
else if (theFragmentA == 4 && theFragmentZ == 2) { 
 
  392         G4double eexc = (*i)->GetExcitationEnergy();
 
  408           for(level=1; level<9; ++level) {
 
  418                   excitation = eexc - elevel2;
 
  419                   theKindOfFragment = ion;
 
  422                 } 
else if(elevel2 - eexc >= eexc - elevel1) {
 
  423                   excitation = eexc - elevel1;
 
  427                   theKindOfFragment = ion;
 
  428                   excitation = eexc - elevel2;
 
  440         if(etot < ionmass) { etot = ionmass; }
 
  442       if (theKindOfFragment != 0) 
 
  448           theReactionProductVector->push_back(theNew);
 
  453   return theReactionProductVector;
 
static G4Pow * GetInstance()
 
static G4Triton * TritonDefinition()
 
static G4He3 * He3Definition()
 
virtual G4FragmentVector * BreakItUp(const G4Fragment &theNucleus)=0
 
G4double GetExcitationEnergy() const 
 
virtual G4FragmentVector * BreakUpFragment(G4Fragment *theNucleus)
 
G4VEvaporationChannel * GetPhotonEvaporation()
 
void SetMomentum(const G4double x, const G4double y, const G4double z)
 
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
 
static G4Proton * ProtonDefinition()
 
void SetMinEForMultiFrag(G4double anE)
 
virtual G4FragmentVector * BreakItUp(const G4Fragment &theNucleus)=0
 
virtual G4FragmentVector * BreakItUp(const G4Fragment &theNucleus)=0
 
virtual void Initialise()
 
static G4NistManager * Instance()
 
G4ReactionProductVector * BreakItUp(const G4Fragment &theInitialState) const 
 
std::vector< G4ReactionProduct * > G4ReactionProductVector
 
G4IonTable * GetIonTable() const 
 
void SetFermiModel(G4VFermiBreakUp *ptr)
 
void SetTotalEnergy(const G4double en)
 
std::vector< G4Fragment * > G4FragmentVector
 
void SetMultiFragmentation(G4VMultiFragmentation *ptr)
 
G4VEvaporationChannel * thePhotonEvaporation
 
G4FermiFragmentsPool * thePool
 
G4double GetIsotopeAbundance(G4int Z, G4int N) const 
 
G4int maxAForFermiBreakUp
 
G4VMultiFragmentation * theMultiFragmentation
 
static const G4double A[nN]
 
G4VFermiBreakUp * theFermiModel
 
G4double minEForMultiFrag
 
void SetMaxZForFermiBreakUp(G4int aZ)
 
const G4VFermiFragment * GetFragment(G4int Z, G4int A)
 
G4double GetPDGMass() const 
 
static G4ParticleTable * GetParticleTable()
 
virtual void SetPhotonEvaporation(G4VEvaporationChannel *ptr)
 
void SetMaxAandZForFermiBreakUp(G4int anA, G4int aZ)
 
void SetEvaporation(G4VEvaporation *ptr)
 
G4double GetExcitationEnergy(void) const 
 
G4VEvaporation * theEvaporation
 
void SetMaxAForFermiBreakUp(G4int anA)
 
void SetFormationTime(G4double aTime)
 
static G4FermiFragmentsPool * Instance()
 
void SetPhotonEvaporation(G4VEvaporationChannel *ptr)
 
static G4Deuteron * DeuteronDefinition()
 
static G4Alpha * AlphaDefinition()
 
static G4Neutron * NeutronDefinition()
 
G4int maxZForFermiBreakUp
 
G4double GetExcitationEnergy() const 
 
G4IonTable * theTableOfIons