Index: trunk/source/processes/electromagnetic/adjoint/include/G4VAdjointInverseScattering.hh
===================================================================
--- trunk/source/processes/electromagnetic/adjoint/include/G4VAdjointInverseScattering.hh	(revision 1197)
+++ 	(revision )
@@ -1,114 +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.          *
-// ********************************************************************
-//
-/////////////////////////////////////////////////////////////////////////////////
-//      Module:		G4VAdjointInverseScattering.hh
-//	Author:       	L. Desorgher
-//	Date:		1st April 2007
-// 	Organisation: 	SpaceIT GmbH
-// 	Customer:     	ESA/ESTEC
-/////////////////////////////////////////////////////////////////////////////////
-//
-// CHANGE HISTORY
-// --------------
-//      ChangeHistory: 
-//	 	1st April 2007 creation by L. Desorgher  		
-//
-//-------------------------------------------------------------
-//	Documentation:
-//		Abastract class for adjoint/reverse discrete scattering
-//
-
-#ifndef G4VAdjointInverseScattering_h
-#define G4VAdjointInverseScattering_h 1
-
-#include "globals.hh"
-#include "G4DynamicParticle.hh"
-#include "G4ParticleDefinition.hh"
-#include "G4MaterialCutsCouple.hh"
-#include "G4Material.hh"
-#include "G4Element.hh"
-#include "G4ElementVector.hh"
-#include "Randomize.hh"
-#include "G4ParticleDefinition.hh"
-#include "G4VDiscreteProcess.hh"
-
-
-
-class G4PhysicsTable;
-class G4Region;
-class G4VParticleChange;
-class G4ParticleChange;
-class G4Track;
-class G4VEmAdjointModel;
-class G4AdjointCSMatrix;
-class G4AdjointCSManager;
-class G4Material;
-class G4MaterialCutsCouple;
-
-
-class G4VAdjointInverseScattering : public G4VDiscreteProcess
-{
-
-public:
-
-  G4VAdjointInverseScattering(G4String process_name,G4bool whichScatCase);
-
-  virtual ~G4VAdjointInverseScattering();
-  
-public:
-  void PreparePhysicsTable(const G4ParticleDefinition&);
-  
-  void BuildPhysicsTable(const G4ParticleDefinition&);
-  
-  virtual G4VParticleChange* PostStepDoIt(const G4Track&, const G4Step&); 
- 
-protected :// with description  
-	
-   virtual G4double GetMeanFreePath(const G4Track& track,
-                                         G4double previousStepSize,
-                                         G4ForceCondition* condition);
-
-protected:
-   G4VEmAdjointModel* theAdjointEMModel;	
-   G4ParticleChange* fParticleChange;
-   G4AdjointCSManager* theAdjointCSManager;
-  
-
-private:
-  G4Material*  currentMaterial;
-  G4MaterialCutsCouple* currentCouple;
-  size_t   currentMaterialIndex; 
-  G4double currentTcut;
-  G4double lastCS;
-  std::vector<double> CS_Vs_Element;
-  G4bool IsScatProjToProjCase;
-
- 
-
-};  
-
-#endif
-
Index: trunk/source/processes/electromagnetic/adjoint/src/G4VAdjointInverseScattering.cc
===================================================================
--- trunk/source/processes/electromagnetic/adjoint/src/G4VAdjointInverseScattering.cc	(revision 1197)
+++ 	(revision )
@@ -1,103 +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 "G4VAdjointInverseScattering.hh"
-#include "G4AdjointCSManager.hh"
-#include "G4AdjointCSMatrix.hh"
-#include "G4AdjointInterpolator.hh"
-#include "G4AdjointCSMatrix.hh"
-#include "G4VEmAdjointModel.hh"
-#include "G4ElementTable.hh"
-#include "G4Element.hh"
-#include "G4Material.hh"
-#include "G4MaterialCutsCouple.hh"
-#include "G4AdjointCSManager.hh"
-#include "G4ParticleChange.hh"
-#include "G4AdjointElectron.hh"
-
-
-G4VAdjointInverseScattering::
-	G4VAdjointInverseScattering(G4String process_name, G4bool whichScatCase):
-			G4VDiscreteProcess(process_name)
-{theAdjointCSManager = G4AdjointCSManager::GetAdjointCSManager();
- IsScatProjToProjCase=whichScatCase;
- /*theAdjointEMModel=aModel;
- IsScatProjToProjCase=whichScatCase;*/
- fParticleChange=new G4ParticleChange();
- 
-}
-//////////////////////////////////////////////////////////////////////////////
-//
-G4VAdjointInverseScattering::
-	~G4VAdjointInverseScattering()
-{;
-}			
-//////////////////////////////////////////////////////////////////////////////
-//
-void G4VAdjointInverseScattering::PreparePhysicsTable(const G4ParticleDefinition&)
-{;
-}
-//////////////////////////////////////////////////////////////////////////////
-//
-void G4VAdjointInverseScattering::BuildPhysicsTable(const G4ParticleDefinition&)
-{
-
- theAdjointCSManager->BuildCrossSectionMatrices(); //do not worry it will be done just once
- theAdjointCSManager->BuildTotalSigmaTables();
-
-}
-//////////////////////////////////////////////////////////////////////////////
-//
-G4VParticleChange* G4VAdjointInverseScattering::PostStepDoIt(const G4Track& track, const G4Step& )
-{ 
-  fParticleChange->Initialize(track);
- 
-  theAdjointEMModel->SampleSecondaries(track,
-                                       IsScatProjToProjCase,
-					fParticleChange);
-  
-  ClearNumberOfInteractionLengthLeft();
-  return fParticleChange;
-  			
-   
-  
-}
-//////////////////////////////////////////////////////////////////////////////
-//
-G4double G4VAdjointInverseScattering::GetMeanFreePath(const G4Track& track,
-                                         					     G4double ,
-                                         					     G4ForceCondition* condition)
-{ *condition = NotForced;
-  G4double preStepKinEnergy = track.GetKineticEnergy();
-  
-  G4double Sigma =
-  		theAdjointEMModel->AdjointCrossSection(track.GetMaterialCutsCouple(),preStepKinEnergy,IsScatProjToProjCase);
-  		
-
-  G4double mean_free_path = 1./Sigma;
-  //G4cout<<"mean_free_path [mm] "<<mean_free_path/mm<<std::endl;
-  return mean_free_path;
-}					 
-				 
Index: trunk/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh
===================================================================
--- trunk/source/processes/electromagnetic/lowenergy/include/G4AtomicShell.hh	(revision 1197)
+++ 	(revision )
@@ -1,78 +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: G4AtomicShell.hh,v 1.2 ????
-// GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
-//
-// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
-//          Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
-//
-// History:
-// -----------
-//  
-//  16 Sept 2001 Modofied according to a design iteration in the 
-//              LowEnergy category
-//
-// -------------------------------------------------------------------
-
-// Class description:
-// Low Energy Electromagnetic Physics, a data container
-// Further documentation available from http://www.ge.infn.it/geant4/lowE
-
-// -------------------------------------------------------------------
-
-
-#ifndef G4AtomicShell_h 
-#define G4AtomicShell_h 1
-#include "globals.hh"
-
-class G4AtomicShell {
-
-public:
-
-  // The data and the methods of this class are relative to
-  // a given shell
- 
-  G4AtomicShell(G4int,G4double);
- 
-  ~G4AtomicShell();
-
-  // Returns the binding energy of the shell
-  G4double BindingEnergy() const; 
-
-  // Returns the id of the shell
-  G4int ShellId() const;
-
-private:
-  
-  G4int identifier;
-  G4double bindingEnergy;
-
-};
-
-#endif
-
-
Index: trunk/source/processes/electromagnetic/lowenergy/include/G4IonParametrisedLossTable.hh
===================================================================
--- trunk/source/processes/electromagnetic/lowenergy/include/G4IonParametrisedLossTable.hh	(revision 1197)
+++ 	(revision )
@@ -1,273 +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.          *
-// ********************************************************************
-//
-//
-//
-// ===========================================================================
-// GEANT4 class header file
-//
-// Class:                G4IonParametrisedLossTable
-// Helper classes:       G4IonLossTableHandle
-//                       G4DummyScalingAlgorithm
-// 
-// Author:               Anton Lechner (Anton.Lechner@cern.ch)
-//
-// First implementation: 10. 11. 2008
-//
-// Modifications:
-//
-//
-// Class descriptions:
-//    G4IonParametrisedLossTable: Wrapper class for classes of the material
-//    category, which maintain stopping power vectors for ions. This wrapper
-//    class includes a cache for faster access of stopping powers and builds 
-//    stopping power vectors for compounds using Bragg's additivity rule. 
-//    G4IonLossTableHandle: A handle class for G4IonParametrisedLossTable
-//    G4DummyScalingAlgorithm: A dummy algorithm to scale energies and
-//    stopping powers (may be replaced with an algorithm, which relies on 
-//    dynamic information of the particle: This may be required if stopping
-//    power data is scaled using an effective charge approximation).
-//
-// Comments:
-//
-// =========================================================================== 
-
-
-#ifndef G4IONPARAMETRISEDLOSSTABLE_HH
-#define G4IONPARAMETRISEDLOSSTABLE_HH
-
-#include "globals.hh"
-#include "G4hIonEffChargeSquare.hh"
-#include "G4ParticleDefinition.hh"
-#include "G4Material.hh"
-#include "G4LPhysicsFreeVector.hh"
-#include <vector>
-#include <iomanip>
-#include <map>
-#include <list>
-#include <utility>
-
-
-// #########################################################################
-// # Type definitions for a local cache
-// # 
-// #########################################################################
-
-   typedef std::pair<const G4ParticleDefinition*, const G4Material*> G4CacheKey;
-
-   typedef struct CacheValue{
-      G4double energyScaling;         // Scaling factor for kinetic energy
-      G4PhysicsVector* dedx;          // dEdx vector for current projectile-
-                                      // material combination
-      G4int dEdxIndex;                // dE/dx vector index
-   } G4CacheValue;
-
-
-// #########################################################################
-// # Class G4IonLossTableHandle: Handle for table wrappers (to enable
-// # vectors of table wrappers)   
-// #########################################################################
-
-class G4IonLossTableHandle {
-  
- public:
-   G4IonLossTableHandle() { }
-   virtual ~G4IonLossTableHandle() { }
-
-   virtual G4double GetLowerEnergyEdge(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*             // Target material 
-	     ) = 0;
-   virtual G4double GetUpperEnergyEdge(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*             // Target material 
-	     ) = 0; 
-   virtual G4bool IsApplicable(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*             // Target material 
-             ) = 0; 
-   virtual G4bool IsApplicable(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*,            // Target material 
-              G4double                      // Kinetic energy of projectile
-             ) = 0; 
-   virtual G4double GetDEDX(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*,            // Target material 
-              G4double                      // Kinetic energy of projectile
-             ) = 0; 
-   virtual void ClearCache() { }
-};
-
-
-// #########################################################################
-// # Class G4DummyScalingAlgorithm:
-// #########################################################################
-
-class G4DummyScalingAlgorithm {
-
- public:
-  // No scaling for kinetic energy
-  inline G4double ScalingFactorEnergy(
-            const G4ParticleDefinition*)    // Projectile (ion) 
-                { return 1.0; }
-
-  // No scaling for dE/dx
-  inline G4double ScalingFactorDEDX(
-            const G4ParticleDefinition*,    // Projectile (ion) 
-            const G4Material*,              // Target material
-            G4double)                       // Kinetic energy of projectile 
-                { return 1.0; }
-};
-
-
-// #########################################################################
-// # Class G4IonParametrisedLossTable: Wrapper for classes of the material
-// # category, which maintain ion stopping power vectors
-// #########################################################################
-
-template <
-    class LossTabulation,
-    class ScalingAlgorithm = G4DummyScalingAlgorithm
->
-class G4IonParametrisedLossTable : public G4IonLossTableHandle,
-                                   public LossTabulation, 
-                                   public ScalingAlgorithm {
-
- public:
-   G4IonParametrisedLossTable(G4int maxSizeCache = 5,
-                              G4bool splines = true);
-   ~G4IonParametrisedLossTable();
-
-   // Function checking the availability of stopping power values for a 
-   // given ion-target combination and a given kinetic energy 
-   G4bool IsApplicable(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*,            // Target material 
-              G4double);                    // Kinetic energy of projectile
-
-   // Function checking the availability of stopping power values for a 
-   // given ion-target combination (kinetic energy not considered) 
-   G4bool IsApplicable(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*);           // Target material             
-
-   // Function returning the stopping power of a given material for a
-   // projectile of specified energy
-   G4double GetDEDX(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*,            // Target material 
-              G4double);                    // Kinetic energy of projectile
-
-   // Function printing stopping powers for a given ion-material combination
-   // within a specified energy range 
-   void PrintDEDXTable(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material* ,           // Target material
-              G4double,                     // Minimum energy per nucleon
-              G4double,                     // Maximum energy per nucleon
-              G4int,                        // Number of bins
-              G4bool logScaleEnergy = true);// Logarithmic scaling of energy
-
-   // Function returning the lower energy edge of stopping power tables
-   G4double GetLowerEnergyEdge(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*);           // Target material 
-
-   // Function returning the upper energy edge of stopping power tables 
-   G4double GetUpperEnergyEdge(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*);           // Target material 
- 
- private: 
-
-   // Function for building stopping power vectors according to Bragg's
-   // additivity rule
-   G4PhysicsVector* BuildStoppingPowerVector(
-              const G4ParticleDefinition*,  // Projectile (ion) 
-              const G4Material*);           // Target material 
-
-   // The assignment operator and the copy constructor are hidden
-   G4IonParametrisedLossTable& operator=(const 
-                                           G4IonParametrisedLossTable &right);
-   G4IonParametrisedLossTable(const G4IonParametrisedLossTable&);
-
-   // ######################################################################
-   // # "Most-recently-used" cache, to provide a faster access to physics 
-   // # vectors
-   // ######################################################################
-
-   // A type definition of cache entry containing a key-value pair
-   typedef struct CacheEntry {
-      G4CacheKey key;
-      G4CacheValue value;
-   } G4CacheEntry;
-
-   // A cache entry list, and a map of pointers to list iterators (for faster
-   // searching)
-   typedef std::list<G4CacheEntry> CacheEntryList;
-   CacheEntryList cacheEntries;
-
-   typedef std::map<G4CacheKey, void*> CacheIterPointerMap;
-   CacheIterPointerMap cacheKeyPointers;  
-
-   // Maximum number of cache entries
-   G4int maxCacheEntries;
-
-   // Function for updating the cache
-   G4CacheValue UpdateCacheValue(
-                const G4ParticleDefinition*,  // Projectile (ion) 
-                const G4Material*);           // Target material
-
-   // Function for retrieving cache values
-   G4CacheValue GetCacheValue(
-                const G4ParticleDefinition*,  // Projectile (ion) 
-                const G4Material*);           // Target material
-
-   // Function for clearing the cache
-   void ClearCache();
-
-   // ######################################################################
-   // # Map of stopping power vectors computed according Bragg rule
-   // #
-   // ######################################################################
-
-   typedef std::map<G4CacheKey, G4LPhysicsFreeVector*> StoppingPowerTable; 
-   StoppingPowerTable s;
-
-   // Flag indicating the usage of splines
-   G4bool useSplines;
-
-   // ######################################################################
-   // # Energy boundaries of physics tables
-   // ######################################################################
-
-   G4double lowerEnergyEdge;
-   G4double upperEnergyEdge;
-};
-
-#include "G4IonParametrisedLossTable.icc"
-
-#endif  // G4IONPARAMETRISEDLOSSTABLE_HH
Index: trunk/source/processes/electromagnetic/lowenergy/include/G4OrlicLCrossSection.hh
===================================================================
--- trunk/source/processes/electromagnetic/lowenergy/include/G4OrlicLCrossSection.hh	(revision 1197)
+++ 	(revision )
@@ -1,78 +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: G4OrlicLCrossSection.hh,v 1.3 2008/06/03 07:29:15 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
-//
-// Author: Haifa Ben Abdelouahed
-//         
-//
-// History:
-// -----------
-//  23 Apr 2008   H. Ben Abdelouahed   1st implementation
-//  28 Apr 2008   MGP        Major revision according to a design iteration
-//
-// -------------------------------------------------------------------
-
-// Class description:
-// Low Energy Electromagnetic Physics, Cross section, proton ionisation, L shell
-// Further documentation available from http://www.ge.infn.it/geant4/lowE
-
-// -------------------------------------------------------------------
-
-
-#ifndef G4ORLICLCROSSSECTION_HH
-#define G4ORLICLCROSSSECTION_HH 1
-
-#include "globals.hh"
-
-
-class G4OrlicLCrossSection 
-
-{
-public:
-
-  G4OrlicLCrossSection();
-
-  virtual ~G4OrlicLCrossSection();
-
-
-//according to I.ORLIC, C.H.SOW and S.M.TANG,International Journal of PIXE.Vol.4(1997) 217-230	
-		     
-  G4double CalculateL1CrossSection(G4int zTarget, G4double energyIncident);
-
-  G4double CalculateL2CrossSection(G4int zTarget, G4double energyIncident);				    
- 
-  G4double CalculateL3CrossSection(G4int zTarget, G4double energyIncident);
-
-private:
-
-
-  G4OrlicLCrossSection(const G4OrlicLCrossSection&);
-  G4OrlicLCrossSection & operator = (const G4OrlicLCrossSection &right);
-
-};
-
-#endif
Index: trunk/source/processes/electromagnetic/lowenergy/include/G4ecpssrCrossSection.hh
===================================================================
--- trunk/source/processes/electromagnetic/lowenergy/include/G4ecpssrCrossSection.hh	(revision 1197)
+++ 	(revision )
@@ -1,77 +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: G4ecpssrCrossSection.hh,v 1.3 2008/06/03 07:29:15 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-03-beta-cand-00 $
-//
-// Author: Haifa Ben Abdelouahed
-//         
-//
-// History:
-// -----------
-//  21 Apr 2008   H. Ben Abdelouahed   1st implementation
-//  21 Apr 2008   MGP        Major revision according to a design iteration
-//
-// -------------------------------------------------------------------
-
-// Class description:
-// Low Energy Electromagnetic Physics, Cross section, p ionisation, K shell
-// Further documentation available from http://www.ge.infn.it/geant4/lowE
-
-// -------------------------------------------------------------------
-
-
-#ifndef G4ECPSSRCROSSSECTION_HH
-#define G4ECPSSRCROSSSECTION_HH 1
-
-#include "globals.hh"
-
-
-class G4ecpssrCrossSection 
-
-{
-public:
-
-  G4ecpssrCrossSection();
-
-  virtual ~G4ecpssrCrossSection();
-			     
-  G4double CalculateCrossSection(G4int zTarget,G4int zIncident, G4double energyIncident);//according to W.Brandt and G.Lapicki, Phys.Rev.A23(1981)
-				    
-  G4double CalculateVelocity(G4int zTarget,G4int zIncident, G4double energyIncident); 
-			      
-  G4double  ExpIntFunction(G4int n,G4double x);//Exponential Integral Function
-
-   
-
-private:
-
-
-  G4ecpssrCrossSection(const G4ecpssrCrossSection&);
-  G4ecpssrCrossSection & operator = (const G4ecpssrCrossSection &right);
-
-};
-
-#endif
Index: trunk/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc
===================================================================
--- trunk/source/processes/electromagnetic/lowenergy/src/G4AtomicShell.cc	(revision 1197)
+++ 	(revision )
@@ -1,60 +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: G4AtomicShell.cc,v 1.2 ????
-// GEANT4 tag $Name: geant4-09-02 $
-//
-// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
-//          Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
-//
-// History:
-// -----------
-//  16 Sept 2001 EG  Modified according to a design iteration in the 
-//                   LowEnergy category
-//
-// -------------------------------------------------------------------
-
-#include "G4AtomicShell.hh"
-
-G4AtomicShell::G4AtomicShell(G4int id, G4double energy)
-{
-  identifier = id;
-  bindingEnergy = energy;
-} 
-
-G4AtomicShell::~G4AtomicShell()
-{ }
-
-G4double G4AtomicShell::BindingEnergy() const {
-
-  return bindingEnergy;
-}
-
-
-G4int G4AtomicShell::ShellId() const{
-
-  return identifier;
-}
Index: trunk/source/processes/electromagnetic/lowenergy/src/G4OrlicLCrossSection.cc
===================================================================
--- trunk/source/processes/electromagnetic/lowenergy/src/G4OrlicLCrossSection.cc	(revision 1197)
+++ 	(revision )
@@ -1,434 +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: G4OrlicLCrossSection.cc,v 1.5 2008/12/18 13:01:30 gunter Exp $
-// GEANT4 tag $Name: geant4-09-02 $
-//
-// Author: Haifa Ben Abdelouahed
-//         
-//
-// History:
-// -----------
-//  23 Apr 2008   H. Ben Abdelouahed   1st implementation
-//  28 Apr 2008   MGP        Major revision according to a design iteration
-//
-// -------------------------------------------------------------------
-// Class description:
-// Low Energy Electromagnetic Physics, Cross section, proton ionisation, L shell
-// Further documentation available from http://www.ge.infn.it/geant4/lowE
-// -------------------------------------------------------------------
-
-
-#include "globals.hh"
-#include "G4OrlicLCrossSection.hh"
-#include "G4AtomicTransitionManager.hh"
-#include "G4Proton.hh"
-
-
-G4OrlicLCrossSection::G4OrlicLCrossSection()
-{ }
-
-G4OrlicLCrossSection::~G4OrlicLCrossSection()
-{ }
-
-//this L-CrossSection calculation method is done according to 
-//I.ORLIC, C.H.SOW and S.M.TANG,International Journal of PIXE.Vol.4(1997) 217-230	
- 
-
-//*****************************************************************************************************************************************
-
-G4double G4OrlicLCrossSection::CalculateL1CrossSection(G4int zTarget, G4double energyIncident)
-  			       
-{
-
-  G4AtomicTransitionManager*  transitionManager =  G4AtomicTransitionManager::Instance();
-
-  G4double  massIncident; 
-
-  G4Proton* aProtone = G4Proton::Proton();
-    
-   massIncident = aProtone->GetPDGMass(); 
- 
-  G4double l1BindingEnergy = (transitionManager->Shell(zTarget,1)->BindingEnergy())/keV;
- 
-  G4double lamda =  massIncident/electron_mass_c2;
-
-  G4double normalizedEnergy =  (energyIncident/keV)/(lamda*l1BindingEnergy);
-
-  G4double x = std::log(normalizedEnergy);
-
-  G4double a0 = 0.;
-  G4double a1 = 0.;
-  G4double a2 = 0.;
-  G4double a3 = 0.;
-  G4double a4 = 0.;
-  G4double a5 = 0.;
-  G4double a6 = 0.;  
-  G4double a7 = 0.;  
-  G4double a8 = 0.; 
-  G4double a9 = 0.;
-
-                                       
-   if ( zTarget>=14 && zTarget<=40)  
-    {
-      a0=12.5081;
-      a1=0.2177;
-      a2=-0.3758;
-      a3=0.0096;
-      a4=0.0073;
-      a5=0.0022;
-      a6=0.;
-      a7=0.;
-      a8=0.;
-      a9=0.;
-    }
-  else 
-    { 
-       if ( zTarget>=41 &&  zTarget<=50 )
-       { 	  
-      a0=11.274881;
-      a1=-0.187401;
-      a2=-0.943341;
-      a3=-1.47817;
-      a4=-1.282343;
-      a5=-0.386544; 
-      a6=-0.037932;
-      a7=0.;
-      a8=0.;
-      a9=0.;
-	}
-     
-      else  
-	{
-	  if ( zTarget>=51 &&  zTarget<=60 ) 
-	    { 
-	      a0=11.242637;
-	      a1=-0.162515;
-	      a2=1.035774;
-	      a3=3.970908;
-	      a4=3.968233;
-	      a5=1.655714;
-	      a6=0.058885;
-	      a7=-0.155743;
-	      a8=-0.042228;
-	      a9=-0.003371; 
-	    } 
-	
-	  else  
-	    {
-	      if ( zTarget>=61 &&  zTarget<=70 ) 
-		{ 
-		  a0=6.476722;
-		  a1=-25.804787;
-		  a2=-54.061629;
-		  a3=-56.684589;
-		  a4=-33.223367;
-		  a5=-11.034979; 
-		  a6=-2.042851;
-		  a7=-0.194075;
-		  a8=-0.007252;
-		  a9=0.;
-		} 
-	      else  
-		{
-		  if ( zTarget>=71 &&  zTarget<=80 ) 
-		    { 
-		      a0=12.776794;
-		      a1=6.562907;
-		      a2=10.158703;
-		      a3=7.432592;
-		      a4=2.332036;
-		      a5=0.317946; 
-		      a6=0.014479;
-		      a7=0.;
-		      a8=0.;
-		      a9=0.;
-		    } 
-		  else  
-		    {
-		      if ( zTarget>=81 &&  zTarget<=92 ) 
-			{ 
-			  a0=28.243087;
-			  a1=50.199585;
-			  a2=58.281684;
-			  a3=34.130538;
-			  a4=10.268531;
-			  a5=1.525302; 
-			  a6=0.08835;
-			  a7=0.;
-			  a8=0.;
-			  a9=0.;
-			}
-		      else
-			{ 
-			  G4cout << "ERREUR: L1 Cross-Section exist only for ZTarget between 14 and 92!!! " << G4endl;
-			
-			}
-		    }
-		}
-	    }
-	}
-      }
-      
-
-G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5))+(a6*std::pow(x,6))+
-	(a7*std::pow(x,7))+(a8*std::pow(x,8))+(a9*std::pow(x,9)); 
-
-
-
-  G4double L1crossSection =  std::exp(analyticalFunction)/(l1BindingEnergy*l1BindingEnergy);  
-
-  return L1crossSection;
-}
-
-//*****************************************************************************************************************************************
-
-
-G4double G4OrlicLCrossSection::CalculateL2CrossSection(G4int zTarget, G4double energyIncident)
-  			       
-{
-
-  G4AtomicTransitionManager*  transitionManager =  G4AtomicTransitionManager::Instance();
-
-  G4double  massIncident; 
-
-
-  G4Proton* aProtone = G4Proton::Proton();
-    
-   massIncident = aProtone->GetPDGMass(); 
- 
- G4double L2crossSection;
-
- if (zTarget<41)
-   { 
-     L2crossSection =0.;
-   }
- else
-   {
-
- G4double l2BindingEnergy = (transitionManager->Shell(zTarget,2)->BindingEnergy())/keV;
- 
-  G4double lamda =  massIncident/electron_mass_c2;
-
-  G4double normalizedEnergy =  (energyIncident/keV)/(lamda*l2BindingEnergy);
-
-  G4double x = std::log(normalizedEnergy);
-
-  G4double a0 = 0.;
-  G4double a1 = 0.;
-  G4double a2 = 0.;
-  G4double a3 = 0.;
-  G4double a4 = 0.;
-  G4double a5 = 0.;
- 
-      if ( zTarget>=41 &&  zTarget<=50 ) 
-	{ 
-      a0=11.194798;
-      a1=0.178807;
-      a2=-0.449865;
-      a3=-0.063528;
-      a4=-0.015364;
-      a5=0.; 
-	}
-     
-      else  
-	{
-	  if ( zTarget>=51 &&  zTarget<=60 ) 
-	    { 
-	      a0=11.241409;
-	      a1=0.149635;
-	      a2=-0.633269;
-	      a3=-0.17834;
-	      a4=-0.034743;
-	      a5=0.006474;
-
-	    } 
-	
-	  else  
-	    {
-	      if ( zTarget>=61 &&  zTarget<=70 ) 
-		{ 
-		  a0=11.247424;
-		  a1=0.203051;
-		  a2=-0.219083;
-		  a3=0.164514;
-		  a4=0.058692;
-		  a5=0.007866; 
-		} 
-	      else  
-		{
-		  if ( zTarget>=71 &&  zTarget<=80 ) 
-		    { 
-		      a0=11.229924;
-		      a1=-0.087241;
-		      a2=-0.753908;
-		      a3=-0.181546;
-		      a4=-0.030406;
-		      a5=0.; 
-		    } 
-		  else  
-		    {
-		      if ( zTarget>=81 &&  zTarget<=92 ) 
-			{ 
-			  a0=11.586671;
-			  a1=0.730838;
-			  a2=-0.056713;
-			  a3=0.053262;
-			  a4=-0.003672;
-			  a5=0.; 
-			}
-		      else
-			{ 
-			  G4cout << "ERREUR: L2 Cross-Section exist only for ZTarget between 14 and 92!!! " << G4endl;
-		       
-			}
-		    }
-		}
-	    }
-	}
-      
-
- G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4))+(a5*std::pow(x,5)); 
-
-
-   L2crossSection =  std::exp(analyticalFunction)/(l2BindingEnergy*l2BindingEnergy); 
-                                                                            
-   } 
-
- return L2crossSection;   
-}
-
-//*****************************************************************************************************************************************
-
-
-G4double G4OrlicLCrossSection::CalculateL3CrossSection(G4int zTarget, G4double energyIncident)
-  			       
-{
-
-  G4AtomicTransitionManager*  transitionManager =  G4AtomicTransitionManager::Instance();
-
-  G4double  massIncident; 
-
-
-  G4Proton* aProtone = G4Proton::Proton();
-    
-  massIncident = aProtone->GetPDGMass(); 
-
- 
- G4double L3crossSection;
-
- if (zTarget<41)
-   { 
-     L3crossSection =0.;
-   }
- else
-   {
-
- G4double l3BindingEnergy = (transitionManager->Shell(zTarget,3)->BindingEnergy())/keV;
- 
- 
-  G4double lamda =  massIncident/electron_mass_c2;
-
-  G4double normalizedEnergy =  (energyIncident/keV)/(lamda*l3BindingEnergy);
-
-  G4double x = std::log(normalizedEnergy);
-
-
-  G4double a0 = 0.;
-  G4double a1 = 0.;
-  G4double a2 = 0.;
-  G4double a3 = 0.;
-  G4double a4 = 0.;
- 
-      if ( zTarget>=41 &&  zTarget<=50 ) 
-	{ 
-      a0=11.91837;
-      a1=0.03064;
-      a2=-0.657644;
-      a3=-0.14532;
-      a4=-0.026059;      
-	}
-     
-      else  
-	{
-	  if ( zTarget>=51 &&  zTarget<=60 ) 
-	    { 
-	      a0=11.909485;
-	      a1=0.15918;
-	      a2=-0.588004;
-	      a3=-0.159466;
-	      a4=-0.033184;	      
-	    } 
-	
-	  else  
-	    {
-	      if ( zTarget>=61 &&  zTarget<=70 ) 
-		{ 
-		  a0=11.878472;
-		  a1=-0.137007;
-		  a2=-0.959475;
-		  a3=-0.316505;
-		  a4=-0.054154;	 
-		} 
-	      else  
-		{
-		  if ( zTarget>=71 &&  zTarget<=80 ) 
-		    { 
-		      a0=11.802538;
-		      a1=-0.371796;
-		      a2=-1.052238;
-		      a3=-0.28766;
-		      a4=-0.042608;	     
-		    } 
-		  else  
-		    {
-		      if ( zTarget>=81 &&  zTarget<=92 ) 
-			{ 
-			  a0=11.423712;
-			  a1=-1.428823;
-			  a2=-1.946979;
-			  a3=-0.585198;
-			  a4=-0.076467;			 
-			}
-		      else
-			{ 
-			  G4cout << "ERREUR: L3 Cross-Section exist only for ZTarget between 14 and 92!!! " << G4endl;
-		       
-			}
-		    }
-		}
-	    }
-	}
-      
-
- G4double analyticalFunction = a0 + (a1*x)+(a2*x*x)+(a3*std::pow(x,3))+(a4*std::pow(x,4)); 
-
-
-   L3crossSection =  std::exp(analyticalFunction)/(l3BindingEnergy*l3BindingEnergy); 
-                                                                            
-   } 
-
- return L3crossSection;   
-}
Index: trunk/source/processes/electromagnetic/lowenergy/src/G4ecpssrCrossSection.cc
===================================================================
--- trunk/source/processes/electromagnetic/lowenergy/src/G4ecpssrCrossSection.cc	(revision 1197)
+++ 	(revision )
@@ -1,303 +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: G4ecpssrCrossSection.cc,v 1.5 2008/12/18 13:01:32 gunter Exp $
-// GEANT4 tag $Name: geant4-09-02 $
-//
-// Author: Haifa Ben Abdelouahed
-//         
-//
-// History:
-// -----------
-//  21 Apr 2008   H. Ben Abdelouahed   1st implementation
-//  21 Apr 2008   MGP        Major revision according to a design iteration
-//
-// -------------------------------------------------------------------
-// Class description:
-// Low Energy Electromagnetic Physics, Cross section, p ionisation, K shell
-// Further documentation available from http://www.ge.infn.it/geant4/lowE
-// -------------------------------------------------------------------
-
-
-#include "globals.hh"
-#include "G4ecpssrCrossSection.hh"
-#include "G4AtomicTransitionManager.hh"
-#include "G4NistManager.hh"
-#include "G4Proton.hh"
-#include "G4Alpha.hh"
-#include <math.h>
-
-G4ecpssrCrossSection::G4ecpssrCrossSection()
-{ }
-
-G4ecpssrCrossSection::~G4ecpssrCrossSection()
-{ }
-
-//---------------------------------this "ExpIntFunction" function allows fast evaluation of the n order exponential integral function En(x)------
-
-G4double G4ecpssrCrossSection::ExpIntFunction(G4int n,G4double x)
-
-{
-  G4int i;
-  G4int ii;
-  G4int nm1;
-  G4double a;
-  G4double b;
-  G4double c;
-  G4double d;
-  G4double del;
-  G4double fact;
-  G4double h;
-  G4double psi;
-  G4double ans = 0;
-  const G4double euler= 0.5772156649;
-  const G4int maxit= 100;
-  const G4double fpmin = 1.0e-30;
-  const G4double eps = 1.0e-7;
-  nm1=n-1;
-  if (n<0 || x<0.0 || (x==0.0 && (n==0 || n==1)))
-  G4cout << "bad arguments in ExpIntFunction" << G4endl;
-  else {
-       if (n==0) ans=std::exp(-x)/x;
-        else {
-           if (x==0.0) ans=1.0/nm1;
-              else {
-                   if (x > 1.0) {
-                         	b=x+n;
-                        	c=1.0/fpmin;
-                        	d=1.0/b;
-				h=d;
-				for (i=1;i<=maxit;i++) {
-				  a=-i*(nm1+i);
-				  b +=2.0;
-				  d=1.0/(a*d+b);
-				  c=b+a/c;
-				  del=c*d;
-				  h *=del;
-				      if (std::fabs(del-1.0) < eps) {
-					ans=h*std::exp(-x);
-					return ans;
-				      }
-				}
-		   } else {
-		     ans = (nm1!=0 ? 1.0/nm1 : -std::log(x)-euler);
-		     fact=1.0;
-		     for (i=1;i<=maxit;i++) {
-		       fact *=-x/i;
-		       if (i !=nm1) del = -fact/(i-nm1);
-		       else {
-			 psi = -euler;
-			 for (ii=1;ii<=nm1;ii++) psi +=1.0/ii;
-			 del=fact*(-std::log(x)+psi);
-		       }
-		       ans += del;
-		       if (std::fabs(del) < std::fabs(ans)*eps) return ans;
-		     }
-		   }
-	      }
-	}
-  }
-return ans;
-}
-//-----------------------------------------------------------------------------------------------------------
-
- 
-G4double G4ecpssrCrossSection::CalculateCrossSection(G4int zTarget,G4int zIncident, G4double energyIncident)
- 
- //this K-CrossSection calculation method is done according to W.Brandt and G.Lapicki, Phys.Rev.A23(1981)//					                
-
-{
-
-  G4NistManager* massManager = G4NistManager::Instance();   
-
-  G4AtomicTransitionManager*  transitionManager =  G4AtomicTransitionManager::Instance();
-
-  G4double  massIncident; 
-
- if (zIncident == 1)
-    {
-    G4Proton* aProtone = G4Proton::Proton();
-    
-   massIncident = aProtone->GetPDGMass(); 
-    }
-  else
-    {
-      if (zIncident == 2)
-	{
-	  G4Alpha* aAlpha = G4Alpha::Alpha();
-	  
-	   massIncident  = aAlpha->GetPDGMass(); 
-	}
-      else
-	{ 
-	  G4cout << "we can treat only Proton or Alpha incident particles " << G4endl;
-	  massIncident =0.;
-	}
-    }
- 
-  G4double kBindingEnergy = transitionManager->Shell(zTarget,0)->BindingEnergy();
-         
-  G4double massTarget = (massManager->GetAtomicMassAmu(zTarget))*amu_c2;
- 
-  G4double systemMass =((massIncident*massTarget)/(massIncident+massTarget))/electron_mass_c2;//the mass of the system (projectile, target) 
-
- const G4double zkshell= 0.3;
-
-  G4double screenedzTarget = zTarget-zkshell;                                 // screenedzTarget is the screened nuclear charge of the target
-
-  const G4double rydbergMeV= 13.6e-6;
-     
-  G4double tetaK = kBindingEnergy/((screenedzTarget*screenedzTarget)*rydbergMeV);  //tetaK denotes the reduced binding energy of the electron
-
-  const G4double bohrPow2Barn=(Bohr_radius*Bohr_radius)/barn ;        
-  
-  G4double sigma0 = 8.*pi*(zIncident*zIncident)*bohrPow2Barn*std::pow(screenedzTarget,-4.);     //sigma0 is the initial cross section of K shell at stable state
-
-  //---------------------------------------------------------------------------------------------------------------------
-
- G4double velocity = CalculateVelocity( zTarget, zIncident, energyIncident);   //is the scaled velocity parameter of the system  
-
-  //---------------------------------------------------------------------------------------------------------------------
-  
- const G4double kAnalyticalApproximation= 1.5; 
- 
-  G4double x = kAnalyticalApproximation/velocity;
- 
-  G4double electrIonizationEnergy;                                         
-                                       
-  if ( x<0.035)  
-    {
-      electrIonizationEnergy= 0.75*pi*(std::log(1./(x*x))-1.);  
-    }
-  else 
-    { 
-      if ( x<3.) 
-	{ 
-	  electrIonizationEnergy =std::exp(-2.*x)/(0.031+(0.213*std::pow(x,0.5))+(0.005*x)-(0.069*std::pow(x,3./2.))+(0.324*x*x));
-	}
-     
-      else  
-	{
-	 electrIonizationEnergy =2.*std::exp(-2.*x)/std::pow(x,1.6); }
-    }
-
-  G4double hFunction =(electrIonizationEnergy*2.)/(tetaK*std::pow(velocity,3)); //hFunction represents the correction for polarization effet
-    
-  G4double gFunction = (1.+(9.*velocity)+(31.*velocity*velocity)+(98.*std::pow(velocity,3.))+(12.*std::pow(velocity,4.))+(25.*std::pow(velocity,5.))
-			+(4.2*std::pow(velocity,6.))+(0.515*std::pow(velocity,7.)))/std::pow(1.+velocity,9.); //gFunction represents the correction for binding effet
- 
-  //-----------------------------------------------------------------------------------------------------------------------------
-
-  G4double sigmaPSS = 1.+(((2.*zIncident)/(screenedzTarget*tetaK))*(gFunction-hFunction)); //describes the perturbed stationnairy state of the affected atomic electon
- 
- //----------------------------------------------------------------------------------------------------------------------------
-  
-  const G4double cNaturalUnit= 1/fine_structure_const;  // it's the speed of light according to Atomic-Unit-System
-  
-  G4double ykFormula=0.4*(screenedzTarget/cNaturalUnit)*(screenedzTarget/cNaturalUnit)/(velocity/sigmaPSS);
- 
-  G4double relativityCorrection = std::pow((1.+(1.1*ykFormula*ykFormula)),0.5)+ykFormula;// the relativistic correction parameter
-
-  G4double reducedVelocity = velocity*std::pow(relativityCorrection,0.5);  // presents the reduced collision velocity parameter 
-
-  G4double universalFunction = (std::pow(2.,9.)/45.)*std::pow(reducedVelocity/sigmaPSS,8.)*std::pow((1.+(1.72*(reducedVelocity/sigmaPSS)*(reducedVelocity/sigmaPSS))),-4.);// is the reduced universal cross section
-
-  //----------------------------------------------------------------------------------------------------------------------
-
-  G4double sigmaPSSR = (sigma0/(sigmaPSS*tetaK))*universalFunction; //sigmaPSSR is the straight-line K-shell ionization cross section
-  
-  //-----------------------------------------------------------------------------------------------------------------------
-
-  G4double pssDeltaK = (4./(systemMass*sigmaPSS*tetaK))*(sigmaPSS/velocity)*(sigmaPSS/velocity);
-
-  G4double energyLoss = std::pow(1-pssDeltaK,0.5); //energyLoss incorporates the straight-line energy-loss 
-
-  G4double energyLossFunction = (std::pow(2.,-9)/8.)*((((9.*energyLoss)-1.)*std::pow(1.+energyLoss,9.))+(((9.*energyLoss)+1.)*std::pow(1.-energyLoss,9.)));//energy loss function 
-
-  //----------------------------------------------------------------------------------------------------------------------------------------------
-
-  G4double coulombDeflection = (4.*pi*zIncident/systemMass)*std::pow(tetaK*sigmaPSS,-2.)*std::pow(velocity/sigmaPSS,-3.)*(zTarget/screenedzTarget); //incorporates Coulomb deflection parameter 
- 
-  G4double cParameter = 2.*coulombDeflection/(energyLoss*(energyLoss+1.));
-  
-
-  G4double coulombDeflectionFunction = 9.*ExpIntFunction(10,cParameter);                         //this function describes Coulomb-deflection effect
-
-  //--------------------------------------------------------------------------------------------------------------------------------------------------
- 
-
-  G4double crossSection =  energyLossFunction* coulombDeflectionFunction*sigmaPSSR;  //this ECPSSR cross section is estimated at perturbed-stationnairy-state(PSS)
-                                                                                    //and it's reduced by the energy-loss(E),the Coulomb deflection(C),
-                                                                                   //and the relativity(R) effects
-
-  //--------------------------------------------------------------------------------------------------------------------------------------------------   
-
-  return crossSection;
-}
-
-G4double G4ecpssrCrossSection::CalculateVelocity(G4int zTarget, G4int zIncident,  G4double energyIncident) 
-			                     
-{  
-
-  G4AtomicTransitionManager*  transitionManager =  G4AtomicTransitionManager::Instance();
-
-  G4double kBindingEnergy = (transitionManager->Shell(zTarget,0)->BindingEnergy())/MeV;
- 
- G4double  massIncident; 
-
- if (zIncident == 1)
-    {
-    G4Proton* aProtone = G4Proton::Proton();
-    
-   massIncident = aProtone->GetPDGMass(); 
-    }
-  else
-    {
-      if (zIncident == 2)
-	{
-	  G4Alpha* aAlpha = G4Alpha::Alpha();
-	  
-	   massIncident  = aAlpha->GetPDGMass(); 
-	}
-      else
-	{ 
-	  G4cout << "we can treat only Proton or Alpha incident particles " << G4endl;
-	  massIncident =0.;
-	}
-    }
-
- const G4double zkshell= 0.3;      
-  
- G4double screenedzTarget = zTarget- zkshell;                                  
-
- const G4double rydbergMeV= 13.6e-6;
- 
-G4double tetaK = kBindingEnergy/(screenedzTarget*screenedzTarget*rydbergMeV);            
-  
-G4double velocity =(2./(tetaK*screenedzTarget))*std::pow(((energyIncident*electron_mass_c2)/(massIncident*rydbergMeV)),0.5);
-
-  return velocity;
-}
-
