Index: trunk/source/processes/hadronic/cross_sections/include/G4BGGNucleonElasticXS.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4BGGNucleonElasticXS.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4BGGNucleonElasticXS.hh	(revision 1055)
@@ -25,5 +25,5 @@
 //
 // $Id: G4BGGNucleonElasticXS.hh,v 1.2 2008/12/01 16:50:23 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
 //
 // -------------------------------------------------------------------
Index: trunk/source/processes/hadronic/cross_sections/include/G4BGGNucleonInelasticXS.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4BGGNucleonInelasticXS.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4BGGNucleonInelasticXS.hh	(revision 1055)
@@ -25,5 +25,5 @@
 //
 // $Id: G4BGGNucleonInelasticXS.hh,v 1.2 2008/12/01 16:50:23 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
 //
 // -------------------------------------------------------------------
Index: trunk/source/processes/hadronic/cross_sections/include/G4BGGPionElasticXS.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4BGGPionElasticXS.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4BGGPionElasticXS.hh	(revision 1055)
@@ -25,5 +25,5 @@
 //
 // $Id: G4BGGPionElasticXS.hh,v 1.2 2008/12/01 16:50:23 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
 //
 // -------------------------------------------------------------------
Index: trunk/source/processes/hadronic/cross_sections/include/G4BGGPionInelasticXS.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4BGGPionInelasticXS.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4BGGPionInelasticXS.hh	(revision 1055)
@@ -25,5 +25,5 @@
 //
 // $Id: G4BGGPionInelasticXS.hh,v 1.2 2008/12/01 16:50:23 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
 //
 // -------------------------------------------------------------------
Index: trunk/source/processes/hadronic/cross_sections/include/G4CrossSectionDataSetRegistry.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4CrossSectionDataSetRegistry.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4CrossSectionDataSetRegistry.hh	(revision 1055)
@@ -25,5 +25,5 @@
 //
 // $Id: G4CrossSectionDataSetRegistry.hh,v 1.2 2009/02/14 19:22:19 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02-ref-02 $
+// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
 //
 // -------------------------------------------------------------------
Index: trunk/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4CrossSectionDataStore.hh	(revision 1055)
@@ -24,4 +24,20 @@
 // ********************************************************************
 //
+// $Id: G4CrossSectionDataStore.hh,v 1.14 2009/01/24 11:54:47 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
+//
+// -------------------------------------------------------------------
+//
+// GEANT4 Class header file
+//
+//
+// File name:     G4CrossSectionDataStore
+//
+//
+// Modifications:
+// 23.01.2009 V.Ivanchenko move constructor and destructor to source,
+//                         use STL vector instead of C-array
+//
+
 // Class Description
 // This is the class to which cross section data sets may be registered. 
@@ -40,4 +56,5 @@
 #include "G4Material.hh"
 #include "G4VCrossSectionDataSet.hh"
+#include <vector>
 
 class G4Nucleus;
@@ -47,55 +64,50 @@
 public:
 
-   G4CrossSectionDataStore() :
-      NDataSetList(0), verboseLevel(0)
-   {}
+  G4CrossSectionDataStore();
 
-   ~G4CrossSectionDataStore()
-   {}
+  ~G4CrossSectionDataStore();
 
-   G4double GetCrossSection(const G4DynamicParticle*, 
-                            const G4Element*, G4double aTemperature);
+  G4double GetCrossSection(const G4DynamicParticle*, 
+			   const G4Element*, G4double aTemperature);
 
-   G4double GetCrossSection(const G4DynamicParticle*, 
-                            const G4Isotope*, G4double aTemperature);
+  G4double GetCrossSection(const G4DynamicParticle*, 
+			   const G4Isotope*, G4double aTemperature);
 
-   G4double GetCrossSection(const G4DynamicParticle*, 
-                            G4double Z, G4double A, G4double aTemperature);
+  G4double GetCrossSection(const G4DynamicParticle*, 
+			   G4double Z, G4double A, G4double aTemperature);
 
-   // to replace GetMicroscopicCrossSection
-   G4double GetCrossSection(const G4DynamicParticle*, const G4Material*);
+  // to replace GetMicroscopicCrossSection
+  G4double GetCrossSection(const G4DynamicParticle*, const G4Material*);
 
-   std::pair<G4double/*Z*/, G4double/*A*/> 
-   SelectRandomIsotope(const G4DynamicParticle*, const G4Material*);
+  //std::pair<G4double/*Z*/, G4double/*A*/> 
+  // SelectRandomIsotope(const G4DynamicParticle*, const G4Material*);
 
-   G4Element* SampleZandA(const G4DynamicParticle*, const G4Material*,
-			  G4Nucleus& target);
+  G4Element* SampleZandA(const G4DynamicParticle*, const G4Material*,
+			 G4Nucleus& target);
 
-   void AddDataSet(G4VCrossSectionDataSet*);
+  void AddDataSet(G4VCrossSectionDataSet*);
 
-   void BuildPhysicsTable(const G4ParticleDefinition&);
+  void BuildPhysicsTable(const G4ParticleDefinition&);
 
-   void DumpPhysicsTable(const G4ParticleDefinition&);
+  void DumpPhysicsTable(const G4ParticleDefinition&);
 
-   void SetVerboseLevel(G4int value)
-   {
-      verboseLevel = value;
-   }
+  inline void SetVerboseLevel(G4int value)
+  {
+    verboseLevel = value;
+  }
 
-   G4int GetVerboseLevel()
-   {
-      return verboseLevel;
-   }
+  inline G4int GetVerboseLevel()
+  {
+    return verboseLevel;
+  }
 
 private:
 
+  G4VCrossSectionDataSet* whichDataSetInCharge(const G4DynamicParticle*, 
+					       const G4Element*);
 
-   G4VCrossSectionDataSet* whichDataSetInCharge(const G4DynamicParticle*, 
-                            const G4Element*);
-
-   enum { NDataSetMax = 100 };
-   G4VCrossSectionDataSet* DataSetList[NDataSetMax];
-   G4int NDataSetList;
-   G4int verboseLevel;
+  std::vector<G4VCrossSectionDataSet*> DataSetList;
+  G4int NDataSetList;
+  G4int verboseLevel;
 };
 
Index: trunk/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4ElectroNuclearCrossSection.hh	(revision 1055)
@@ -25,5 +25,5 @@
 //
 //
-// GEANT4 tag $Name: geant4-09-02 $
+// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
 //
 //
Index: trunk/source/processes/hadronic/cross_sections/include/G4GGNuclNuclCrossSection.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4GGNuclNuclCrossSection.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4GGNuclNuclCrossSection.hh	(revision 1055)
@@ -71,4 +71,7 @@
 				G4double Z, G4double A, 
 				G4double aTemperature = 0.0);
+
+  G4double GetCoulombBarier(const G4DynamicParticle*, 
+				G4double Z, G4double A, G4double pR, G4double tR);
 
   virtual
Index: trunk/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4HadronCrossSections.hh	(revision 1055)
@@ -25,5 +25,5 @@
 //
 //
-// GEANT4 tag $Name: geant4-09-02 $
+// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
 //
 //
Index: trunk/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4PhotoNuclearCrossSection.hh	(revision 1055)
@@ -25,5 +25,5 @@
 //
 //
-// GEANT4 tag $Name: geant4-09-02 $
+// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
 //
 //
Index: trunk/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh
===================================================================
--- trunk/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh	(revision 1007)
+++ trunk/source/processes/hadronic/cross_sections/include/G4VCrossSectionDataSet.hh	(revision 1055)
@@ -24,7 +24,20 @@
 // ********************************************************************
 //
+// $Id: G4VCrossSectionDataSet.hh,v 1.13 2009/01/24 11:54:47 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-03-beta-cand-01 $
 //
-// GEANT4 physics abstract class: G4VCrossSectionData -- header file
-// F.W. Jones, TRIUMF, 20-JAN-97
+// -------------------------------------------------------------------
+//
+// GEANT4 Class header file
+//
+//
+// File name:    G4VCrossSectionDataSet
+//
+// Author  F.W. Jones, TRIUMF, 20-JAN-97
+//
+// Modifications:
+// 23.01.2009 V.Ivanchenko move constructor and destructor to source
+//
+ 
 //
 // Class Description
@@ -43,56 +56,51 @@
 class G4VCrossSectionDataSet
 {
-public:
-
-   G4VCrossSectionDataSet() :
-      verboseLevel(0)
-   {}
-
-   virtual ~G4VCrossSectionDataSet()
-   {}
-
 public: //with description
 
-   // The following methods need to be implemented for each new data set.
-   virtual
-   G4bool IsApplicable(const G4DynamicParticle*, const G4Element*) = 0;
+  G4VCrossSectionDataSet();
 
-   virtual
-   G4bool IsZAApplicable(const G4DynamicParticle*, G4double /*Z*/, G4double /*A*/);
+  virtual ~G4VCrossSectionDataSet();
 
-   virtual
-   G4double GetCrossSection(const G4DynamicParticle*, 
-                            const G4Element*, 
-			    G4double aTemperature = 0.) = 0;
+  // The following methods need to be implemented for each new data set.
+  virtual
+  G4bool IsApplicable(const G4DynamicParticle*, const G4Element*) = 0;
 
-   virtual
-   G4double GetIsoCrossSection(const G4DynamicParticle*, const G4Isotope*, 
-	         	       G4double aTemperature = 0.);
+  virtual
+  G4bool IsZAApplicable(const G4DynamicParticle*, G4double /*Z*/, G4double /*A*/);
 
-   virtual
-   G4double GetIsoZACrossSection(const G4DynamicParticle*, G4double /*Z*/,
-                                 G4double /*A*/, G4double aTemperature = 0.);
+  virtual
+  G4double GetCrossSection(const G4DynamicParticle*, 
+			   const G4Element*, 
+			   G4double aTemperature = 0.) = 0;
 
-   virtual
-   void BuildPhysicsTable(const G4ParticleDefinition&) = 0;
+  virtual
+  G4double GetIsoCrossSection(const G4DynamicParticle*, const G4Isotope*, 
+			      G4double aTemperature = 0.);
 
-   virtual
-   void DumpPhysicsTable(const G4ParticleDefinition&) = 0;
+  virtual
+  G4double GetIsoZACrossSection(const G4DynamicParticle*, G4double /*Z*/,
+				G4double /*A*/, G4double aTemperature = 0.);
+
+  virtual
+  void BuildPhysicsTable(const G4ParticleDefinition&) = 0;
+
+  virtual
+  void DumpPhysicsTable(const G4ParticleDefinition&) = 0;
 
 public: // Without Description
 
-   void SetVerboseLevel(G4int value)
-   {
-      verboseLevel = value;
-   }
+  inline void SetVerboseLevel(G4int value)
+  {
+    verboseLevel = value;
+  }
 
-   G4int GetVerboseLevel()
-   {
-      return verboseLevel;
-   }
+  inline G4int GetVerboseLevel()
+  {
+    return verboseLevel;
+  }
 
 protected:
 
-   G4int verboseLevel;
+  G4int verboseLevel;
 };
 
