Index: trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeData.hh
===================================================================
--- trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeData.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeData.hh	(revision 967)
@@ -0,0 +1,107 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+#ifndef G4_CASCADE_DATA_HH
+#define G4_CASCADE_DATA_HH
+
+#include "globals.hh"
+
+template <int n2, int n3, int n4, int n5, int n6, int n7, int nxs>
+struct G4CascadeData
+{
+  G4double *  tot;
+
+  typedef G4double multiplicities_t[31];
+  multiplicities_t * multiplicities;
+
+  typedef G4int index_t[2];
+  index_t const * index;
+
+  typedef G4int x2bfs_t[2];
+  x2bfs_t const * x2bfs;
+
+  typedef G4int x3bfs_t[3];
+  x3bfs_t const * x3bfs;
+
+  typedef G4int x4bfs_t[4];
+  x4bfs_t const * x4bfs;
+
+  typedef G4int x5bfs_t[5];
+  x5bfs_t const * x5bfs;
+
+  typedef G4int x6bfs_t[6];
+  x6bfs_t const * x6bfs;
+
+  typedef G4int x7bfs_t[7];
+  x7bfs_t const * x7bfs;
+
+  typedef G4float crossSections_t[31];
+  crossSections_t const * crossSections;
+
+  void initialize();
+
+//   G4double tot[31];
+//   G4double multiplicities[6][31];
+
+//   G4int index[6][2];
+//   G4int x2bfs[n2][2];
+//   G4int x3bfs[n3][3];
+//   G4int x4bfs[n4][4];
+//   G4int x5bfs[n5][5];
+//   G4int x6bfs[n6][6];
+//   G4int x7bfs[n7][7];
+
+//   G4float crossSections[nxs][31];
+};
+
+template <int n2, int n3, int n4, int n5, int n6, int n7, int nxs>
+inline
+void
+G4CascadeData<n2, n3, n4, n5, n6, n7, nxs>::initialize()
+{
+  // Initialize multiplicity array
+  
+  for (G4int m = 0; m < 6; m++) {
+    G4int start = index[m][0];
+    G4int stop = index[m][1];
+    for (G4int k = 0; k < 31; k++) {
+      multiplicities[m][k] = 0.0;
+      for (G4int i = start; i < stop; i++) {
+ 	multiplicities[m][k] += crossSections[i][k];
+      }
+    }
+  }
+  
+  // Initialize total cross section array
+  
+  for (G4int k = 0; k < 31; k++) {
+    tot[k] = 0.0;
+    for (G4int m = 0; m < 6; m++) {
+      tot[k] += multiplicities[m][k];
+    }
+  }
+}
+
+#endif
Index: trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeFunctions.hh
===================================================================
--- trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeFunctions.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeFunctions.hh	(revision 967)
@@ -0,0 +1,121 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+#ifndef G4_CASCADE_FUNCTIONS_HH
+#define G4_CASCADE_FUNCTIONS_HH
+
+#include <vector>
+#include "globals.hh"
+#include "G4CascadeChannel.hh"
+
+template <class T>
+class G4CascadeFunctions
+{
+public:
+  static G4double getCrossSection(double ke);
+  static G4int getMultiplicity(G4double ke);
+  static std::vector<G4int> getOutgoingParticleTypes(G4int mult, G4double ke);
+};
+
+template <class T>
+inline
+G4double 
+G4CascadeFunctions<T>::getCrossSection(double ke)
+{
+  std::pair<G4int, G4double> epair = G4CascadeChannel::interpolateEnergy(ke);
+  G4int k = epair.first;
+  G4double fraction = epair.second;
+  return T::data.tot[k] + fraction*(T::data.tot[k+1] - T::data.tot[k]);
+}
+
+template <class T>
+inline
+G4int 
+G4CascadeFunctions<T>::getMultiplicity(G4double ke)
+{
+  G4double multint(0.0);
+  std::vector<G4double> sigma;
+
+  std::pair<G4int, G4double> epair = G4CascadeChannel::interpolateEnergy(ke);
+  G4int k = epair.first;
+  G4double fraction = epair.second;
+
+  for (G4int m = 0; m < 6; ++m)
+    {
+      multint = T::data.multiplicities[m][k]
+	+ fraction * (T::data.multiplicities[m][k+1] - T::data.multiplicities[m][k]);
+      sigma.push_back(multint);
+    }
+  
+  return G4CascadeChannel::sampleFlat(sigma);
+}
+
+template <class T>
+inline
+std::vector<G4int> 
+G4CascadeFunctions<T>::getOutgoingParticleTypes(G4int mult, G4double ke)
+{
+  G4int i;
+  G4double sigint(0.);
+  std::vector<G4double> sigma;
+  
+  std::pair<G4int, G4double> epair = G4CascadeChannel::interpolateEnergy(ke);
+  G4int k = epair.first;
+  G4double fraction = epair.second;
+
+  G4int start = T::data.index[mult-2][0];
+  G4int stop = T::data.index[mult-2][1];
+ 
+  for (i = start; i < stop; i++) {
+    sigint = T::data.crossSections[i][k] 
+      + fraction*(T::data.crossSections[i][k+1] - T::data.crossSections[i][k]);
+    sigma.push_back(sigint);
+  }
+ 
+  G4int channel = G4CascadeChannel::sampleFlat(sigma);
+
+  std::vector<G4int> kinds;
+
+  if (mult == 2) {
+    for(i = 0; i < mult; i++) kinds.push_back(T::data.x2bfs[channel][i]);
+  } else if (mult == 3) {
+    for(i = 0; i < mult; i++) kinds.push_back(T::data.x3bfs[channel][i]);
+  } else if (mult == 4) {
+    for(i = 0; i < mult; i++) kinds.push_back(T::data.x4bfs[channel][i]);
+  } else if (mult == 5) {
+    for(i = 0; i < mult; i++) kinds.push_back(T::data.x5bfs[channel][i]);
+  } else if (mult == 6) {
+    for(i = 0; i < mult; i++) kinds.push_back(T::data.x6bfs[channel][i]);
+  } else if (mult == 7) {
+    for(i = 0; i < mult; i++) kinds.push_back(T::data.x7bfs[channel][i]);
+  } else {
+    G4cout << " Illegal multiplicity " << G4endl;
+  }
+
+  return kinds;
+}
+
+
+#endif
Index: trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeMomentum.hh
===================================================================
--- trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeMomentum.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeMomentum.hh	(revision 967)
@@ -0,0 +1,69 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: G4CascadeMomentum.hh,v 1.1 2008/09/22 10:06:32 gcosmo Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
+//
+//
+// Class G4CascadeMomentum
+//
+// Class description:
+//
+// A simple wrapper class meant to replace the widespread use of
+// std::vector<double> in the cascade mode code, which causes
+// problems for performance due to excess memory allocations.
+
+// Author: Peter Elmer, Princeton University                  7-Aug-2008
+// --------------------------------------------------------------------
+#ifndef G4CASCADE_MOMENTUM_HH
+#define G4CASCADE_MOMENTUM_HH
+
+#include <cassert>
+
+#include "G4Types.hh"
+
+class G4CascadeMomentum
+{
+  public:
+
+    G4CascadeMomentum() {for (int i=0; i<4; ++i) data_[i]=0.0;}
+
+    G4double& operator[](int i)
+    {
+      assert(i>=0 && i<4);
+      return data_[i];
+    }
+    const G4double& operator[](int i) const
+    {
+      assert(i>=0 && i<4);
+      return data_[i];
+    }
+
+  private:
+
+    G4double data_[4];
+};
+#endif
+
Index: trunk/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QIonIonElastic.hh
===================================================================
--- trunk/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QIonIonElastic.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/chiral_inv_phase_space/interface/include/G4QIonIonElastic.hh	(revision 967)
@@ -0,0 +1,127 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: G4QIonIonElastic.hh,v 1.2 2008/10/02 21:10:07 dennis Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
+//
+//      ---------------- G4QIonIonElastic header ----------------
+//                 by Mikhail Kossov, December 2006.
+//  Header of G4QIonIonElastic class (A+A) of the CHIPS Simulation Branch in GEANT4
+// -------------------------------------------------------------------------------
+// This is a unique CHIPS class for the Ion-Ion Elastic Scattering Prosesses
+// -------------------------------------------------------------------------------
+// @@ This class is on the testing level @@
+// -------------------------------------------------------------------------------
+// ****************************************************************************************
+// ********** This CLASS is temporary moved from the photolepton_hadron directory *********
+// ****************************************************************************************
+
+#ifndef G4QIonIonElastic_hh
+#define G4QIonIonElastic_hh
+
+// GEANT4 Headers
+#include "globals.hh"
+#include "G4ios.hh"
+#include "Randomize.hh" 
+#include "G4VDiscreteProcess.hh"
+#include "G4Track.hh"
+#include "G4Step.hh"
+#include "G4ParticleTypes.hh"
+#include "G4VParticleChange.hh"
+#include "G4ParticleDefinition.hh"
+#include "G4DynamicParticle.hh"
+#include "G4NucleiPropertiesTable.hh"
+#include "G4ThreeVector.hh"
+#include "G4LorentzVector.hh"
+#include "G4HadronicProcessType.hh"
+
+// CHIPS Headers
+#include "G4QIonIonCrossSection.hh"
+#include "G4QElasticCrossSection.hh"
+#include "G4QIsotope.hh"
+#include "G4QPDGToG4Particle.hh"
+#include "G4QCHIPSWorld.hh"
+#include "G4QHadron.hh"
+#include <vector>
+
+class G4QIonIonElastic : public G4VDiscreteProcess
+{
+public:
+
+  // Constructor
+  G4QIonIonElastic(const G4String& processName ="CHIPS_IonIonElasticScattering");
+
+  // Destructor
+  ~G4QIonIonElastic();
+
+  G4bool IsApplicable(const G4ParticleDefinition& particle);
+
+  G4double GetMeanFreePath(const G4Track& aTrack, G4double previousStepSize,
+                           G4ForceCondition* condition);
+  // It returns the MeanFreePath of the process for the current track :
+  // (energy, material)
+  // The previousStepSize and G4ForceCondition* are not used.
+  // This function overloads a virtual function of the base class.		      
+  // It is invoked by the ProcessManager of the Particle.
+ 
+
+  G4VParticleChange* PostStepDoIt(const G4Track& aTrack, const G4Step& aStep); 
+  // It computes the final state of the process (at end of step),
+  // returned as a ParticleChange object.			    
+  // This function overloads a virtual function of the base class.
+  // It is invoked by the ProcessManager of the Particle.
+
+
+  G4LorentzVector GetEnegryMomentumConservation(){return EnMomConservation;}
+
+  G4int GetNumberOfNeutronsInTarget(){return nOfNeutrons;}
+
+private:
+
+  // Hide assignment operator as private 
+  G4QIonIonElastic& operator=(const G4QIonIonElastic &right);
+
+  // Copy constructor
+  G4QIonIonElastic(const G4QIonIonElastic&);
+
+		// BODY
+  // Static Parameters --------------------------------------------------------------------
+  static G4int    nPartCWorld; // The#of particles for hadronization (limit of A of fragm.)
+  //--------------------------------- End of static parameters ---------------------------
+  // Working parameters
+  G4VQCrossSection* theCS;
+  G4LorentzVector EnMomConservation;                  // Residual of Energy/Momentum Cons.
+  G4int nOfNeutrons;                                  // #of neutrons in the target nucleus
+
+  // Modifires for the reaction
+  G4double Time;                                      // Time shift of the capture reaction
+  G4double EnergyDeposition;                          // Energy deposited in the reaction
+  static std::vector <G4int> ElementZ;                // Z of the element(i) in theLastCalc
+  static std::vector <G4double> ElProbInMat;          // SumProbabilityElements in Material
+  static std::vector <std::vector<G4int>*> ElIsoN;    // N of isotope(j) of Element(i)
+  static std::vector <std::vector<G4double>*> IsoProbInEl;// SumProbabIsotopes in Element i
+};
+#endif
+
Index: trunk/source/processes/hadronic/models/incl/include/G4AblaFission.hh
===================================================================
--- trunk/source/processes/hadronic/models/incl/include/G4AblaFission.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/incl/include/G4AblaFission.hh	(revision 967)
@@ -0,0 +1,106 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: G4AblaFission.hh,v 1.2 2008/06/25 17:20:04 kaitanie Exp $
+// Translation of INCL4.2/ABLA V3 
+// Pekka Kaitaniemi, HIP (translation)
+// Christelle Schmidt, IPNL (fission code)
+// Alain Boudard, CEA (contact person INCL/ABLA)
+// Aatos Heikkinen, HIP (project coordination)
+
+#ifndef G4AblaFission_hh
+#define G4AblaFission_hh 1
+
+#include "G4AblaFissionBase.hh"
+#include "G4InclDataDefs.hh"
+#include "G4InclRandomNumbers.hh"
+
+class G4AblaFission : public G4AblaFissionBase {
+
+public:
+  G4AblaFission();
+  G4AblaFission(G4Hazard *hzr, G4InclRandomInterface *rndm);
+
+  ~G4AblaFission();
+
+  void doFission(G4double &A, G4double &Z, G4double &E,
+		 G4double &A1, G4double &Z1, G4double &E1, G4double &K1,
+		 G4double &A2, G4double &Z2, G4double &E2, G4double &K2);
+
+  /**
+   *
+   */
+  G4double spdef(G4int a, G4int z, G4int optxfis);
+
+  /**
+   *
+   */
+  G4double fissility(G4int a, G4int z, G4int optxfis);
+
+//   void evapora(G4double zprf, G4double aprf, G4double ee, G4double jprf,
+// 	       G4double *zf_par, G4double *af_par, G4double *mtota_par,
+// 	       G4double *pleva_par, G4double *pxeva_par);
+//  G4double bfms67(G4double zms, G4double ams);
+  //  void lpoly(G4double x, G4int n, G4double pl[]);
+  //  G4double expohaz(G4int k, G4double T);
+  //  G4double fd(G4double E);
+  //  G4double f(G4double E);
+  //  G4double fmaxhaz(G4double k, G4double T);
+  void even_odd(G4double r_origin,G4double r_even_odd,G4int &i_out);
+  G4double umass(G4double z,G4double n,G4double beta);
+  G4double ecoul(G4double z1,G4double n1,G4double beta1,G4double z2,G4double n2,G4double beta2,G4double d);
+  void fissionDistri(G4double &a,G4double &z,G4double &e,
+		     G4double &a1,G4double &z1,G4double &e1,G4double &v1,
+		     G4double &a2,G4double &z2,G4double &e2,G4double &v2);
+  void standardRandom(G4double *rndm, G4long *seed);
+  G4double haz(G4int k);
+  G4double gausshaz(int k, double xmoy, double sig);
+
+
+
+  G4int min(G4int a, G4int b);
+  G4double min(G4double a, G4double b);
+  G4int max(G4int a, G4int b);
+  G4double max(G4double a, G4double b);
+
+  G4int nint(G4double number);
+  G4int secnds(G4int x);
+  G4int mod(G4int a, G4int b);
+  G4double dmod(G4double a, G4double b);
+  G4double dint(G4double a);
+  G4int idint(G4double a);
+  G4int idnint(G4double value);
+  G4double utilabs(G4double a);
+  G4double dmin1(G4double a, G4double b, G4double c);
+  void p(G4int a, G4int b);
+  void p(G4double a, G4double b);
+  void p(G4String msg, G4double a, G4double b);
+
+private:
+  G4InclRandomInterface *randomGenerator;
+  G4Hazard *hazard;
+};
+
+#endif
Index: trunk/source/processes/hadronic/models/incl/include/G4AblaFissionBase.hh
===================================================================
--- trunk/source/processes/hadronic/models/incl/include/G4AblaFissionBase.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/incl/include/G4AblaFissionBase.hh	(revision 967)
@@ -0,0 +1,64 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: G4AblaFissionBase.hh,v 1.2 2008/06/25 17:20:04 kaitanie Exp $ 
+// Translation of INCL4.2/ABLA V3 
+// Pekka Kaitaniemi, HIP (translation)
+// Christelle Schmidt, IPNL (fission code)
+// Alain Boudard, CEA (contact person INCL/ABLA)
+// Aatos Heikkinen, HIP (project coordination)
+
+#ifndef G4AblaFissionBase_hh
+#define G4AblaFissionBase_hh 1
+
+#include "globals.hh"
+
+/*
+ * Abstract interface to fission models.
+ */
+
+class G4AblaFissionBase {
+
+public:
+  G4AblaFissionBase() {}
+  ~G4AblaFissionBase() {}
+
+  virtual void doFission(G4double &A, G4double &Z, G4double &E,
+			 G4double &A1, G4double &Z1, G4double &E1, G4double &K1,
+			 G4double &A2, G4double &Z2, G4double &E2, G4double &K2) = 0;
+
+  void about() {
+    G4cout << aboutModel << G4endl;
+  }
+
+  void setAboutString(G4String about) {
+    aboutModel = about;
+  }
+
+private:
+  G4String aboutModel;
+};
+
+#endif
Index: trunk/source/processes/hadronic/models/incl/include/G4AblaFissionSimfis18.hh
===================================================================
--- trunk/source/processes/hadronic/models/incl/include/G4AblaFissionSimfis18.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/incl/include/G4AblaFissionSimfis18.hh	(revision 967)
@@ -0,0 +1,103 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: G4AblaFissionSimfis18.hh,v 1.2 2008/06/25 17:20:04 kaitanie Exp $
+// Translation of INCL4.2/ABLA V3 
+// Pekka Kaitaniemi, HIP (translation)
+// Christelle Schmidt, IPNL (fission code)
+// Alain Boudard, CEA (contact person INCL/ABLA)
+// Aatos Heikkinen, HIP (project coordination)
+
+#ifndef G4AblaFissionSimfis18_hh
+#define G4AblaFissionSimfis18_hh 1
+
+#include "G4AblaFissionBase.hh"
+#include "G4InclDataDefs.hh"
+#include "G4InclRandomNumbers.hh"
+
+class G4AblaFissionSimfis18 : public G4AblaFissionBase {
+
+public:
+  G4AblaFissionSimfis18();
+  G4AblaFissionSimfis18(G4Hazard *hzr, G4InclRandomInterface *rndm);
+
+  ~G4AblaFissionSimfis18();
+
+  void doFission(G4double &A, G4double &Z, G4double &E,
+		 G4double &A1, G4double &Z1, G4double &E1, G4double &K1,
+		 G4double &A2, G4double &Z2, G4double &E2, G4double &K2);
+
+  /**
+   *
+   */
+  G4double spdef(G4int a, G4int z, G4int optxfis);
+
+  /**
+   *
+   */
+  G4double fissility(G4int a, G4int z, G4int optxfis);
+
+//   void evapora(G4double zprf, G4double aprf, G4double ee, G4double jprf,
+// 	       G4double *zf_par, G4double *af_par, G4double *mtota_par,
+// 	       G4double *pleva_par, G4double *pxeva_par);
+//  G4double bfms67(G4double zms, G4double ams);
+  //  void lpoly(G4double x, G4int n, G4double pl[]);
+  //  G4double expohaz(G4int k, G4double T);
+  //  G4double fd(G4double E);
+  //  G4double f(G4double E);
+  //  G4double fmaxhaz(G4double k, G4double T);
+  void even_odd(G4double r_origin,G4double r_even_odd,G4int &i_out);
+  G4double umass(G4double z,G4double n,G4double beta);
+  G4double ecoul(G4double z1,G4double n1,G4double beta1,G4double z2,G4double n2,G4double beta2,G4double d);
+  void fissionDistri(G4double &a,G4double &z,G4double &e,
+		     G4double &a1,G4double &z1,G4double &e1,G4double &v1,
+		     G4double &a2,G4double &z2,G4double &e2,G4double &v2);
+  void standardRandom(G4double *rndm, G4long *seed);
+  G4double haz(G4int k);
+  G4double gausshaz(int k, double xmoy, double sig);
+
+
+
+  G4int min(G4int a, G4int b);
+  G4double min(G4double a, G4double b);
+  G4int max(G4int a, G4int b);
+  G4double max(G4double a, G4double b);
+
+  G4int nint(G4double number);
+  G4int secnds(G4int x);
+  G4int mod(G4int a, G4int b);
+  G4double dmod(G4double a, G4double b);
+  G4double dint(G4double a);
+  G4int idint(G4double a);
+  G4int idnint(G4double value);
+  G4double utilabs(G4double a);
+  G4double dmin1(G4double a, G4double b, G4double c);
+
+private:
+  G4InclRandomInterface *randomGenerator;
+  G4Hazard *hazard;
+};
+
+#endif
Index: trunk/source/processes/hadronic/models/incl/include/G4InclRandomNumbers.hh
===================================================================
--- trunk/source/processes/hadronic/models/incl/include/G4InclRandomNumbers.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/incl/include/G4InclRandomNumbers.hh	(revision 967)
@@ -0,0 +1,100 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: G4InclRandomNumbers.hh,v 1.3 2008/06/25 17:20:04 kaitanie Exp $
+// Translation of INCL4.2/ABLA V3 
+// Pekka Kaitaniemi, HIP (translation)
+// Christelle Schmidt, IPNL (fission code)
+// Alain Boudard, CEA (contact person INCL/ABLA)
+// Aatos Heikkinen, HIP (project coordination)
+
+#include "globals.hh"
+#include "Randomize.hh"
+
+#ifndef G4InclRandomNumbers_hh
+#define G4InclRandomNumbers_hh 1
+
+/**
+ * Interface for the random number services.
+ */
+class G4InclRandomInterface {
+
+public:
+  G4InclRandomInterface() { }
+  G4InclRandomInterface(G4long seed) {
+    this->seed = seed;
+  }
+
+  ~G4InclRandomInterface() { }
+
+  /**
+   * Provide evenly distributed random numbers.
+   */
+  virtual G4double getRandom() = 0;
+
+private:
+  G4long seed;
+};
+
+/**
+ * Provides dummy random number generator that always produces one
+ * number.
+ */
+class G4InclDummyRandom : public G4InclRandomInterface {
+
+public:
+  G4InclDummyRandom() { }
+
+  ~G4InclDummyRandom() { }
+
+  /**
+   * Always return one "random" number. This interface is intended as
+   * a debugging tool in order to produce some specific event.
+   */
+  G4double getRandom() {
+    return 0.5;
+  }
+};
+
+/**
+ * Interface to the Geant4 random number services.
+ */
+class G4InclGeant4Random : public G4InclRandomInterface {
+
+public:
+  G4InclGeant4Random() { }
+
+  ~G4InclGeant4Random() { }
+
+  /**
+   * Always return one "random" number. This interface is intended as
+   * a debugging tool in order to produce some specific event.
+   */
+  G4double getRandom() {
+    return G4UniformRand();
+  }
+};
+
+#endif
Index: trunk/source/processes/hadronic/models/incl/include/G4Ranecu.hh
===================================================================
--- trunk/source/processes/hadronic/models/incl/include/G4Ranecu.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/incl/include/G4Ranecu.hh	(revision 967)
@@ -0,0 +1,44 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: G4Ranecu.hh,v 1.3 2008/06/25 17:20:04 kaitanie Exp $
+// Translation of INCL4.2/ABLA V3 
+// Pekka Kaitaniemi, HIP (translation)
+// Christelle Schmidt, IPNL (fission code)
+// Alain Boudard, CEA (contact person INCL/ABLA)
+// Aatos Heikkinen, HIP (project coordination)
+
+#include "G4InclRandomNumbers.hh"
+
+class G4Ranecu : public G4InclRandomInterface {
+ public:
+  G4Ranecu();
+  ~G4Ranecu();
+
+  G4double getRandom();
+
+private:
+  G4long iseed1, iseed2;
+};
Index: trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4ElasticHNScattering.hh
===================================================================
--- trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4ElasticHNScattering.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4ElasticHNScattering.hh	(revision 967)
@@ -0,0 +1,72 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+//
+// $Id: G4ElasticHNScattering.hh,v 1.1 2008/03/31 15:34:01 vuzhinsk Exp $
+
+#ifndef G4ElasticHNScattering_h
+#define G4ElasticHNScattering_h 1
+// ------------------------------------------------------------
+//                    GEANT 4 class header file
+//
+//      ---------------- G4ElasticHNScattering --------------
+//                   by V. Uzhinsky, March 2008.
+//             elastic scattering used by Fritiof model
+//	           Take a projectile and a target
+//	           scatter the projectile and target
+// ------------------------------------------------------------
+
+#include "globals.hh"
+class G4VSplitableHadron;
+class G4ExcitedString;
+#include "G4FTFParameters.hh"                            // Uzhi 29.03.08
+#include "G4ThreeVector.hh"
+
+class G4ElasticHNScattering 
+{
+
+  public:
+
+      G4ElasticHNScattering();                           // Uzhi
+      virtual ~G4ElasticHNScattering();
+
+      virtual G4bool ElasticScattering (G4VSplitableHadron *aPartner, 
+                                        G4VSplitableHadron * bPartner,
+                                        G4FTFParameters *theParameters) const;
+      
+  private:
+
+      G4ElasticHNScattering(const G4ElasticHNScattering &right);
+      
+      G4ThreeVector GaussianPt(G4double  AveragePt2, G4double maxPtSquare) const;  // Uzhi
+      
+      const G4ElasticHNScattering & operator=(const G4ElasticHNScattering &right);
+      int operator==(const G4ElasticHNScattering &right) const;
+      int operator!=(const G4ElasticHNScattering &right) const;
+
+
+};
+
+#endif
Index: trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParameters.hh
===================================================================
--- trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParameters.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/parton_string/diffraction/include/G4FTFParameters.hh	(revision 967)
@@ -0,0 +1,223 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+#ifndef G4FTFParameters_h
+#define G4FTFParameters_h 1
+//
+// $Id: G4FTFParameters.hh,v 1.2 2008/06/13 12:49:23 vuzhinsk Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
+//
+#include "G4Proton.hh"
+class G4FTFParameters
+{
+
+  public:
+  	G4FTFParameters(const G4ParticleDefinition * , G4double theA, 
+                                                       G4double theZ, 
+                                                       G4double s);
+
+	~G4FTFParameters();
+
+// --------- Set geometrical parameteres -----------------------------
+        void SethNcmsEnergy(const G4double s);
+        void SetTotalCrossSection(const G4double Xtotal);
+        void SetElastisCrossSection(const G4double Xelastic);
+        void SetInelasticCrossSection(const G4double Xinelastic);
+        void SetProbabilityOfElasticScatt(const G4double Xtotal, const G4double Xelastic);
+        void SetProbabilityOfElasticScatt(const G4double aValue);
+
+        void SetRadiusOfHNinteractions2(const G4double Radius2);
+        void SetSlope(const G4double Slope);
+        void SetGamma0(const G4double Gamma0);
+
+        G4double GammaElastic(const G4double impactsquare) 
+        {return (FTFGamma0 * std::exp(-FTFSlope * impactsquare));};
+
+// --------- Set parameters of elastic scattering --------------------
+        void SetAvaragePt2ofElasticScattering(const G4double aPt2);
+
+// --------- Set parameters of excitations ---------------------------
+        void SetProjMinDiffMass(const G4double aValue); // Uzhi 19.04.08
+        void SetProjMinNonDiffMass(const G4double aValue);
+        void SetProbabilityOfProjDiff(const G4double aValue);
+
+        void SetTarMinDiffMass(const G4double aValue);  // Uzhi 19.04.08
+        void SetTarMinNonDiffMass(const G4double aValue);
+        void SetProbabilityOfTarDiff(const G4double aValue);
+
+        void SetAveragePt2(const G4double aValue);
+
+   // Perevod mass*GeV Pt2*GeV*GeV
+
+// --------- Get geometrical parameteres -----------------------------
+	G4double GetTotalCrossSection();
+	G4double GetElasticCrossSection();
+	G4double GetInelasticCrossSection();
+        G4double GetProbabilityOfElasticScatt();
+
+        G4double GetSlope();
+
+	G4double GetProbabilityOfInteraction(const G4double impactsquare);
+	G4double GetInelasticProbability(const G4double impactsquare);
+
+// --------- Get parameters of elastic scattering --------------------
+        G4double GetAvaragePt2ofElasticScattering();
+
+// --------- Get parameters of excitations ---------------------------
+        G4double GetProjMinDiffMass(); // Uzhi 19.04.08
+        G4double GetProjMinNonDiffMass();
+        G4double GetProbabilityOfProjDiff();
+
+        G4double GetTarMinDiffMass();  // Uzhi 19.04.08
+        G4double GetTarMinNonDiffMass();
+        G4double GetProbabilityOfTarDiff();
+
+
+        G4double GetAveragePt2();
+//  private: 
+
+	G4FTFParameters();
+
+// ------------ Initial energy of hN interactions --------------------	
+        G4double FTFhNcmsEnergy;                // Initial hN CMS energy
+
+// ------------ Geometrical parameteres ------------------------------
+        G4double FTFXtotal;                     // Total X in mb
+        G4double FTFXelastic;                   // Elastic X in mb
+        G4double FTFXinelastic;                 // Inelastic X in mb
+        G4double ProbabilityOfElasticScatt;     // Xel/Xtot
+        G4double RadiusOfHNinteractions2;       // Xtot/pi, in fn^2
+        G4double FTFSlope;                      // in fm^-1
+        G4double AvaragePt2ofElasticScattering; // in MeV^2
+        G4double FTFGamma0;
+
+// --------- Parameters of excitations -------------------------------
+        G4double ProjMinDiffMass; // Uzhi 19.04.08
+        G4double ProjMinNonDiffMass;
+        G4double ProbabilityOfProjDiff;
+
+        G4double TarMinDiffMass;  
+        G4double TarMinNonDiffMass;
+        G4double ProbabilityOfTarDiff;
+
+        G4double AveragePt2;
+};
+
+// --------------------------------------------------------------------
+inline  void G4FTFParameters::SethNcmsEnergy(const G4double s)
+             {FTFhNcmsEnergy = s;}
+
+// --------- Set geometrical parameteres ------------------------------
+inline  void G4FTFParameters::SetTotalCrossSection(const G4double Xtotal)
+             {FTFXtotal = Xtotal;}
+
+inline  void G4FTFParameters::SetElastisCrossSection(const G4double Xelastic)
+             {FTFXelastic = Xelastic;}
+
+inline  void G4FTFParameters::SetInelasticCrossSection(const G4double Xinelastic)
+             {FTFXinelastic = Xinelastic;}
+
+inline  void G4FTFParameters::SetProbabilityOfElasticScatt(const G4double Xtotal, 
+                                                           const G4double Xelastic)
+                 { 
+                  if(Xtotal==0.) {ProbabilityOfElasticScatt = 0.;}
+                  else           {ProbabilityOfElasticScatt = Xelastic/Xtotal;};
+                 } 
+
+inline  void G4FTFParameters::SetProbabilityOfElasticScatt(const G4double aValue)
+             {ProbabilityOfElasticScatt = aValue;}
+
+inline  void G4FTFParameters::SetRadiusOfHNinteractions2(const G4double Radius2)
+             {RadiusOfHNinteractions2 = Radius2;}
+
+inline  void G4FTFParameters::SetSlope(const G4double Slope)
+             {FTFSlope = 12.84/Slope;} // Slope is in GeV^-2, FTFSlope in fm^-2
+
+inline  void G4FTFParameters::SetGamma0(const G4double Gamma0)
+             {FTFGamma0 = Gamma0;}
+
+// --------- Set parameters of elastic scattering ---------------------
+inline  void G4FTFParameters::SetAvaragePt2ofElasticScattering(const G4double aPt2)
+                 {
+//G4cout<<"Pt2 El "<<aPt2<<" "<<std::sqrt(aPt2)<<G4endl;
+//G4int Uzhi; G4cin>>Uzhi;
+AvaragePt2ofElasticScattering = aPt2;}
+
+// --------- Set parameters of excitations ----------------------------
+inline  void G4FTFParameters::SetProjMinDiffMass(const G4double aValue)   // Uzhi 19.04.08
+             {ProjMinDiffMass = aValue*GeV;}
+inline  void G4FTFParameters::SetProjMinNonDiffMass(const G4double aValue)
+             {ProjMinNonDiffMass = aValue*GeV;}
+inline  void G4FTFParameters::SetProbabilityOfProjDiff(const G4double aValue)
+             {ProbabilityOfProjDiff = aValue;}
+
+inline  void G4FTFParameters::SetTarMinDiffMass(const G4double aValue)  // Uzhi 19.04.08
+             {TarMinDiffMass = aValue*GeV;}
+inline  void G4FTFParameters::SetTarMinNonDiffMass(const G4double aValue)
+             {TarMinNonDiffMass = aValue*GeV;}
+inline  void G4FTFParameters::SetProbabilityOfTarDiff(const G4double aValue)
+             {ProbabilityOfTarDiff = aValue;}
+
+inline  void G4FTFParameters::SetAveragePt2(const G4double aValue)
+             {AveragePt2 = aValue*GeV*GeV;}
+
+// --------- Get geometrical parameteres ------------------------------
+inline  G4double G4FTFParameters::GetTotalCrossSection()     {return FTFXtotal;}
+inline  G4double G4FTFParameters::GetElasticCrossSection()   {return FTFXelastic;}
+inline  G4double G4FTFParameters::GetInelasticCrossSection() {return FTFXinelastic;}
+
+inline  G4double G4FTFParameters::GetSlope()                 {return FTFSlope;}
+
+inline  G4double G4FTFParameters::GetProbabilityOfInteraction(const G4double impactsquare)
+                 {
+                  if(RadiusOfHNinteractions2 > impactsquare) {return 1.;}
+                  else                                       {return 0.;}
+                 } 
+
+inline  G4double G4FTFParameters::GetProbabilityOfElasticScatt()
+                 {return ProbabilityOfElasticScatt;}
+
+inline  G4double G4FTFParameters::GetInelasticProbability( const G4double impactsquare)
+        {
+         G4double Gamma = GammaElastic(impactsquare);
+         return 2 * Gamma - Gamma *Gamma;
+        }
+
+// --------- Get parameters of elastic scattering ---------------------
+inline  G4double G4FTFParameters::GetAvaragePt2ofElasticScattering()
+                 {return AvaragePt2ofElasticScattering;}
+
+// --------- Get parameters of excitations ---------------------------
+inline  G4double G4FTFParameters::GetProjMinDiffMass()        {return ProjMinDiffMass;}
+inline  G4double G4FTFParameters::GetProjMinNonDiffMass()     {return ProjMinNonDiffMass;}
+inline  G4double G4FTFParameters::GetProbabilityOfProjDiff()  {return ProbabilityOfProjDiff;} 
+
+inline  G4double G4FTFParameters::GetTarMinDiffMass()         {return TarMinDiffMass;}
+inline  G4double G4FTFParameters::GetTarMinNonDiffMass()      {return TarMinNonDiffMass;}
+inline  G4double G4FTFParameters::GetProbabilityOfTarDiff()   {return ProbabilityOfTarDiff;}
+
+inline  G4double G4FTFParameters::GetAveragePt2()             {return AveragePt2;}
+
+#endif
Index: trunk/source/processes/hadronic/models/rpg/include/G4RPGNucleonInelastic.hh
===================================================================
--- trunk/source/processes/hadronic/models/rpg/include/G4RPGNucleonInelastic.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/rpg/include/G4RPGNucleonInelastic.hh	(revision 967)
@@ -0,0 +1,104 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: G4RPGNucleonInelastic.hh,v 1.1 2008/01/04 23:27:45 dennis Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
+//
+// Author: D. H. Wright
+// Date:   19 December 2007
+//
+
+#ifndef G4RPGNucleonInelastic_h
+#define G4RPGNucleonInelastic_h 1
+ 
+// Class Description:
+// Partial cross sections, multiplicities and final state particle types 
+// required for proton and neutron inelastic scattering in the 
+// re-parameterized Gheisha model
+
+#include "G4RPGInelastic.hh"
+ 
+ class G4RPGNucleonInelastic : public G4RPGInelastic
+ {
+ public:
+    
+   G4RPGNucleonInelastic(const G4String& modelName = "RPGNucleonInelastic");
+    
+   ~G4RPGNucleonInelastic() { }
+    
+ protected:
+
+   G4int GetMultiplicityT1(G4double KE) const;
+   G4int GetMultiplicityT0(G4double KE) const;
+
+   std::vector<G4int>
+   GetFSPartTypesForT1(G4int mult, G4double KE, G4int tindex) const;
+   std::vector<G4int>
+   GetFSPartTypesForT0(G4int mult, G4double KE) const;
+
+   std::vector<G4int> GetFSPartTypesForPP(G4int mult, G4double KE) const
+   {return GetFSPartTypesForT1(mult, KE, 0); }
+
+   std::vector<G4int> GetFSPartTypesForNN(G4int mult, G4double KE) const
+   {return GetFSPartTypesForT1(mult, KE, 1); }
+
+   std::vector<G4int> GetFSPartTypesForPN(G4int mult, G4double KE) const
+   {return GetFSPartTypesForT0(mult, KE); }
+
+   std::vector<G4int> GetFSPartTypesForNP(G4int mult, G4double KE) const
+   {return GetFSPartTypesForT0(mult, KE); }
+
+
+   static const G4int pPindex[8][2];
+   static const G4int pNindex[8][2];
+
+   static const G4int T1_2bfs[2][1][2];
+   static const G4int T1_3bfs[2][6][3];
+   static const G4int T1_4bfs[2][18][4];
+   static const G4int T1_5bfs[2][32][5];
+   static const G4int T1_6bfs[2][7][6];
+   static const G4int T1_7bfs[2][8][7];
+   static const G4int T1_8bfs[2][10][8];
+   static const G4int T1_9bfs[2][11][9];
+
+   static const G4int T0_2bfs[1][2];
+   static const G4int T0_3bfs[9][3];
+   static const G4int T0_4bfs[22][4];
+   static const G4int T0_5bfs[38][5];
+   static const G4int T0_6bfs[7][6];
+   static const G4int T0_7bfs[9][7];
+   static const G4int T0_8bfs[10][8];
+   static const G4int T0_9bfs[12][9];
+
+   static G4double pPtot[30];
+   static G4double pNtot[30];
+   static G4double t1_dSigma_dMult[8][30];
+   static G4double t0_dSigma_dMult[8][30];
+
+   static const G4float pPCrossSections[93][30];
+   static const G4float pNCrossSections[108][30];
+
+ };
+#endif
Index: trunk/source/processes/hadronic/models/rpg/include/G4RPGPionInelastic.hh
===================================================================
--- trunk/source/processes/hadronic/models/rpg/include/G4RPGPionInelastic.hh	(revision 967)
+++ trunk/source/processes/hadronic/models/rpg/include/G4RPGPionInelastic.hh	(revision 967)
@@ -0,0 +1,103 @@
+//
+// ********************************************************************
+// * License and Disclaimer                                           *
+// *                                                                  *
+// * The  Geant4 software  is  copyright of the Copyright Holders  of *
+// * the Geant4 Collaboration.  It is provided  under  the terms  and *
+// * conditions of the Geant4 Software License,  included in the file *
+// * LICENSE and available at  http://cern.ch/geant4/license .  These *
+// * include a list of copyright holders.                             *
+// *                                                                  *
+// * Neither the authors of this software system, nor their employing *
+// * institutes,nor the agencies providing financial support for this *
+// * work  make  any representation or  warranty, express or implied, *
+// * regarding  this  software system or assume any liability for its *
+// * use.  Please see the license in the file  LICENSE  and URL above *
+// * for the full disclaimer and the limitation of liability.         *
+// *                                                                  *
+// * This  code  implementation is the result of  the  scientific and *
+// * technical work of the GEANT4 collaboration.                      *
+// * By using,  copying,  modifying or  distributing the software (or *
+// * any work based  on the software)  you  agree  to acknowledge its *
+// * use  in  resulting  scientific  publications,  and indicate your *
+// * acceptance of all terms of the Geant4 Software license.          *
+// ********************************************************************
+//
+// $Id: G4RPGPionInelastic.hh,v 1.1 2008/01/05 00:14:03 dennis Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
+//
+// Author: D. H. Wright
+// Date:   15 August 2007
+//
+
+#ifndef G4RPGPionInelastic_h
+#define G4RPGPionInelastic_h 1
+ 
+// Class Description:
+// Partial cross sections, multiplicities and final state particle types 
+// required for pi+ and pi- inelastic scattering in the re-parameterized 
+// Gheisha model
+
+#include "G4RPGInelastic.hh"
+ 
+ class G4RPGPionInelastic : public G4RPGInelastic
+ {
+ public:
+    
+   G4RPGPionInelastic(const G4String& modelName = "RPGPionInelastic");
+    
+   ~G4RPGPionInelastic() { }
+    
+ protected:
+
+   G4int GetMultiplicityT12(G4double KE) const;
+   G4int GetMultiplicityT32(G4double KE) const;
+
+   std::vector<G4int>
+   GetFSPartTypesForT32(G4int mult, G4double KE, G4int tindex) const;
+   std::vector<G4int>
+   GetFSPartTypesForT12(G4int mult, G4double KE, G4int tindex) const;
+
+   std::vector<G4int> GetFSPartTypesForPipP(G4int mult, G4double KE) const
+     {return GetFSPartTypesForT32(mult, KE, 0); }
+
+   std::vector<G4int> GetFSPartTypesForPimN(G4int mult, G4double KE) const
+     {return GetFSPartTypesForT32(mult, KE, 1); }
+
+   std::vector<G4int> GetFSPartTypesForPipN(G4int mult, G4double KE) const
+     {return GetFSPartTypesForT12(mult, KE, 1); }
+
+   std::vector<G4int> GetFSPartTypesForPimP(G4int mult, G4double KE) const
+     {return GetFSPartTypesForT12(mult, KE, 0); }
+
+   static const G4int pipPindex[8][2];
+   static const G4int pimPindex[8][2];
+
+   static const G4int T32_2bfs[2][2][2];
+   static const G4int T32_3bfs[2][7][3];
+   static const G4int T32_4bfs[2][15][4];
+   static const G4int T32_5bfs[2][24][5];
+   static const G4int T32_6bfs[2][5][6];
+   static const G4int T32_7bfs[2][6][7];
+   static const G4int T32_8bfs[2][7][8];
+   static const G4int T32_9bfs[2][8][9];
+
+   static const G4int T12_2bfs[2][5][2];
+   static const G4int T12_3bfs[2][13][3];
+   static const G4int T12_4bfs[2][22][4];
+   static const G4int T12_5bfs[2][31][5];
+   static const G4int T12_6bfs[2][6][6];
+   static const G4int T12_7bfs[2][7][7];
+   static const G4int T12_8bfs[2][8][8];
+   static const G4int T12_9bfs[2][9][9];
+
+   static G4double pipPtot[30];
+   static G4double pimPtot[30];
+   static G4double t12_dSigma_dMult[8][30];
+   static G4double t32_dSigma_dMult[8][30];
+
+   static const G4float pipPCrossSections[74][30];
+   static const G4float pimPCrossSections[101][30];
+
+ };
+#endif
