76   for(
size_t i=0; i<17; ++i) {
 
   78     if(0 < nn) { 
for(
size_t j=0; j<
nn; ++j) { 
delete (
list1[i])[j]; }}
 
   80     if(0 < nn) { 
for(
size_t j=0; j<
nn; ++j) { 
delete (
list2[i])[j]; }}
 
   82     if(0 < nn) { 
for(
size_t j=0; j<
nn; ++j) { 
delete (
list3[i])[j]; }}
 
   84     if(0 < nn) { 
for(
size_t j=0; j<
nn; ++j) { 
delete (
list4[i])[j]; }}
 
   93   if     (2 == Z && 5 == A) { res = 
false; }
 
   94   else if(3 == Z && 5 == A) { res = 
false; }
 
   95   else if(4 == Z && 8 == A) { res = 
false; }
 
   96   else if(5 == Z && 9 == A) { res = 
false; }
 
  243   std::vector<const G4VFermiFragment*> newvec;
 
  248   for(
G4int i=0; i<nfrag; ++i) {
 
  255     G4cout << 
"### G4FermiFragmentPool: " << nfrag 
 
  256            << 
" fragments" << 
G4endl;
 
  258       G4cout << 
"  A= " << 
A << 
" : Z= ";
 
  259       for(
size_t j=0; j<
list1[
A].size(); ++j) { 
 
  270   for(
G4int i=0; i<nfrag; ++i) {
 
  273     for(
G4int j=0; j<nfrag; ++j) {
 
  291     G4cout << 
"### Pairs of fragments: " << counter << 
G4endl;
 
  294       for(
size_t j=0; j<
list2[
A].size(); ++j) {
 
  295         const std::vector<const G4VFermiFragment*>* vec 
 
  296           = (
list2[
A])[j]->GetFragmentList(); 
 
  298         G4int z1=(*vec)[0]->GetZ();
 
  300         G4int z2=(*vec)[1]->GetZ();
 
  301         G4cout << 
"("<<a1<<
","<<z1<<
")("<<a2<<
","<<z2<<
") % "; 
 
  304       G4cout<<
"----------------------------------------------------------------" 
  314     size_t nz = 
list2[A1].size();
 
  315     for(
size_t idx=0; idx<nz; ++idx) {
 
  318       const std::vector<const G4VFermiFragment*>* vec2 = 
 
  320       for(
G4int j=0; j<nfrag; ++j) {
 
  326           newvec[0] = (*vec2)[0];
 
  327           newvec[1] = (*vec2)[1];
 
  331             list3[
A].push_back(conf3);
 
  340     G4cout << 
"### Triples of fragments: " << counter << 
G4endl;
 
  343       for(
size_t j=0; j<
list3[
A].size(); ++j) { 
 
  344         const std::vector<const G4VFermiFragment*>* vec 
 
  345           = (
list3[
A])[j]->GetFragmentList(); 
 
  347         G4int z1=(*vec)[0]->GetZ();
 
  349         G4int z2=(*vec)[1]->GetZ();
 
  351         G4int z3=(*vec)[2]->GetZ();
 
  352         G4cout << 
"("<<a1<<
","<<z1<<
")("<<a2<<
","<<z2<<
")("<<a3<<
","<<z3<<
") % ";
 
  355       G4cout<<
"----------------------------------------------------------------" 
  365     size_t nz = 
list3[A1].size();
 
  366     for(
size_t idx=0; idx<nz; ++idx) {
 
  369       const std::vector<const G4VFermiFragment*>* vec3 = 
 
  371       for(
G4int j=0; j<nfrag; ++j) {
 
  377           newvec[0] = (*vec3)[0];
 
  378           newvec[1] = (*vec3)[1];
 
  379           newvec[2] = (*vec3)[2];
 
  383             list4[
A].push_back(conf4);
 
  392     size_t nz1 = 
list2[A1].size();
 
  393     for(
size_t id1=0; id1<nz1; ++id1) {
 
  396       const std::vector<const G4VFermiFragment*>* vec1 = 
 
  399         size_t nz2 = 
list2[A2].size();
 
  400         for(
size_t id2=0; id2<nz2; ++id2) {
 
  403           const std::vector<const G4VFermiFragment*>* vec2 = 
 
  408             newvec[0] = (*vec1)[0];
 
  409             newvec[1] = (*vec1)[1];
 
  410             newvec[2] = (*vec2)[0];
 
  411             newvec[3] = (*vec2)[1];
 
  415               list4[
A].push_back(conf4);
 
  426     G4cout << 
"### Quartets of fragments: " << counter << 
G4endl;
 
  429       for(
size_t j=0; j<
list4[
A].size(); ++j) { 
 
  430         const std::vector<const G4VFermiFragment*>* vec 
 
  431           = (
list4[
A])[j]->GetFragmentList(); 
 
  433         G4int z1=(*vec)[0]->GetZ();
 
  435         G4int z2=(*vec)[1]->GetZ();
 
  437         G4int z3=(*vec)[2]->GetZ();
 
  439         G4int z4=(*vec)[3]->GetZ();
 
  441         G4cout << 
"("<<a1<<
","<<z1<<
")("<<a2<<
","<<z2<<
")("<<a3<<
","<<z3<<
")(" 
  442                <<a4<<
","<<z4<<
") % "; 
 
  445       G4cout<<
"----------------------------------------------------------------" 
  455   size_t nz = 
list2[
A].size();
 
  457     for(
size_t j=0; j<nz; ++j) {
 
  459       if(Z == conf->
GetZ() && mass >= conf->
GetMass()) { 
return true; }
 
  465     for(
size_t j=0; j<nz; ++j) {
 
  467       if(Z == conf->
GetZ() && mass >= conf->
GetMass()) { 
return true; }
 
  473     for(
size_t j=0; j<nz; ++j) {
 
  475       if(Z == conf->
GetZ() && mass >= conf->
GetMass()) { 
return true; }
 
  482     for(
size_t j=0; j<nz; ++j) {
 
  492 const std::vector<const G4FermiConfiguration*>* 
 
  495   std::vector<const G4FermiConfiguration*>* v = 
 
  496     new std::vector<const G4FermiConfiguration*>;
 
  497   if(Z >= 
maxZ || A >= 
maxA) { 
return v; }
 
  503   size_t nz = 
list2[
A].size();
 
  505     for(
size_t j=0; j<nz; ++j) {
 
  516     for(
size_t j=0; j<nz; ++j) {
 
  527     for(
size_t j=0; j<nz; ++j) {
 
  539       G4cout<<
"Total number of configurations = "<<v->size()<<
" for A= " 
  540             <<A<<
"   Z= "<<Z<<
"   E*= "<< ExEn<<
" MeV"<<
G4endl;
 
  541       size_t size_vector_conf = v->size();
 
  542       for(
size_t jc=0; jc<size_vector_conf; ++jc) {     
 
  543         const std::vector<const G4VFermiFragment*>* v_frag = 
 
  544           (*v)[jc]->GetFragmentList();
 
  545         size_t size_vector_fragments = v_frag->size();
 
  546         G4cout<<size_vector_fragments<<
"-body configuration "<<jc+1<<
": ";
 
  547         for(
size_t jf=0;jf<size_vector_fragments;++jf){
 
  548           G4int af= (*v_frag)[jf]->GetA();
 
  549           G4int zf= (*v_frag)[jf]->GetZ();
 
  550           G4double ex=(*v_frag)[jf]->GetExcitationEnergy();
 
  551           G4cout<<
"(a="<<af<<
", z="<<zf<<
", ex="<<ex<<
")  ";
 
  554         G4cout<<
"-----------------------------------------------------"<<
G4endl;
 
  563     for(
size_t j=0; j<nz; ++j) {
 
  573             G4cout<<
"Only 1 configurations for A= " 
  574                   <<A<<
"   Z= "<<Z<<
"   E*= "<< ExEn<<
" MeV"<<
G4endl;
 
  575             const std::vector<const G4VFermiFragment*>* v_frag 
 
  576               = (*v)[0]->GetFragmentList();
 
  577             size_t size_vector_fragments=v_frag->size();
 
  578             G4cout<<
"1 Fragment configuration: ";
 
  579             for(
size_t jf=0;jf<size_vector_fragments;++jf){
 
  580               G4int af= (*v_frag)[jf]->GetA();
 
  581               G4int zf= (*v_frag)[jf]->GetZ();
 
  582               G4double ex=(*v_frag)[jf]->GetExcitationEnergy();
 
  583               G4cout<<
"(a="<<af<<
", z="<<zf<<
", ex="<<ex<<
")  ";
 
  586             G4cout<<
"-----------------------------------------------------"<<
G4endl;    
 
  595     G4cout << 
"G4FermiFragmentsPool::GetConfigurationList: WARNING: not " 
  596            << 
"able decay fragment Z= " << Z << 
" A= " << A
 
  603               std::vector<const G4VFermiFragment*>& newconf)
 const 
  605   size_t nn = newconf.size();
 
  607   for(
size_t i=0; i<
nn; ++i) { mass +=  newconf[i]->GetTotalEnergy(); }
 
  610     size_t nz = 
list2[
A].size();
 
  612       for(
size_t j=0; j<nz; ++j) {
 
  614         if(Z == conf->
GetZ() && A == conf->
GetA() && 
 
  615            std::fabs(mass - conf->
GetMass()) < 
keV) {
return true; }
 
  622     size_t nz = 
list3[
A].size();
 
  624       for(
size_t j=0; j<nz; ++j) {
 
  626         if(Z == conf->
GetZ() && A == conf->
GetA() && 
 
  627            std::fabs(mass - conf->
GetMass()) < 
keV) { 
return true; }
 
  634     size_t nz = 
list4[
A].size();
 
  636       for(
size_t j=0; j<nz; ++j) {
 
  638         if(Z == conf->
GetZ() && A == conf->
GetA() && 
 
  639            std::fabs(mass - conf->
GetMass()) < 
keV) { 
return true; }
 
  652     size_t nz = 
list1[
A].size();
 
  653     for(
size_t j=0; j<nz; ++j) {
 
  655       if(Z == conf->
GetZ()) { 
 
  675   G4cout << 
"##### List of Fragments in the Fermi Fragment Pool #####"  
  678   for(
G4int i=0; i<nfrag; ++i) {
 
static G4double GetNuclearMass(const G4double A, const G4double Z)
 
G4FermiPhaseSpaceDecay thePhaseSpace
 
std::vector< const G4FermiConfiguration * > list3[17]
 
std::vector< const G4FermiConfiguration * > list1[17]
 
static G4FermiFragmentsPool * theInstance
 
const G4VFermiFragment * GetFragment(G4int Z, G4int A) const 
 
G4bool IsAvailable(G4int Z, G4int A) const 
 
G4bool IsApplicable(G4int Z, G4int A, G4double mass) const 
 
G4GLOB_DLL std::ostream G4cout
 
double A(double temperature)
 
std::vector< const G4VFermiFragment * > fragment_pool
 
void DumpFragment(const G4VFermiFragment *f) const 
 
G4double GetExcitationEnergy(void) const 
 
G4double GetFragmentMass(void) const 
 
static MCTruthManager * instance
 
std::vector< const G4FermiConfiguration * > list2[17]
 
G4bool IsExist(G4int Z, G4int A, std::vector< const G4VFermiFragment * > &) const 
 
static G4FermiFragmentsPool * Instance()
 
const std::vector< const G4VFermiFragment * > * GetFragmentList() const 
 
const std::vector< const G4FermiConfiguration * > * GetConfigurationList(G4int Z, G4int A, G4double mass) const 
 
const G4FermiPhaseSpaceDecay * GetFermiPhaseSpaceDecay() const 
 
std::vector< const G4FermiConfiguration * > list4[17]