Index: trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeMomentum.hh
===================================================================
--- trunk/source/processes/hadronic/models/cascade/cascade/include/G4CascadeMomentum.hh	(revision 1350)
+++ 	(revision )
@@ -1,106 +1,0 @@
-//
-// ********************************************************************
-// * 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.5 2010/03/16 22:10:26 mkelsey Exp $
-// GEANT4 tag $Name: geant4-09-04-beta-01 $
-//
-// 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.
-//
-// NOTE:  The Bertini code does not pass legitimate four-vectors when
-//	  creating new particles; the new getLV() function takes an
-//	  optional mass argument (in Bertini units [GeV]) so that a
-//	  valid G4LorentzVector can be returned.
-//
-// Author: Peter Elmer, Princeton University                  7-Aug-2008
-// Update: Michael Kelsey, SLAC (support G4LorentzVector)     8-Jan-2010
-// --------------------------------------------------------------------
-#ifndef G4CASCADE_MOMENTUM_HH
-#define G4CASCADE_MOMENTUM_HH
-
-#include <cassert>
-
-#include "G4Types.hh"
-#include "G4LorentzVector.hh"
-#include "G4ThreeVector.hh"
-
-class G4CascadeMomentum
-{
-  public:
-    G4CascadeMomentum() {for (int i=0; i<4; ++i) data_[i]=0.0;}
-
-    // WARNING!  This metric is (t,x,y,z), DIFFERENT FROM HepLV!
-    G4CascadeMomentum(const G4LorentzVector& lv) {
-      setLV(lv);
-    }
-
-    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];
-    }
-
-    operator const G4LorentzVector&() const {
-      return getLV();			// Casting can't do mass repairs
-    }
-
-    const G4LorentzVector& getLV(G4double mass=-1.) const {
-      if (mass>=0.) lv.setVectM(get3V(),mass);		// Force input mass!
-      else lv.set(data_[1],data_[2],data_[3],data_[0]);
-      
-      return lv;
-    }
-
-    G4ThreeVector get3V() const {
-      return getLV().vect();
-    }
-
-    void setLV(const G4LorentzVector& lv) {
-      data_[0] = lv.t();		// NOTE DIFFERENT METRIC CONVENTION!
-      data_[1] = lv.x();
-      data_[2] = lv.y();
-      data_[3] = lv.z();
-    }
-
-    G4CascadeMomentum& operator=(const G4LorentzVector& lv) {
-      setLV(lv);
-      return *this;
-    }
-
-  private:
-    G4double data_[4];
-    mutable G4LorentzVector lv;		// Buffer for conversion operations
-};
-
-#endif
-
Index: trunk/source/processes/hadronic/models/cascade/cascade/include/G4PreCompoundCascadeInterface.hh
===================================================================
--- trunk/source/processes/hadronic/models/cascade/cascade/include/G4PreCompoundCascadeInterface.hh	(revision 1350)
+++ 	(revision )
@@ -1,72 +1,0 @@
-//
-// ********************************************************************
-// * 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: G4PreCompoundCascadeInterface.hh,v 1.3 2010/05/21 18:07:30 mkelsey Exp $
-// Defines an interface to Bertini (BERT) INC with exitons. Evaporation is NOT included
-//
-// 20100520 M. Kelsey -- Add missing name string to ctor, follow code changes from
-//		G4CascadeInterface.
-
-#ifndef G4PRECOMPOUNDCASCADEINTERFACE_H
-#define G4PRECOMPOUNDCASCADEINTERFACE_H 1
-
-#include "G4Nucleon.hh"
-#include "G4Nucleus.hh"
-#include "G4VIntraNuclearTransportModel.hh"
-#include "G4KineticTrackVector.hh"
-#include "G4FragmentVector.hh"
-#include "G4ParticleChange.hh"
-#include "G4ReactionProductVector.hh"
-#include "G4ReactionProduct.hh"
-
-class G4PreCompoundCascadeInterface : public G4VIntraNuclearTransportModel {
-
-public:
-  G4PreCompoundCascadeInterface(const G4String& nam="PreCompound Bertini Cascade");
-
-  ~G4PreCompoundCascadeInterface(){
-  }
-
-  G4ReactionProductVector* Propagate(G4KineticTrackVector* theSecondaries, G4V3DNucleus* theNucleus);
-
-  G4HadFinalState* ApplyYourself(const G4HadProjectile& aTrack, G4Nucleus& theNucleus); 
-
-private:
-  G4int operator==(const G4PreCompoundCascadeInterface& right) const {
-    return (this == &right);
-  }
-
-  G4int operator!=(const G4PreCompoundCascadeInterface& right) const {
-    return (this != &right);
-  }
-
-  G4int verboseLevel;
-
-private:
-  G4HadFinalState theResult;  
-  
-};
-
-#endif // G4PRECOMPOUNDCASCADEINTERFACE_H
Index: trunk/source/processes/hadronic/models/cascade/cascade/include/G4PreCompoundInuclCollider.hh
===================================================================
--- trunk/source/processes/hadronic/models/cascade/cascade/include/G4PreCompoundInuclCollider.hh	(revision 1350)
+++ 	(revision )
@@ -1,63 +1,0 @@
-//
-// ********************************************************************
-// * 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: G4PreCompoundInuclCollider.hh,v 1.7 2010/06/25 09:43:50 gunter Exp $
-// GEANT4 tag: $Name: geant4-09-04-beta-01 $
-//
-// 20100315  M. Kelsey -- Remove "using" directive and unneeded #includes.
-// 20100413  M. Kelsey -- Pass G4CollisionOutput by ref to ::collide()
-// 20100517  M. Kelsey -- Inherit from common base class, make other colliders
-//		simple data members
-
-#ifndef G4PRECOMPOUNDINUCL_COLLIDER_HH
-#define G4PRECOMPOUNDINUCL_COLLIDER_HH
- 
-#include "G4VCascadeCollider.hh"
-
-class G4BigBanger;
-class G4CollisionOutput;
-class G4ElementaryParticleCollider;
-class G4IntraNucleiCascader;
-class G4InuclParticle;
-class G4NonEquilibriumEvaporator;
-
-class G4PreCompoundInuclCollider : public G4VCascadeCollider {
-public:
-  G4PreCompoundInuclCollider();
-  virtual ~G4PreCompoundInuclCollider();
-  
-  void collide(G4InuclParticle* bullet, G4InuclParticle* target,
-	       G4CollisionOutput& globalOutput);
-
-private: 
-  G4ElementaryParticleCollider* theElementaryParticleCollider;
-  G4IntraNucleiCascader* theIntraNucleiCascader;
-  G4NonEquilibriumEvaporator* theNonEquilibriumEvaporator;
-  G4BigBanger* theBigBanger;
-};        
-
-#endif /* G4PRECOMPOUNDINUCL_COLLIDER_HH */
-
-
Index: trunk/source/processes/hadronic/models/cascade/cascade/src/G4PreCompoundCascadeInterface.cc
===================================================================
--- trunk/source/processes/hadronic/models/cascade/cascade/src/G4PreCompoundCascadeInterface.cc	(revision 1350)
+++ 	(revision )
@@ -1,318 +1,0 @@
-//
-// ********************************************************************
-// * 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: G4PreCompoundCascadeInterface.cc,v 1.13.2.1 2010/06/25 09:45:00 gunter Exp $
-// Geant4 tag: $Name: geant4-09-04-beta-01 $
-//
-// 20100114  M. Kelsey -- Remove G4CascadeMomentum, use G4LorentzVector directly
-// 20100413  M. Kelsey -- Pass G4CollisionOutput by ref to ::collide()
-// 20100414  M. Kelsey -- Check for K0L/K0S before using G4InuclElemPart::type
-// 20100419  M. Kelsey -- Access G4CollisionOutput lists by const-ref, and 
-//		const_iterator
-// 20100428  M. Kelsey -- Use G4InuclParticleNames enum
-// 20100429  M. Kelsey -- Change "case gamma:" to "case photon:"
-// 20100517  M. Kelsey -- Follow new ctors for G4*Collider family.
-// 20100520  M. Kelsey -- Add missing name string to ctor, follow code changes
-//		from G4CascadeInterface.
-
-#include "G4PreCompoundCascadeInterface.hh"
-#include "globals.hh"
-#include "G4CollisionOutput.hh"
-#include "G4DynamicParticle.hh"
-#include "G4InuclElementaryParticle.hh"
-#include "G4InuclNuclei.hh"
-#include "G4InuclParticle.hh"
-#include "G4InuclParticleNames.hh"
-#include "G4KaonZeroShort.hh"
-#include "G4KaonZeroLong.hh"
-#include "G4LorentzRotation.hh"
-#include "G4Nucleus.hh"
-#include "G4ParticleDefinition.hh"
-#include "G4PreCompoundInuclCollider.hh"
-#include "G4Track.hh"
-#include "G4V3DNucleus.hh"
-
-using namespace G4InuclParticleNames;
-
-
-typedef std::vector<G4InuclElementaryParticle>::const_iterator particleIterator;
-typedef std::vector<G4InuclNuclei>::const_iterator nucleiIterator;
-
-G4PreCompoundCascadeInterface::G4PreCompoundCascadeInterface(const G4String& nam)
-  :G4VIntraNuclearTransportModel(nam), verboseLevel(0)  {
-
-  if (verboseLevel > 3) {
-    G4cout << " >>> G4PreCompoundCascadeInterface::G4PreCompoundCascadeInterface" << G4endl;
-  }
-}
-   
-G4ReactionProductVector* G4PreCompoundCascadeInterface::Propagate(G4KineticTrackVector* , 
-								  G4V3DNucleus* ) {
-  return 0;
-}
-
-// #define debug_G4PreCompoundCascadeInterface
-
-G4HadFinalState* G4PreCompoundCascadeInterface::ApplyYourself(const G4HadProjectile& aTrack, 
-							      G4Nucleus& theNucleus) {
-#ifdef debug_G4PreCompoundCascadeInterface
-  static G4int counter(0);
-  counter++;
-  G4cerr << "Reaction number "<< counter << " "<<aTrack.GetDynamicParticle()->GetDefinition()->GetParticleName()<<" "<< aTrack.GetDynamicParticle()->GetKineticEnergy()<<G4endl;
-#endif
-
-  theResult.Clear();
-
-  if (verboseLevel > 3) {
-    G4cout << " >>> G4PreCompoundCascadeInterface::ApplyYourself" << G4endl;
-  };
-
-  G4double eInit     = 0.0;
-  G4double eTot      = 0.0;
-  G4double sumBaryon = 0.0;
-  G4double sumEnergy = 0.0;
-
-  // Make conversion between native Geant4 and Bertini cascade classes.
-  // NOTE: Geant4 units are MeV = 1 and GeV = 1000. Cascade code by default use GeV = 1.
-
-  G4int bulletType;
-  if (aTrack.GetDefinition() == G4KaonZeroLong::KaonZeroLong() ||
-      aTrack.GetDefinition() == G4KaonZeroShort::KaonZeroShort() )
-    bulletType = (G4UniformRand() > 0.5) ? kaonZero : kaonZeroBar;
-  else 
-    bulletType = G4InuclElementaryParticle::type(aTrack.GetDefinition());
-
-  // Code momentum and energy.
-  G4LorentzVector projectileMomentum = aTrack.Get4Momentum();
-  G4LorentzRotation toZ;
-  toZ.rotateZ(-projectileMomentum.phi());
-  toZ.rotateY(-projectileMomentum.theta());
-  G4LorentzRotation toLabFrame = toZ.inverse();
-
-  G4LorentzVector momentumBullet(0., 0., aTrack.GetTotalMomentum()/GeV,
-				 aTrack.GetTotalEnergy()/GeV);
-
-  G4InuclElementaryParticle *  bullet =
-    new G4InuclElementaryParticle(momentumBullet, bulletType); 
-
-  sumEnergy = bullet->getKineticEnergy(); // In GeV 
-  sumBaryon += bullet->baryon();
-
-  // Set target
-  G4InuclNuclei*   target  = 0;
-  G4InuclParticle* targetH = 0;
-
-  G4double theNucleusA = theNucleus.GetN();
-
-  if ( !(G4int(theNucleusA) == 1) ) {
-    target  = new G4InuclNuclei(theNucleusA, theNucleus.GetZ());
-    eInit = bullet->getEnergy() + target->getEnergy();
-
-    sumBaryon += theNucleusA;
-
-    if (verboseLevel > 2) {
-      G4cout << "Bullet:  " << G4endl;  
-      bullet->printParticle();
-    }
-    if (verboseLevel > 2) {
-      G4cout << "Target:  " << G4endl;  
-      target->printParticle();
-    }
-  }
-
-  G4CollisionOutput output;
-
-  // Colliders initialisation
-  G4PreCompoundInuclCollider*  collider = new G4PreCompoundInuclCollider;
-
-  G4int  maxTries = 10; // maximum tries for inelastic collision to avoid infinite loop
-  G4int  nTries   = 0;  // try counter
-
-  if (G4int(theNucleusA) == 1) { // special treatment for target H(1,1) (proton)
-
-    targetH = new G4InuclElementaryParticle(1);
-
-    G4float cutElastic[32];
-
-    cutElastic[proton   ]   = 1.0; // 1 GeV
-    cutElastic[neutron  ]   = 1.0;
-    cutElastic[lambda]      = 1.0;
-    cutElastic[sigmaPlus]   = 1.0;
-    cutElastic[sigmaZero]   = 1.0;
-    cutElastic[sigmaMinus]  = 1.0;
-    cutElastic[xiZero]      = 1.0;
-    cutElastic[xiMinus]     = 1.0;
-
-    cutElastic[pionPlus ]   = 0.6; // 0.6 GeV
-
-    cutElastic[kaonPlus ]   = 0.5; // 0.5 GeV
-    cutElastic[kaonMinus]   = 0.5;
-    cutElastic[kaonZero]    = 0.5;
-    cutElastic[kaonZeroBar] = 0.5;
-
-    cutElastic[pionMinus]   = 0.2; // 0.2 GeV
-    cutElastic[pionZero ]   = 0.2;
-
-
-    if (momentumBullet.z() > cutElastic[bulletType]) { // inelastic collision possible
-
-      do {   // we try to create inelastic interaction
-	output.reset();
-	collider->collide(bullet, targetH, output);
-	nTries++;
-      } while(
-	      (nTries < maxTries) &&
-	      (output.getOutgoingParticles().size() == 2 && // elastic: bullet + p = H(1,1) coming out
-	       (output.getOutgoingParticles().begin()->type() == bulletType || output.getOutgoingParticles().begin()->type() == proton)
-	       )
-	      );
-
-    } else { // only elastic collision is energetically possible
-      collider->collide(bullet, targetH, output);
-    }
-
-    sumBaryon += 1;
-
-    eInit = bullet->getEnergy() + target->getEnergy();
-
-    if (verboseLevel > 2) {
-      G4cout << "Target:  " << G4endl;
-      targetH->printParticle();
-    }
-
-  } else {  // treat all other targets excepet H(1,1)
-
-    do  // we try to create inelastic interaction
-      {
-	output.reset();
-	collider->collide(bullet, target, output);
-	nTries++;
-      } while (
-	       (nTries < maxTries) &&
-	       output.getOutgoingParticles().size() == 1 &&     // we retry when elastic collision happened
-               output.getNucleiFragments().size() == 1 &&            
-	       output.getOutgoingParticles().begin()->type() == bullet->type() &&
-	       output.getNucleiFragments().begin()->getA() == target->getA() && 
-	       output.getNucleiFragments().begin()->getZ() == target->getZ() 
-	       );
-  }
- 
-  if (verboseLevel > 1) {
-      G4cout << " Cascade output: " << G4endl;
-      output.printCollisionOutput();
-  }
-  
-  // Rotate event to put Z axis along original projectile direction
-  output.rotateEvent(toLabFrame);
-
-  // Convert cascade data to use hadronics interface
-  const std::vector<G4InuclNuclei>& nucleiFragments = output.getNucleiFragments();
-  const std::vector<G4InuclElementaryParticle>& particles = output.getOutgoingParticles();
-
-  theResult.SetStatusChange(stopAndKill);
-
-  // Get outcoming particles
-  G4DynamicParticle* cascadeParticle = 0;
-  if (!particles.empty()) { 
-    particleIterator ipart = particles.begin();
-    for (; ipart != particles.end(); ipart++) {
-      G4int outgoingType = ipart->type();
-
-      eTot += ipart->getEnergy();
-      sumBaryon -= ipart->baryon();
-      sumEnergy -= ipart->getKineticEnergy();
-
-      if (!ipart->valid() || ipart->quasi_deutron()) {
-        G4cerr << " ERROR: G4PreCompoundCascadeInterface::Propagate incompatible"
-	       << " particle type " << ipart->type() << G4endl;
-	continue;
-      }
-
-      // Copy local G4DynPart to public output (handle kaon mixing specially)
-      if (outgoingType == kaonZero || outgoingType == kaonZeroBar) {
-	G4ThreeVector momDir = ipart->getMomentum().vect().unit();
-	G4double ekin = ipart->getKineticEnergy();
-
-	G4ParticleDefinition* pd = G4KaonZeroShort::Definition();
-	if (G4UniformRand() > 0.5) pd = G4KaonZeroLong::Definition();
-
-	cascadeParticle = new G4DynamicParticle(pd, momDir, ekin);
-      } else {
-	cascadeParticle = new G4DynamicParticle(ipart->getDynamicParticle());
-      }
- 
-      theResult.AddSecondary(cascadeParticle); 
-    }
-  }
-
-  // get nuclei fragments
-  G4DynamicParticle * aFragment = 0;
-  if (!nucleiFragments.empty()) { 
-    nucleiIterator ifrag = nucleiFragments.begin();
-    for (; ifrag != nucleiFragments.end(); ifrag++) {
-      eTot += ifrag->getEnergy();
-      sumBaryon -= ifrag->getA();
-      sumEnergy -= ifrag->getKineticEnergy();
-
-      if (verboseLevel > 2) {
-	G4cout << " Nuclei fragment: " << G4endl;
-	ifrag->printParticle();
-      }
-
-      // Copy local G4DynPart to public output 
-      aFragment =  new G4DynamicParticle(ifrag->getDynamicParticle());
-      theResult.AddSecondary(aFragment); 
-    }
-  }
-
-  // Report violations of energy, baryon conservation
-  if (verboseLevel > 2) {
-    if (sumBaryon != 0) {
-      G4cout << "ERROR: no baryon number conservation, sum of baryons = "
-	     << sumBaryon << G4endl;
-    }
-
-    if (sumEnergy > 0.01 ) {
-      G4cout << "Kinetic energy conservation violated by "
-	     << sumEnergy << " GeV" << G4endl;
-    }
-     
-    G4cout << "Total energy conservation at level ~"
-	   << (eInit - eTot) * GeV << " MeV" << G4endl;
-    
-    if (sumEnergy < -5.0e-5 ) { // 0.05 MeV
-      G4cout << "FATAL ERROR: energy created  "
-	     << sumEnergy * GeV << " MeV" << G4endl;
-    }
-  }
-
-  delete bullet;
-  delete collider;
-
-  if(target != 0) delete target;
-  if(targetH != 0) delete targetH;
-
-  return &theResult;
-  }
Index: trunk/source/processes/hadronic/models/cascade/cascade/src/G4PreCompoundInuclCollider.cc
===================================================================
--- trunk/source/processes/hadronic/models/cascade/cascade/src/G4PreCompoundInuclCollider.cc	(revision 1350)
+++ 	(revision )
@@ -1,218 +1,0 @@
-//
-// ********************************************************************
-// * 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: G4PreCompoundInuclCollider.cc,v 1.10 2010/06/25 09:45:02 gunter Exp $
-// Geant4 tag: $Name: geant4-09-04-beta-01 $
-//
-// 20100114  M. Kelsey -- Remove G4CascadeMomentum, use G4LorentzVector directly
-// 20100309  M. Kelsey -- Eliminate some unnecessary std::pow()
-// 20100413  M. Kelsey -- Pass G4CollisionOutput by ref to ::collide()
-// 20100429  M. Kelsey -- Change "photon()" to "isPhoton()"
-// 20100517  M. Kelsey -- Inherit from common base class, make other colliders
-//		simple data members, consolidate code
-
-#include "G4PreCompoundInuclCollider.hh"
-#include "G4BigBanger.hh"
-#include "G4CollisionOutput.hh"
-#include "G4ElementaryParticleCollider.hh"
-#include "G4IntraNucleiCascader.hh"
-#include "G4InuclElementaryParticle.hh"
-#include "G4LorentzConvertor.hh"
-#include "G4NonEquilibriumEvaporator.hh"
-
-	 
-G4PreCompoundInuclCollider::G4PreCompoundInuclCollider()
-  : G4VCascadeCollider("G4PreCompoundInuclCollider"),
-    theElementaryParticleCollider(new G4ElementaryParticleCollider),
-    theIntraNucleiCascader(new G4IntraNucleiCascader),
-    theNonEquilibriumEvaporator(new G4NonEquilibriumEvaporator),
-    theBigBanger(new G4BigBanger) {}
-
-G4PreCompoundInuclCollider::~G4PreCompoundInuclCollider() {
-  delete theElementaryParticleCollider;
-  delete theIntraNucleiCascader;
-  delete theNonEquilibriumEvaporator;
-  delete theBigBanger;
-}
-
-
-void G4PreCompoundInuclCollider::collide(G4InuclParticle* bullet,
-					 G4InuclParticle* target,
-					 G4CollisionOutput& globalOutput) {
-  if (verboseLevel > 3) {
-    G4cout << " >>> G4PreCompoundInuclCollider::collide" << G4endl;
-  }
-
-  const G4int itry_max = 1000;
-  		     
-  if (useEPCollider(bullet,target)) {
-    if (verboseLevel > 2) {
-      bullet->printParticle();
-      target->printParticle();
-    }
-
-    theElementaryParticleCollider->collide(bullet, target, globalOutput);
-  } else { // needs to call all machinery    	
-    G4LorentzConvertor convertToTargetRestFrame;
-
-    interCase.set(bullet, target);
-     
-    if (interCase.valid()) { // ok
-      G4InuclNuclei* ntarget =
-	dynamic_cast<G4InuclNuclei*>(interCase.getTarget());
-
-      convertToTargetRestFrame.setTarget(ntarget);
-      G4int btype = 0;
-      G4double ab = 0.0;
-      G4double zb = 0.0;
-      G4double at = ntarget->getA();
-      G4double zt = ntarget->getZ();
-       
-      if (interCase.hadNucleus()) { // particle with nuclei
-	G4InuclElementaryParticle* pbullet = 
-	  dynamic_cast<G4InuclElementaryParticle*>(interCase.getBullet());
-         
-	if (pbullet->isPhoton()) {
-	  G4cout << " InuclCollider -> can not collide with photon " << G4endl;
-
-	  globalOutput.trivialise(bullet, target);
-	  return;
-	} else {
-	  convertToTargetRestFrame.setBullet(pbullet);   
-	  btype = pbullet->type();
-	}; 
-
-      } else { // nuclei with nuclei
-	G4InuclNuclei* nbullet = 
-	  dynamic_cast<G4InuclNuclei*>(interCase.getBullet());
-
-	convertToTargetRestFrame.setBullet(nbullet);   
-	ab = nbullet->getA();
-	zb = nbullet->getZ();
-      };
-       	
-      G4double ekin = convertToTargetRestFrame.getKinEnergyInTheTRS();
-
-      if (verboseLevel > 3) {
-	G4cout << " ekin in trs " << ekin << G4endl;
-      }
-
-      if (inelasticInteractionPossible(bullet, target, ekin)) {
-	convertToTargetRestFrame.toTheTargetRestFrame();
-
-	if (verboseLevel > 3) {
-	  G4cout << " degenerated? " << convertToTargetRestFrame.trivial() << G4endl;
-	}
-
-	G4LorentzVector bmom;
-	bmom.setZ(convertToTargetRestFrame.getTRSMomentum());
-
-	G4InuclNuclei ntarget(at, zt);		// Default is at rest
-
-	theIntraNucleiCascader->setInteractionCase(interCase.code());
-	 
-	G4bool bad = true;
-	G4int itry = 0;
-	 
-	G4CollisionOutput TRFoutput;
-	G4CollisionOutput output;
-	while (bad && itry < itry_max) {
-	  itry++;
-
-	  output.reset();	// Clear buffers for this attempt
-	  TRFoutput.reset();
-
-	  if (interCase.hadNucleus()) {
-	    G4InuclElementaryParticle pbullet(bmom, btype);
-
-	    theIntraNucleiCascader->collide(&pbullet, &ntarget, output);
-	  } else {
-	    G4InuclNuclei nbullet(bmom, ab, zb);
-	    theIntraNucleiCascader->collide(&nbullet, &ntarget, output);
-	  };   
-
-	  if (verboseLevel > 3) {
-	    G4cout << " After Cascade " << G4endl;
-	    output.printCollisionOutput();
-	  }
-	  
-	  // the rest, if any
-	  TRFoutput.addOutgoingParticles(output.getOutgoingParticles());
-
-	  if (output.numberOfNucleiFragments() == 1) { // there is smth. after
-	    G4InuclNuclei cascad_rec_nuclei = output.getNucleiFragments()[0];
-	    if (explosion(&cascad_rec_nuclei)) {
-	      if (verboseLevel > 3) {
-		G4cout << " big bang after cascade " << G4endl;
-	      };
-
-	      theBigBanger->collide(0,&cascad_rec_nuclei, TRFoutput);
-	    } else {
-	      output.reset();
-	      theNonEquilibriumEvaporator->collide(0, &cascad_rec_nuclei, output);
-
-	      if (verboseLevel > 3) {
-		G4cout << " After NonEquilibriumEvaporator " << G4endl;
-		output.printCollisionOutput();
-	      };
-
-	      TRFoutput.addOutgoingParticles(output.getOutgoingParticles());  
-	      TRFoutput.addTargetFragments(output.getNucleiFragments());
-	    };
-	  };
-	 
-	  // convert to the LAB       
-	  TRFoutput.boostToLabFrame(convertToTargetRestFrame);
-
-	  globalOutput.addOutgoingParticles(TRFoutput.getOutgoingParticles());
-	  globalOutput.addTargetFragments(TRFoutput.getNucleiFragments());
-	  globalOutput.setOnShell(bullet, target);
-	  if (globalOutput.acceptable()) return;
-
-	  globalOutput.reset();		// Clear and try again
-	};
-
-	if (verboseLevel > 3) {
-	  G4cout << " InuclCollider -> can not generate acceptable inter. after " 
-		 << itry_max << " attempts " << G4endl;
-	}
-      } else {
-	if (verboseLevel > 3) {
-	  G4cout << " InuclCollider -> inelastic interaction is impossible " << G4endl
-		 << " due to the coulomb barirer " << G4endl;
-	}
-      }
-	
-      globalOutput.trivialise(bullet, target);
-      return;
-    } else {
-      if (verboseLevel > 3) {
-	G4cout << " InuclCollider -> inter case " << interCase.code() << G4endl;
-      };
-    };       
-  };
-
-  return;
-}
Index: trunk/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyExact.cc
===================================================================
--- trunk/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyExact.cc	(revision 1350)
+++ 	(revision )
@@ -1,327 +1,0 @@
-//
-// ********************************************************************
-// * 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.          *
-// ********************************************************************
-//
-#include "G4InuclSpecialFunctions.hh"
-
-#include <iostream>
-
-G4double G4InuclSpecialFunctions::bindingEnergyExact(G4double A, 
-						     G4double Z) {
-  G4int verboseLevel = 2;
-
-  if (verboseLevel > 3) {
-    G4cout << " >>> G4InuclSpecialFunctions::bindingEnergyExact" << G4endl;
-  }
-
-  // calculates the nuclei binding energy using experimental data or
-  // asymptotic mass formula if it's impossible to use exact
-
-  // data for precise binding energies
-  const G4double DH[4] = {2.225, 8.482, 5.58, 5.79};
-  const G4double DHE[6] = {7.718, 28.297, 27.41, 29.268, 28.826, 31.36};
-  const G4double DLI[8] = {4.81, 26.33, 31.995, 39.246, 41.279,
-			   45.331, 43.03, 43.13};
-  const G4double DBE[8] = {26.926, 37.602, 56.502, 58.167, 64.979,
-			   65.482, 68.78, 66.08};  
-  const G4double DB[9] = {24.65, 34.739, 56.317, 64.752, 76.208,
-			  79.578, 84.458, 84.86, 87.76};
-  const G4double DC[9] = {39.038, 60.319, 73.444, 92.166,
-			  97.112, 105.289, 106.507, 110.759, 114.96};
-  const G4double DN[9] = {57.86, 74.039, 94.109, 104.663,
-			  115.496, 117.986, 123.87, 126.539, 131.54};
-  const G4double DOX[9] = {75.567, 98.735, 111.954, 127.624,
-			   131.766, 139.813, 143.77, 151.374, 152.57};
-  const G4double DF[8] = {96.37, 111.412, 128.225, 137.375, 147.806, 
-			  154.407, 162.51, 167.707};
-  const G4double DNE[8] = {112.92, 132.146, 143.785, 160.65, 167.412, 
-			   177.778, 182.974, 191.844};
-  const G4double DNA[9] = {131.78, 145.98, 163.081, 174.152, 186.571, 
-			   193.53, 202.541, 208.77,  215.91};
-  const G4double DMG[9] = {134.53, 149.204, 168.571, 181.732, 198.262, 205.594,
-			   216.688, 223.131, 231.635};
-  const G4double DAL[9] = {149.36, 168.71, 183.597, 200.532,
-			   211.901, 224.959, 232.684, 242.12, 247.87}; 
-  const G4double DSI[9] = {172.0, 187.02, 206.056, 219.366,
-			   236.544, 245.018, 255.627, 262.216, 271.431}; 
-  const G4double DP[8] = {205.98, 221.424, 239.292,
-			  250.617, 262.925, 270.861, 280.966, 287.53}; 
-  const G4double DS[10] = {224.71, 243.696, 256.701, 
-			   271.789, 280.432, 291.847, 298.835, 308.727, 
-			   313.04, 321.068};
-  const G4double DCL[10] = {244.12, 258.255, 274.066, 285.574, 298.22, 
-			    306.801, 317.112, 323.222, 331.296, 337.1}; 
-  const G4double DAR[10] = {261.68, 278.748, 291.474, 306.727, 315.515, 
-			    327.354, 333.952, 343.822, 349.921, 359.35}; 
-  const G4double DK[13] = {278.89, 293.031, 308.584, 320.649, 333.734,
-			   341.534, 351.631, 359.165, 368.798, 376.092, 
-			   384.97, 391.857, 400.207}; 
-
-  //  const G4double DCA[3] = {296.23, 313.098, 326.43};
-  const G4double DSC = 326.957;                               
-  G4double DM;
-  G4double AN = A - Z;
-  G4int IZ = G4int(Z + 0.1); 
-  G4int IN = G4int(AN + 0.1); 
-	 
-  switch (IZ) {
-
-  case 1: // H
-
-    if (IN <= 4) {
-      DM = DH[IN - 1];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z); //::: clean repetitive structure
-    };
-
-    break;    
-
-  case 2: // He
-
-    if (IN <= 6) {
-      DM = DHE[IN - 1];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 3: // Li
-
-    if (IN <= 8) {
-      DM = DLI[IN - 1];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 4: // Be
-
-    if (IN <= 9 && IN >= 2) {
-      DM = DBE[IN - 2];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 5: // B
-
-    if (IN <= 10 && IN >= 2) {
-      DM = DB[IN - 2];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 6: // C
-    if (IN <= 11 && IN >= 3) {
-      DM = DC[IN - 3];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 7: // N
-    if (IN <= 12 && IN >= 4) {
-      DM = DN[IN - 4];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 8: // O
-    if (IN <= 13 && IN >= 5) {
-      DM = DOX[IN - 5];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 9: // F
-    if (IN <= 13 && IN >= 6) {
-      DM = DF[IN - 6];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 10: // Ne
-    if (IN <= 14 && IN >= 7) {
-      DM = DNE[IN - 7];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 11: // Na
-    if (IN <= 16 && IN >= 8) {
-      DM = DNA[IN - 8];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 12: // Mg
-
-    if (IN <= 16 && IN >= 8) {
-      DM = DMG[IN - 8];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 13: // Al
-
-    if (IN <= 17 && IN >= 9) {
-      DM = DAL[IN - 9];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 14: // Si
-
-    if (IN <= 18 && IN >= 10) {
-      DM = DSI[IN - 10];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 15: // P
-
-    if (IN <= 19 && IN >= 12) {
-      DM = DP[IN - 12];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 16: // S
-
-    if (IN <= 22 && IN >= 13) {
-      DM = DS[IN - 13];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 17: // Cl
-
-    if (IN <= 23 && IN >= 14) {
-      DM = DCL[IN - 14];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 18: // Ar
-
-    if (IN <= 24 && IN >= 15) {
-      DM = DAR[IN - 15];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 19: // K
-
-    if (IN <= 28 && IN >= 16) {
-      DM = DK[IN - 16];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 20: // Ca
-
-    if (IN >= 17) {
-      DM = DK[IN - 17];
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  case 21: // Sc
-
-    if (IN == 19) {
-      DM = DSC;
-
-    } else {
-      DM = bindingEnergyAsymptotic(A, Z);
-    };
-
-    break;    
-
-  default: 
-
-  if (verboseLevel > 3) {
-    G4cout << " >>> G4InuclSpecialFunctions::bindingEnergyExact" << G4endl;
-    G4cout << "     DM(A, Z): wrong exact case: IN " << IN  << " IZ " << IZ 
-           << "     -> Using default bindingEnergyAsymptotic(A, Z)" << G4endl;
-  }
-
-    DM = bindingEnergyAsymptotic(A, Z);
-  }; 
-
-  return DM;
-}
Index: trunk/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyKummel.cc
===================================================================
--- trunk/source/processes/hadronic/models/cascade/cascade/src/bindingEnergyKummel.cc	(revision 1350)
+++ 	(revision )
@@ -1,333 +1,0 @@
-//
-// ********************************************************************
-// * 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: bindingEnergyKummel.cc,v 1.13 2010/06/25 09:45:14 gunter Exp $
-// Geant4 tag: $Name: geant4-09-04-beta-01 $
-//
-// 20100202  M. Kelsey -- Eliminate unnecessary use of std::pow()
-
-#include "G4InuclSpecialFunctions.hh"
-
-using namespace G4InuclSpecialFunctions;
-
-
-G4double G4InuclSpecialFunctions::bindingEnergyKummel(G4double A, 
-						      G4double Z) {
-  G4int verboseLevel = 2;
-  if (verboseLevel > 3) {
-    G4cout << " >>> G4InuclSpecialFunctions::bindingEnergyKummel" << G4endl;
-  }
-
-  // calculates the nuclei binding energy using Kummel mass formula
-
-// data for Kummel mass formula 
-  const G4double ASH[6] = {20.0, 28.0, 50.0, 82.0, 126.0, 184.0};
-  const G4double OMN[3] = {2.511464e0, 7.640294e-2, 2.618317e-2};
-  const G4double OMP[3] = {2.511464e0, 7.640294e-2, 6.243892e-3};
-  const G4double TMET[5] = {9.477193e0, 7.166809e-1, 1.2169e-1, 4.07179e-2, 2.927847e-2}; 
-  const G4double TMET1[4] = {-4.775384e-2, 5.880883e-5, -1.98964e-3, 3.427961e-6}; 
-
-  const G4double BET[5] = {1.535628e4, 1.502538e4, 1.481831e4, 1.459232e4, 1.40664e4};
-
-  const G4double SHN[5] = {8.0, 22.0, 32.0, 44.0, 58.0};
-
-  const G4double TNUN[5] = {8.728778e2, 8.45789e1, 9.210738e1, 5.98e1, 3.724e1}; 
-
-  const G4double TNUP[5] = {8.728778e2, 8.45789e1, 3.74e1, 5.42e1, 3.724e1};
-
-  const G4double TKSN[5] = {3.34582e1, 3.858216e0, -1.489218e-1, -9.2e-1, -6.36e-1};
-
-  const G4double TKSP[5] = {3.34582e1, 3.858216e0, 7.2e-1, -8.2e-1, -6.36e-1};
-
-  const G4double RON[5] = {-6.441735e3, -5.422058e3, -3.722645e3, -2.437172e4, -2.645867e4};
-
-  const G4double ROP[5] = {-6.75601e3, -5.877588e3, -3.216382e4, -3.010688e4, -2.645867e4}; 
-
-  const G4double SINGM[4] = {-3.578531e0, -2.6911e0, -7.487347e-1, 0.0};
-
-  const G4double C[2] = {6.1e3, 8.31e3};
-
-  const G4double AKU = 6.04122e5;
-
-  const G4double US = 1.661835e4;
-
-  const G4double UC = 6.218614e2;
-
-  const G4double UT = 1.983151e4;
-
-  const G4double SIPG = -2.067547e0;
-
-  const G4double TAU = 2.231241e0;
-
-  const G4double AL0 = 0.151;
-
-  const G4double USB = 1.95114e4;
-
-  const G4double UCB = 753.3;
-
-  //  const G4double ALD = 15.4941;
-  // const G4double ALD1 = 17.9439;
-
-  // const G4double C3 = 0.7059;
-
-  //const G4double C4 = 1.21129;
-
-  //  const G4double PKLD = 1.7826;
-
-  const G4double DMU = 3.132902e4;
-        
-  G4double DM;
-
-  G4double AN = A - Z;
-
-  G4int INS = 0;
-  G4double ANE = 0.0;
-  G4double HNE = 0.0;
-  G4int i(0);
-
-  for (i = 1; i < 6; i++) {
-
-    if (AN <= ASH[i]) {
-      ANE = AN - ASH[i - 1];
-      HNE = ASH[i] - AN;
-      INS = i - 1;
-
-      break;
-    };
-  };
- 
-  G4int IPS = 0;
-
-  G4double APR = 0.0;
-
-  G4double HPR = 0.0;
-
-  for (i = 1; i < 6; i++) {
-
-    if (Z <= ASH[i]) {
-      APR = Z - ASH[i - 1];
-      HPR = ASH[i] - Z;
-      IPS = i - 1;
-
-      break;
-    };
-  };
- 
-  G4double PPHN = ANE * HNE;
-  G4double PPHZ = APR * HPR;
-
-  // omega terms
-  G4double OMT = 0.0;
-
-  if (INS <= 2) OMT += OMN[INS] * PPHN;
-
-  if (IPS <= 2) OMT += OMP[IPS] * PPHZ;
-
-  if (verboseLevel > 3) {
-    G4cout << " OMT " << OMT << G4endl;
-  }
-
-  // theta term 1
-
-  G4double TET = 0.0;
-
-  if (verboseLevel> 3) {
-    G4cout << " PPHN " << PPHN << " PPHZ " << PPHZ << G4endl;
-    G4cout << " INS " << INS << " IPS " << IPS << G4endl;
-  }
-
-  if (PPHN > 0.5 && PPHZ > 0.5) {
-    G4int IT = 0;
-
-    if ((INS + 1) * (IPS + 1) > 0) {
-
-      if (INS - IPS == 1) {
-
-	if (INS < 5) {
-	  IT = INS;
-
-	} else {
-	  IT = -1; 
-	};		 
-
-      } else {
-	IT = -1;
-      }; 
-    };
-
-    if (verboseLevel > 3){
-      G4cout << " IT " << IT << G4endl; 
-    }
-
-    if (IT >= 0) TET = TMET[IT] * PPHN * PPHZ;
-  };
-
-  if (verboseLevel> 3) {
-    G4cout << " TET " << TET << G4endl;
-  }
-
-  // theta term 2
-  G4double TET1 = 0.0;
-
-  if (IPS == 2) {
-    TET1 += TMET1[0] * PPHZ * PPHZ;
-
-    if (INS == 3) TET1 += TMET1[1] * PPHN * PPHZ * HNE * HPR;
-  };
-
-  if (INS == 3) {
-
-    G4double TVSP = PPHN * PPHN * HNE;
-    TET1 += TMET1[2] * TVSP;
-    TET1 += TMET1[3] * TVSP * PPHN;
-  };
-
-  if (verboseLevel > 3) {
-    G4cout << " TET1 " << TET1 << G4endl;
-  }
-
-  // betta, nu, ksy terms
-  G4double TBET = 0.0;
-
-  if (INS != 0) {
-
-    for (G4int i = 0; i <= INS - 1; i++) TBET += BET[i] * SHN[i];
-  };
-  TBET += BET[INS] * ANE;
-	
-  if (IPS != 0) {
-
-    for (G4int i = 0; i <= IPS - 1; i++) TBET += BET[i] * SHN[i];
-  };
-  TBET += BET[IPS] * APR;
-
-  if (verboseLevel> 3) {
-    G4cout << " TBET " << TBET << G4endl;
-  }
-
-  G4double TBET1 = 0.0;
-
-  if (PPHN > 0.0 || PPHZ > 0.0) 
-    TBET1 = 0.5 * ((TNUN[INS] + TKSN[INS] * ANE) * PPHN + 
-		   (TNUP[IPS] + TKSP[IPS] * APR) * PPHZ);
-  TBET -= TBET1;
-
-  if (verboseLevel > 3) {
-    G4cout << " TBET1 " << TBET1 << G4endl;
-  }
-
-  // deformation
-  G4double TDEF = 0.0;
-  G4double X = Z * Z / A;
-  G4double X1 = G4cbrt(A);
-  G4double X2 = X1 * X1;
-
-  if (IPS != INS && INS >= 3 && IPS >= 2) {
-    G4double X3 = 2.0 * USB - UCB * X;
-    G4double DNZ = 0.0;
-
-    if (!(INS < 3 || (INS - IPS) != 1)) DNZ = C[INS - 3];
-    DNZ = TBET1 - DNZ;
-    G4double X4 = 0.2 * X2 * AL0 * AL0 * X3;
-  
-    if (DNZ > X4) {
-      G4double X5 = USB + X * UCB;
-      G4double X6 = std::log(DNZ / X4);
-      G4double X7 = std::sqrt(X6);
-
-      // G4double ALM = AL0 * (X7 + 0.143 * AL0 * X5 / X3);
-      TDEF = -X4 * (X6 + 1.0) + DNZ + 0.038 * X2 * (AL0*X7 * AL0*X7 * AL0*X7) * X5;
-    };
-  };
-
-  if (verboseLevel > 3) {
-    G4cout << " TDEF " << TDEF << G4endl;
-  }
-
-  // pairing
-  G4double TPE = 0.0; 
-  G4double TPEN = 0.0;
-  G4double TPEP = 0.0;
-  G4double DN0 = 0.0;
-  G4double DZ0 = 0.0;
-  G4double AV = 2.0 * int(0.5 * AN + 0.1); 	
-
-  if (AN > AV) DN0 = 1.0;
-
-  AV = 2.0 * int(0.5 * Z + 0.1); 
-
-  if (Z > AV) DZ0 = 1.0;
-
-  if (DN0 * DZ0 > 0.0) TPE = DMU / A;
-
-  if (DN0 + DZ0 > 0.0) {
-
-    if (DN0 > 0.0) {
-      TPEN = RON[INS] / X1;
-
-      if (INS >= 1) {
-
-	if (AN >= 82.0) {
-	  TPEN /= X1;
-
-	  if (INS == 3) {
-	    G4double PN = 0.0;
-	    G4double HN = 0.0;
-
-	    if (AN > 90.0) PN = AN - 90.0;
-
-	    if (AN < 116.0) HN = 116.0 - AN;
-	    TPEN += TAU * PN * HN;
-	  };
-	  TPEN += SINGM[INS - 1] * PPHN;
-	}; 
-      };
-    };
-
-    if (DZ0 > 0.0) {
-      TPEP = ROP[IPS] / X1;
-
-      if (IPS == 1) TPEP += SIPG * PPHZ;
-
-      if (IPS > 1) TPEP = TPEP / X1;
-
-    };  
-  };
-  TPE += TPEN + TPEP;
-
-  if (verboseLevel > 3) {
-    G4cout << " TPE " << TPE << " TPEN " << TPEN << " TPEP " << TPEP << G4endl;
-  }
-
-  // collect everything
-  DM = (AKU - US * X2 + Z * (Z - 1.0) / X1 * (OMT - UC) - UT / A *
-	(AN - Z) * (AN - Z) + TET + TET1 + TBET + TDEF + TPE) * 0.001;	  
-
-  if (verboseLevel > 3) {
-    G4cout << " kummel " << G4endl; 
-  }
-
-  return DM;
-}
Index: trunk/source/processes/hadronic/models/cascade/evaporation/test/excitationFunctionTest.cc
===================================================================
--- trunk/source/processes/hadronic/models/cascade/evaporation/test/excitationFunctionTest.cc	(revision 1350)
+++ 	(revision )
@@ -1,141 +1,0 @@
-//
-// ********************************************************************
-// * 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: excitationFunctionTest.cc,v 1.4 2007/06/21 15:04:30 gunter Exp $
-// GEANT4 tag $Name: geant4-09-03-cand-01 $
-//
-// Test program for G4 Bertini Evaporation.
-
-#define G4VERBOSE 1
-
-#include "G4LayeredNucleus.hh"
-#include "G4BertiniEvaporation.hh"
-
-int main(int argc, char *argv[])
-{
-  G4LayeredNucleus nucl;
-  G4BertiniEvaporation bert;
-  G4VParticleChange * pc;
-  G4int A, Z;
-  G4double E;
-
-  G4int rounds;
-
-  if ( argc == 4 )
-    {
-      sscanf( argv[1], "%d", &A);
-      sscanf( argv[2], "%d", &Z);
-      sscanf( argv[3], "%d", &rounds);
-      G4cout << " % excitation function for " << A << " " << Z << " " << rounds << endl;
-    }
-  
-  else 
-    {
-      G4cout << "***************************" << endl
-	     << "* Exc Fs for : n p pn 2n 2p p2n * " << endl
-	     << "*  Parameters: A Z rounds  * " << endl
-	     << "*  use 68 32 5000, takes  * " << endl
-	     << "*  copper 63 (70%) -> zn 64,30 * " << endl
-	     << "*  copper 65 (30%) -> zn 66,30 * " << endl
-	     << "***************************" << endl << endl;
-      return 0 ;
-    } 
-
-  G4cout << "% n p pn 2n 2p p2n alfan * " << endl;
-
-  bert.setVerboseLevel(0);
-
-  G4int ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  
-  for ( G4double energy = 1 ; energy < 100 ; energy += 0.5 )
-    {
-      G4int n=0, p=0, d=0, t=0, h3=0, h4=0, g=0, pn=0, _2n=0, _2p=0, p2n=0, alfan=0;
-      nucl.SetParameters( A, Z );
-      nucl.AddExcitationEnergy( energy - nucl.GetEnergyDeposit() );
-      n=p=d=t=h3=h4=g=0;
-
-      for ( G4int j = 0 ; j < rounds ; j++)
-	{
-	  ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-	  pc = bert.BreakItUp( nucl );
-	  
-	  for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	    {
-	      const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	      if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	      else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	      else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	      else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	      else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	      else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	      else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	      
-	      delete pc->GetSecondary( i );
-	    } // loop over particle change vector
-
-//  	  G4cout << "a" 
-//  		 << ntemp << " " 
-//  		 << ptemp << " " 
-//  		 << dtemp << " " 
-//  		 << ttemp << " " 
-//  		 << h3temp << " " 
-//  		 << h4temp << " " 
-//  		 << gtemp << " "
-//  		 << pc->GetNumberOfSecondaries() << endl;
-	  
-//  	  if ( pc->GetNumberOfSecondaries() - g == 1 ) m1++;
-//  	  else if ( pc->GetNumberOfSecondaries() - g == 2 ) m2++;
-//  	  else if ( pc->GetNumberOfSecondaries() - g == 3 ) m3++;
-	  
-	  if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-	  if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-	  if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	       ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-	  if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-	  if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-	  if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-	  if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-	  //x  G4cout << "% n p pn 2n 2p p2n * " << en
-	  pc->Clear();
-	  delete pc;
-      
-	}
-
-      G4cout << energy << "\t"
-	     << n << " "
-	     << p << " "
-	     << pn << " "
-	     << _2n << " "
-	     << _2p << " "
-	     << p2n << " "
-	     << alfan << endl;
-	  //	     << g << endl;
-
-    } // energy loop
-  
-  return 0;
-}
Index: trunk/source/processes/hadronic/models/cascade/evaporation/test/generalTest.cc
===================================================================
--- trunk/source/processes/hadronic/models/cascade/evaporation/test/generalTest.cc	(revision 1350)
+++ 	(revision )
@@ -1,95 +1,0 @@
-//
-// ********************************************************************
-// * 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: generalTest.cc,v 1.4 2007/06/21 15:04:32 gunter Exp $
-// GEANT4 tag $Name: geant4-09-03-cand-01 $
-//
-// Test program for G4 Bertini Evaporation.
-
-#include "G4LayeredNucleus.hh"
-#include "G4BertiniEvaporation.hh"
-
-int main(int argc, char *argv[])
-{
-  G4LayeredNucleus nucl;
-  G4BertiniEvaporation bert;
-  G4VParticleChange * pc;
-  G4int A, Z;
-  G4double E;
-
-
-  G4cout << "Parameters " << argc-1 << endl;
-
-  if ( argc == 4 )
-    {
-      sscanf( argv[1], "%d", &A);
-      sscanf( argv[2], "%d", &Z);
-      sscanf( argv[3], "%lf", &E);
-      G4cout << A << " " << Z << " " << E << endl;
-      nucl.SetParameters( A, Z);
-      nucl.AddExcitationEnergy( E );
-    }
-
-  bert.setVerboseLevel(0);
-  
-  for ( G4double energy = 1 ; energy < 150 ; energy += 0.5 )
-    {
-      G4int n=0, p=0, d=0, t=0, h3=0, h4=0, g=0;
-
-      nucl.SetParameters( A, Z);
-      nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-
-      pc = bert.BreakItUp( nucl );
-
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "proton" ) == 0 ) p++;
-	  if ( strcmp ( name , "neutron" ) == 0 ) n++;
-	  if ( strcmp ( name , "deuteron" ) == 0 ) d++;
-	  if ( strcmp ( name , "triton" ) == 0 ) t++;
-	  if ( strcmp ( name , "He3" ) == 0 ) h3++;
-	  if ( strcmp ( name , "alpha" ) == 0 ) h4++;
-	  if ( strcmp ( name , "gamma" ) == 0 ) g++;
-	} // loop over particle change vector
-
-      G4cout << energy << "\t"
-	     << n << " "
-	     << p << " "
-	     << d << " "
-	     << t << " "
-	     << h3 << " "
-	     << h4 << " "
-	     << g << endl;
-      
-    } // energy loop
-  
-  return 0;
-}
-
-
-
-//G4cout << energy << " " << pc->GetSecondary( i )->GetDefinition()->GetParticleName() << endl;
Index: trunk/source/processes/hadronic/models/cascade/evaporation/test/multiplicityTest.cc
===================================================================
--- trunk/source/processes/hadronic/models/cascade/evaporation/test/multiplicityTest.cc	(revision 1350)
+++ 	(revision )
@@ -1,105 +1,0 @@
-//
-// ********************************************************************
-// * 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: multiplicityTest.cc,v 1.4 2007/06/21 15:04:34 gunter Exp $
-// GEANT4 tag $Name: geant4-09-03-cand-01 $
-//
-// Test program for G4 Bertini Evaporation.
-
-#define G4VERBOSE 1
-
-#include "G4LayeredNucleus.hh"
-#include "G4BertiniEvaporation.hh"
-
-int main(int argc, char *argv[])
-{
-  G4LayeredNucleus nucl;
-  G4BertiniEvaporation bert;
-  G4VParticleChange * pc;
-  G4int A, Z;
-  G4double E;
-
-  G4int rounds;
-
-  if ( argc == 4 )
-    {
-      sscanf( argv[1], "%d", &A);
-      sscanf( argv[2], "%d", &Z);
-      sscanf( argv[3], "%d", &rounds);
-      G4cout << A << " " << Z << " " << rounds << endl;
-    }
-  
-  else 
-    {
-      G4cout << "***************************" << endl
-	     << "*  Parameters: A Z rounds  * " << endl
-	     << "*  use 68 32 5000, takes  * " << endl
-	     << "***************************" << endl << endl;
-      return 0 ;
-    } 
-
-  bert.setVerboseLevel(0);
-  
-  for ( G4double energy = 1 ; energy < 150 ; energy += 0.5 )
-    {
-      G4int n=0, p=0, d=0, t=0, h3=0, h4=0, g=0;
-      G4int m1=0, m2=0, m3=0;
-
-      nucl.SetParameters( A, Z );
-      nucl.AddExcitationEnergy( energy - nucl.GetEnergyDeposit() );
-
-      for ( G4int j = 0 ; j < rounds ; j++)
-	{
-	  n=p=d=t=h3=h4=g=0;
-	  pc = bert.BreakItUp( nucl );
-	  
-	  for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	    {
-	      char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	      if ( strcmp ( name , "gamma" ) == 0 ) g++;
-	      
-	      delete pc->GetSecondary( i );
-	    } // loop over particle change vector
-	  
-	  if ( pc->GetNumberOfSecondaries() - g == 1 ) m1++;
-	  else if ( pc->GetNumberOfSecondaries() - g == 2 ) m2++;
-	  else if ( pc->GetNumberOfSecondaries() - g == 3 ) m3++;
-
-	  pc->Clear();
-	  delete pc;
-      
-	}
-
-
-      G4cout << energy << "\t"
-	     << m1 << " "
-	     << m2 << " "
-	     << m3 << endl;
-
-    } // energy loop
-  
-  return 0;
-}
Index: trunk/source/processes/hadronic/models/cascade/evaporation/test/neutronTest.cc
===================================================================
--- trunk/source/processes/hadronic/models/cascade/evaporation/test/neutronTest.cc	(revision 1350)
+++ 	(revision )
@@ -1,26 +1,0 @@
-//
-// ********************************************************************
-// * 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.          *
-// ********************************************************************
-//
- 
Index: trunk/source/processes/hadronic/models/cascade/evaporation/test/ratioTest.cc
===================================================================
--- trunk/source/processes/hadronic/models/cascade/evaporation/test/ratioTest.cc	(revision 1350)
+++ 	(revision )
@@ -1,673 +1,0 @@
-//
-// ********************************************************************
-// * 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: ratioTest.cc,v 1.4 2007/06/21 15:04:38 gunter Exp $
-// GEANT4 tag $Name: geant4-09-03-cand-01 $
-//
-// Test program for G4 Bertini Evaporation.
-
-#define G4VERBOSE 1
-
-#include "G4LayeredNucleus.hh"
-#include "G4BertiniEvaporation.hh"
-
-int main(int argc, char *argv[])
-{
-  G4cout << "%*********************************" << endl
-	 << "%*  Ratio test                   *" << endl 
-	 << "%*  Output in Latex table format *" << endl 
-	 << "%*********************************" << endl << endl;
-
-  G4LayeredNucleus nucl;
-  G4BertiniEvaporation bert;
-  G4VParticleChange * pc;
-  G4int A, Z;
-  G4double E;
-
-  G4int rounds=10000;
-  bert.setVerboseLevel(0);
-
-  G4int ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  G4int n=0, p=0, d=0, t=0, h3=0, h4=0, g=0, pn=0, _2n=0, _2p=0, alfan=0, p2n=0, _2pn=0;
-  G4int j;
-
-  G4cout << "% * Rounds : "<< rounds << endl;
-
-  ////////////////////////// Se 74 30, 35 MeV
-
-  A = 74;
-  Z = 34;
-  E = 35;
-  
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  n=p=d=t=h3=h4=g=0;
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "Se$^{74}$     &  " << E << "   &   pn/2n   &   1.7  & " << (G4double) pn/((G4double)_2n)
-	 << " \\\\ % " << pn << "  " << _2n << endl;
-
-  ///////////////////////// Ge 68 32, E=20
-
-  A = 68;
-  Z = 32;
-  E = 20;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=0;
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "Ge$^{68}$   &  " << E << "   &   p/n     &   1.76 & " << (G4double) p/((G4double)n)
-	 << " \\\\ % " << p << "  " << n << endl;
-
-  ///////////////////////// Ge 68 32, E=35
-
-  A = 68;
-  Z = 32;
-  E = 35;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=0;
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "            &  " << E << "   &   pn/2n   &   8.4  & " << (G4double) pn/((G4double)_2n)
-	 << " \\\\ % " << pn << "  " << _2n << endl;
-
-  ///////////////////////// Ge 68 32, E=40
-
-  A = 68;
-  Z = 32;
-  E = 40;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=_2pn=0;
-
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ( ntemp == 1 && ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) )_2pn++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "            &  " << E << "   &   2pn/p2n &   5.8  & " << (G4double) _2pn/((G4double)p2n)
-	 << " \\\\ % " << _2pn << "  " << p2n << endl;
-
-  ///////////////////////// Ge 67 31, E=35
-
-  A = 67;
-  Z = 31;
-  E = 35;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=_2pn=0;
-
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ( ntemp == 1 && ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) )_2pn++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "Ga^{67}     &  " << E << "   &   pn/2n   &   3.3  & " << (G4double) pn/((G4double)_2n)
-	 << " \\\\ % " << pn << "  " << _2n << endl;
-
- ///////////////////////// Ni 58 28
-
-  A = 58;
-  Z = 28;
-  E = 25;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=_2pn=0;
-
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ( ntemp == 1 && ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) )_2pn++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "Ni^{58}     &  " << E << "   &   p/n     &   3.8  & " << (G4double) p/((G4double)n)
-	 << " \\\\ % " << p << "  " << n << endl;
-
- ///////////////////////// 
-
-  ///////////////////////// Ni 58 28, 35
-
-  A = 58;
-  Z = 28;
-  E = 35;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=_2pn=0;
-
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ( ntemp == 1 && ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) )_2pn++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "Ni^{58}     &  " << E << "   &   pn/2n   &   67   & " << (G4double) pn/((G4double)_2n)
-	 << " \\\\ % " << pn << "  " << _2n << endl;
-
-  ///////////////////////// Ni 58 28 40
-
-  A = 58;
-  Z = 28;
-  E = 40;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=_2pn=0;
-
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ( ntemp == 1 && ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) )_2pn++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "Ni^{58}     &  " << E << "   &   2pn/p2n &   7.3  & " << (G4double) _2pn/((G4double)p2n)
-	 << " \\\\ % " << _2pn << "  " << p2n << endl;
-
-  ///////////////////////// Fe 54 26 35
-
-  A = 54;
-  Z = 26;
-  E = 35;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=_2pn=0;
-
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ( ntemp == 1 && ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) )_2pn++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "Fe^{54}     &  " << E << "   &   pn/2n   &   31   & " << (G4double) pn/((G4double)_2n)
-	 << " \\\\ % " << pn << "  " << _2n << endl;
-
-  /// 
-  ///////////////////////// Mn 54 25 30
-
-  A = 54;
-  Z = 25;
-  E = 30;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=_2pn=0;
-
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ( ntemp == 1 && ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) )_2pn++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "Mn^{54}     &  " << E << "   &   pn/2n   &   <1   & " << (G4double) pn/((G4double)_2n)
-	 << " \\\\ % " << pn << "  " << _2n << endl;
-
- ///////////////////////// Cr 50 24
-
-  A = 50;
-  Z = 24;
-  E = 25;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=_2pn=0;
-
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ( ntemp == 1 && ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) )_2pn++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "Cr^{50}     &  " << E << "   &   p/n     &   0.51 & " << (G4double) p/((G4double)n)
-	 << " \\\\ % " << p << "  " << n << endl;
-
-  ///////////////////////// Cr 50 24 35
-
-  A = 50;
-  Z = 24;
-  E = 35;
-
-  nucl.SetParameters( A, Z );
-  nucl.AddExcitationEnergy( E - nucl.GetEnergyDeposit() );
-  ntemp=0, ptemp=0, dtemp=0, ttemp=0, h3temp=0, h4temp=0, gtemp=0;
-  n=p=d=t=h3=h4=g=pn=_2n=_2p=alfan=p2n=_2pn=0;
-
-
-  for ( j = 0 ; j < rounds ; j++)
-    {
-      ntemp=ptemp=dtemp=ttemp=h3temp=h4temp=gtemp=0;
-      pc = bert.BreakItUp( nucl );
-      
-      for ( G4int i = 0 ; i < pc->GetNumberOfSecondaries() ;  i++ )
-	{
-	  const char * name = pc->GetSecondary( i )->GetDefinition()->GetParticleName() ;
-	  if ( strcmp ( name , "neutron" ) == 0 ) ntemp++;
-	  else if ( strcmp ( name , "proton" ) == 0 ) ptemp++;
-	  else if ( strcmp ( name , "deuteron" ) == 0 ) dtemp++;
-	  else if ( strcmp ( name , "triton" ) == 0 ) ttemp++;
-	  else if ( strcmp ( name , "He3" ) == 0 ) h3temp++;
-	  else if ( strcmp ( name , "alpha" ) == 0 ) h4temp++;
-	  else if ( strcmp ( name , "gamma" ) == 0 ) gtemp++;
-	  
-	  delete pc->GetSecondary( i );
-	} // loop over particle change vector
-      
-      if ( ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) n++;
-      if ( ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) p++;
-      if ( ( ntemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ||
-	   ( dtemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 1 ) ) pn++;
-      if ( ntemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2n++;
-      if ( ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 2 ) _2p++;
-      if ( ( ntemp == 2 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ntemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) ) p2n++;
-      if ( ( ntemp == 1 && ptemp == 2 && pc->GetNumberOfSecondaries() - gtemp == 3 ) ||
-	       ( dtemp == 1 && ptemp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) )_2pn++;
-      if ( ntemp == 1 && h4temp == 1 && pc->GetNumberOfSecondaries() - gtemp == 2 ) alfan++;
-      //x  G4cout << "% n p pn 2n 2p p2n * " << en
-      pc->Clear();
-      delete pc;
-      
-    }
-  
-  G4cout << "            &  " << E << "   &   pn/2n   &   46   & " << (G4double) pn/((G4double)_2n)
-	 << " \\\\ % " << pn << "  " << _2n << endl;
-
-  
-  return 0;
-}
-
-
-
-
-
-
-
