Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QAntiBaryonNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QAntiBaryonNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QAntiBaryonNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -91,6 +91,6 @@
   // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---***
 #ifdef debug
-  G4cout<<"G4QPrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
-        <<"("<<lastN<<"),PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
+  G4cout<<"G4QaBCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
+        <<"("<<lastN<<"),PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
 #endif
   if(PDG>-2111 || PDG==-3112 || PDG==-3312 || PDG==-3334)
@@ -106,5 +106,5 @@
     j  = 0;                            // A#0f records found in DB for this projectile
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
+    G4cout<<"G4QaBarNucCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
 #endif
     if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope
@@ -115,5 +115,5 @@
         lastTH =colTH[i];              // The last THreshold (A-dependent)
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
+        G4cout<<"G4QaBCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
 #endif
         if(pMom<=lastTH)
@@ -130,7 +130,7 @@
         {
 #ifdef debug
-          G4cout<<"..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
-#endif
-          //CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // Update param's only
+          G4cout<<"..G4QaBCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
+#endif
+          //CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // Update param's only
           return lastCS*millibarn;     // Use theLastCS
         }
@@ -138,14 +138,14 @@
         // Momentum pMom is in IU ! @@ Units
 #ifdef debug
-        G4cout<<"G4QPrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
-#endif
-        lastCS=CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // read & update
-#ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
+        G4cout<<"G4QaBCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
+#endif
+        lastCS=CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // read & update
+#ifdef debug
+        G4cout<<"G4QaBCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
 #endif
         if(lastCS<=0. && pMom>lastTH)  // Correct the threshold (@@ No intermediate Zeros)
         {
 #ifdef debug
-          G4cout<<"G4QPrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
+          G4cout<<"G4QaBNucCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
 #endif
           lastCS=0.;
@@ -155,5 +155,5 @@
       }
 #ifdef debug
-      G4cout<<"-->G4QPrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]
+      G4cout<<"-->G4QaBNucCrossSec::GetCrosSec: pPDG="<<PDG<<", j="<<j<<", N="<<colN[i]
             <<",Z["<<i<<"]="<<colZ[i]<<G4endl;
 #endif
@@ -161,13 +161,13 @@
     }
 #ifdef debug
-    G4cout<<"-?-G4QPrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
+    G4cout<<"-?-G4QaBCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
 #endif
     if(!in)                            // This isotope has not been calculated previously
     {
 #ifdef debug
-      G4cout<<"^^^G4QPrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
+      G4cout<<"^^^G4QaBCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
 #endif
       //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
-      lastCS=CalculateCrossSection(fCS,0,j,2212,lastZ,lastN,pMom); //calculate & create
+      lastCS=CalculateCrossSection(fCS,0,j,PDG,lastZ,lastN,pMom); //calculate & create
       //if(lastCS>0.)                   // It means that the AMBD was initialized
       //{
@@ -175,5 +175,5 @@
         lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
 #ifdef debug
-        G4cout<<"G4QPrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
+        G4cout<<"G4QaBCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
 #endif
         colN.push_back(tgN);
@@ -183,9 +183,9 @@
         colCS.push_back(lastCS);
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
+        G4cout<<"G4QaBCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
 #endif
       //} // M.K. Presence of H1 with high threshold breaks the syncronization
 #ifdef pdebug
-      G4cout<<"G4QPrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+      G4cout<<"G4QaBCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
       return lastCS*millibarn;
@@ -194,5 +194,5 @@
     {
 #ifdef debug
-      G4cout<<"G4QPrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
+      G4cout<<"G4QAntiBaryNucCrossSection::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
 #endif
       colP[lastI]=pMom;
@@ -203,5 +203,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
+    G4cout<<"G4QaBNCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
 #endif
     return 0.;                         // Momentum is below the Threshold Value -> CS=0
@@ -220,9 +220,9 @@
     G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
 #endif
-    lastCS=CalculateCrossSection(fCS,1,j,2212,lastZ,lastN,pMom); // Only read and UpdateDB
+    lastCS=CalculateCrossSection(fCS,1,j,PDG,lastZ,lastN,pMom); // Only read and UpdateDB
     lastP=pMom;
   }
 #ifdef debug
-  G4cout<<"==>G4QPrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+  G4cout<<"==>G4QaBCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
   return lastCS*millibarn;
@@ -246,5 +246,5 @@
   static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c
 #ifdef debug
-  G4cout<<"G4QProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
+  G4cout<<"G4QaBarNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
 #endif
   G4double sigma=0.;
@@ -252,5 +252,5 @@
   G4double A=targN+targZ;              // A of the target
 #ifdef debug
-  G4cout<<"G4QProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
+  G4cout<<"G4QaBarNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
 #endif
   if(F<=0)                             // This isotope was not the last used isotop
@@ -281,5 +281,5 @@
       }
 #ifdef debug
-      G4cout<<"-*->G4QPr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
+      G4cout<<"-*->G4QaBarNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
 #endif
       // --- End of possible separate function
@@ -298,5 +298,5 @@
   // ============================== NOW the Magic Formula =================================
 #ifdef debug
-  G4cout<<"G4QPrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
+  G4cout<<"G4QaBNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
 #endif
   if (Momentum<lastTH) return 0.;      // It must be already checked in the interface class
@@ -304,5 +304,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
+    G4cout<<"G4QaBNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
 #endif
     if(A<=1.) sigma=0.;
@@ -310,5 +310,5 @@
 #ifdef debugn
     if(sigma<0.)
-      G4cout<<"G4QPrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
+      G4cout<<"G4QaBNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
 #endif
   }
@@ -317,5 +317,5 @@
     G4double lP=std::log(Momentum);
 #ifdef debug
-    G4cout<<"G4QProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
+    G4cout<<"G4QaBarNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
 #endif
     sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN);
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QAntiBaryonPlusNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QAntiBaryonPlusNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QAntiBaryonPlusNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -93,6 +93,6 @@
   // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---***
 #ifdef debug
-  G4cout<<"G4QPrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
-        <<"("<<lastN<<"),PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
+  G4cout<<"G4QaBPCS::GetCS:>>>f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
+        <<"("<<lastN<<"),PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
 #endif
   if(PDG!=-3112 && PDG!=-3312 && PDG!=-3334)
@@ -108,5 +108,5 @@
     j  = 0;                            // A#0f records found in DB for this projectile
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
+    G4cout<<"G4QABPNuclCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
 #endif
     if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope
@@ -117,5 +117,5 @@
         lastTH =colTH[i];              // The last THreshold (A-dependent)
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
+        G4cout<<"G4QaBPCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
 #endif
         if(pMom<=lastTH)
@@ -132,7 +132,7 @@
         {
 #ifdef debug
-          G4cout<<"..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
-#endif
-          //CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // Update param's only
+          G4cout<<"G4QaBPNCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
+#endif
+          //CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // Update param's only
           return lastCS*millibarn;     // Use theLastCS
         }
@@ -140,14 +140,14 @@
         // Momentum pMom is in IU ! @@ Units
 #ifdef debug
-        G4cout<<"G4QPrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
-#endif
-        lastCS=CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // read & update
-#ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
+        G4cout<<"G4QaBPNCS::G:UpdDB,P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
+#endif
+        lastCS=CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // read & update
+#ifdef debug
+        G4cout<<"G4QaBPNuCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
 #endif
         if(lastCS<=0. && pMom>lastTH)  // Correct the threshold (@@ No intermediate Zeros)
         {
 #ifdef debug
-          G4cout<<"G4QPrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
+          G4cout<<"G4QaBPNuCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
 #endif
           lastCS=0.;
@@ -157,5 +157,5 @@
       }
 #ifdef debug
-      G4cout<<"-->G4QPrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]
+      G4cout<<"-->G4QaBarPNucCrossSec::GetCrosSec: pPDG="<<PDG<<", j="<<j<<", N="<<colN[i]
             <<",Z["<<i<<"]="<<colZ[i]<<G4endl;
 #endif
@@ -163,13 +163,13 @@
     }
 #ifdef debug
-    G4cout<<"-?-G4QPrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
+    G4cout<<"-?-G4QaBPNCS::GeCS:R,Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
 #endif
     if(!in)                            // This isotope has not been calculated previously
     {
 #ifdef debug
-      G4cout<<"^^^G4QPrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
+      G4cout<<"^^^G4QaBPCS::GetCS:CalcNewP="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
 #endif
       //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
-      lastCS=CalculateCrossSection(fCS,0,j,2212,lastZ,lastN,pMom); //calculate & create
+      lastCS=CalculateCrossSection(fCS,0,j,PDG,lastZ,lastN,pMom); //calculate & create
       //if(lastCS>0.)                   // It means that the AMBD was initialized
       //{
@@ -177,5 +177,5 @@
         lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
 #ifdef debug
-        G4cout<<"G4QPrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
+        G4cout<<"G4QaBPNucCrossSec::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
 #endif
         colN.push_back(tgN);
@@ -185,9 +185,9 @@
         colCS.push_back(lastCS);
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
+        G4cout<<"G4QaBPNCS::GetCrosSec:lCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
 #endif
       //} // M.K. Presence of H1 with high threshold breaks the syncronization
 #ifdef pdebug
-      G4cout<<"G4QPrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+      G4cout<<"G4QaBPNCS::GCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
       return lastCS*millibarn;
@@ -196,5 +196,5 @@
     {
 #ifdef debug
-      G4cout<<"G4QPrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
+      G4cout<<"G4QaBarPNucCrossSect::GetCrosSect: Update lastI="<<lastI<<",j="<<j<<G4endl;
 #endif
       colP[lastI]=pMom;
@@ -205,5 +205,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
+    G4cout<<"G4QaBPNuCS::GetCS:CurrentP="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
 #endif
     return 0.;                         // Momentum is below the Threshold Value -> CS=0
@@ -213,5 +213,5 @@
   {
 #ifdef debug
-    G4cout<<"..G4QPCS::GetCS:OldNZ&P="<<lastP<<"="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
+    G4cout<<"G4QaBPCS::GetCS:OldNZ&P="<<lastP<<"="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
 #endif
     return lastCS*millibarn;           // Use theLastCS
@@ -220,11 +220,11 @@
   {
 #ifdef debug
-    G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
-#endif
-    lastCS=CalculateCrossSection(fCS,1,j,2212,lastZ,lastN,pMom); // Only read and UpdateDB
+    G4cout<<"-!-G4QaBPCS::GeCS:UseCurP="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
+#endif
+    lastCS=CalculateCrossSection(fCS,1,j,PDG,lastZ,lastN,pMom); // Only read and UpdateDB
     lastP=pMom;
   }
 #ifdef debug
-  G4cout<<"==>G4QPrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+  G4cout<<"==>G4QaBPCS::GetCroSec:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
   return lastCS*millibarn;
@@ -248,5 +248,5 @@
   static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c
 #ifdef debug
-  G4cout<<"G4QProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
+  G4cout<<"G4QaBPNuCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
 #endif
   G4double sigma=0.;
@@ -254,5 +254,5 @@
   G4double A=targN+targZ;              // A of the target
 #ifdef debug
-  G4cout<<"G4QProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
+  G4cout<<"G4QaBarPNucCS::CalCS:A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
 #endif
   if(F<=0)                             // This isotope was not the last used isotop
@@ -261,5 +261,5 @@
     {
       G4int sync=LEN->size();
-      if(sync<=I) G4cerr<<"*!*G4QPiMinusNuclCS::CalcCrosSect:Sync="<<sync<<"<="<<I<<G4endl;
+      if(sync<=I) G4cerr<<"*!*G4QaBarPNuclCS::CalcCrosSect: Sync="<<sync<<"<="<<I<<G4endl;
       lastLEN=(*LEN)[I];               // Pointer to prepared LowEnergy cross sections
       lastHEN=(*HEN)[I];               // Pointer to prepared High Energy cross sections
@@ -283,5 +283,5 @@
       }
 #ifdef debug
-      G4cout<<"-*->G4QPr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
+      G4cout<<"-*->G4QaBarPNucCS::CalCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
 #endif
       // --- End of possible separate function
@@ -290,5 +290,5 @@
       if(sync!=I)
       {
-        G4cerr<<"***G4QPiMinusNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ
+        G4cerr<<"***G4QaBarPNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ
               <<", N="<<targN<<", F="<<F<<G4endl;
         //G4Exception("G4PiMinusNuclearCS::CalculateCS:","39",FatalException,"DBoverflow");
@@ -300,5 +300,5 @@
   // ============================== NOW the Magic Formula =================================
 #ifdef debug
-  G4cout<<"G4QPrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
+  G4cout<<"G4QaBPNCS::CalCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
 #endif
   if (Momentum<lastTH) return 0.;      // It must be already checked in the interface class
@@ -306,5 +306,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
+    G4cout<<"G4QaBPNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
 #endif
     if(A<=1.) sigma=0.;
@@ -312,5 +312,5 @@
 #ifdef debugn
     if(sigma<0.)
-      G4cout<<"G4QPrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
+      G4cout<<"G4QaBPNCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
 #endif
   }
@@ -319,5 +319,5 @@
     G4double lP=std::log(Momentum);
 #ifdef debug
-    G4cout<<"G4QProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
+    G4cout<<"G4QaBarPNucCS::CalcCS:before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
 #endif
     sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN);
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QElectronNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QElectronNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QElectronNuclearCrossSection.cc	(revision 1315)
@@ -25,6 +25,6 @@
 //
 //
-// $Id: G4QElectronNuclearCrossSection.cc,v 1.1 2009/11/16 18:15:43 mkossov Exp $
-// GEANT4 tag $Name: geant4-09-03 $
+// $Id: G4QElectronNuclearCrossSection.cc,v 1.2 2010/06/02 09:08:25 mkossov Exp $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -286,5 +286,5 @@
   //G4double mT= G4QPDGCode(111).GetNuclMass(Z,N,0);
   G4double mT= 0.;
-  if(G4NucleiProperties::IsInStableTable(A,Z))
+  if(Z&&G4NucleiProperties::IsInStableTable(A,Z))
                                mT = G4NucleiProperties::GetNuclearMass(A,Z)/MeV;
   else return 0.;       // If it is not in the Table of Stable Nuclei, then the Threshold=0
@@ -292,13 +292,13 @@
   G4double mP= infEn;
   //if(Z) mP= G4QPDGCode(111).GetNuclMass(Z-1,N,0);
-  if(Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))
+  if(A>1&&Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))
          mP = G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV;  // ResNucMass for a proton
   G4double mN= infEn;
   //if(N) mN= G4QPDGCode(111).GetNuclMass(Z,N-1,0);
-  if(N&&G4NucleiProperties::IsInStableTable(A-1,Z))
+  if(A>1&&G4NucleiProperties::IsInStableTable(A-1,Z))
          mN = G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV;    // ResNucMass for a neutron
 
   G4double mA= infEn;
-  if(N>1&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))
+  if(A>4&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))
          mA = G4NucleiProperties::GetNuclearMass(A-4.,Z-2.)/MeV;// ResNucMass for an alpha
 
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QHyperonNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QHyperonNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QHyperonNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -91,6 +91,6 @@
   // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---***
 #ifdef debug
-  G4cout<<"G4QPrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
-        <<"("<<lastN<<"),PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
+  G4cout<<"G4QHyCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
+        <<"("<<lastN<<"), PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
 #endif
   if(PDG!=3122 && PDG!=3212 && PDG!=3112 && PDG!=3322 && PDG!=3312 && PDG!=3334)
@@ -106,5 +106,5 @@
     j  = 0;                            // A#0f records found in DB for this projectile
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
+    G4cout<<"G4QHyCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
 #endif
     if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope
@@ -115,5 +115,5 @@
         lastTH =colTH[i];              // The last THreshold (A-dependent)
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
+        G4cout<<"G4QHyCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
 #endif
         if(pMom<=lastTH)
@@ -130,7 +130,7 @@
         {
 #ifdef debug
-          G4cout<<"..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
-#endif
-          //CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // Update param's only
+          G4cout<<"..G4QHyCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
+#endif
+          //CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // Update param's only
           return lastCS*millibarn;     // Use theLastCS
         }
@@ -138,14 +138,14 @@
         // Momentum pMom is in IU ! @@ Units
 #ifdef debug
-        G4cout<<"G4QPrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
-#endif
-        lastCS=CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // read & update
-#ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
+        G4cout<<"G4QHyCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
+#endif
+        lastCS=CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // read & update
+#ifdef debug
+        G4cout<<"G4QHyCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
 #endif
         if(lastCS<=0. && pMom>lastTH)  // Correct the threshold (@@ No intermediate Zeros)
         {
 #ifdef debug
-          G4cout<<"G4QPrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
+          G4cout<<"G4QHyCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
 #endif
           lastCS=0.;
@@ -155,5 +155,5 @@
       }
 #ifdef debug
-      G4cout<<"-->G4QPrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]
+      G4cout<<"-->G4QHyCrossSec::GetCrosSec: pPDG="<<PDG<<", j="<<j<<", N="<<colN[i]
             <<",Z["<<i<<"]="<<colZ[i]<<G4endl;
 #endif
@@ -161,13 +161,13 @@
     }
 #ifdef debug
-    G4cout<<"-?-G4QPrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
+    G4cout<<"-?-G4QHyCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
 #endif
     if(!in)                            // This isotope has not been calculated previously
     {
 #ifdef debug
-      G4cout<<"^^^G4QPrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
+      G4cout<<"^^^G4QHyCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
 #endif
       //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
-      lastCS=CalculateCrossSection(fCS,0,j,2212,lastZ,lastN,pMom); //calculate & create
+      lastCS=CalculateCrossSection(fCS,0,j,PDG,lastZ,lastN,pMom); //calculate & create
       //if(lastCS>0.)                   // It means that the AMBD was initialized
       //{
@@ -175,5 +175,5 @@
         lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
 #ifdef debug
-        G4cout<<"G4QPrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
+        G4cout<<"G4QHyCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
 #endif
         colN.push_back(tgN);
@@ -183,9 +183,9 @@
         colCS.push_back(lastCS);
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
+        G4cout<<"G4QHyCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
 #endif
 	//} // M.K. Presence of H1 with high threshold breaks the syncronization
 #ifdef pdebug
-      G4cout<<"G4QPrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+      G4cout<<"G4QHyCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
       return lastCS*millibarn;
@@ -194,5 +194,5 @@
     {
 #ifdef debug
-      G4cout<<"G4QPrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
+      G4cout<<"G4QHyCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
 #endif
       colP[lastI]=pMom;
@@ -203,5 +203,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
+    G4cout<<"G4QHyCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
 #endif
     return 0.;                         // Momentum is below the Threshold Value -> CS=0
@@ -211,5 +211,5 @@
   {
 #ifdef debug
-    G4cout<<"..G4QPCS::GetCS:OldNZ&P="<<lastP<<"="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
+    G4cout<<".G4QHyCS::GetCS:OldNZ&P="<<lastP<<"="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
 #endif
     return lastCS*millibarn;           // Use theLastCS
@@ -218,11 +218,11 @@
   {
 #ifdef debug
-    G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
-#endif
-    lastCS=CalculateCrossSection(fCS,1,j,2212,lastZ,lastN,pMom); // Only read and UpdateDB
+    G4cout<<"!-G4QHyCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
+#endif
+    lastCS=CalculateCrossSection(fCS,1,j,PDG,lastZ,lastN,pMom); // Only read and UpdateDB
     lastP=pMom;
   }
 #ifdef debug
-  G4cout<<"==>G4QPrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+  G4cout<<"==>G4QHyCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
   return lastCS*millibarn;
@@ -246,5 +246,5 @@
   static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c
 #ifdef debug
-  G4cout<<"G4QProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
+  G4cout<<"G4QHyNucCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
 #endif
   G4double sigma=0.;
@@ -252,5 +252,5 @@
   G4double A=targN+targZ;              // A of the target
 #ifdef debug
-  G4cout<<"G4QProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
+  G4cout<<"G4QHypNucCS::CalCS: A="<<A<<", F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
 #endif
   if(F<=0)                             // This isotope was not the last used isotop
@@ -281,5 +281,5 @@
       }
 #ifdef debug
-      G4cout<<"-*->G4QPr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
+      G4cout<<"-*->G4QHypNucCS::CalcCS:Tab for Z="<<targZ<<", N="<<targN<<",I="<<I<<G4endl;
 #endif
       // --- End of possible separate function
@@ -288,5 +288,5 @@
       if(sync!=I)
       {
-        G4cerr<<"***G4QPiMinusNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ
+        G4cerr<<"***G4QHyperNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ
               <<", N="<<targN<<", F="<<F<<G4endl;
         //G4Exception("G4PiMinusNuclearCS::CalculateCS:","39",FatalException,"DBoverflow");
@@ -298,5 +298,5 @@
   // ============================== NOW the Magic Formula =================================
 #ifdef debug
-  G4cout<<"G4QPrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
+  G4cout<<"G4QHyNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
 #endif
   if (Momentum<lastTH) return 0.;      // It must be already checked in the interface class
@@ -304,5 +304,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
+    G4cout<<"G4QHyNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
 #endif
     if(A<=1.) sigma=0.;
@@ -310,5 +310,5 @@
 #ifdef debugn
     if(sigma<0.)
-      G4cout<<"G4QPrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
+      G4cout<<"G4QHyNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
 #endif
   }
@@ -317,5 +317,5 @@
     G4double lP=std::log(Momentum);
 #ifdef debug
-    G4cout<<"G4QProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
+    G4cout<<"G4QHyNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
 #endif
     sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN);
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QHyperonPlusNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QHyperonPlusNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QHyperonPlusNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -91,6 +91,6 @@
   // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---***
 #ifdef debug
-  G4cout<<"G4QPrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
-        <<"("<<lastN<<"),PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
+  G4cout<<"G4QHyPNCS::GetCS:>>>f="<<fCS<<",p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
+        <<"("<<lastN<<"), PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
 #endif
   if(PDG!=3222) G4cout<<"-Warning-G4QPiMinusCS::GetCS:**Not a PiMinus**,PDG="<<PDG<<G4endl;
@@ -105,5 +105,5 @@
     j  = 0;                            // A#0f records found in DB for this projectile
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
+    G4cout<<"G4QHyPNuclCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
 #endif
     if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope
@@ -114,5 +114,5 @@
         lastTH =colTH[i];              // The last THreshold (A-dependent)
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
+        G4cout<<"G4QHyPCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
 #endif
         if(pMom<=lastTH)
@@ -129,7 +129,7 @@
         {
 #ifdef debug
-          G4cout<<"..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
-#endif
-          //CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // Update param's only
+          G4cout<<"G4QHyPNCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
+#endif
+          //CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // Update param's only
           return lastCS*millibarn;     // Use theLastCS
         }
@@ -137,14 +137,14 @@
         // Momentum pMom is in IU ! @@ Units
 #ifdef debug
-        G4cout<<"G4QPrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
-#endif
-        lastCS=CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // read & update
-#ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
+        G4cout<<"G4QHyPNCS::G:UpdDB,P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
+#endif
+        lastCS=CalculateCrossSection(fCS,-1,j,PDG,lastZ,lastN,pMom); // read & update
+#ifdef debug
+        G4cout<<"G4QHyPNuCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
 #endif
         if(lastCS<=0. && pMom>lastTH)  // Correct the threshold (@@ No intermediate Zeros)
         {
 #ifdef debug
-          G4cout<<"G4QPrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
+          G4cout<<"G4QHyPNuCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
 #endif
           lastCS=0.;
@@ -154,5 +154,5 @@
       }
 #ifdef debug
-      G4cout<<"-->G4QPrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]
+      G4cout<<"-->G4QHyPNucCrossSec::GetCrosSec: pPDG="<<PDG<<", j="<<j<<", N="<<colN[i]
             <<",Z["<<i<<"]="<<colZ[i]<<G4endl;
 #endif
@@ -160,13 +160,13 @@
     }
 #ifdef debug
-    G4cout<<"-?-G4QPrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
+    G4cout<<"-?-G4QHyPNCS::GetCS:R,Z="<<tgZ<<",N="<<tgN<<",i="<<in<<",j="<<j<<" ?"<<G4endl;
 #endif
     if(!in)                            // This isotope has not been calculated previously
     {
 #ifdef debug
-      G4cout<<"^^^G4QPrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
+      G4cout<<"^G4QHyPNCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
 #endif
       //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
-      lastCS=CalculateCrossSection(fCS,0,j,2212,lastZ,lastN,pMom); //calculate & create
+      lastCS=CalculateCrossSection(fCS,0,j,PDG,lastZ,lastN,pMom); //calculate & create
       //if(lastCS>0.)                   // It means that the AMBD was initialized
       //{
@@ -174,5 +174,5 @@
         lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
 #ifdef debug
-        G4cout<<"G4QPrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
+        G4cout<<"G4QHypNucCrossSect::GetCrossSect:NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
 #endif
         colN.push_back(tgN);
@@ -182,9 +182,9 @@
         colCS.push_back(lastCS);
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
+        G4cout<<"G4QHyPNCS::GetCrosSec:lCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
 #endif
 	//} // M.K. Presence of H1 with high threshold breaks the syncronization
 #ifdef pdebug
-      G4cout<<"G4QPrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+      G4cout<<"G4QHyPCS::GeCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
       return lastCS*millibarn;
@@ -193,5 +193,5 @@
     {
 #ifdef debug
-      G4cout<<"G4QPrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
+      G4cout<<"G4QHyPNucCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
 #endif
       colP[lastI]=pMom;
@@ -202,5 +202,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
+    G4cout<<"G4QHyPNCS::GetCS: CurrentP="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
 #endif
     return 0.;                         // Momentum is below the Threshold Value -> CS=0
@@ -219,9 +219,9 @@
     G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
 #endif
-    lastCS=CalculateCrossSection(fCS,1,j,2212,lastZ,lastN,pMom); // Only read and UpdateDB
+    lastCS=CalculateCrossSection(fCS,1,j,PDG,lastZ,lastN,pMom); // Only read and UpdateDB
     lastP=pMom;
   }
 #ifdef debug
-  G4cout<<"==>G4QPrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+  G4cout<<"==>G4QHyPNCS::GetCrosS:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
   return lastCS*millibarn;
@@ -245,5 +245,5 @@
   static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c
 #ifdef debug
-  G4cout<<"G4QProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
+  G4cout<<"G4QHyPNuCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
 #endif
   G4double sigma=0.;
@@ -251,5 +251,5 @@
   G4double A=targN+targZ;              // A of the target
 #ifdef debug
-  G4cout<<"G4QProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
+  G4cout<<"G4QHyPNucCS::CalCS: A="<<A<<", F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
 #endif
   if(F<=0)                             // This isotope was not the last used isotop
@@ -280,5 +280,5 @@
       }
 #ifdef debug
-      G4cout<<"-*->G4QPr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
+      G4cout<<"-*->G4QHyPNucCS::CalcCS: Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
 #endif
       // --- End of possible separate function
@@ -287,5 +287,5 @@
       if(sync!=I)
       {
-        G4cerr<<"***G4QPiMinusNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ
+        G4cerr<<"***G4QHyPNuclCS::CalcCrossSect: Sinc="<<sync<<"#"<<I<<", Z=" <<targZ
               <<", N="<<targN<<", F="<<F<<G4endl;
         //G4Exception("G4PiMinusNuclearCS::CalculateCS:","39",FatalException,"DBoverflow");
@@ -297,5 +297,5 @@
   // ============================== NOW the Magic Formula =================================
 #ifdef debug
-  G4cout<<"G4QPrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
+  G4cout<<"G4QHyPNCS::CalcCS:lTH="<<lastTH<<",Pi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
 #endif
   if (Momentum<lastTH) return 0.;      // It must be already checked in the interface class
@@ -303,5 +303,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
+    G4cout<<"G4QHyPNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
 #endif
     if(A<=1.) sigma=0.;
@@ -309,5 +309,5 @@
 #ifdef debugn
     if(sigma<0.)
-      G4cout<<"G4QPrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
+      G4cout<<"G4QHyPNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",d="<<dP<<G4endl;
 #endif
   }
@@ -316,5 +316,5 @@
     G4double lP=std::log(Momentum);
 #ifdef debug
-    G4cout<<"G4QProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
+    G4cout<<"G4QHyPNucCS::CalcCS: before HEN nH="<<nH<<", iE="<<milP<<",dlP="<<dlP<<G4endl;
 #endif
     sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN);
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QIonIonCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QIonIonCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QIonIonCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 19-Aug-07
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -420,5 +420,6 @@
                                                                 G4int tN, G4double Mom)
 {
-  static G4VQCrossSection* ElCSman = G4QElasticCrossSection::GetPointer();
+  static G4VQCrossSection* PElCSman = G4QProtonElasticCrossSection::GetPointer();
+  static G4VQCrossSection* NElCSman = G4QNeutronElasticCrossSection::GetPointer();
   static G4VQCrossSection* InelPCSman = G4QProtonNuclearCrossSection::GetPointer();
   static G4VQCrossSection* InelNCSman = G4QNeutronNuclearCrossSection::GetPointer();
@@ -433,10 +434,10 @@
     {
       inCS=InelPCSman->GetCrossSection(true, Mom, tZ, tN, 2212);
-      elCS=ElCSman->GetCrossSection(true, Mom, tZ, tN, 2212);
+      elCS=PElCSman->GetCrossSection(true, Mom, tZ, tN, 2212);
     }
     else if(pN == 1 && !pZ) // neutron-nuclear
     {
       inCS=InelNCSman->GetCrossSection(true, Mom, tZ, tN, 2112);
-      elCS=ElCSman->GetCrossSection(true, Mom, tZ, tN, 2112);
+      elCS=NElCSman->GetCrossSection(true, Mom, tZ, tN, 2112);
     }
     else G4cerr<<"-Warn-G4QIICS::CaCS:pZ="<<pZ<<",pN="<<pN<<",tZ="<<tZ<<",tN="<<tN<<G4endl;
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonMinusNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonMinusNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonMinusNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -91,5 +91,5 @@
   // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---***
 #ifdef debug
-  G4cout<<"G4QPrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
+  G4cout<<"G4QKmCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
         <<"("<<lastN<<"),PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
 #endif
@@ -105,5 +105,5 @@
     j  = 0;                            // A#0f records found in DB for this projectile
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
+    G4cout<<"G4QKmCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
 #endif
     if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope
@@ -114,5 +114,5 @@
         lastTH =colTH[i];              // The last THreshold (A-dependent)
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
+        G4cout<<"G4QKmCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
 #endif
         if(pMom<=lastTH)
@@ -129,7 +129,7 @@
         {
 #ifdef debug
-          G4cout<<"..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
-#endif
-          //CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // Update param's only
+          G4cout<<"..G4QKmCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
+#endif
+          //CalculateCrossSection(fCS,-1,j,-321,lastZ,lastN,pMom); // Update param's only
           return lastCS*millibarn;     // Use theLastCS
         }
@@ -137,14 +137,14 @@
         // Momentum pMom is in IU ! @@ Units
 #ifdef debug
-        G4cout<<"G4QPrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
-#endif
-        lastCS=CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // read & update
-#ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
+        G4cout<<"G4QKmCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
+#endif
+        lastCS=CalculateCrossSection(fCS,-1,j,-321,lastZ,lastN,pMom); // read & update
+#ifdef debug
+        G4cout<<"G4QKmCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
 #endif
         if(lastCS<=0. && pMom>lastTH)  // Correct the threshold (@@ No intermediate Zeros)
         {
 #ifdef debug
-          G4cout<<"G4QPrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
+          G4cout<<"G4QKmCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
 #endif
           lastCS=0.;
@@ -154,5 +154,5 @@
       }
 #ifdef debug
-      G4cout<<"-->G4QPrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]
+      G4cout<<"-->G4QKmCrossSec::GetCrosSec: pPDG=-321, j="<<j<<", N="<<colN[i]
             <<",Z["<<i<<"]="<<colZ[i]<<G4endl;
 #endif
@@ -160,13 +160,13 @@
     }
 #ifdef debug
-    G4cout<<"-?-G4QPrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
+    G4cout<<"-?-G4QKmCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
 #endif
     if(!in)                            // This isotope has not been calculated previously
     {
 #ifdef debug
-      G4cout<<"^^^G4QPrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
+      G4cout<<"^^^G4QKmCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
 #endif
       //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
-      lastCS=CalculateCrossSection(fCS,0,j,2212,lastZ,lastN,pMom); //calculate & create
+      lastCS=CalculateCrossSection(fCS,0,j,-321,lastZ,lastN,pMom); //calculate & create
       //if(lastCS>0.)                   // It means that the AMBD was initialized
       //{
@@ -174,5 +174,5 @@
         lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
 #ifdef debug
-        G4cout<<"G4QPrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
+        G4cout<<"G4QKmCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
 #endif
         colN.push_back(tgN);
@@ -182,9 +182,9 @@
         colCS.push_back(lastCS);
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
+        G4cout<<"G4QKmCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
 #endif
       //} // M.K. Presence of H1 with high threshold breaks the syncronization
 #ifdef pdebug
-      G4cout<<"G4QPrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+      G4cout<<"G4QKmCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
       return lastCS*millibarn;
@@ -193,5 +193,5 @@
     {
 #ifdef debug
-      G4cout<<"G4QPrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
+      G4cout<<"G4QKmCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
 #endif
       colP[lastI]=pMom;
@@ -202,5 +202,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
+    G4cout<<"G4QKmCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
 #endif
     return 0.;                         // Momentum is below the Threshold Value -> CS=0
@@ -219,9 +219,9 @@
     G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
 #endif
-    lastCS=CalculateCrossSection(fCS,1,j,2212,lastZ,lastN,pMom); // Only read and UpdateDB
+    lastCS=CalculateCrossSection(fCS,1,j,-321,lastZ,lastN,pMom); // Only read and UpdateDB
     lastP=pMom;
   }
 #ifdef debug
-  G4cout<<"==>G4QPrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+  G4cout<<"==>G4QKmCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
   return lastCS*millibarn;
@@ -245,5 +245,5 @@
   static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c
 #ifdef debug
-  G4cout<<"G4QProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
+  G4cout<<"G4QKmNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
 #endif
   G4double sigma=0.;
@@ -251,5 +251,5 @@
   G4double A=targN+targZ;              // A of the target
 #ifdef debug
-  G4cout<<"G4QProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
+  G4cout<<"G4QKmNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
 #endif
   if(F<=0)                             // This isotope was not the last used isotop
@@ -280,5 +280,5 @@
       }
 #ifdef debug
-      G4cout<<"-*->G4QPr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
+      G4cout<<"-*->G4QKmNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
 #endif
       // --- End of possible separate function
@@ -297,5 +297,5 @@
   // ============================== NOW the Magic Formula =================================
 #ifdef debug
-  G4cout<<"G4QPrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
+  G4cout<<"G4QKmNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
 #endif
   if (Momentum<lastTH) return 0.;      // It must be already checked in the interface class
@@ -303,5 +303,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
+    G4cout<<"G4QKmNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
 #endif
     if(A<=1.) sigma=0.;
@@ -309,5 +309,5 @@
 #ifdef debugn
     if(sigma<0.)
-      G4cout<<"G4QPrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
+      G4cout<<"G4QKmNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
 #endif
   }
@@ -316,5 +316,5 @@
     G4double lP=std::log(Momentum);
 #ifdef debug
-    G4cout<<"G4QProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
+    G4cout<<"G4QKmNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
 #endif
     sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN);
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonPlusNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonPlusNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonPlusNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -91,5 +91,5 @@
   // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---***
 #ifdef debug
-  G4cout<<"G4QPrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
+  G4cout<<"G4QKpCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
         <<"("<<lastN<<"),PDG="<<PDG<<", thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
 #endif
@@ -105,5 +105,5 @@
     j  = 0;                            // A#0f records found in DB for this projectile
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
+    G4cout<<"G4QKpCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
 #endif
     if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope
@@ -114,5 +114,5 @@
         lastTH =colTH[i];              // The last THreshold (A-dependent)
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
+        G4cout<<"G4QKpCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
 #endif
         if(pMom<=lastTH)
@@ -129,7 +129,7 @@
         {
 #ifdef debug
-          G4cout<<"..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
-#endif
-          //CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // Update param's only
+          G4cout<<"..G4QKpCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
+#endif
+          //CalculateCrossSection(fCS,-1,j,321,lastZ,lastN,pMom); // Update param's only
           return lastCS*millibarn;     // Use theLastCS
         }
@@ -137,14 +137,14 @@
         // Momentum pMom is in IU ! @@ Units
 #ifdef debug
-        G4cout<<"G4QPrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
-#endif
-        lastCS=CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // read & update
-#ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
+        G4cout<<"G4QKpCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
+#endif
+        lastCS=CalculateCrossSection(fCS,-1,j,321,lastZ,lastN,pMom); // read & update
+#ifdef debug
+        G4cout<<"G4QKpCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
 #endif
         if(lastCS<=0. && pMom>lastTH)  // Correct the threshold (@@ No intermediate Zeros)
         {
 #ifdef debug
-          G4cout<<"G4QPrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
+          G4cout<<"G4QKpCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
 #endif
           lastCS=0.;
@@ -154,5 +154,5 @@
       }
 #ifdef debug
-      G4cout<<"-->G4QPrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]
+      G4cout<<"-->G4QKpCrossSec::GetCrosSec: pPDG=321, j="<<j<<", N="<<colN[i]
             <<",Z["<<i<<"]="<<colZ[i]<<G4endl;
 #endif
@@ -160,13 +160,13 @@
     }
 #ifdef debug
-    G4cout<<"-?-G4QPrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
+    G4cout<<"-?-G4QKpCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
 #endif
     if(!in)                            // This isotope has not been calculated previously
     {
 #ifdef debug
-      G4cout<<"^^^G4QPrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
+      G4cout<<"^^^G4QKpCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
 #endif
       //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
-      lastCS=CalculateCrossSection(fCS,0,j,2212,lastZ,lastN,pMom); //calculate & create
+      lastCS=CalculateCrossSection(fCS,0,j,321,lastZ,lastN,pMom); //calculate & create
       //if(lastCS>0.)                   // It means that the AMBD was initialized
       //{
@@ -174,5 +174,5 @@
         lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
 #ifdef debug
-        G4cout<<"G4QPrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
+        G4cout<<"G4QKpCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
 #endif
         colN.push_back(tgN);
@@ -182,9 +182,9 @@
         colCS.push_back(lastCS);
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
+        G4cout<<"G4QKpCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
 #endif
       //} // M.K. Presence of H1 with high threshold breaks the syncronization
 #ifdef pdebug
-      G4cout<<"G4QPrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+      G4cout<<"G4QKpCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
       return lastCS*millibarn;
@@ -193,5 +193,5 @@
     {
 #ifdef debug
-      G4cout<<"G4QPrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
+      G4cout<<"G4QKpCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
 #endif
       colP[lastI]=pMom;
@@ -202,5 +202,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
+    G4cout<<"G4QKpCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
 #endif
     return 0.;                         // Momentum is below the Threshold Value -> CS=0
@@ -219,9 +219,9 @@
     G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
 #endif
-    lastCS=CalculateCrossSection(fCS,1,j,2212,lastZ,lastN,pMom); // Only read and UpdateDB
+    lastCS=CalculateCrossSection(fCS,1,j,321,lastZ,lastN,pMom); // Only read and UpdateDB
     lastP=pMom;
   }
 #ifdef debug
-  G4cout<<"==>G4QPrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+  G4cout<<"==>G4QKpCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
   return lastCS*millibarn;
@@ -245,5 +245,5 @@
   static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c
 #ifdef debug
-  G4cout<<"G4QProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
+  G4cout<<"G4QKpNucCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
 #endif
   G4double sigma=0.;
@@ -251,5 +251,5 @@
   G4double A=targN+targZ;              // A of the target
 #ifdef debug
-  G4cout<<"G4QProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
+  G4cout<<"G4QKpNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
 #endif
   if(F<=0)                             // This isotope was not the last used isotop
@@ -280,5 +280,5 @@
       }
 #ifdef debug
-      G4cout<<"-*->G4QPr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
+      G4cout<<"-*->G4QKpNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
 #endif
       // --- End of possible separate function
@@ -297,5 +297,5 @@
   // ============================== NOW the Magic Formula =================================
 #ifdef debug
-  G4cout<<"G4QPrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
+  G4cout<<"G4QKpNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
 #endif
   if (Momentum<lastTH) return 0.;      // It must be already checked in the interface class
@@ -303,5 +303,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
+    G4cout<<"G4QKpNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
 #endif
     if(A<=1.) sigma=0.;
@@ -309,5 +309,5 @@
 #ifdef debugn
     if(sigma<0.)
-      G4cout<<"G4QPrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
+      G4cout<<"G4QKpNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
 #endif
   }
@@ -316,5 +316,5 @@
     G4double lP=std::log(Momentum);
 #ifdef debug
-    G4cout<<"G4QProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
+    G4cout<<"G4QKpNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
 #endif
     sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN);
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonZeroNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonZeroNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QKaonZeroNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -76,5 +76,5 @@
 #ifdef debug
   G4cout<<"G4QKZCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
-        <<"("<<lastN<<"),PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
+        <<"("<<lastN<<"), PDG=130/310, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
 #endif
   if(PDG!=130 && PDG!=310 && PDG!=311 && PDG!=-311)
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QMuonNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QMuonNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QMuonNuclearCrossSection.cc	(revision 1315)
@@ -25,6 +25,6 @@
 //
 //
-// $Id: G4QMuonNuclearCrossSection.cc,v 1.1 2009/11/16 18:15:43 mkossov Exp $
-// GEANT4 tag $Name: geant4-09-03 $
+// $Id: G4QMuonNuclearCrossSection.cc,v 1.2 2010/06/02 09:08:25 mkossov Exp $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -291,18 +291,18 @@
   //G4double mT= G4QPDGCode(111).GetNuclMass(Z,N,0);
   G4double mT= 0.;
-  if(G4NucleiProperties::IsInStableTable(A,Z))
+  if(Z&&G4NucleiProperties::IsInStableTable(A,Z))
                             mT = G4NucleiProperties::GetNuclearMass(A,Z)/MeV;
   else return 0.;       // If it is not in the Table of Stable Nuclei, then the Threshold=0
   // --------- Splitting thresholds
   G4double mP= infEn;
-  if(Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))
+  if(A>1&&Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))
           mP = G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV;// ResNucMass for a proton
 
   G4double mN= infEn;
-  if(N&&G4NucleiProperties::IsInStableTable(A-1,Z))
+  if(A>1&&G4NucleiProperties::IsInStableTable(A-1,Z))
           mN = G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV;  // ResNucMass for a neutron
 
   G4double mA= infEn;
-  if(N>1&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))
+  if(A>4&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))
           mA=G4NucleiProperties::GetNuclearMass(A-4,Z-2)/MeV;  // ResNucMass for an alpha
 
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QNeutronCaptureRatio.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QNeutronCaptureRatio.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QNeutronCaptureRatio.cc	(revision 1315)
@@ -25,6 +25,6 @@
 //
 //
-// $Id: G4QNeutronCaptureRatio.cc,v 1.2 2009/12/07 10:32:06 mkossov Exp $
-// GEANT4 tag $Name: geant4-09-03 $
+// $Id: G4QNeutronCaptureRatio.cc,v 1.4 2010/04/19 12:40:56 mkossov Exp $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -94,5 +94,5 @@
   if(A>247)
   {
-    G4cout<<"-*-Warning-*-G4QuasiFreeRatio::GetRatio: A="<<A<<">247, return zero"<<G4endl;
+    G4cout<<"-*-Warning-*-G4NeutronCaptureRatio::GetRatio:A="<<A<<">247, return 0"<<G4endl;
     return 0.;
   }
@@ -663,7 +663,7 @@
   static const G4int N47=2;
   static const G4double pZ47N60[5]={.018, 5., .1, .004, .003};
-  static const std::pair<G4int, const G4double*> Z47N60=std::make_pair(48,pZ47N60);
+  static const std::pair<G4int, const G4double*> Z47N60=std::make_pair(60,pZ47N60);
   static const G4double pZ47N62[5]={.018, 4., .015, .06, .0008};
-  static const std::pair<G4int, const G4double*> Z47N62=std::make_pair(50,pZ47N62);
+  static const std::pair<G4int, const G4double*> Z47N62=std::make_pair(62,pZ47N62);
   static const std::pair<G4int, const G4double*> Z47[N47]={Z47N60, Z47N62};
   //==> Cd(Z=48)
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QNeutronNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QNeutronNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QNeutronNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-May-09
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -770,7 +770,7 @@
   static const G4int N47=2;
   static const G4double pZ47N60[4]={3.E-12, 500., .01, 2.7E-5};
-  static const std::pair<G4int, const G4double*> Z47N60=std::make_pair(48,pZ47N60);
+  static const std::pair<G4int, const G4double*> Z47N60=std::make_pair(60,pZ47N60);
   static const G4double pZ47N62[4]={3.E-12, 480., .01, 2.5E-4};
-  static const std::pair<G4int, const G4double*> Z47N62=std::make_pair(50,pZ47N62);
+  static const std::pair<G4int, const G4double*> Z47N62=std::make_pair(62,pZ47N62);
   static const std::pair<G4int, const G4double*> Z47[N47]={Z47N60, Z47N62};
   //==> Cd(Z=48)
@@ -889,17 +889,17 @@
   static const G4int N56=7;
   static const G4double pZ56N74[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
-  static const std::pair<G4int, const G4double*> Z56N74=std::make_pair(70,pZ56N74);
+  static const std::pair<G4int, const G4double*> Z56N74=std::make_pair(74,pZ56N74);
   static const G4double pZ56N76[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
-  static const std::pair<G4int, const G4double*> Z56N76=std::make_pair(71,pZ56N76);
+  static const std::pair<G4int, const G4double*> Z56N76=std::make_pair(76,pZ56N76);
   static const G4double pZ56N78[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
-  static const std::pair<G4int, const G4double*> Z56N78=std::make_pair(72,pZ56N78);
+  static const std::pair<G4int, const G4double*> Z56N78=std::make_pair(78,pZ56N78);
   static const G4double pZ56N79[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
-  static const std::pair<G4int, const G4double*> Z56N79=std::make_pair(73,pZ56N79);
+  static const std::pair<G4int, const G4double*> Z56N79=std::make_pair(79,pZ56N79);
   static const G4double pZ56N80[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
-  static const std::pair<G4int, const G4double*> Z56N80=std::make_pair(74,pZ56N80);
+  static const std::pair<G4int, const G4double*> Z56N80=std::make_pair(80,pZ56N80);
   static const G4double pZ56N81[4]={3.E-12, 500., .01, 2.5E-5}; // *** NotImplemented ***
-  static const std::pair<G4int, const G4double*> Z56N81=std::make_pair(76,pZ56N81);
+  static const std::pair<G4int, const G4double*> Z56N81=std::make_pair(81,pZ56N81);
   static const G4double pZ56N82[4]={3.E-12, 500., .01, 2.5E-4}; // *** NotImplemented ***
-  static const std::pair<G4int, const G4double*> Z56N82=std::make_pair(78,pZ56N82);
+  static const std::pair<G4int, const G4double*> Z56N82=std::make_pair(82,pZ56N82);
   static const std::pair<G4int, const G4double*> Z56[N56]={Z56N74, Z56N76, Z56N78, Z56N79,
                                                            Z56N80, Z56N81, Z56N82};
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPhotonNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPhotonNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPhotonNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -276,16 +276,17 @@
   //G4double mT= G4QPDGCode(111).GetNuclMass(Z,N,0);
   G4double mT= 0.;
-  if(G4NucleiProperties::IsInStableTable(A,Z))
+  if(Z&&G4NucleiProperties::IsInStableTable(A,Z))
                            mT = G4NucleiProperties::GetNuclearMass(A,Z)/MeV;
+  else return 0.;       // If it is not in the Table of Stable Nuclei, then the Threshold=0
   G4double mP= infEn;
-  if(Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))
+  if(A>1&&Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))
           mP = G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV;// ResNucMass for a proton
 
   G4double mN= infEn;
-  if(N&&G4NucleiProperties::IsInStableTable(A-1,Z))
+  if(A>1&&G4NucleiProperties::IsInStableTable(A-1,Z))
           mN = G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV;  // ResNucMass for a neutron
 
   G4double mA= infEn;
-  if(N>1&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))
+  if(A>4&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))
           mA=G4NucleiProperties::GetNuclearMass(A-4,Z-2)/MeV;  // ResNucMass for an alpha
 
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPionMinusNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPionMinusNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPionMinusNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -91,6 +91,6 @@
   // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---***
 #ifdef debug
-  G4cout<<"G4QPrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
-        <<"("<<lastN<<"),PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
+  G4cout<<"G4QPimNCS::GetCS:>>>f="<<fCS<<",p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
+        <<"("<<lastN<<"), PDG=-211, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
 #endif
   if(PDG!=-211) G4cout<<"-Warning-G4QPiMinusCS::GetCS:**Not a PiMinus**,PDG="<<PDG<<G4endl;
@@ -105,5 +105,5 @@
     j  = 0;                            // A#0f records found in DB for this projectile
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
+    G4cout<<"G4QPimNucCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
 #endif
     if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope
@@ -114,5 +114,5 @@
         lastTH =colTH[i];              // The last THreshold (A-dependent)
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
+        G4cout<<"G4QPimCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
 #endif
         if(pMom<=lastTH)
@@ -129,7 +129,7 @@
         {
 #ifdef debug
-          G4cout<<"..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
-#endif
-          //CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // Update param's only
+          G4cout<<"G4QPimNCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
+#endif
+          //CalculateCrossSection(fCS,-1,j,-211,lastZ,lastN,pMom); // Update param's only
           return lastCS*millibarn;     // Use theLastCS
         }
@@ -137,14 +137,14 @@
         // Momentum pMom is in IU ! @@ Units
 #ifdef debug
-        G4cout<<"G4QPrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
-#endif
-        lastCS=CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // read & update
-#ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
+        G4cout<<"G4QPimNCS::G:UpdDB,P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
+#endif
+        lastCS=CalculateCrossSection(fCS,-1,j,-211,lastZ,lastN,pMom); // read & update
+#ifdef debug
+        G4cout<<"G4QPimNucCS::GetCrosSec:*****> New (inDB) Calculated CS="<<lastCS<<G4endl;
 #endif
         if(lastCS<=0. && pMom>lastTH)  // Correct the threshold (@@ No intermediate Zeros)
         {
 #ifdef debug
-          G4cout<<"G4QPrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
+          G4cout<<"G4QPimNucCS::GetCS:New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
 #endif
           lastCS=0.;
@@ -154,5 +154,5 @@
       }
 #ifdef debug
-      G4cout<<"-->G4QPrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]
+      G4cout<<"-->G4QPimNucCrossSec::GetCrosSec: pPDG=-211, j="<<j<<", N="<<colN[i]
             <<",Z["<<i<<"]="<<colZ[i]<<G4endl;
 #endif
@@ -160,13 +160,13 @@
     }
 #ifdef debug
-    G4cout<<"-?-G4QPrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
+    G4cout<<"-?-G4QPimCS::GetCS:R,Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
 #endif
     if(!in)                            // This isotope has not been calculated previously
     {
 #ifdef debug
-      G4cout<<"^^^G4QPrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
+      G4cout<<"^^^G4QPimCS::GetCS:CalcNewP="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
 #endif
       //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
-      lastCS=CalculateCrossSection(fCS,0,j,2212,lastZ,lastN,pMom); //calculate & create
+      lastCS=CalculateCrossSection(fCS,0,j,-211,lastZ,lastN,pMom); //calculate & create
       //if(lastCS>0.)                   // It means that the AMBD was initialized
       //{
@@ -174,5 +174,5 @@
         lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
 #ifdef debug
-        G4cout<<"G4QPrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
+        G4cout<<"G4QPimNucCrossSec::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
 #endif
         colN.push_back(tgN);
@@ -182,9 +182,9 @@
         colCS.push_back(lastCS);
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
+        G4cout<<"G4QPimCS::GetCrosSec:reCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
 #endif
       //} // M.K. Presence of H1 with high threshold breaks the syncronization
 #ifdef pdebug
-      G4cout<<"G4QPrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+      G4cout<<"G4QPimCS::GeCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
       return lastCS*millibarn;
@@ -193,5 +193,5 @@
     {
 #ifdef debug
-      G4cout<<"G4QPrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
+      G4cout<<"G4QPimNucCrossSect::GetCS: Update lastI="<<lastI<<", j="<<j<<G4endl;
 #endif
       colP[lastI]=pMom;
@@ -202,5 +202,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
+    G4cout<<"G4QPimCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
 #endif
     return 0.;                         // Momentum is below the Threshold Value -> CS=0
@@ -219,9 +219,9 @@
     G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
 #endif
-    lastCS=CalculateCrossSection(fCS,1,j,2212,lastZ,lastN,pMom); // Only read and UpdateDB
+    lastCS=CalculateCrossSection(fCS,1,j,-211,lastZ,lastN,pMom); // Only read and UpdateDB
     lastP=pMom;
   }
 #ifdef debug
-  G4cout<<"==>G4QPrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+  G4cout<<"==>G4QPimCS::GetCroSec:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
   return lastCS*millibarn;
@@ -245,5 +245,5 @@
   static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c
 #ifdef debug
-  G4cout<<"G4QProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
+  G4cout<<"G4QPimNCS::CalcCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
 #endif
   G4double sigma=0.;
@@ -251,5 +251,5 @@
   G4double A=targN+targZ;              // A of the target
 #ifdef debug
-  G4cout<<"G4QProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
+  G4cout<<"G4QPimNucCS::CalcCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
 #endif
   if(F<=0)                             // This isotope was not the last used isotop
@@ -280,5 +280,5 @@
       }
 #ifdef debug
-      G4cout<<"-*->G4QPr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
+      G4cout<<"-*->G4QPimNucCS::CalcCS: Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
 #endif
       // --- End of possible separate function
@@ -297,5 +297,5 @@
   // ============================== NOW the Magic Formula =================================
 #ifdef debug
-  G4cout<<"G4QPrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
+  G4cout<<"G4QPimNCS::CalcCS:lTH="<<lastTH<<",Pi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
 #endif
   if (Momentum<lastTH) return 0.;      // It must be already checked in the interface class
@@ -303,5 +303,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
+    G4cout<<"G4QPimNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
 #endif
     if(A<=1.) sigma=0.;
@@ -309,5 +309,5 @@
 #ifdef debugn
     if(sigma<0.)
-      G4cout<<"G4QPrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
+      G4cout<<"G4QPimNCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
 #endif
   }
@@ -316,5 +316,5 @@
     G4double lP=std::log(Momentum);
 #ifdef debug
-    G4cout<<"G4QProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
+    G4cout<<"G4QPimNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
 #endif
     sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN);
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPionPlusNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPionPlusNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QPionPlusNuclearCrossSection.cc	(revision 1315)
@@ -26,5 +26,5 @@
 //
 // The lust update: M.V. Kossov, CERN/ITEP(Moscow) 17-June-02
-// GEANT4 tag $Name: geant4-09-03 $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -91,6 +91,6 @@
   // ***---*** End of the mandatory Static Definitions of the Associative Memory ***---***
 #ifdef debug
-  G4cout<<"G4QPrCS::GetCS:>>> f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
-        <<"("<<lastN<<"),PDG=2212, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
+  G4cout<<"G4QPipCS::GetCS:>>>f="<<fCS<<", p="<<pMom<<", Z="<<tgZ<<"("<<lastZ<<") ,N="<<tgN
+        <<"("<<lastN<<"),PDG=211, thresh="<<lastTH<<",Sz="<<colN.size()<<G4endl;
 #endif
   if(PDG!=211) G4cout<<"-Warning-G4QPionPlusCS::GetCS:**Not a PiPlus**,PDG="<<PDG<<G4endl;
@@ -105,5 +105,5 @@
     j  = 0;                            // A#0f records found in DB for this projectile
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
+    G4cout<<"G4QPipCS::GetCS: the amount of records in the AMDB lastI="<<lastI<<G4endl;
 #endif
     if(lastI) for(G4int i=0; i<lastI; i++) // AMDB exists, try to find the (Z,N) isotope
@@ -114,10 +114,10 @@
         lastTH =colTH[i];              // The last THreshold (A-dependent)
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCS:*Found* P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
+        G4cout<<"G4QPipCS::GetCS:*Found*P="<<pMom<<",Threshold="<<lastTH<<",j="<<j<<G4endl;
 #endif
         if(pMom<=lastTH)
         {
 #ifdef debug
-          G4cout<<"G4QPCS::GetCS:Found,P="<<pMom<<" < Threshold="<<lastTH<<",CS=0"<<G4endl;
+          G4cout<<"G4QPipCS::GCS:Found,P="<<pMom<<" < Threshold="<<lastTH<<",CS=0"<<G4endl;
 #endif
           return 0.;                   // Energy is below the Threshold value
@@ -129,7 +129,7 @@
         {
 #ifdef debug
-          G4cout<<"..G4QPrCS::GetCS:.DoNothing.P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
-#endif
-          //CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // Update param's only
+          G4cout<<"..G4QPipCS::GetCS:DoNothing,P="<<pMom<<",CS="<<lastCS*millibarn<<G4endl;
+#endif
+          //CalculateCrossSection(fCS,-1,j,211,lastZ,lastN,pMom); // Update param's only
           return lastCS*millibarn;     // Use theLastCS
         }
@@ -137,14 +137,14 @@
         // Momentum pMom is in IU ! @@ Units
 #ifdef debug
-        G4cout<<"G4QPrCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",lI="<<lastI<<",j="<<j<<G4endl;
-#endif
-        lastCS=CalculateCrossSection(fCS,-1,j,2212,lastZ,lastN,pMom); // read & update
-#ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
+        G4cout<<"G4QPipCS::G:UpdatDB P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
+#endif
+        lastCS=CalculateCrossSection(fCS,-1,j,211,lastZ,lastN,pMom); // read & update
+#ifdef debug
+        G4cout<<"G4QPipNCS::GetCrosSec: *****> New (inDB) Calculated CS="<<lastCS<<G4endl;
 #endif
         if(lastCS<=0. && pMom>lastTH)  // Correct the threshold (@@ No intermediate Zeros)
         {
 #ifdef debug
-          G4cout<<"G4QPrCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
+          G4cout<<"G4QPipNCS::GetCS: New P="<<pMom<<"(CS=0) > Threshold="<<lastTH<<G4endl;
 #endif
           lastCS=0.;
@@ -154,5 +154,5 @@
       }
 #ifdef debug
-      G4cout<<"-->G4QPrCrossSec::GetCrosSec: pPDG=2212, j="<<j<<", N="<<colN[i]
+      G4cout<<"-->G4QPipNucCrossSec::GetCrosSec: pPDG=211, j="<<j<<", N="<<colN[i]
             <<",Z["<<i<<"]="<<colZ[i]<<G4endl;
 #endif
@@ -160,13 +160,13 @@
     }
 #ifdef debug
-    G4cout<<"-?-G4QPrCS::GetCS:RC Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
+    G4cout<<"-?-G4QPipCS::GetCS:R,Z="<<tgZ<<",N="<<tgN<<",in="<<in<<",j="<<j<<" ?"<<G4endl;
 #endif
     if(!in)                            // This isotope has not been calculated previously
     {
 #ifdef debug
-      G4cout<<"^^^G4QPrCS::GetCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
+      G4cout<<"^^^G4QPipCS::GeCS:CalcNew P="<<pMom<<", f="<<fCS<<", lastI="<<lastI<<G4endl;
 #endif
       //!!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
-      lastCS=CalculateCrossSection(fCS,0,j,2212,lastZ,lastN,pMom); //calculate & create
+      lastCS=CalculateCrossSection(fCS,0,j,211,lastZ,lastN,pMom); //calculate & create
       //if(lastCS>0.)                   // It means that the AMBD was initialized
       //{
@@ -174,5 +174,5 @@
         lastTH = ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
 #ifdef debug
-        G4cout<<"G4QPrCrossSection::GetCrossSect: NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
+        G4cout<<"G4QPipCrossSection::GetCrossSect:NewThresh="<<lastTH<<",P="<<pMom<<G4endl;
 #endif
         colN.push_back(tgN);
@@ -182,9 +182,9 @@
         colCS.push_back(lastCS);
 #ifdef debug
-        G4cout<<"G4QPrCS::GetCrosSec:recCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
+        G4cout<<"G4QPipNCS::GetCrosSec:lCS="<<lastCS<<",lZ="<<lastN<<",lN="<<lastZ<<G4endl;
 #endif
       //} // M.K. Presence of H1 with high threshold breaks the syncronization
 #ifdef pdebug
-      G4cout<<"G4QPrCS::GetCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+      G4cout<<"G4QPipCS::GeCS:1st,P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
       return lastCS*millibarn;
@@ -193,5 +193,5 @@
     {
 #ifdef debug
-      G4cout<<"G4QPrCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
+      G4cout<<"G4QPipNucCS::GetCS: Update lastI="<<lastI<<",j="<<j<<G4endl;
 #endif
       colP[lastI]=pMom;
@@ -202,5 +202,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
+    G4cout<<"G4QPipCS::GetCS: Current P="<<pMom<<" < Threshold="<<lastTH<<", CS=0"<<G4endl;
 #endif
     return 0.;                         // Momentum is below the Threshold Value -> CS=0
@@ -219,9 +219,9 @@
     G4cout<<"-!-G4QPCS::GetCS:UseCur P="<<pMom<<",f="<<fCS<<",I="<<lastI<<",j="<<j<<G4endl;
 #endif
-    lastCS=CalculateCrossSection(fCS,1,j,2212,lastZ,lastN,pMom); // Only read and UpdateDB
+    lastCS=CalculateCrossSection(fCS,1,j,211,lastZ,lastN,pMom); // Only read and UpdateDB
     lastP=pMom;
   }
 #ifdef debug
-  G4cout<<"==>G4QPrCS::GetCroSec: P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
+  G4cout<<"==>G4QPipCS::GetCroSec:P="<<pMom<<"(MeV),CS="<<lastCS*millibarn<<"(mb)"<<G4endl;
 #endif
   return lastCS*millibarn;
@@ -245,5 +245,5 @@
   static const G4double milPG=std::log(.001*Pmin);// Low logarithmEnergy for HEN part GeV/c
 #ifdef debug
-  G4cout<<"G4QProtNCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
+  G4cout<<"G4QPipNuCS::CalCS:N="<<targN<<",Z="<<targZ<<",P="<<Momentum<<">"<<THmin<<G4endl;
 #endif
   G4double sigma=0.;
@@ -251,5 +251,5 @@
   G4double A=targN+targZ;              // A of the target
 #ifdef debug
-  G4cout<<"G4QProtNucCS::CalCS: A="<<A<<",F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
+  G4cout<<"G4QPipNucCS::CalCS: A="<<A<<", F="<<F<<",I="<<I<<",nL="<<nL<<",nH="<<nH<<G4endl;
 #endif
   if(F<=0)                             // This isotope was not the last used isotop
@@ -280,5 +280,5 @@
       }
 #ifdef debug
-      G4cout<<"-*->G4QPr0tNucCS::CalcCS:Tab for Z="<<targZ<<",N="<<targN<<",I="<<I<<G4endl;
+      G4cout<<"-*->G4QPipNucCS::CalcCS:Tab for Z="<<targZ<<", N="<<targN<<",I="<<I<<G4endl;
 #endif
       // --- End of possible separate function
@@ -297,5 +297,5 @@
   // ============================== NOW the Magic Formula =================================
 #ifdef debug
-  G4cout<<"G4QPrNCS::CalcCS:lTH="<<lastTH<<",Pmi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
+  G4cout<<"G4QPipNCS::CalcCS:lTH="<<lastTH<<",Pi="<<Pmin<<",dP="<<dP<<",dlP="<<dlP<<G4endl;
 #endif
   if (Momentum<lastTH) return 0.;      // It must be already checked in the interface class
@@ -303,5 +303,5 @@
   {
 #ifdef debug
-    G4cout<<"G4QPrNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
+    G4cout<<"G4QPipNCS::CalcCS:bLEN A="<<A<<", nL="<<nL<<",TH="<<THmin<<",dP="<<dP<<G4endl;
 #endif
     if(A<=1.) sigma=0.;
@@ -309,5 +309,5 @@
 #ifdef debugn
     if(sigma<0.)
-      G4cout<<"G4QPrNuCS::CalcCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
+      G4cout<<"G4QPipNuCS::CalCS:A="<<A<<",E="<<Momentum<<",T="<<THmin<<",dP="<<dP<<G4endl;
 #endif
   }
@@ -316,5 +316,5 @@
     G4double lP=std::log(Momentum);
 #ifdef debug
-    G4cout<<"G4QProtNucCS::CalcCS: before HEN nH="<<nH<<",iE="<<milP<<",dlP="<<dlP<<G4endl;
+    G4cout<<"G4QPipNucCS::CalcCS: before HEN nH="<<nH<<", iE="<<milP<<",dlP="<<dlP<<G4endl;
 #endif
     sigma=EquLinearFit(lP,nH,milP,dlP,lastHEN);
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QTauNuclearCrossSection.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QTauNuclearCrossSection.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QTauNuclearCrossSection.cc	(revision 1315)
@@ -25,6 +25,6 @@
 //
 //
-// $Id: G4QTauNuclearCrossSection.cc,v 1.1 2009/11/16 18:15:43 mkossov Exp $
-// GEANT4 tag $Name: geant4-09-03 $
+// $Id: G4QTauNuclearCrossSection.cc,v 1.2 2010/06/02 09:08:25 mkossov Exp $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -295,13 +295,13 @@
   // --------- Splitting thresholds
   G4double mP= infEn;
-  if(Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))
+  if(A>1&&Z&&G4NucleiProperties::IsInStableTable(A-1,Z-1))
           mP = G4NucleiProperties::GetNuclearMass(A-1,Z-1)/MeV; // ResNucMass for a proton
 
   G4double mN= infEn;
-  if(N&&G4NucleiProperties::IsInStableTable(A-1,Z))
+  if(A>1&&G4NucleiProperties::IsInStableTable(A-1,Z))
           mN = G4NucleiProperties::GetNuclearMass(A-1,Z)/MeV;  // ResNucMass for a neutron
 
   G4double mA= infEn;
-  if(N>1&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))
+  if(A>4&&Z>1&&G4NucleiProperties::IsInStableTable(A-4,Z-2))
           mA = G4NucleiProperties::GetNuclearMass(A-4,Z-2)/MeV; // ResNucMass for an alpha
 
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QuasiFreeRatios.cc
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QuasiFreeRatios.cc	(revision 1228)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/cross_sections/src/G4QuasiFreeRatios.cc	(revision 1315)
@@ -25,6 +25,6 @@
 //
 //
-// $Id: G4QuasiFreeRatios.cc,v 1.1 2009/11/16 18:15:43 mkossov Exp $
-// GEANT4 tag $Name: geant4-09-03 $
+// $Id: G4QuasiFreeRatios.cc,v 1.3 2010/01/22 17:02:48 mkossov Exp $
+// GEANT4 tag $Name: geant4-09-04-beta-cand-01 $
 //
 //
@@ -443,16 +443,16 @@
     else
     {
-      G4double lr=lp+1.27;
-      G4double LE=1.53/(lr*lr+.0676);
-      G4double ld=lp-lmi;
+      G4double lr=lp+1.27;                    // p1
+      G4double LE=1.53/(lr*lr+.0676);         // p2, p3        
+      G4double ld=lp-lmi;                     // p4 (lmi=3.5)
       G4double ld2=ld*ld;
       G4double p2=p*p;
       G4double p4=p2*p2;
       G4double sp=std::sqrt(p);
-      G4double lm=lp+.36;
-      G4double md=lm*lm+.04;
-      G4double lh=lp-.017;
-      G4double hd=lh*lh+.0025;
-      El=LE+(pbe*ld2+2.4+7./sp)/(1.+.7/p4)+.6/md+.05/hd;
+      G4double lm=lp+.36;                     // p5
+      G4double md=lm*lm+.04;                  // p6
+      G4double lh=lp-.017;                    // p7
+      G4double hd=lh*lh+.0025;                // p8
+      El=LE+(pbe*ld2+2.4+7./sp)/(1.+.7/p4)+.6/md+.05/hd;//p9(pbe=.0557),p10,p11,p12,p13,p14
       To=LE*3+(pbt*ld2+22.3+12./sp)/(1.+.4/p4)+1./md+.06/hd;
     }
@@ -478,15 +478,15 @@
     else
     {
-      G4double lr=lp+1.27;
+      G4double lr=lp+1.27;                   // p1
       G4double lr2=lr*lr;
-      G4double LE=13./(lr2+lr2*lr2+.0676);
-      G4double ld=lp-lmi;
+      G4double LE=13./(lr2+lr2*lr2+.0676);   // p2, p3
+      G4double ld=lp-lmi;                    // p4 (lmi=3.5)
       G4double ld2=ld*ld;
       G4double p2=p*p;
       G4double p4=p2*p2;
       G4double sp=std::sqrt(p);
-      G4double lm=lp-.32;
-      G4double md=lm*lm+.0576;
-      El=LE+(pbe*ld2+2.4+6./sp)/(1.+3./p4)+.7/md;
+      G4double lm=lp-.32;                    // p5
+      G4double md=lm*lm+.0576;               // p6
+      El=LE+(pbe*ld2+2.4+6./sp)/(1.+3./p4)+.7/md; // p7(pbe=.0557), p8, p9, p10, p11
       To=LE+(pbt*ld2+22.3+5./sp)/(1.+1./p4)+.8/md;
     }
@@ -933,5 +933,6 @@
   }
   G4double P=std::sqrt(E2-mP2);                   // Momentum in pseudo laboratory system
-  G4VQCrossSection* CSmanager=G4QElasticCrossSection::GetPointer();
+  G4VQCrossSection* PCSmanager=G4QProtonElasticCrossSection::GetPointer();
+  G4VQCrossSection* NCSmanager=G4QNeutronElasticCrossSection::GetPointer();
 #ifdef ppdebug
   G4cout<<"G4QFR::Scatter: Before XS, P="<<P<<", Z="<<Z<<", N="<<N<<", PDG="<<pPDG<<G4endl;
@@ -941,6 +942,14 @@
   G4int PDG=2212;                                                // *TMP* instead of pPDG
   if(pPDG==2112||pPDG==-211||pPDG==-321) PDG=2112;               // *TMP* instead of pPDG
-  G4double xSec=CSmanager->GetCrossSection(false, P, Z, N, PDG); // Rec.CrossSect *TMP*
-  //G4double xSec=CSmanager->GetCrossSection(false, P, Z, N, pPDG); // Rec.CrossSect
+  if(!Z && N==1)                 // Change for Quasi-Elastic on neutron
+  {
+    Z=1;
+    N=0;
+    if     (PDG==2212) PDG=2112;
+    else if(PDG==2112) PDG=2212;
+  }
+  G4double xSec=0.;                        // Prototype of Recalculated Cross Section *TMP*
+  if(PDG==2212) xSec=PCSmanager->GetCrossSection(false, P, Z, N, PDG); // P CrossSect *TMP*
+  else          xSec=NCSmanager->GetCrossSection(false, P, Z, N, PDG); // N CrossSect *TMP*
 #ifdef ppdebug
   G4cout<<"G4QElast::Scatter:pPDG="<<pPDG<<",P="<<P<<",CS="<<xSec/millibarn<<G4endl;
@@ -951,5 +960,5 @@
 #endif
   // @@ check a possibility to separate p, n, or alpha (!)
-  if(xSec <= 0.) // The cross-section iz 0 -> Do Nothing
+  if(xSec <= 0.)                                    // The cross-section iz 0 -> Do Nothing
   {
 #ifdef ppdebug
@@ -958,7 +967,10 @@
     return std::make_pair(G4LorentzVector(0.,0.,0.,0.),p4M); //Do Nothing Action
   }
-  G4double mint=CSmanager->GetExchangeT(Z,N,PDG); // functional randomized -t (MeV^2) *TMP*
-  //G4double mint=CSmanager->GetExchangeT(Z,N,pPDG); // functional randomized -t in MeV^2
-  G4double maxt=CSmanager->GetHMaxT();            // max possible -t
+  G4double mint=0.;                        // Prototype of functional rand -t (MeV^2) *TMP*
+  if(PDG==2212) mint=PCSmanager->GetExchangeT(Z,N,PDG);// P functional rand -t(MeV^2) *TMP*
+  else          mint=NCSmanager->GetExchangeT(Z,N,PDG);// N functional rand -t(MeV^2) *TMP*
+  G4double maxt=0.;                                    // Prototype of max possible -t
+  if(PDG==2212) maxt=PCSmanager->GetHMaxT();           // max possible -t
+  else          maxt=NCSmanager->GetHMaxT();           // max possible -t
 #ifdef ppdebug
   G4cout<<"G4QFR::Scat:PDG="<<PDG<<",P="<<P<<",X="<<xSec<<",-t="<<mint<<"<"<<maxt<<", Z="
@@ -979,5 +991,8 @@
     else
     {
-      G4cerr<<"G4QFR::S:*NAN*c="<<cost<<",t="<<mint<<",tm="<<CSmanager->GetHMaxT()<<G4endl;
+      G4double tm=0.;
+      if(PDG==2212) tm=PCSmanager->GetHMaxT();
+      else          tm=NCSmanager->GetHMaxT();
+      G4cerr<<"G4QuasiFreeRatio::Scat:*NAN* cost="<<cost<<",-t="<<mint<<",tm="<<tm<<G4endl;
       return std::make_pair(G4LorentzVector(0.,0.,0.,0.),p4M); // Do Nothing Action
     }
@@ -1069,5 +1084,6 @@
   }
   G4double P=std::sqrt(E2-mS2);                   // Momentum in pseudo laboratory system
-  G4VQCrossSection* CSmanager=G4QElasticCrossSection::GetPointer();
+  G4VQCrossSection* PCSmanager=G4QProtonElasticCrossSection::GetPointer();
+  G4VQCrossSection* NCSmanager=G4QNeutronElasticCrossSection::GetPointer();
 #ifdef debug
   G4cout<<"G4QFR::ChExer: Before XS, P="<<P<<", Z="<<Z<<", N="<<N<<", PDG="<<pPDG<<G4endl;
@@ -1075,6 +1091,15 @@
   // @@ Temporary NN t-dependence for all hadrons
   G4int PDG=2212;                                                // *TMP* instead of pPDG
-  G4double xSec=CSmanager->GetCrossSection(false, P, Z, N, PDG); // Rec.CrossSect *TMP*
-  //G4double xSec=CSmanager->GetCrossSection(false, P, Z, N, pPDG); // Rec.CrossSect
+  if(pPDG==2112||pPDG==-211||pPDG==-321) PDG=2112;               // *TMP* instead of pPDG
+  if(!Z && N==1)                 // Change for Quasi-Elastic on neutron
+  {
+    Z=1;
+    N=0;
+    if     (PDG==2212) PDG=2112;
+    else if(PDG==2112) PDG=2212;
+  }
+  G4double xSec=0.;                        // Prototype of Recalculated Cross Section *TMP*
+  if(PDG==2212) xSec=PCSmanager->GetCrossSection(false, P, Z, N, PDG); // P CrossSect *TMP*
+  else          xSec=NCSmanager->GetCrossSection(false, P, Z, N, PDG); // N CrossSect *TMP*
 #ifdef debug
   G4cout<<"G4QElast::ChExer:pPDG="<<pPDG<<",P="<<P<<",CS="<<xSec/millibarn<<G4endl;
@@ -1092,6 +1117,7 @@
     return std::make_pair(G4LorentzVector(0.,0.,0.,0.),p4M); //Do Nothing Action
   }
-  G4double mint=CSmanager->GetExchangeT(Z,N,PDG); // functional randomized -t (MeV^2) *TMP*
-  //G4double mint=CSmanager->GetExchangeT(Z,N,pPDG); // functional randomized -t in MeV^2
+  G4double mint=0.;                        // Prototype of functional rand -t (MeV^2) *TMP*
+  if(PDG==2212) mint=PCSmanager->GetExchangeT(Z,N,PDG);// P functional rand -t(MeV^2) *TMP*
+  else          mint=NCSmanager->GetExchangeT(Z,N,PDG);// N functional rand -t(MeV^2) *TMP*
 #ifdef pdebug
   G4cout<<"G4QFR::ChEx:PDG="<<pPDG<<", P="<<P<<", CS="<<xSec<<", -t="<<mint<<G4endl;
@@ -1101,7 +1127,10 @@
   else  G4cout<<"*Warning*G4QFR::ChExer: -t="<<mint<<G4endl;
 #endif
-  G4double cost=1.-mint/CSmanager->GetHMaxT(); // cos(theta) in CMS
-#ifdef pdebug
-  G4cout<<"G4QFR::ChEx:-t="<<mint<<",dpc2="<<CSmanager->GetHMaxT()<<",cost="<<cost<<G4endl;
+  G4double maxt=0.;                                    // Prototype of max possible -t
+  if(PDG==2212) maxt=PCSmanager->GetHMaxT();           // max possible -t
+  else          maxt=NCSmanager->GetHMaxT();           // max possible -t
+  G4double cost=1.-mint/maxt;                          // cos(theta) in CMS
+#ifdef pdebug
+  G4cout<<"G4QuasiFfreeRatio::ChExer: -t="<<mint<<", maxt="<<maxt<<", cost="<<cost<<G4endl;
 #endif
   if(cost>1. || cost<-1. || !(cost>-1. || cost<=1.))
@@ -1111,5 +1140,5 @@
     else
     {
-      G4cerr<<"G4QFR::C:*NAN*c="<<cost<<",t="<<mint<<",tm="<<CSmanager->GetHMaxT()<<G4endl;
+      G4cerr<<"G4QuasiFreeRatio::ChExer:*NAN* c="<<cost<<",t="<<mint<<",tm="<<maxt<<G4endl;
       return std::make_pair(G4LorentzVector(0.,0.,0.,0.),p4M); // Do Nothing Action
     }
