Import Geant4 6.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:56:29 +02:00
parent 1d812b78b1
commit e083ffb441
1415 changed files with 111223 additions and 21207 deletions
@@ -0,0 +1,77 @@
//
// ********************************************************************
// * 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: G4PhotoElectricAngularGenerator462
//
// Author: Andreia Trindade (andreia@lip.pt)
//
// Creation date: 10 May 2004
//
// Modifications:
// 10 May 2003 A. Trindade First implementation acording with new design
//
// Class Description:
//
// Abstract class for PhotoElectricsstrahlung Angular Generator462 Generation
// Further documentation available from http://www.ge.infn.it/geant4/lowE
// -------------------------------------------------------------------
//
#ifndef G4PhotoElectricAngularGenerator462_h
#define G4PhotoElectricAngularGenerator462_h 1
#include "G4VPhotoElectricAngularDistribution.hh"
#include "G4ios.hh"
#include "globals.hh"
class G4PhotoElectricAngularGenerator462 : public G4VPhotoElectricAngularDistribution
{
public:
G4PhotoElectricAngularGenerator462(const G4String& name);
~G4PhotoElectricAngularGenerator462();
G4ThreeVector GetPhotoElectronDirection(G4ThreeVector direction, G4double kineticEnergy);
void PrintGeneratorInformation() const;
protected:
private:
// hide assignment operator
G4PhotoElectricAngularGenerator462 & operator=(const G4PhotoElectricAngularGenerator462 &right);
G4PhotoElectricAngularGenerator462(const G4PhotoElectricAngularGenerator462&);
};
#endif
@@ -0,0 +1,78 @@
//
// ********************************************************************
// * 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: G4PhotoElectricAngularGeneratorStandard
//
// Creation date: 10 May 2004
//
// Modifications:
// 10 May 2003 P. Rodrigues First implementation acording with new design
//
// Class Description:
//
// Concrete class for PhotoElectric Electron Angular Distribution Generation
// This model is a re-implementation of the Photolectric angular distribution
// developed my M. Maire for the Standard EM Physics G4PhotoElectricEffect
//
// Further documentation available from http://www.ge.infn.it/geant4/lowE
// -------------------------------------------------------------------
//
#ifndef G4PhotoElectricAngularGeneratorStandard_h
#define G4PhotoElectricAngularGeneratorStandard_h 1
#include "G4VPhotoElectricAngularDistribution.hh"
#include "G4ios.hh"
#include "globals.hh"
class G4PhotoElectricAngularGeneratorStandard : public G4VPhotoElectricAngularDistribution
{
public:
G4PhotoElectricAngularGeneratorStandard(const G4String& name);
~G4PhotoElectricAngularGeneratorStandard();
G4ThreeVector GetPhotoElectronDirection(G4ThreeVector direction, G4double kineticEnergy);
void PrintGeneratorInformation() const;
protected:
private:
// hide assignment operator
G4PhotoElectricAngularGeneratorStandard & operator=(const G4PhotoElectricAngularGeneratorStandard &right);
G4PhotoElectricAngularGeneratorStandard(const G4PhotoElectricAngularGeneratorStandard&);
};
#endif
@@ -0,0 +1,78 @@
//
// ********************************************************************
// * 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: G4VPhotoElectricAngularDistribution
//
// Author: Pedro Rodrigues (psilva@lip.pt)
// Andreia Trindade (andreia@lip.pt)
//
// Creation date: 10 May 2004
//
// Modifications:
// 10 May 2004 A. Trindade First implementation acording with new design
//
// Class Description:
//
// Abstract class for PhotoElectricsstrahlung Angular Distribution Generation
// Further documentation available from http://www.ge.infn.it/geant4/lowE
// -------------------------------------------------------------------
//
#ifndef G4VPhotoElectricAngularDistribution_h
#define G4VPhotoElectricAngularDistribution_h 1
#include "G4ios.hh"
#include "globals.hh"
#include "G4ThreeVector.hh"
class G4VPhotoElectricAngularDistribution
{
public:
G4VPhotoElectricAngularDistribution(const G4String& name);
virtual ~G4VPhotoElectricAngularDistribution();
virtual G4ThreeVector GetPhotoElectronDirection(G4ThreeVector direction, G4double kineticEnergy) = 0;
virtual void PrintGeneratorInformation() const = 0;
protected:
private:
// hide assignment operator
G4VPhotoElectricAngularDistribution & operator=(const G4VPhotoElectricAngularDistribution &right);
G4VPhotoElectricAngularDistribution(const G4VPhotoElectricAngularDistribution&);
};
#endif
@@ -64,12 +64,20 @@ public:
G4double mass,
G4double deltaEnergy) const;
protected:
virtual std::vector<G4double> Probabilities(G4int Z,
virtual std::vector<G4double> GetCrossSection(G4int Z,
G4double incidentEnergy,
G4double mass,
G4double deltaEnergy) const = 0;
G4double deltaEnergy,
G4bool testFlag = false) const =0;
//protected:
virtual std::vector<G4double> Probabilities(G4int Z,
G4double incidentEnergy,
G4double mass,
G4double deltaEnergy) const = 0;
private:
// Hide copy constructor and assignment operator
@@ -85,6 +85,7 @@
#include "G4IonYangFluctuationModel.hh"
#include "G4AtomicDeexcitation.hh"
#include "G4MaterialCutsCouple.hh"
#include <map>
class G4VEMDataSet;
class G4ShellVacancy;
@@ -272,6 +273,7 @@ private:
G4VLowEnergyModel* theNuclearStoppingModel;
G4VLowEnergyModel* theIonChuFluctuationModel;
G4VLowEnergyModel* theIonYangFluctuationModel;
std::map<G4int,G4double,std::less<G4int> > totalCrossSectionMap;
// name of parametrisation table of electron stopping power
G4String theProtonTable;
@@ -307,7 +309,7 @@ private:
G4VhShellCrossSection* shellCS;
std::vector<G4VEMDataSet*> zFluoDataVector;
G4bool theFluo;
G4bool expFlag;
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
@@ -34,7 +34,7 @@
// 23 Oct 2001 A. Mantero 1st implementation
// 24 Oct 2001 MGP Cleaned up
// 29 Oct 2001 VI Add delta energy
//
// 22 Apr 2004 S.Saliceti Add GetCrossSection method
// -------------------------------------------------------------------
// Class Description:
@@ -56,12 +56,18 @@ public:
virtual ~G4hShellCrossSection();
virtual std::vector<G4double> GetCrossSection(G4int Z,
G4double incidentEnergy,
G4double mass,
G4double deltaEnergy,
G4bool testFlag = false) const;
protected:
virtual std::vector<G4double> Probabilities(G4int Z,
G4double incidentEnergy,
G4double mass,
G4double deltaEnergy) const;
G4double incidentEnergy,
G4double mass,
G4double deltaEnergy) const;
private:
@@ -0,0 +1,87 @@
//
// ********************************************************************
// * 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: G4hShellCrossSectionExp
//
// Author: Simona Saliceti (simona.saliceti@ge.infn.it)
//
// History:
// -----------
// From 23 Oct 2001 A. Mantero G4hShellCrossSection
// 30/03/2004 Simona Saliceti 1st implementation
// -------------------------------------------------------------------
// Class Description:
// Empiric Model for shell cross sections in proton ionisation
// -------------------------------------------------------------------
// $Id: G4hShellCrossSectionExp.hh,v 1.1 2004/04/27 09:45:48 saliceti Exp $
// GEANT4 tag $Name: geant4-06-02 $
#ifndef G4HSHELLCROSSSECTIONEXP_HH
#define G4HSHELLCROSSSECTIONEXP_HH 1
#include "globals.hh"
#include "G4VhShellCrossSection.hh"
#include "G4hShellCrossSectionExpData.hh"
class G4hShellCrossSectionExp : public G4VhShellCrossSection
{
public:
G4hShellCrossSectionExp();
virtual ~G4hShellCrossSectionExp();
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 GetCrossSectionExp(G4int Z,
G4double incidentEnergy) const;
// Hide copy constructor and assignment operator
G4hShellCrossSectionExp(const G4hShellCrossSectionExp&);
G4hShellCrossSectionExp & operator = (const G4hShellCrossSectionExp &right);
G4hShellCrossSectionExpData* kShellData;
G4double atomTotalCrossSection;
};
#endif
@@ -0,0 +1,154 @@
//
// ********************************************************************
// * 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
// Fluorescence data set: shell identifiers, transition probabilities,
// transition energies
// 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 $
#ifndef G4hShellCrossSectionExpData_HH
#define G4hShellCrossSectionExpData_HH 1
#include "globals.hh"
#include <vector>
#include <map>
class G4hShellCrossSectionExpData
{
public:
G4hShellCrossSectionExpData();
~G4hShellCrossSectionExpData();
std::vector<G4double>* GetParam(G4int);
private:
void FillVectorValues();
void FillParameterMap();
inline void InitializeVector(std::vector<G4double> &vect, G4double value1, G4double value2, G4double value3) const;
std::map<G4int,std::vector<G4double>*,std::less<G4int> > parameterMap;
std::vector<G4double> parameter6C;
std::vector<G4double> parameter7N ;
std::vector<G4double> parameter8O ;
std::vector<G4double> parameter9F ;
std::vector<G4double> parameter10Ne;
std::vector<G4double> parameter11Na;
std::vector<G4double> parameter12Mg;
std::vector<G4double> parameter13Al;
std::vector<G4double> parameter14Si;
std::vector<G4double> parameter15P ;
std::vector<G4double> parameter16S ;
std::vector<G4double> parameter17Cl;
std::vector<G4double> parameter18Ar;
std::vector<G4double> parameter19K ;
std::vector<G4double> parameter20Ca;
std::vector<G4double> parameter21Sc;
std::vector<G4double> parameter22Ti;
std::vector<G4double> parameter23V ;
std::vector<G4double> parameter24Cr;
std::vector<G4double> parameter25Mn;
std::vector<G4double> parameter26Fe;
std::vector<G4double> parameter27Co;
std::vector<G4double> parameter28Ni;
std::vector<G4double> parameter29Cu;
std::vector<G4double> parameter30Zn;
std::vector<G4double> parameter31Ga;
std::vector<G4double> parameter32Ge;
std::vector<G4double> parameter33As;
std::vector<G4double> parameter34Se;
std::vector<G4double> parameter35Br;
std::vector<G4double> parameter36Kr;
std::vector<G4double> parameter37Rb;
std::vector<G4double> parameter38Sr;
std::vector<G4double> parameter39Y ;
std::vector<G4double> parameter40Zr;
std::vector<G4double> parameter41Nb;
std::vector<G4double> parameter42Mo;
std::vector<G4double> parameter43Tc;
std::vector<G4double> parameter44Ru;
std::vector<G4double> parameter45Rh;
std::vector<G4double> parameter46Pd;
std::vector<G4double> parameter47Ag;
std::vector<G4double> parameter48Cd;
std::vector<G4double> parameter49In;
std::vector<G4double> parameter50Sn;
std::vector<G4double> parameter51Sb;
std::vector<G4double> parameter52Te;
std::vector<G4double> parameter53I ;
std::vector<G4double> parameter54Xe;
std::vector<G4double> parameter55Cs;
std::vector<G4double> parameter56Ba;
std::vector<G4double> parameter57La;
std::vector<G4double> parameter58Ce;
std::vector<G4double> parameter59Pr;
std::vector<G4double> parameter60Nd;
std::vector<G4double> parameter61Pm;
std::vector<G4double> parameter62Sm;
std::vector<G4double> parameter63Eu;
std::vector<G4double> parameter64Gd;
std::vector<G4double> parameter65Tb;
std::vector<G4double> parameter66Dy;
std::vector<G4double> parameter67Ho;
std::vector<G4double> parameter68Er;
std::vector<G4double> parameter69Tm;
std::vector<G4double> parameter70Yb;
std::vector<G4double> parameter71Lu;
std::vector<G4double> parameter72Hf;
std::vector<G4double> parameter73Ta;
std::vector<G4double> parameter74W ;
std::vector<G4double> parameter75Re;
std::vector<G4double> parameter76Os;
std::vector<G4double> parameter77Ir;
std::vector<G4double> parameter78Pt;
std::vector<G4double> parameter79Au;
std::vector<G4double> parameter80Hg;
std::vector<G4double> parameter81Tl;
std::vector<G4double> parameter82Pb;
std::vector<G4double> parameter83Bi;
std::vector<G4double> parameter84Po;
std::vector<G4double> parameter85At;
std::vector<G4double> parameter86Rn;
std::vector<G4double> parameter87Fr;
std::vector<G4double> parameter88Ra;
std::vector<G4double> parameter89Ac;
std::vector<G4double> parameter90Th;
std::vector<G4double> parameter91Pa;
std::vector<G4double> parameter92U ;
};
#endif