Index: trunk/source/materials/include/G4AtomicShells.hh
===================================================================
--- trunk/source/materials/include/G4AtomicShells.hh	(revision 921)
+++ trunk/source/materials/include/G4AtomicShells.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4AtomicShells.hh,v 1.7 2006/10/17 15:15:46 vnivanch Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 
 // class description
Index: trunk/source/materials/include/G4Element.hh
===================================================================
--- trunk/source/materials/include/G4Element.hh	(revision 921)
+++ trunk/source/materials/include/G4Element.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4Element.hh,v 1.23 2008/11/14 15:14:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-cand-01 $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 
Index: trunk/source/materials/include/G4ElementTable.hh
===================================================================
--- trunk/source/materials/include/G4ElementTable.hh	(revision 921)
+++ trunk/source/materials/include/G4ElementTable.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4ElementTable.hh,v 1.6 2006/06/29 19:10:58 gunter Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // 
Index: trunk/source/materials/include/G4ElementVector.hh
===================================================================
--- trunk/source/materials/include/G4ElementVector.hh	(revision 921)
+++ trunk/source/materials/include/G4ElementVector.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4ElementVector.hh,v 1.6 2006/06/29 19:11:00 gunter Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // 
Index: trunk/source/materials/include/G4IonisParamElm.hh
===================================================================
--- trunk/source/materials/include/G4IonisParamElm.hh	(revision 921)
+++ trunk/source/materials/include/G4IonisParamElm.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4IonisParamElm.hh,v 1.10 2008/06/03 14:30:10 vnivanch Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 
Index: trunk/source/materials/include/G4IonisParamMat.hh
===================================================================
--- trunk/source/materials/include/G4IonisParamMat.hh	(revision 921)
+++ trunk/source/materials/include/G4IonisParamMat.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4IonisParamMat.hh,v 1.12 2008/07/08 10:34:56 vnivanch Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 
Index: trunk/source/materials/include/G4IronStoppingICRU73.hh
===================================================================
--- trunk/source/materials/include/G4IronStoppingICRU73.hh	(revision 986)
+++ trunk/source/materials/include/G4IronStoppingICRU73.hh	(revision 986)
@@ -0,0 +1,197 @@
+//
+// ********************************************************************
+// * 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: G4IronStoppingICRU73.hh,v 1.3 2008/11/02 12:22:19 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
+
+#ifndef G4IronStoppingICRU73_h
+#define G4IronStoppingICRU73_h 1
+
+//---------------------------------------------------------------------------
+//
+// ClassName:   G4IronStoppingICRU73
+//
+// Description: Data on stopping powers for light ions in compounds
+//
+// Author:      A.Ivantchenko 8.08.2008
+//
+// Modifications:
+//
+//----------------------------------------------------------------------------
+//
+// Class Description:
+//
+// Data on Stopping Powers from the ICRU73 report
+//
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+
+#include "globals.hh"
+#include "G4LPhysicsFreeVector.hh"
+#include <vector>
+
+class G4IronStoppingICRU73
+{
+public:
+
+  G4IronStoppingICRU73(G4bool splineFlag = true);
+
+  ~G4IronStoppingICRU73();
+
+  G4double GetDEDX(G4int idxMaterial, G4double kinEnergy);
+
+  inline G4double GetDEDX(const G4String& NameMaterial, G4double kinEnergy);
+
+  inline G4int GetMaterialIndex(const G4String& NameMaterial);
+
+  // Function returns an unique index (>=0) for each ion-material couple (the 
+  // return value is -1 if the couple is not found):
+  inline G4int GetIonMaterialCoupleIndex(
+                        G4int atomicNumber,            // Atomic number of ion 
+                        const G4String& materialName); // Material name
+
+  inline G4double GetDensity(G4int idx);
+
+  inline G4String GetMaterialName(G4int idx);
+
+  inline G4PhysicsVector* GetPhysicsVector(G4int idx);
+
+  inline G4PhysicsVector* GetPhysicsVector(const G4String& NameMaterial);
+
+  inline G4double GetLowerEnergyBoundary();
+
+  inline G4double GetUpperEnergyBoundary();
+
+private:
+
+  void AddData(G4double* energy, G4double* stoppower, G4double factor);
+
+  void Initialise();
+
+  // hide assignment operator
+  G4IronStoppingICRU73 & operator=(const  G4IronStoppingICRU73 &right);
+  G4IronStoppingICRU73(const  G4IronStoppingICRU73&);
+
+  G4bool spline;
+  G4String MatName[16];
+  G4double Density[16];
+
+  // Lower and upper energy boundaries for dE/dx vectors:
+  G4double lowerEnergyBoundary;
+  G4double upperEnergyBoundary;
+
+  std::vector<G4LPhysicsFreeVector*>  dedx;
+};
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double G4IronStoppingICRU73::GetDEDX(const G4String& NameMaterial, 
+					      G4double kinEnergy)
+{
+  return GetDEDX(GetMaterialIndex(NameMaterial), kinEnergy);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4int
+G4IronStoppingICRU73::GetMaterialIndex(const G4String& NameMaterial)
+{
+  G4int idx = -1;
+  for (G4int idxMaterial=0; idxMaterial<16; idxMaterial++){
+    if(MatName[idxMaterial] == NameMaterial) {
+      idx = idxMaterial;
+      break;
+    }
+  }
+  return idx;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4int
+G4IronStoppingICRU73::GetIonMaterialCoupleIndex(G4int atomicNumber,
+                                                const G4String& materialName) 
+{
+  G4int idx = -1;
+  if(atomicNumber == 26) idx = GetMaterialIndex(materialName);
+  return idx;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double G4IronStoppingICRU73::GetDensity(G4int idxMaterial)
+{
+  G4double d = 0.0;
+  if( idxMaterial >= 0 && idxMaterial <= 15) d = Density[idxMaterial];
+  return d;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4String G4IronStoppingICRU73::GetMaterialName(G4int idxMaterial)
+{
+  G4String s = "";
+  if( idxMaterial >= 0 && idxMaterial <= 15) s = MatName[idxMaterial];
+  return s;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline 
+G4PhysicsVector* G4IronStoppingICRU73::GetPhysicsVector(G4int idxMaterial)
+{
+  G4PhysicsVector* v = 0;
+  if(idxMaterial >= 0 && idxMaterial <= 15) v = dedx[idxMaterial];
+  return v;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4PhysicsVector* 
+G4IronStoppingICRU73::GetPhysicsVector(const G4String& NameMaterial)
+{
+  return GetPhysicsVector(GetMaterialIndex(NameMaterial));
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double
+G4IronStoppingICRU73::GetLowerEnergyBoundary() {
+
+  return lowerEnergyBoundary;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double
+G4IronStoppingICRU73::GetUpperEnergyBoundary() {
+
+  return upperEnergyBoundary;
+}
+
+
+#endif
+ 
Index: trunk/source/materials/include/G4Isotope.hh
===================================================================
--- trunk/source/materials/include/G4Isotope.hh	(revision 921)
+++ trunk/source/materials/include/G4Isotope.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4Isotope.hh,v 1.21 2008/11/14 15:14:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-cand-01 $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 // 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
Index: trunk/source/materials/include/G4IsotopeVector.hh
===================================================================
--- trunk/source/materials/include/G4IsotopeVector.hh	(revision 921)
+++ trunk/source/materials/include/G4IsotopeVector.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4IsotopeVector.hh,v 1.6 2006/06/29 19:11:09 gunter Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // 
Index: trunk/source/materials/include/G4MPVEntry.hh
===================================================================
--- trunk/source/materials/include/G4MPVEntry.hh	(revision 921)
+++ trunk/source/materials/include/G4MPVEntry.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4MPVEntry.hh,v 1.7 2008/06/05 23:36:56 gum Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // 
Index: trunk/source/materials/include/G4Material.hh
===================================================================
--- trunk/source/materials/include/G4Material.hh	(revision 921)
+++ trunk/source/materials/include/G4Material.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4Material.hh,v 1.27 2008/11/14 15:14:24 gcosmo Exp $
-// GEANT4 tag $Name: geant4-09-02-cand-01 $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 
Index: trunk/source/materials/include/G4MaterialPropertiesTable.hh
===================================================================
--- trunk/source/materials/include/G4MaterialPropertiesTable.hh	(revision 921)
+++ trunk/source/materials/include/G4MaterialPropertiesTable.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4MaterialPropertiesTable.hh,v 1.19 2008/06/05 23:38:03 gum Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // 
Index: trunk/source/materials/include/G4MaterialPropertyVector.hh
===================================================================
--- trunk/source/materials/include/G4MaterialPropertyVector.hh	(revision 921)
+++ trunk/source/materials/include/G4MaterialPropertyVector.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4MaterialPropertyVector.hh,v 1.11 2008/06/05 23:37:37 gum Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // 
Index: trunk/source/materials/include/G4MaterialStoppingICRU73.hh
===================================================================
--- trunk/source/materials/include/G4MaterialStoppingICRU73.hh	(revision 986)
+++ trunk/source/materials/include/G4MaterialStoppingICRU73.hh	(revision 986)
@@ -0,0 +1,211 @@
+//
+// ********************************************************************
+// * 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: G4MaterialStoppingICRU73.hh,v 1.4 2009/02/19 11:09:22 antoni Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
+
+#ifndef G4MaterialStoppingICRU73_h
+#define G4MaterialStoppingICRU73_h 1
+
+//---------------------------------------------------------------------------
+//
+// ClassName:   G4MaterialStoppingICRU73
+//
+// Description: Data on stopping powers for light ions in compounds
+//
+// Author:      Ivantchenko 10.07.2008
+//
+// Modifications:
+//
+//----------------------------------------------------------------------------
+//
+// Class Description:
+//
+// Data on Stopping Powers from the ICRU73 report
+//
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+
+#include "globals.hh"
+#include "G4LPhysicsFreeVector.hh"
+#include <vector>
+
+class G4MaterialStoppingICRU73
+{
+public:
+
+  G4MaterialStoppingICRU73(G4bool splineFlag = true);
+
+  ~G4MaterialStoppingICRU73();
+
+  G4double GetDEDX(G4int ionZ, G4int idxMaterial, G4double kinEnergy);
+
+  inline G4double GetDEDX(G4int ionZ, const G4String& NameMaterial, 
+			  G4double kinEnergy);
+
+  inline G4int GetMaterialIndex(const G4String& NameMaterial);
+
+  // Function returns an unique index (>=0) for each ion-material couple (the 
+  // return value is -1 if the couple is not found):
+  inline G4int GetIonMaterialCoupleIndex(
+                        G4int atomicNumber,            // Atomic number of ion 
+                        const G4String& materialName); // Material name
+
+  inline G4double GetDensity(G4int idxMaterial);
+
+  inline G4String GetMaterialName(G4int idxMaterial);
+
+  inline G4PhysicsVector* GetPhysicsVector(G4int ionZ, G4int idxMaterial);
+
+  inline G4PhysicsVector* GetPhysicsVector(G4int ionZ, 
+					   const G4String& NameMaterial);
+
+  inline G4double GetLowerEnergyBoundary();
+
+  inline G4double GetUpperEnergyBoundary();
+
+private:
+
+  void Initialise();
+
+  void AddData(G4double* energy, G4double* stoppower, G4double factor);
+
+  // hide assignment operator
+  G4MaterialStoppingICRU73 & operator=(const G4MaterialStoppingICRU73 &right);
+  G4MaterialStoppingICRU73(const G4MaterialStoppingICRU73&);
+
+  G4bool   spline;
+  G4int    Z[16];
+  G4double A[16];
+  G4String MatName[31];
+  G4double Density[31];
+
+  // Lower and upper energy boundaries for dE/dx vectors:
+  G4double lowerEnergyBoundary;
+  G4double upperEnergyBoundary;
+
+  std::vector<G4LPhysicsFreeVector*>  dedx;
+};
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double 
+G4MaterialStoppingICRU73::GetDEDX(G4int ionZ, const G4String& NameMaterial, 
+				  G4double kinEnergy)
+{
+  return GetDEDX(ionZ, GetMaterialIndex(NameMaterial), kinEnergy);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4int
+G4MaterialStoppingICRU73::GetMaterialIndex(const G4String& NameMaterial)
+{
+  G4int idx = -1;
+  for (G4int i=0; i<31; i++){
+    if(MatName[i] == NameMaterial) {
+      idx = i;
+      break;
+    }
+  }
+  return idx;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4int
+G4MaterialStoppingICRU73::GetIonMaterialCoupleIndex(
+                       G4int atomicNumber,             
+                       const G4String& materialName) 
+{ 
+  G4int idx = -1;
+  if(atomicNumber >= 3 && atomicNumber <= 18) {
+
+    G4int materialIndex = GetMaterialIndex(materialName);
+    if(materialIndex >= 0) idx = materialIndex * 16 + atomicNumber - 3;
+  }
+
+  return idx;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double 
+G4MaterialStoppingICRU73::GetDensity(G4int idxMaterial)
+{
+  G4double d = 0.0;
+  if( idxMaterial >= 0 && idxMaterial <= 30) d = Density[idxMaterial];
+  return d;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline 
+G4String G4MaterialStoppingICRU73::GetMaterialName(G4int idxMaterial)
+{
+  G4String s = "";
+  if( idxMaterial >= 0 && idxMaterial <= 30) s = MatName[idxMaterial];
+  return s;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4PhysicsVector* 
+G4MaterialStoppingICRU73::GetPhysicsVector(G4int ionZ, G4int idxMaterial)
+{
+  G4PhysicsVector* v = 0;
+  if(ionZ >= 3 && ionZ <= 18 && idxMaterial >= 0 && idxMaterial <= 30) {  
+    v = dedx[idxMaterial*16 + ionZ - 3];
+  }
+  return v;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4PhysicsVector* 
+G4MaterialStoppingICRU73::GetPhysicsVector(G4int ionZ, 
+					   const G4String& NameMaterial)
+{
+  return GetPhysicsVector(ionZ, GetMaterialIndex(NameMaterial));
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double
+G4MaterialStoppingICRU73::GetLowerEnergyBoundary() {
+
+  return lowerEnergyBoundary;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double
+G4MaterialStoppingICRU73::GetUpperEnergyBoundary() {
+
+  return upperEnergyBoundary;
+}
+
+#endif
Index: trunk/source/materials/include/G4MaterialTable.hh
===================================================================
--- trunk/source/materials/include/G4MaterialTable.hh	(revision 921)
+++ trunk/source/materials/include/G4MaterialTable.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4MaterialTable.hh,v 1.6 2006/06/29 19:11:19 gunter Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // 
Index: trunk/source/materials/include/G4NistElementBuilder.hh
===================================================================
--- trunk/source/materials/include/G4NistElementBuilder.hh	(revision 921)
+++ trunk/source/materials/include/G4NistElementBuilder.hh	(revision 986)
@@ -25,5 +25,5 @@
 //
 // $Id: G4NistElementBuilder.hh,v 1.18 2008/08/07 10:15:16 vnivanch Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 
 #ifndef G4NistElementBuilder_h
Index: trunk/source/materials/include/G4NistManager.hh
===================================================================
--- trunk/source/materials/include/G4NistManager.hh	(revision 921)
+++ trunk/source/materials/include/G4NistManager.hh	(revision 986)
@@ -25,5 +25,5 @@
 //
 // $Id: G4NistManager.hh,v 1.23 2008/08/07 10:15:16 vnivanch Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 //
Index: trunk/source/materials/include/G4NistMaterialBuilder.hh
===================================================================
--- trunk/source/materials/include/G4NistMaterialBuilder.hh	(revision 921)
+++ trunk/source/materials/include/G4NistMaterialBuilder.hh	(revision 986)
@@ -25,5 +25,5 @@
 //
 // $Id: G4NistMaterialBuilder.hh,v 1.13 2008/04/28 08:51:29 vnivanch Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 
 #ifndef G4NistMaterialBuilder_h
Index: trunk/source/materials/include/G4NistMessenger.hh
===================================================================
--- trunk/source/materials/include/G4NistMessenger.hh	(revision 921)
+++ trunk/source/materials/include/G4NistMessenger.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4NistMessenger.hh,v 1.4 2007/05/02 10:48:52 vnivanch Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // File name:     G4NistMessenger
Index: trunk/source/materials/include/G4OpticalSurface.hh
===================================================================
--- trunk/source/materials/include/G4OpticalSurface.hh	(revision 921)
+++ trunk/source/materials/include/G4OpticalSurface.hh	(revision 986)
@@ -25,6 +25,6 @@
 //
 //
-// $Id: G4OpticalSurface.hh,v 1.10 2008/07/21 20:54:57 gum Exp $
-// GEANT4 tag $Name: HEAD $
+// $Id: G4OpticalSurface.hh,v 1.11 2008/12/11 10:23:54 gcosmo Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // 
@@ -84,20 +84,8 @@
 {
 
-public: // Without description
-  
-        //////////////
-        // Operators
-        //////////////
-  
-	G4OpticalSurface(const G4OpticalSurface &right);
-	const G4OpticalSurface & operator=(const G4OpticalSurface &right);
-  
-	G4int operator==(const G4OpticalSurface &right) const;
-	G4int operator!=(const G4OpticalSurface &right) const;
-
 public: // With description
 
         ////////////////////////////////
-        // Constructors and Destructor
+        // Constructor
         ////////////////////////////////
 
@@ -111,5 +99,20 @@
 public: // Without description
 
+        //////////////
+        // Constructors and destructor
+        //////////////
+
+	G4OpticalSurface();
 	virtual ~G4OpticalSurface();
+	G4OpticalSurface(const G4OpticalSurface &right);
+  
+        //////////////
+        // Operators
+        //////////////
+  
+	const G4OpticalSurface & operator=(const G4OpticalSurface &right);
+  
+	G4int operator==(const G4OpticalSurface &right) const;
+	G4int operator!=(const G4OpticalSurface &right) const;
 
 	////////////
@@ -117,9 +120,5 @@
         ////////////
 
-	// public methods
-
 public: // With description
-
-        virtual void Overwrite() {G4cout << "G4OpticalSurface" << G4endl;};
 
         G4OpticalSurfaceFinish GetFinish() const {return theFinish;};
Index: trunk/source/materials/include/G4SandiaTable.hh
===================================================================
--- trunk/source/materials/include/G4SandiaTable.hh	(revision 921)
+++ trunk/source/materials/include/G4SandiaTable.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4SandiaTable.hh,v 1.21 2007/10/02 10:13:33 vnivanch Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 
 // class description
Index: trunk/source/materials/include/G4SimpleMaterialStoppingICRU73.hh
===================================================================
--- trunk/source/materials/include/G4SimpleMaterialStoppingICRU73.hh	(revision 986)
+++ trunk/source/materials/include/G4SimpleMaterialStoppingICRU73.hh	(revision 986)
@@ -0,0 +1,212 @@
+//
+// ********************************************************************
+// * 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: G4SimpleMaterialStoppingICRU73.hh,v 1.5 2009/02/19 12:19:53 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
+
+#ifndef G4SimpleMaterialStoppingICRU73_h
+#define G4SimpleMaterialStoppingICRU73_h 1
+
+//---------------------------------------------------------------------------
+//
+// ClassName:   G4SimpleMaterialStoppingICRU73
+//
+// Description: Data on stopping powers for light ions in compounds
+//
+// Author:      Ivantchenko 10.07.2008
+//
+// Modifications:
+//
+//----------------------------------------------------------------------------
+//
+// Class Description:
+//
+// Data on Stopping Powers from the ICRU73 report
+//
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+
+#include "globals.hh"
+#include "G4LPhysicsFreeVector.hh"
+#include <vector>
+
+class G4SimpleMaterialStoppingICRU73
+{
+public:
+
+  G4SimpleMaterialStoppingICRU73(G4bool splineFlag = true);
+
+  ~G4SimpleMaterialStoppingICRU73();
+
+  G4double GetDEDX(G4int ionZ, G4int idxMaterial, G4double kinEnergy);
+
+  inline G4double GetDEDX(G4int ionZ, const G4String& NameMaterial, 
+			  G4double kinEnergy);
+
+  inline G4int GetMaterialIndex(const G4String& NameMaterial);
+
+  // Function returns an unique index (>=0) for each ion-material couple (the 
+  // return value is -1 if the couple is not found):
+  inline G4int GetIonMaterialCoupleIndex(
+                        G4int atomicNumber,            // Atomic number of ion 
+                        const G4String& materialName); // Material name
+
+  inline G4double GetDensity(G4int idxMaterial);
+
+  inline G4String GetMaterialName(G4int idxMaterial);
+
+  inline G4PhysicsVector* GetPhysicsVector(G4int ionZ, G4int idxMaterial);
+
+  inline G4PhysicsVector* GetPhysicsVector(G4int ionZ, 
+					   const G4String& NameMaterial);
+
+  inline G4double GetLowerEnergyBoundary();
+
+  inline G4double GetUpperEnergyBoundary();
+
+private:
+
+  void Initialise();
+
+  void AddData(G4double* energy, G4double* stoppower, G4double factor);
+
+  // hide assignment operator
+  G4SimpleMaterialStoppingICRU73 & operator=(const G4SimpleMaterialStoppingICRU73 &right);
+  G4SimpleMaterialStoppingICRU73(const G4SimpleMaterialStoppingICRU73&);
+
+  G4bool   spline;
+  G4int    Z[16];
+  G4double A[16];
+  G4String MatName[25];
+  G4double Density[25];
+
+  // Lower and upper energy boundaries for dE/dx vectors:
+  G4double lowerEnergyBoundary;
+  G4double upperEnergyBoundary;
+
+  std::vector<G4LPhysicsFreeVector*>  dedx;
+};
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double 
+G4SimpleMaterialStoppingICRU73::GetDEDX(G4int ionZ, const G4String& NameMaterial, 
+					G4double kinEnergy)
+{
+  return GetDEDX(ionZ, GetMaterialIndex(NameMaterial), kinEnergy);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4int
+G4SimpleMaterialStoppingICRU73::GetMaterialIndex(const G4String& NameMaterial)
+{
+  G4int idx = -1;
+  for (G4int i=0; i<25; i++){
+    if(MatName[i] == NameMaterial) {
+      idx = i;
+      break;
+    }
+  }
+  return idx;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4int
+G4SimpleMaterialStoppingICRU73::GetIonMaterialCoupleIndex(
+                       G4int atomicNumber,             
+                       const G4String& materialName) 
+{ 
+  G4int idx = -1;
+  if(atomicNumber >= 3 && atomicNumber <= 18) {
+
+    G4int materialIndex = GetMaterialIndex(materialName);
+    if(materialIndex >= 0) idx = materialIndex * 16 + atomicNumber - 3;
+  }
+
+  return idx;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double 
+G4SimpleMaterialStoppingICRU73::GetDensity(G4int idxMaterial)
+{
+  G4double d = 0.0;
+  if( idxMaterial >= 0 && idxMaterial <= 24) d = Density[idxMaterial];
+  return d;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline 
+G4String G4SimpleMaterialStoppingICRU73::GetMaterialName(G4int idxMaterial)
+{
+  G4String s = "";
+  if( idxMaterial >= 0 && idxMaterial <= 24) s = MatName[idxMaterial];
+  return s;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4PhysicsVector* 
+G4SimpleMaterialStoppingICRU73::GetPhysicsVector(G4int ionZ, G4int idxMaterial)
+{
+  G4PhysicsVector* v = 0;
+  if(ionZ >= 3 && ionZ <= 18 && idxMaterial >= 0 && idxMaterial <= 24) {  
+    v = dedx[idxMaterial*16 + ionZ - 3];
+  }
+  return v;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4PhysicsVector* 
+G4SimpleMaterialStoppingICRU73::GetPhysicsVector(G4int ionZ, 
+						 const G4String& NameMaterial)
+{
+  return GetPhysicsVector(ionZ, GetMaterialIndex(NameMaterial));
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double
+G4SimpleMaterialStoppingICRU73::GetLowerEnergyBoundary() {
+
+  return lowerEnergyBoundary;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
+
+inline G4double
+G4SimpleMaterialStoppingICRU73::GetUpperEnergyBoundary() {
+
+  return upperEnergyBoundary;
+}
+
+
+#endif
Index: trunk/source/materials/include/G4StaticSandiaData.hh
===================================================================
--- trunk/source/materials/include/G4StaticSandiaData.hh	(revision 921)
+++ trunk/source/materials/include/G4StaticSandiaData.hh	(revision 986)
@@ -26,5 +26,5 @@
 //
 // $Id: G4StaticSandiaData.hh,v 1.7 2006/06/29 19:12:35 gunter Exp $
-// GEANT4 tag $Name: HEAD $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 
Index: trunk/source/materials/include/G4SurfaceProperty.hh
===================================================================
--- trunk/source/materials/include/G4SurfaceProperty.hh	(revision 921)
+++ trunk/source/materials/include/G4SurfaceProperty.hh	(revision 986)
@@ -25,6 +25,6 @@
 //
 //
-// $Id: G4SurfaceProperty.hh,v 1.7 2008/07/21 20:55:16 gum Exp $
-// GEANT4 tag $Name: HEAD $
+// $Id: G4SurfaceProperty.hh,v 1.8 2008/12/11 10:23:54 gcosmo Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // 
@@ -102,4 +102,5 @@
 public: // Without description
 
+        G4SurfaceProperty();
 	virtual ~G4SurfaceProperty();
 
@@ -111,6 +112,4 @@
 
 public: // With description
-
-        virtual void Overwrite() {G4cout << "G4SurfaceProperty" << G4endl;};
 
 	G4String GetName() const { return theName; };
