Import Geant4 7.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 11:11:55 +02:00
parent e083ffb441
commit 516dbf1a58
5914 changed files with 202605 additions and 71141 deletions
@@ -22,7 +22,7 @@
//
//
// $Id: G4AtomicTransitionManager.hh,v 1.2 ????
// GEANT4 tag $Name: geant4-06-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
// Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
@@ -22,7 +22,7 @@
//
//
// $Id: G4AtomicShell.hh,v 1.2 ????
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
// Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
@@ -22,7 +22,7 @@
//
//
// $Id: G4AtomicTransitionManager.hh,v 1.2 ????
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Authors: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
// Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
@@ -21,7 +21,7 @@
// ********************************************************************
//
// $Id: G4AugerData.hh
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Alfonso Mantero (Alfonso.Mantero@ge.infn.it)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4BremsstrahlungParameters.hh,v 1.9 2003/06/16 16:59:39 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
// V. Ivanchenko (Vladimir.Ivantchenko@cern.ch)
@@ -22,7 +22,7 @@
//
//
// $Id: G4CompositeEMDataSet.hh,v 1.5 2003/06/16 16:59:40 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4CrossSectionHandler.hh,v 1.8 2003/06/16 16:59:41 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4EMDataSet.hh,v 1.4 2003/05/20 20:03:34 pia Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4FluoTransition.hh,v 1.2 ????
// GEANT4 tag $Name: geant4-06-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Elena Guardincerri (Elena.Guardincerri@ge.infn.it)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4LinInterpolation.hh,v 1.2 2002/05/28 09:15:26 pia Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4LogLogInterpolation.hh,v 1.3 2002/05/28 09:15:26 pia Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -23,7 +23,7 @@
//
// -------------------------------------------------------------------
// $Id: G4LowEnergyBremsstrahlung.hh,v 1.36 2003/11/10 17:50:46 trindade Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: A. Forti
//
@@ -21,7 +21,7 @@
// ********************************************************************
//
// $Id: G4LowEnergyCompton.hh,v 1.20 2003/12/09 15:36:37 gunter Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: A. Forti
// Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
@@ -22,7 +22,7 @@
//
//
// $Id: G4LowEnergyGammaConversion.hh,v 1.14 2001/10/08 07:45:33 pia Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: A. Forti
// Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
@@ -22,7 +22,7 @@
//
// -------------------------------------------------------------------
// $Id: G4LowEnergyIonisation.hh,v 1.40 2003/06/16 16:59:44 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: A. Forti
//
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4LowEnergyPhotoElectric.hh,v 1.25 2002/06/01 03:14:18 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// $Id: G4LowEnergyPhotoElectric.hh,v 1.26 2004/05/12 09:20:03 silvarod Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: A. Forti
// Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
@@ -33,6 +33,7 @@
// 12 Aug 2001 MGP Major revision according to a design iteration
// 16 Sept 2001 E. Guardincerri Added fluorescence generation
// 31 May 2002 V.Ivanchenko Add cut on Auger electrons
// 10 May 2004 P. Rodrigues Changes to accommodate new angular generators
//
// -------------------------------------------------------------------
@@ -56,6 +57,7 @@ class G4VParticleChange;
class G4VEMDataSet;
class G4VCrossSectionHandler;
class G4VRangeTest;
class G4VPhotoElectricAngularDistribution;
class G4LowEnergyPhotoElectric : public G4VDiscreteProcess {
@@ -77,6 +79,11 @@ public:
void ActivateAuger(G4bool);
void SetAngularGenerator(G4VPhotoElectricAngularDistribution* distribution);
void SetAngularGenerator(const G4String& name);
// For testing purpose only
G4double DumpMeanFreePath(const G4Track& aTrack,
G4double previousStepSize,
@@ -112,6 +119,9 @@ private:
G4double cutForLowEnergySecondaryElectrons;
G4AtomicDeexcitation deexcitationManager;
G4VPhotoElectricAngularDistribution* ElectronAngularGenerator;
G4String generatorName;
};
#endif
@@ -22,7 +22,7 @@
//
//
// $Id: G4LowEnergyPolarizedCompton.hh,v 1.8 2002/05/31 18:11:45 flongo Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// ------------------------------------------------------------
// GEANT 4 class header file
@@ -22,7 +22,7 @@
//
//
// $Id: G4LowEnergyRayleigh.hh,v 1.15 2001/10/08 07:45:35 pia Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
//
//
@@ -23,7 +23,7 @@
//
// -------------------------------------------------------------------
// $Id: G4PenelopeBremsstrahlung.hh,v 1.7 2003/11/11 17:18:30 pandola Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: L.Pandola
//
@@ -23,7 +23,7 @@
//
// -------------------------------------------------------------------
// $Id: G4PenelopeBremsstrahlungAngular.hh,v 1.2 2003/11/07 12:26:08 pandola Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: L.Pandola
//
@@ -23,7 +23,7 @@
//
// -------------------------------------------------------------------
// $Id: G4PenelopeBremsstrahlungContinuous.hh,v 1.2 2003/03/19 10:28:28 pandola Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: L.Pandola
//
@@ -20,8 +20,8 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4PenelopeCompton.hh,v 1.8 2003/12/09 15:36:38 gunter Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// $Id: G4PenelopeCompton.hh,v 1.9 2004/06/03 08:17:52 pandola Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Luciano Pandola
//
@@ -31,6 +31,7 @@
// 12 Feb 2003 MG Pia const argument in SelectRandomAtomForCompton
// 14 Feb 2003 MG Pia Modified some variables to lowercase initial
// 26 Mar 2003 L.Pandola Added fluorescence
// 18 Mar 2004 L.Pandola Use of std::map (code review)
//
// -------------------------------------------------------------------
@@ -101,16 +102,18 @@ private:
G4double energyForIntegration; //for numerical integration of
G4int ZForIntegration;// analytical cross section
//Parameters of atomic shells
std::map<G4int,G4DataVector*> *ionizationEnergy;
std::map<G4int,G4DataVector*> *hartreeFunction;
std::map<G4int,G4DataVector*> *occupationNumber;
std::vector<G4DataVector*> *ionizationEnergy;
std::vector<G4DataVector*> *hartreeFunction;
std::vector<G4DataVector*> *occupationNumber;
G4int SelectRandomAtomForCompton(const G4Material* material,G4double e) const;
const G4int nBins; //for building cross section table
std::vector<G4VEMDataSet*>* matCrossSections; //for random choice of atom
std::vector<G4VEMDataSet*> *matCrossSections; //for random choice of atom
G4double cutForLowEnergySecondaryPhotons;
};
@@ -22,7 +22,7 @@
//
//
// $Id: G4PenelopeGammaConversion.hh,v 1.1 2002/12/06 16:25:00 pandola Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: L. Pandola
//
@@ -105,7 +105,7 @@ G4double G4PenelopeIntegrator<T,F>::Calculate(T& typeT, F f,
s2=d*a;
icall=icall+4*npoints;
s12=s1+s2;
if (abs(s12-si)<std::max(Ptol*abs(s12),1e-35)){
if (std::abs(s12-si)<std::max(Ptol*std::abs(s12),1e-35)){
sumga=sumga+s12;
}
else
@@ -128,7 +128,7 @@ G4double G4PenelopeIntegrator<T,F>::Calculate(T& typeT, F f,
return sumga;
}
}
Err=abs(sumr)/std::max(abs(sumr+sumga),1e-35);
Err=std::abs(sumr)/std::max(std::abs(sumr+sumga),1e-35);
if (Err < Ctol || LHN == 0) return sumga; //end of cycle
LH=LHN;
for (G4int i=0;i<LH;i++){
@@ -22,7 +22,7 @@
//
// -------------------------------------------------------------------
// $Id: G4PenelopeIonisation.hh,v 1.4 2003/07/09 12:36:46 pandola Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: L. Pandola
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4PenelopePhotoElectric.hh,v 1.2 2003/02/23 23:42:52 pia Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: L.Pandola
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4PenelopeRayleigh.hh,v 1.4 2004/03/18 13:40:13 pandola Exp $
// GEANT4 tag $Name: geant4-06-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Luciano Pandola
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4RangeNoTest.hh,v 1.3 2003/05/20 20:03:34 pia Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4RangeTest.hh,v 1.3 2003/01/22 18:42:23 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4SemiLogInterpolation.hh,v 1.3 2002/05/28 09:15:26 pia Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4ShellData.hh,v 1.3 2003/06/16 16:59:48 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4ShellEMDataSet.hh,v 1.5 2003/06/16 16:59:49 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4VCrossSectionHandler.hh,v 1.13 2003/06/16 16:59:51 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4VDataSetAlgorithm.hh,v 1.6 2002/05/28 09:15:26 pia Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4VEMDataSet.hh,v 1.6 2002/05/28 09:15:26 pia Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4VRangeTest.hh,v 1.2 2003/01/22 18:42:23 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4VeLowEnergyLoss.hh,v 1.8 2003/01/22 18:42:24 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// 3.4.2000 Veronique Lefebure:
// Move utils/include/G4VEnergyLoss.hh to
@@ -78,6 +78,9 @@ public:
G4double deltaEnergy) const = 0;
virtual void SetTotalCS(G4double);
private:
// Hide copy constructor and assignment operator
@@ -21,7 +21,7 @@
// ********************************************************************
//
// $Id: G4eBremsstrahlungSpectrum.hh,v 1.7 2003/12/09 15:36:39 gunter Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// -------------------------------------------------------------------
//
@@ -21,7 +21,7 @@
// ********************************************************************
//
// $Id: G4eIonisationCrossSectionHandler.hh,v 1.5 2003/06/16 16:59:53 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// -------------------------------------------------------------------
//
@@ -22,7 +22,7 @@
//
//
// $Id: G4eIonisationParameters.hh,v 1.7 2003/06/16 16:59:54 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// Author: Maria Grazia Pia (Maria.Grazia.Pia@cern.ch)
// V. Ivanchenko
@@ -21,7 +21,7 @@
// ********************************************************************
//
// $Id: G4eIonisationSpectrum.hh,v 1.6 2003/12/09 15:36:40 gunter Exp $
// GEANT4 tag $Name: geant4-06-00-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// -------------------------------------------------------------------
//
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4eLowEnergyLoss.hh,v 1.12 2003/06/16 16:59:55 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// $Id: G4eLowEnergyLoss.hh,v 1.13 2004/12/02 14:01:12 pia Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
// -------------------------------------------------------------------
@@ -219,9 +219,9 @@ class G4eLowEnergyLoss : public G4VeLowEnergyLoss
// calculated in BuildPhysicTable
static G4double LowerBoundEloss;
static G4double UpperBoundEloss;
static G4double RTable,LOGRTable; // LOGRTable=log(UpperBoundEloss-
static G4double RTable,LOGRTable; // LOGRTable=std::log(UpperBoundEloss-
// LowerBoundEloss)/NbinEloss
// RTable = exp(LOGRTable)
// RTable = std::exp(LOGRTable)
//for interpolation within the tables
static G4PhysicsTable* theeRangeCoeffATable;
@@ -22,7 +22,7 @@
//
//
// $Id: G4eLowEnergyLoss.icc,v 1.7 2003/06/16 16:59:56 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// ---------------------------------------------------------------
// GEANT 4 class inlined methods file
@@ -303,6 +303,7 @@ private:
G4double charge; //
G4double chargeSquare; //
G4double initialMass; // mass to calculate Lambda tables
G4double fBarkas;
G4AtomicDeexcitation deexcitationManager;
G4ShellVacancy* shellVacancy;
@@ -21,8 +21,8 @@
// ********************************************************************
//
//
// $Id: G4hLowEnergyLoss.hh,v 1.15 2003/04/18 17:50:32 vnivanch Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// $Id: G4hLowEnergyLoss.hh,v 1.16 2004/12/02 14:01:12 pia Exp $
// GEANT4 tag $Name: geant4-07-00-cand-03 $
//
// $Id:
// ------------------------------------------------------------
@@ -235,9 +235,9 @@ class G4hLowEnergyLoss : public G4VContinuousDiscreteProcess
static G4int TotBin; // number of bins in table,
// calculated in BuildPhysicsTable
static G4double RTable,LOGRTable; // LOGRTable=log(HighestKineticEnergy
static G4double RTable,LOGRTable; // LOGRTable=std::log(HighestKineticEnergy
// /LowestKineticEnergy)/TotBin
// RTable = exp(LOGRTable)
// RTable = std::exp(LOGRTable)
private:
static G4PhysicsTable* theDEDXTable;
@@ -22,7 +22,7 @@
//
//
// $Id: G4hLowEnergyLoss.icc,v 1.2 2001/07/11 10:02:40 gunter Exp $
// GEANT4 tag $Name: geant4-05-02-patch-01 $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
//
// $Id:
// ---------------------------------------------------------------
@@ -72,25 +72,27 @@ public:
G4double HighEnergyLimit(const G4ParticleDefinition* aParticle,
const G4Material* material) const;
G4double LowEnergyLimit(const G4ParticleDefinition* aParticle,
const G4Material* material) const;
G4double HighEnergyLimit(const G4ParticleDefinition* aParticle) const;
G4double LowEnergyLimit(const G4ParticleDefinition* aParticle) const;
G4bool IsInCharge(const G4DynamicParticle* particle,
const G4Material* material) const;
G4bool IsInCharge(const G4ParticleDefinition* aParticle,
const G4Material* material) const;
G4String ModelName() const {return modelName;};
protected:
private:
// hide assignment operator
// hide assignment operator
G4hParametrisedLossModel(G4hParametrisedLossModel &);
G4hParametrisedLossModel & operator=(const G4hParametrisedLossModel &right);
@@ -108,7 +110,7 @@ private:
// Pointer to the parametrisation class
G4VhElectronicStoppingPower* eStopingPowerTable;
G4double theZieglerFactor; // Factor to convert the Stopping Power
G4double theZieglerFactor; // Factor to convert the Stopping Power
// unit [ev/(10^15 atoms/cm^2]
// into the Geant4 dE/dx unit
G4String modelName;
@@ -0,0 +1,90 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// -------------------------------------------------------------------
//
// GEANT4 Class file
//
//
// File name: G4hShellCrossSectionDoubleExp
//
// Author: Simona Saliceti (simona.saliceti@ge.infn.it)
//
// History:
// -----------
// 31/05/2004 Simona Saliceti 1st implementation
// -------------------------------------------------------------------
// Class Description:
// Empiric Model for K shell cross sections in proton ionisation
// 2nd iteration, refined model at low energy
// Based on Fitted empirical Reference Cross Sections for K-Shell Ionization
// by Protons by H.Paul and J.Sacher, At. Data Nucl. Data Tables 42 (1989) 105
//
// -------------------------------------------------------------------
// $Id: G4hShellCrossSectionDoubleExp.hh,v 1.2 2004/11/26 08:50:47 pia Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
#ifndef G4HSHELLCROSSSECTIONDOUBLEEXP_HH
#define G4HSHELLCROSSSECTIONDOUBLEEXP_HH 1
#include "globals.hh"
#include "G4VhShellCrossSection.hh"
#include "G4hShellCrossSectionDoubleExpData.hh"
class G4hShellCrossSectionDoubleExp : public G4VhShellCrossSection
{
public:
G4hShellCrossSectionDoubleExp();
virtual ~G4hShellCrossSectionDoubleExp();
virtual std::vector<G4double> GetCrossSection(G4int Z,
G4double incidentEnergy,
G4double mass,
G4double deltaEnergy,
G4bool testFlag = false) const;
void SetTotalCS(G4double);
protected:
virtual std::vector<G4double> Probabilities(G4int Z,
G4double incidentEnergy,
G4double mass,
G4double deltaEnergy) const;
private:
G4double GetCrossSectionDoubleExp(G4int Z,
G4double incidentEnergy) const;
// Hide copy constructor and assignment operator
G4hShellCrossSectionDoubleExp(const G4hShellCrossSectionDoubleExp&);
G4hShellCrossSectionDoubleExp & operator = (const G4hShellCrossSectionDoubleExp &right);
G4hShellCrossSectionDoubleExpData* kShellData;
G4double atomTotalCrossSection;
};
#endif
@@ -0,0 +1,348 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * 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. *
// * *
// * This code implementation is the intellectual property of the *
// * GEANT4 collaboration. *
// * By copying, distributing or modifying the Program (or any work *
// * based on the Program) you indicate your acceptance of this *
// * statement, and all its terms. *
// ********************************************************************
//
// Author: Simona Saliceti (Simona.Saliceti@ge.infn.it)
//
// History:
// -----------
// 22 Apr 2004 First committed to cvs
//
// -------------------------------------------------------------------
// Class description:
// Low Energy Electromagnetic Physics
// Parameterisation of cross sections for proton ionisation, K shell
// 2nd iteration (refined model at low energy)
// Based on Paul & Sacher database:
// Further documentation available from http://www.ge.infn.it/geant4/lowE
// -------------------------------------------------------------------
// $Id: G4hShellCrossSectionDoubleExpData.hh,v 1.2 2004/11/26 08:50:47 pia Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
#ifndef G4hShellCrossSectionDoubleExpData_HH
#define G4hShellCrossSectionDoubleExpData_HH 1
#include "globals.hh"
#include <vector>
#include <map>
class G4hShellCrossSectionDoubleExpData
{
public:
G4hShellCrossSectionDoubleExpData();
~G4hShellCrossSectionDoubleExpData();
std::vector<std::vector<G4double>*> GetParam(G4int);
private:
void FillVectorValuesEnergy();
void FillVectorValuesPar1();
void FillVectorValuesPar2();
void FillParameterMapEnergy();
void FillParameterMapPar1();
void FillParameterMapPar2();
inline void InitializeVectorEnergy(std::vector<G4double> &vectEnergy, G4double value) const;
inline void InitializeVectorPar1(std::vector<G4double> &vect, G4double value1, G4double value2, G4double value3) const;
inline void InitializeVectorPar2(std::vector<G4double> &vect, G4double value1, G4double value2, G4double value3, G4double value4, G4double value5) const;
std::map<G4int,std::vector<G4double>*,std::less<G4int> > parameterMapEnergy;
std::map<G4int,std::vector<G4double>*,std::less<G4int> > parameterMapPar1;
std::map<G4int,std::vector<G4double>*,std::less<G4int> > parameterMapPar2;
// Vector conteining energy
std::vector<G4double> energy6C;
std::vector<G4double> energy7N ;
std::vector<G4double> energy8O ;
std::vector<G4double> energy9F ;
std::vector<G4double> energy10Ne;
std::vector<G4double> energy11Na;
std::vector<G4double> energy12Mg;
std::vector<G4double> energy13Al;
std::vector<G4double> energy14Si;
std::vector<G4double> energy15P ;
std::vector<G4double> energy16S ;
std::vector<G4double> energy17Cl;
std::vector<G4double> energy18Ar;
std::vector<G4double> energy19K ;
std::vector<G4double> energy20Ca;
std::vector<G4double> energy21Sc;
std::vector<G4double> energy22Ti;
std::vector<G4double> energy23V ;
std::vector<G4double> energy24Cr;
std::vector<G4double> energy25Mn;
std::vector<G4double> energy26Fe;
std::vector<G4double> energy27Co;
std::vector<G4double> energy28Ni;
std::vector<G4double> energy29Cu;
std::vector<G4double> energy30Zn;
std::vector<G4double> energy31Ga;
std::vector<G4double> energy32Ge;
std::vector<G4double> energy33As;
std::vector<G4double> energy34Se;
std::vector<G4double> energy35Br;
std::vector<G4double> energy36Kr;
std::vector<G4double> energy37Rb;
std::vector<G4double> energy38Sr;
std::vector<G4double> energy39Y ;
std::vector<G4double> energy40Zr;
std::vector<G4double> energy41Nb;
std::vector<G4double> energy42Mo;
std::vector<G4double> energy43Tc;
std::vector<G4double> energy44Ru;
std::vector<G4double> energy45Rh;
std::vector<G4double> energy46Pd;
std::vector<G4double> energy47Ag;
std::vector<G4double> energy48Cd;
std::vector<G4double> energy49In;
std::vector<G4double> energy50Sn;
std::vector<G4double> energy51Sb;
std::vector<G4double> energy52Te;
std::vector<G4double> energy53I ;
std::vector<G4double> energy54Xe;
std::vector<G4double> energy55Cs;
std::vector<G4double> energy56Ba;
std::vector<G4double> energy57La;
std::vector<G4double> energy58Ce;
std::vector<G4double> energy59Pr;
std::vector<G4double> energy60Nd;
std::vector<G4double> energy61Pm;
std::vector<G4double> energy62Sm;
std::vector<G4double> energy63Eu;
std::vector<G4double> energy64Gd;
std::vector<G4double> energy65Tb;
std::vector<G4double> energy66Dy;
std::vector<G4double> energy67Ho;
std::vector<G4double> energy68Er;
std::vector<G4double> energy69Tm;
std::vector<G4double> energy70Yb;
std::vector<G4double> energy71Lu;
std::vector<G4double> energy72Hf;
std::vector<G4double> energy73Ta;
std::vector<G4double> energy74W ;
std::vector<G4double> energy75Re;
std::vector<G4double> energy76Os;
std::vector<G4double> energy77Ir;
std::vector<G4double> energy78Pt;
std::vector<G4double> energy79Au;
std::vector<G4double> energy80Hg;
std::vector<G4double> energy81Tl;
std::vector<G4double> energy82Pb;
std::vector<G4double> energy83Bi;
std::vector<G4double> energy84Po;
std::vector<G4double> energy85At;
std::vector<G4double> energy86Rn;
std::vector<G4double> energy87Fr;
std::vector<G4double> energy88Ra;
std::vector<G4double> energy89Ac;
std::vector<G4double> energy90Th;
std::vector<G4double> energy91Pa;
std::vector<G4double> energy92U ;
// Vector conteining parameters for low energy
std::vector<G4double> parlow6C;
std::vector<G4double> parlow7N ;
std::vector<G4double> parlow8O ;
std::vector<G4double> parlow9F ;
std::vector<G4double> parlow10Ne;
std::vector<G4double> parlow11Na;
std::vector<G4double> parlow12Mg;
std::vector<G4double> parlow13Al;
std::vector<G4double> parlow14Si;
std::vector<G4double> parlow15P ;
std::vector<G4double> parlow16S ;
std::vector<G4double> parlow17Cl;
std::vector<G4double> parlow18Ar;
std::vector<G4double> parlow19K ;
std::vector<G4double> parlow20Ca;
std::vector<G4double> parlow21Sc;
std::vector<G4double> parlow22Ti;
std::vector<G4double> parlow23V ;
std::vector<G4double> parlow24Cr;
std::vector<G4double> parlow25Mn;
std::vector<G4double> parlow26Fe;
std::vector<G4double> parlow27Co;
std::vector<G4double> parlow28Ni;
std::vector<G4double> parlow29Cu;
std::vector<G4double> parlow30Zn;
std::vector<G4double> parlow31Ga;
std::vector<G4double> parlow32Ge;
std::vector<G4double> parlow33As;
std::vector<G4double> parlow34Se;
std::vector<G4double> parlow35Br;
std::vector<G4double> parlow36Kr;
std::vector<G4double> parlow37Rb;
std::vector<G4double> parlow38Sr;
std::vector<G4double> parlow39Y ;
std::vector<G4double> parlow40Zr;
std::vector<G4double> parlow41Nb;
std::vector<G4double> parlow42Mo;
std::vector<G4double> parlow43Tc;
std::vector<G4double> parlow44Ru;
std::vector<G4double> parlow45Rh;
std::vector<G4double> parlow46Pd;
std::vector<G4double> parlow47Ag;
std::vector<G4double> parlow48Cd;
std::vector<G4double> parlow49In;
std::vector<G4double> parlow50Sn;
std::vector<G4double> parlow51Sb;
std::vector<G4double> parlow52Te;
std::vector<G4double> parlow53I ;
std::vector<G4double> parlow54Xe;
std::vector<G4double> parlow55Cs;
std::vector<G4double> parlow56Ba;
std::vector<G4double> parlow57La;
std::vector<G4double> parlow58Ce;
std::vector<G4double> parlow59Pr;
std::vector<G4double> parlow60Nd;
std::vector<G4double> parlow61Pm;
std::vector<G4double> parlow62Sm;
std::vector<G4double> parlow63Eu;
std::vector<G4double> parlow64Gd;
std::vector<G4double> parlow65Tb;
std::vector<G4double> parlow66Dy;
std::vector<G4double> parlow67Ho;
std::vector<G4double> parlow68Er;
std::vector<G4double> parlow69Tm;
std::vector<G4double> parlow70Yb;
std::vector<G4double> parlow71Lu;
std::vector<G4double> parlow72Hf;
std::vector<G4double> parlow73Ta;
std::vector<G4double> parlow74W ;
std::vector<G4double> parlow75Re;
std::vector<G4double> parlow76Os;
std::vector<G4double> parlow77Ir;
std::vector<G4double> parlow78Pt;
std::vector<G4double> parlow79Au;
std::vector<G4double> parlow80Hg;
std::vector<G4double> parlow81Tl;
std::vector<G4double> parlow82Pb;
std::vector<G4double> parlow83Bi;
std::vector<G4double> parlow84Po;
std::vector<G4double> parlow85At;
std::vector<G4double> parlow86Rn;
std::vector<G4double> parlow87Fr;
std::vector<G4double> parlow88Ra;
std::vector<G4double> parlow89Ac;
std::vector<G4double> parlow90Th;
std::vector<G4double> parlow91Pa;
std::vector<G4double> parlow92U ;
// Vector conteining parameters for high energy
std::vector<G4double> parhigh6C;
std::vector<G4double> parhigh7N ;
std::vector<G4double> parhigh8O ;
std::vector<G4double> parhigh9F ;
std::vector<G4double> parhigh10Ne;
std::vector<G4double> parhigh11Na;
std::vector<G4double> parhigh12Mg;
std::vector<G4double> parhigh13Al;
std::vector<G4double> parhigh14Si;
std::vector<G4double> parhigh15P ;
std::vector<G4double> parhigh16S ;
std::vector<G4double> parhigh17Cl;
std::vector<G4double> parhigh18Ar;
std::vector<G4double> parhigh19K ;
std::vector<G4double> parhigh20Ca;
std::vector<G4double> parhigh21Sc;
std::vector<G4double> parhigh22Ti;
std::vector<G4double> parhigh23V ;
std::vector<G4double> parhigh24Cr;
std::vector<G4double> parhigh25Mn;
std::vector<G4double> parhigh26Fe;
std::vector<G4double> parhigh27Co;
std::vector<G4double> parhigh28Ni;
std::vector<G4double> parhigh29Cu;
std::vector<G4double> parhigh30Zn;
std::vector<G4double> parhigh31Ga;
std::vector<G4double> parhigh32Ge;
std::vector<G4double> parhigh33As;
std::vector<G4double> parhigh34Se;
std::vector<G4double> parhigh35Br;
std::vector<G4double> parhigh36Kr;
std::vector<G4double> parhigh37Rb;
std::vector<G4double> parhigh38Sr;
std::vector<G4double> parhigh39Y ;
std::vector<G4double> parhigh40Zr;
std::vector<G4double> parhigh41Nb;
std::vector<G4double> parhigh42Mo;
std::vector<G4double> parhigh43Tc;
std::vector<G4double> parhigh44Ru;
std::vector<G4double> parhigh45Rh;
std::vector<G4double> parhigh46Pd;
std::vector<G4double> parhigh47Ag;
std::vector<G4double> parhigh48Cd;
std::vector<G4double> parhigh49In;
std::vector<G4double> parhigh50Sn;
std::vector<G4double> parhigh51Sb;
std::vector<G4double> parhigh52Te;
std::vector<G4double> parhigh53I ;
std::vector<G4double> parhigh54Xe;
std::vector<G4double> parhigh55Cs;
std::vector<G4double> parhigh56Ba;
std::vector<G4double> parhigh57La;
std::vector<G4double> parhigh58Ce;
std::vector<G4double> parhigh59Pr;
std::vector<G4double> parhigh60Nd;
std::vector<G4double> parhigh61Pm;
std::vector<G4double> parhigh62Sm;
std::vector<G4double> parhigh63Eu;
std::vector<G4double> parhigh64Gd;
std::vector<G4double> parhigh65Tb;
std::vector<G4double> parhigh66Dy;
std::vector<G4double> parhigh67Ho;
std::vector<G4double> parhigh68Er;
std::vector<G4double> parhigh69Tm;
std::vector<G4double> parhigh70Yb;
std::vector<G4double> parhigh71Lu;
std::vector<G4double> parhigh72Hf;
std::vector<G4double> parhigh73Ta;
std::vector<G4double> parhigh74W ;
std::vector<G4double> parhigh75Re;
std::vector<G4double> parhigh76Os;
std::vector<G4double> parhigh77Ir;
std::vector<G4double> parhigh78Pt;
std::vector<G4double> parhigh79Au;
std::vector<G4double> parhigh80Hg;
std::vector<G4double> parhigh81Tl;
std::vector<G4double> parhigh82Pb;
std::vector<G4double> parhigh83Bi;
std::vector<G4double> parhigh84Po;
std::vector<G4double> parhigh85At;
std::vector<G4double> parhigh86Rn;
std::vector<G4double> parhigh87Fr;
std::vector<G4double> parhigh88Ra;
std::vector<G4double> parhigh89Ac;
std::vector<G4double> parhigh90Th;
std::vector<G4double> parhigh91Pa;
std::vector<G4double> parhigh92U ;
};
#endif
@@ -36,9 +36,12 @@
// -------------------------------------------------------------------
// Class Description:
// Empiric Model for shell cross sections in proton ionisation
// Based on Fitted empirical Reference Cross Sections for K-Shell Ionization
// by Protons by H.Paul and J.Sacher, At. Data Nucl. Data Tables 42 (1989) 105
// -------------------------------------------------------------------
// $Id: G4hShellCrossSectionExp.hh,v 1.1 2004/04/27 09:45:48 saliceti Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4hShellCrossSectionExp.hh,v 1.2 2004/11/26 08:50:47 pia Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
#ifndef G4HSHELLCROSSSECTIONEXP_HH
#define G4HSHELLCROSSSECTIONEXP_HH 1
@@ -29,12 +29,12 @@
// -------------------------------------------------------------------
// Class description:
// Low Energy Electromagnetic Physics
// Fluorescence data set: shell identifiers, transition probabilities,
// transition energies
// Parameterisation of cross sections for proton ionisation, K shell
// 1st iteration
// Further documentation available from http://www.ge.infn.it/geant4/lowE
// -------------------------------------------------------------------
// $Id: G4hShellCrossSectionExpData.hh,v 1.1 2004/04/27 09:45:48 saliceti Exp $
// GEANT4 tag $Name: geant4-06-02 $
// $Id: G4hShellCrossSectionExpData.hh,v 1.2 2004/11/26 08:50:47 pia Exp $
// GEANT4 tag $Name: geant4-07-00-cand-01 $
#ifndef G4hShellCrossSectionExpData_HH
#define G4hShellCrossSectionExpData_HH 1