Index: trunk/source/processes/electromagnetic/highenergy/History
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/History	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/History	(revision 1005)
@@ -1,3 +1,3 @@
-$Id: History,v 1.30 2008/10/16 14:29:48 vnivanch Exp $
+$Id: History,v 1.31 2009/02/20 16:38:33 vnivanch Exp $
 -------------------------------------------------------------------
 
@@ -17,4 +17,7 @@
      * Reverse chronological order (last date on top), please *
      ----------------------------------------------------------
+
+20 February 09: V.Ivanchenko (emhighenergy-V09-02-00)
+- Cleanup: improved comments, move virtual methods from .hh to .cc
 
 16 October 08: V.Ivanchenko (emhighenergy-V09-01-06)
Index: trunk/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4BetheBlochNoDeltaModel.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4BetheBlochNoDeltaModel.hh,v 1.7 2006/06/29 19:32:14 gunter Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4BetheBlochNoDeltaModel.hh,v 1.8 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -68,9 +68,9 @@
 					G4double cutEnergy);
 
-  virtual G4double ComputeCrossSectionPerElectron(
-					const G4ParticleDefinition*,
-					G4double kineticEnergy,
-					G4double cutEnergy,
-					G4double maxEnergy);
+  virtual G4double CrossSectionPerVolume(const G4Material*,
+					 const G4ParticleDefinition*,
+					 G4double kineticEnergy,
+					 G4double cutEnergy,
+					 G4double maxEnergy);
 
 private:
@@ -84,21 +84,3 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
-inline G4double G4BetheBlochNoDeltaModel::ComputeDEDXPerVolume(
-                            const G4Material* material,
-			    const G4ParticleDefinition* pd,
-                            G4double kinEnergy, G4double)
-{
-  G4double dedx = G4BetheBlochModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX);
-  return dedx;
-}
-
-inline G4double G4BetheBlochNoDeltaModel::ComputeCrossSectionPerElectron(
-			    const G4ParticleDefinition*,
-			    G4double, G4double, G4double)
-{
-  return 0.0;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4BraggNoDeltaModel.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4BraggNoDeltaModel.hh,v 1.6 2006/06/29 19:32:16 gunter Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4BraggNoDeltaModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -68,10 +68,9 @@
 					G4double cutEnergy);
 
-  virtual G4double ComputeCrossSectionPerElectron(
+  virtual G4double CrossSectionPerVolume(const G4Material*,
 					 const G4ParticleDefinition*,
 					 G4double kineticEnergy,
 					 G4double cutEnergy,
 					 G4double maxEnergy);
-
 private:
 
@@ -84,21 +83,3 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
-inline G4double G4BraggNoDeltaModel::ComputeDEDXPerVolume(
-                            const G4Material* material,
-			    const G4ParticleDefinition* pd,
-                            G4double kinEnergy, G4double)
-{
-  G4double dedx = G4BraggIonModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX);
-  return dedx;
-}
-
-inline G4double G4BraggNoDeltaModel::ComputeCrossSectionPerElectron(
-			    const G4ParticleDefinition*,
-			    G4double, G4double, G4double)
-{
-  return 0.0;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4ee2KChargedModel.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4ee2KChargedModel.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4ee2KChargedModel.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4ee2KChargedModel.hh,v 1.1 2008/07/10 18:07:26 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4ee2KChargedModel.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -67,11 +67,11 @@
   virtual ~G4ee2KChargedModel();
 
-  G4double ThresholdEnergy() const;
+  virtual G4double ThresholdEnergy() const;
 
-  G4double PeakEnergy() const;
+  virtual G4double PeakEnergy() const;
 
-  G4double ComputeCrossSection(G4double) const;
+  virtual G4double ComputeCrossSection(G4double) const;
 
-  G4PhysicsVector* PhysicsVector(G4double, G4double) const;
+  virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const;
 
   virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
@@ -92,25 +92,3 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
-inline G4double G4ee2KChargedModel::ThresholdEnergy() const
-{
-  return 2.0*massK;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4ee2KChargedModel::PeakEnergy() const
-{
-  return massPhi;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4ee2KChargedModel::ComputeCrossSection(G4double e) const
-{
-  G4double ee = std::min(HighEnergy(),e);
-  return cross->CrossSection2Kcharged(ee);
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4ee2KNeutralModel.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4ee2KNeutralModel.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4ee2KNeutralModel.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4ee2KNeutralModel.hh,v 1.1 2008/07/10 18:07:26 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4ee2KNeutralModel.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -67,11 +67,11 @@
   virtual ~G4ee2KNeutralModel();
 
-  G4double ThresholdEnergy() const;
+  virtual G4double ThresholdEnergy() const;
 
-  G4double PeakEnergy() const;
+  virtual G4double PeakEnergy() const;
 
-  G4double ComputeCrossSection(G4double) const;
+  virtual G4double ComputeCrossSection(G4double) const;
 
-  G4PhysicsVector* PhysicsVector(G4double, G4double) const;
+  virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const;
 
   virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
@@ -92,25 +92,3 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
-inline G4double G4ee2KNeutralModel::ThresholdEnergy() const
-{
-  return 2.0*massK;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4ee2KNeutralModel::PeakEnergy() const
-{
-  return massPhi;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4ee2KNeutralModel::ComputeCrossSection(G4double e) const
-{
-  G4double ee = std::min(HighEnergy(),e);
-  return cross->CrossSection2Kneutral(ee);
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4eeTo3PiModel.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4eeTo3PiModel.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4eeTo3PiModel.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4eeTo3PiModel.hh,v 1.1 2008/07/10 18:07:26 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4eeTo3PiModel.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -67,11 +67,11 @@
   virtual ~G4eeTo3PiModel();
 
-  G4double ThresholdEnergy() const;
+  virtual G4double ThresholdEnergy() const;
 
-  G4double PeakEnergy() const;
+  virtual G4double PeakEnergy() const;
 
-  G4double ComputeCrossSection(G4double) const;
+  virtual G4double ComputeCrossSection(G4double) const;
 
-  G4PhysicsVector* PhysicsVector(G4double, G4double) const;
+  virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const;
 
   virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
@@ -96,27 +96,3 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
-inline G4double G4eeTo3PiModel::ThresholdEnergy() const
-{
-  return std::max(LowEnergy(),2.0*massPi + massPi0);
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4eeTo3PiModel::PeakEnergy() const
-{
-  G4double e = massOm;
-  if(HighEnergy() > massPhi) e = massPhi; 
-  return e;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4eeTo3PiModel::ComputeCrossSection(G4double e) const
-{
-  G4double ee = std::min(HighEnergy(),e);
-  return cross->CrossSection3pi(ee);
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadrons.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4eeToHadrons.hh,v 1.8 2007/05/23 08:50:41 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4eeToHadrons.hh,v 1.9 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -70,5 +70,5 @@
 
   // Print out of the class parameters
-  void PrintInfo();
+  virtual void PrintInfo();
 
   // Set the factor to artificially increase the crossSection (default 1)
@@ -77,5 +77,5 @@
 protected:
 
-  void InitialiseProcess(const G4ParticleDefinition*);
+  virtual void InitialiseProcess(const G4ParticleDefinition*);
 
 private:
@@ -92,12 +92,4 @@
 };
 
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4bool G4eeToHadrons::IsApplicable(const G4ParticleDefinition& p)
-{
-  return (&p == G4Positron::Positron());
-}
-
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
 
Index: trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4eeToHadronsMultiModel.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4eeToHadronsMultiModel.hh,v 1.6 2008/07/10 18:06:38 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4eeToHadronsMultiModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -91,4 +91,9 @@
 				 G4double maxEnergy = DBL_MAX);
 
+  virtual void PrintInfo();
+
+  // Set the factor to artificially increase the crossSection (default 1)
+  void SetCrossSecFactor(G4double fac);
+
   inline G4double ComputeCrossSectionPerElectron(
                                          const G4ParticleDefinition*,
@@ -96,9 +101,4 @@
                                          G4double cutEnergy = 0.0,
                                          G4double maxEnergy = DBL_MAX);
-
-  void PrintInfo();
-
-  // Set the factor to artificially increase the crossSection (default 1)
-  void SetCrossSecFactor(G4double fac);
 
 private:
Index: trunk/source/processes/electromagnetic/highenergy/include/G4eeToPGammaModel.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4eeToPGammaModel.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4eeToPGammaModel.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4eeToPGammaModel.hh,v 1.1 2008/07/10 18:07:26 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4eeToPGammaModel.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -68,11 +68,11 @@
   virtual ~G4eeToPGammaModel();
 
-  G4double ThresholdEnergy() const;
+  virtual G4double ThresholdEnergy() const;
 
-  G4double PeakEnergy() const;
+  virtual G4double PeakEnergy() const;
 
-  G4double ComputeCrossSection(G4double) const;
+  virtual G4double ComputeCrossSection(G4double) const;
 
-  G4PhysicsVector* PhysicsVector(G4double, G4double) const;
+  virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const;
 
   virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
@@ -97,28 +97,3 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
-inline G4double G4eeToPGammaModel::ThresholdEnergy() const
-{
-  return LowEnergy();
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4eeToPGammaModel::PeakEnergy() const
-{
-  return massR;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4eeToPGammaModel::ComputeCrossSection(G4double e) const
-{
-  G4double ee = std::min(HighEnergy(),e);
-  G4double xs;
-  if(particle == pi0) xs = cross->CrossSectionPi0G(ee);
-  else                xs = cross->CrossSectionEtaG(ee);
-  return xs;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4eeToTwoPiModel.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4eeToTwoPiModel.hh,v 1.4 2008/07/10 18:06:39 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4eeToTwoPiModel.hh,v 1.5 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -67,11 +67,11 @@
   virtual ~G4eeToTwoPiModel();
 
-  G4double ThresholdEnergy() const;
+  virtual G4double ThresholdEnergy() const;
 
-  G4double PeakEnergy() const;
+  virtual G4double PeakEnergy() const;
 
-  G4double ComputeCrossSection(G4double) const;
+  virtual G4double ComputeCrossSection(G4double) const;
 
-  G4PhysicsVector* PhysicsVector(G4double, G4double) const;
+  virtual G4PhysicsVector* PhysicsVector(G4double, G4double) const;
 
   virtual void SampleSecondaries(std::vector<G4DynamicParticle*>*,
@@ -93,25 +93,3 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
-inline G4double G4eeToTwoPiModel::ThresholdEnergy() const
-{
-  return 2.0*massPi;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4eeToTwoPiModel::PeakEnergy() const
-{
-  return massRho;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4eeToTwoPiModel::ComputeCrossSection(G4double e) const
-{
-  G4double ee = std::min(HighEnergy(),e);
-  return cross->CrossSection2pi(ee);
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlung.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlung.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4hBremsstrahlung.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4hBremsstrahlung.hh,v 1.1 2008/03/06 11:47:10 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4hBremsstrahlung.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -72,17 +72,17 @@
   virtual ~G4hBremsstrahlung();
 
-  G4bool IsApplicable(const G4ParticleDefinition& p);
+  virtual G4bool IsApplicable(const G4ParticleDefinition& p);
 
-  G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
-			    const G4Material*, 
-			    G4double cut);
+  virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
+				    const G4Material*, 
+				    G4double cut);
 
   // Print out of the class parameters
-  void PrintInfo();
+  virtual void PrintInfo();
 
 protected:
 
-  void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
-				   const G4ParticleDefinition*);
+  virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
+					   const G4ParticleDefinition*);
 
 private:
@@ -100,23 +100,4 @@
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline 
-G4bool G4hBremsstrahlung::IsApplicable(const G4ParticleDefinition& p)
-{
-  return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV);
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline 
-G4double G4hBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*,
-					      const G4Material*,
-					      G4double)
-{
-  return lowestKinEnergy;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4hPairProduction.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4hPairProduction.hh,v 1.1 2008/03/06 11:47:11 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4hPairProduction.hh,v 1.2 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -69,16 +69,16 @@
   virtual ~G4hPairProduction();
 
-  G4bool IsApplicable(const G4ParticleDefinition& p);
+  virtual G4bool IsApplicable(const G4ParticleDefinition& p);
 
-  G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
-			    const G4Material*, G4double cut);
+  virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
+				    const G4Material*, G4double cut);
 
   // Print out of the class parameters
-  void PrintInfo();
+  virtual void PrintInfo();
 
 protected:
 
-  void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
-				   const G4ParticleDefinition*);
+  virtual void InitialiseEnergyLossProcess(const G4ParticleDefinition*,
+					   const G4ParticleDefinition*);
 
 private:
@@ -98,23 +98,4 @@
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline 
-G4bool G4hPairProduction::IsApplicable(const G4ParticleDefinition& p)
-{
-  return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV);
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline 
-G4double G4hPairProduction::MinPrimaryEnergy(const G4ParticleDefinition*,
-					      const G4Material*,
-					      G4double)
-{
-  return lowestKinEnergy;
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4hhIonisation.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4hhIonisation.hh,v 1.5 2007/05/23 08:50:41 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4hhIonisation.hh,v 1.6 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -69,8 +69,8 @@
   virtual ~G4hhIonisation();
 
-  G4bool IsApplicable(const G4ParticleDefinition& p);
+  virtual G4bool IsApplicable(const G4ParticleDefinition& p);
 
-  G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
-			    const G4Material*, G4double cut);
+  virtual G4double MinPrimaryEnergy(const G4ParticleDefinition* p,
+				    const G4Material*, G4double cut);
 
   // Print out of the class parameters
@@ -104,25 +104,4 @@
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4bool G4hhIonisation::IsApplicable(const G4ParticleDefinition& p)
-{
-  return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 100.0*MeV &&
-	 !p.IsShortLived());
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4double G4hhIonisation::MinPrimaryEnergy(const G4ParticleDefinition*,
-						const G4Material*,
-						G4double cut)
-{
-  G4double x = 0.5*cut/electron_mass_c2;
-  G4double y = electron_mass_c2/mass;
-  G4double g = x*y + std::sqrt((1. + x)*(1. + x*y*y));
-  return mass*(g - 1.0);
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4mplIonisation.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4mplIonisation.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4mplIonisation.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4mplIonisation.hh,v 1.5 2007/05/23 08:50:41 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4mplIonisation.hh,v 1.6 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -72,5 +72,5 @@
   virtual ~G4mplIonisation();
 
-  G4bool IsApplicable(const G4ParticleDefinition& p);
+  virtual G4bool IsApplicable(const G4ParticleDefinition& p);
 
   // Print out of the class parameters
@@ -94,12 +94,4 @@
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline G4bool G4mplIonisation::IsApplicable(const G4ParticleDefinition& p)
-{
-  return (p.GetParticleName() == "monopole");
-}
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
 #endif
Index: trunk/source/processes/electromagnetic/highenergy/include/G4mplIonisationModel.hh
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/include/G4mplIonisationModel.hh	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/include/G4mplIonisationModel.hh	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4mplIonisationModel.hh,v 1.6 2007/11/13 18:36:29 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4mplIonisationModel.hh,v 1.7 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -120,30 +120,2 @@
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
-
-inline void G4mplIonisationModel::SampleSecondaries(std::vector<G4DynamicParticle*>*,
-						    const G4MaterialCutsCouple*,
-						    const G4DynamicParticle*,
-						    G4double,
-						    G4double)
-{}
-
-inline G4double G4mplIonisationModel::Dispersion(
-                          const G4Material* material,
-                          const G4DynamicParticle* dp,
-                                G4double& tmax,
-                                G4double& length)
-{
-  G4double siga = 0.0;
-  G4double tau   = dp->GetKineticEnergy()/mass;
-  if(tau > 0.0) { 
-    G4double electronDensity = material->GetElectronDensity();
-    G4double gam   = tau + 1.0;
-    G4double invbeta2 = (gam*gam)/(tau * (tau+2.0));
-    siga  = (invbeta2 - 0.5) * twopi_mc2_rcl2 * tmax * length
-      * electronDensity * chargeSquare;
-  }
-  return siga;
-}
-
-
-//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
Index: trunk/source/processes/electromagnetic/highenergy/src/G4BetheBlochNoDeltaModel.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4BetheBlochNoDeltaModel.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4BetheBlochNoDeltaModel.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4BetheBlochNoDeltaModel.cc,v 1.3 2006/06/29 19:32:36 gunter Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4BetheBlochNoDeltaModel.cc,v 1.4 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -58,4 +58,6 @@
 {}
 
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
 G4BetheBlochNoDeltaModel::~G4BetheBlochNoDeltaModel()
 {}
@@ -63,3 +65,23 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
+G4double G4BetheBlochNoDeltaModel::ComputeDEDXPerVolume(
+                            const G4Material* material,
+			    const G4ParticleDefinition* pd,
+                            G4double kinEnergy, G4double)
+{
+  return 
+    G4BetheBlochModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX);
+}
 
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4BetheBlochNoDeltaModel::CrossSectionPerVolume(
+		    const G4Material*,const G4ParticleDefinition*,
+		    G4double, G4double, G4double)
+{
+  return 0.0;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+
Index: trunk/source/processes/electromagnetic/highenergy/src/G4BraggNoDeltaModel.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4BraggNoDeltaModel.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4BraggNoDeltaModel.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4BraggNoDeltaModel.cc,v 1.3 2006/06/29 19:32:38 gunter Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4BraggNoDeltaModel.cc,v 1.4 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -53,9 +53,10 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
-
 G4BraggNoDeltaModel::G4BraggNoDeltaModel(const G4ParticleDefinition*p,
 					 const G4String& nam) :
   G4BraggIonModel(p, nam)
 {}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
 G4BraggNoDeltaModel::~G4BraggNoDeltaModel()
@@ -64,3 +65,24 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
+G4double G4BraggNoDeltaModel::ComputeDEDXPerVolume(
+                            const G4Material* material,
+			    const G4ParticleDefinition* pd,
+                            G4double kinEnergy, G4double)
+{
+  return 
+    G4BraggIonModel::ComputeDEDXPerVolume(material, pd, kinEnergy, DBL_MAX);
+}
 
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4BraggNoDeltaModel::CrossSectionPerVolume(
+                            const G4Material*,
+			    const G4ParticleDefinition*,
+			    G4double, G4double, G4double)
+{
+  return 0.0;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+
Index: trunk/source/processes/electromagnetic/highenergy/src/G4ee2KChargedModel.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4ee2KChargedModel.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4ee2KChargedModel.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4ee2KChargedModel.cc,v 1.1 2008/07/10 18:07:27 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4ee2KChargedModel.cc,v 1.2 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -75,4 +75,26 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
+G4double G4ee2KChargedModel::ThresholdEnergy() const
+{
+  return 2.0*massK;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4ee2KChargedModel::PeakEnergy() const
+{
+  return massPhi;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4ee2KChargedModel::ComputeCrossSection(G4double e) const
+{
+  G4double ee = std::min(HighEnergy(),e);
+  return cross->CrossSection2Kcharged(ee);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
 G4PhysicsVector* G4ee2KChargedModel::PhysicsVector(G4double emin, 
 						   G4double emax) const
Index: trunk/source/processes/electromagnetic/highenergy/src/G4ee2KNeutralModel.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4ee2KNeutralModel.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4ee2KNeutralModel.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4ee2KNeutralModel.cc,v 1.1 2008/07/10 18:07:27 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4ee2KNeutralModel.cc,v 1.2 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -75,4 +75,26 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
+G4double G4ee2KNeutralModel::ThresholdEnergy() const
+{
+  return 2.0*massK;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4ee2KNeutralModel::PeakEnergy() const
+{
+  return massPhi;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4ee2KNeutralModel::ComputeCrossSection(G4double e) const
+{
+  G4double ee = std::min(HighEnergy(),e);
+  return cross->CrossSection2Kneutral(ee);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
 G4PhysicsVector* G4ee2KNeutralModel::PhysicsVector(G4double emin, 
 						   G4double emax) const
Index: trunk/source/processes/electromagnetic/highenergy/src/G4eeTo3PiModel.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4eeTo3PiModel.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4eeTo3PiModel.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4eeTo3PiModel.cc,v 1.1 2008/07/10 18:07:27 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4eeTo3PiModel.cc,v 1.2 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -81,4 +81,28 @@
   G4cout << "### G4eeTo3PiModel::~G4eeTo3PiModel: gmax= "
 	 << gmax << " gcash= " << gcash << G4endl;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4eeTo3PiModel::ThresholdEnergy() const
+{
+  return std::max(LowEnergy(),2.0*massPi + massPi0);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4eeTo3PiModel::PeakEnergy() const
+{
+  G4double e = massOm;
+  if(HighEnergy() > massPhi) e = massPhi; 
+  return e;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4eeTo3PiModel::ComputeCrossSection(G4double e) const
+{
+  G4double ee = std::min(HighEnergy(),e);
+  return cross->CrossSection3pi(ee);
 }
 
Index: trunk/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4eeToHadrons.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4eeToHadrons.cc,v 1.8 2008/10/16 14:29:48 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4eeToHadrons.cc,v 1.9 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -75,4 +75,11 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
+G4bool G4eeToHadrons::IsApplicable(const G4ParticleDefinition& p)
+{
+  return (&p == G4Positron::Positron());
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
 void G4eeToHadrons::InitialiseProcess(const G4ParticleDefinition*)
 {
Index: trunk/source/processes/electromagnetic/highenergy/src/G4eeToPGammaModel.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4eeToPGammaModel.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4eeToPGammaModel.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4eeToPGammaModel.cc,v 1.1 2008/07/10 18:07:27 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4eeToPGammaModel.cc,v 1.2 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -83,4 +83,29 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
+G4double G4eeToPGammaModel::ThresholdEnergy() const
+{
+  return LowEnergy();
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4eeToPGammaModel::PeakEnergy() const
+{
+  return massR;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4eeToPGammaModel::ComputeCrossSection(G4double e) const
+{
+  G4double ee = std::min(HighEnergy(),e);
+  G4double xs;
+  if(particle == pi0) xs = cross->CrossSectionPi0G(ee);
+  else                xs = cross->CrossSectionEtaG(ee);
+  return xs;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
 G4PhysicsVector* G4eeToPGammaModel::PhysicsVector(G4double emin, 
 						  G4double emax) const
Index: trunk/source/processes/electromagnetic/highenergy/src/G4eeToTwoPiModel.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4eeToTwoPiModel.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4eeToTwoPiModel.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4eeToTwoPiModel.cc,v 1.6 2008/07/10 18:06:39 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4eeToTwoPiModel.cc,v 1.7 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -75,4 +75,26 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
+G4double G4eeToTwoPiModel::ThresholdEnergy() const
+{
+  return 2.0*massPi;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4eeToTwoPiModel::PeakEnergy() const
+{
+  return massRho;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4eeToTwoPiModel::ComputeCrossSection(G4double e) const
+{
+  G4double ee = std::min(HighEnergy(),e);
+  return cross->CrossSection2pi(ee);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
 G4PhysicsVector* G4eeToTwoPiModel::PhysicsVector(G4double emin, 
                                                  G4double emax) const
Index: trunk/source/processes/electromagnetic/highenergy/src/G4hBremsstrahlung.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4hBremsstrahlung.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4hBremsstrahlung.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4hBremsstrahlung.cc,v 1.3 2008/10/16 14:29:48 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4hBremsstrahlung.cc,v 1.4 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -72,4 +72,20 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
+G4bool G4hBremsstrahlung::IsApplicable(const G4ParticleDefinition& p)
+{
+  return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4hBremsstrahlung::MinPrimaryEnergy(const G4ParticleDefinition*,
+					     const G4Material*,
+					     G4double)
+{
+  return lowestKinEnergy;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
 void G4hBremsstrahlung::InitialiseEnergyLossProcess(
 				 const G4ParticleDefinition* part,
Index: trunk/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4hPairProduction.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4hPairProduction.cc,v 1.3 2008/10/16 14:29:48 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4hPairProduction.cc,v 1.4 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -73,4 +73,20 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
+G4bool G4hPairProduction::IsApplicable(const G4ParticleDefinition& p)
+{
+  return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 110.0*MeV);
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4hPairProduction::MinPrimaryEnergy(const G4ParticleDefinition*,
+					     const G4Material*,
+					     G4double)
+{
+  return lowestKinEnergy;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
 void G4hPairProduction::InitialiseEnergyLossProcess(
                          const G4ParticleDefinition* part,
Index: trunk/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4hhIonisation.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4hhIonisation.cc,v 1.8 2008/10/16 14:29:48 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4hhIonisation.cc,v 1.9 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -75,4 +75,24 @@
 G4hhIonisation::~G4hhIonisation()
 {}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4bool G4hhIonisation::IsApplicable(const G4ParticleDefinition& p)
+{
+  return (p.GetPDGCharge() != 0.0 && p.GetPDGMass() > 100.0*MeV &&
+	 !p.IsShortLived());
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4hhIonisation::MinPrimaryEnergy(const G4ParticleDefinition*,
+					  const G4Material*,
+					  G4double cut)
+{
+  G4double x = 0.5*cut/electron_mass_c2;
+  G4double y = electron_mass_c2/mass;
+  G4double g = x*y + std::sqrt((1. + x)*(1. + x*y*y));
+  return mass*(g - 1.0);
+}
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
Index: trunk/source/processes/electromagnetic/highenergy/src/G4mplIonisation.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4mplIonisation.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4mplIonisation.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4mplIonisation.cc,v 1.7 2008/10/16 14:29:48 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4mplIonisation.cc,v 1.8 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -75,4 +75,11 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
+G4bool G4mplIonisation::IsApplicable(const G4ParticleDefinition& p)
+{
+  return (p.GetParticleName() == "monopole");
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
 void G4mplIonisation::InitialiseEnergyLossProcess(const G4ParticleDefinition*,
 						  const G4ParticleDefinition*)
Index: trunk/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc
===================================================================
--- trunk/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc	(revision 991)
+++ trunk/source/processes/electromagnetic/highenergy/src/G4mplIonisationModel.cc	(revision 1005)
@@ -24,6 +24,6 @@
 // ********************************************************************
 //
-// $Id: G4mplIonisationModel.cc,v 1.5 2007/11/13 18:36:29 vnivanch Exp $
-// GEANT4 tag $Name: geant4-09-02 $
+// $Id: G4mplIonisationModel.cc,v 1.6 2009/02/20 16:38:33 vnivanch Exp $
+// GEANT4 tag $Name: geant4-09-02-ref-02 $
 //
 // -------------------------------------------------------------------
@@ -139,5 +139,6 @@
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
 
-G4double G4mplIonisationModel::ComputeDEDXAhlen(const G4Material* material, G4double bg2)
+G4double G4mplIonisationModel::ComputeDEDXAhlen(const G4Material* material, 
+						G4double bg2)
 {
   G4double eDensity = material->GetElectronDensity();
@@ -176,4 +177,13 @@
   return dedx;
 }
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+void G4mplIonisationModel::SampleSecondaries(std::vector<G4DynamicParticle*>*,
+					     const G4MaterialCutsCouple*,
+					     const G4DynamicParticle*,
+					     G4double,
+					     G4double)
+{}
 
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -204,2 +214,23 @@
   return loss;
 }
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
+
+G4double G4mplIonisationModel::Dispersion(const G4Material* material,
+					  const G4DynamicParticle* dp,
+					  G4double& tmax,
+					  G4double& length)
+{
+  G4double siga = 0.0;
+  G4double tau   = dp->GetKineticEnergy()/mass;
+  if(tau > 0.0) { 
+    G4double electronDensity = material->GetElectronDensity();
+    G4double gam   = tau + 1.0;
+    G4double invbeta2 = (gam*gam)/(tau * (tau+2.0));
+    siga  = (invbeta2 - 0.5) * twopi_mc2_rcl2 * tmax * length
+      * electronDensity * chargeSquare;
+  }
+  return siga;
+}
+
+//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
