Import Geant4 1.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 15:28:20 +02:00
parent aaa409b6ee
commit ca1c8cb059
2995 changed files with 106830 additions and 299600 deletions
@@ -1,23 +1,24 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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.
//
// $Id: G4OpAbsorption.hh,v 1.1 1999/01/07 16:14:01 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4OpAbsorption.hh,v 1.4.4.1 1999/12/07 20:52:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
////////////////////////////////////////////////////////////////////////
// Optical Photon Absorption Class Definition
////////////////////////////////////////////////////////////////////////
//
// File: G4OpAbsorption.hh
// Description: Discrete Process -- Absorption of Optical Photons
// Description: Discrete Process -- Bulk absorption of Optical Photons
// Version: 1.0
// Created: 1996-05-21
// Author: Juliet Armstrong
// Updated: 1997-04-09 by Peter Gumplinger
// Updated: 1999-10-29 add method and class descriptors
// 1997-04-09 by Peter Gumplinger
// > new physics/tracking scheme
// 1998-08-25 by Stefano Magni
// > Change process to use G4MaterialPropertiesTables
@@ -42,6 +43,11 @@
#include "G4Material.hh"
#include "G4OpticalPhoton.hh"
// Class Description:
// Discrete Process -- Bulk absorption of Optical Photons.
// Class inherits publicly from G4VDiscreteProcess
// Class Description - End:
/////////////////////
// Class Definition
/////////////////////
@@ -57,7 +63,7 @@ private:
// G4OpAbsorption& operator=(const G4OpAbsorption &right);
public:
public: // Without description
////////////////////////////////
// Constructors and Destructor
@@ -73,14 +79,21 @@ public:
// Methods
////////////
public: // With description
G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
// Returns true -> 'is applicable' only for an optical photon.
G4double GetMeanFreePath(const G4Track& aTrack,
G4double ,
G4ForceCondition* );
// Returns the absorption length for bulk absorption of optical
// photons in media with a specified attenuation length.
G4VParticleChange* PostStepDoIt(const G4Track& aTrack,
const G4Step& aStep);
// This is the method implementing bulk absorption of optical
// photons.
};
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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.
//
// $Id: G4OpBoundaryProcess.hh,v 1.1 1999/01/07 16:14:01 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4OpBoundaryProcess.hh,v 1.4.4.1 1999/12/07 20:52:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
////////////////////////////////////////////////////////////////////////
@@ -18,6 +18,13 @@
// optical interfaces
// Version: 1.1
// Created: 1997-06-18
// Modified: 1999-10-29 add method and class descriptors
// 1999-10-10 - Fill NewMomentum/NewPolarization in
// DoAbsorption. These members need to be
// filled since DoIt calls
// aParticleChange.SetMomentumChange etc.
// upon return (thanks to: Clark McGrew)
//
// Author: Peter Gumplinger
// adopted from work by Werner Keil - April 2/96
// mail: gum@triumf.ca
@@ -46,6 +53,11 @@
#include "G4OpticalPhoton.hh"
#include "G4TransportationManager.hh"
// Class Description:
// Discrete Process -- reflection/refraction at optical interfaces.
// Class inherits publicly from G4VDiscreteProcess.
// Class Description - End:
/////////////////////
// Class Definition
/////////////////////
@@ -70,7 +82,7 @@ private:
// G4OpBoundaryProcess(const G4OpBoundaryProcess &right);
public:
public: // Without description
////////////////////////////////
// Constructors and Destructor
@@ -84,18 +96,29 @@ public:
// Methods
////////////
public: // With description
G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
// Returns true -> 'is applicable' only for an optical photon.
G4double GetMeanFreePath(const G4Track& ,
G4double ,
G4ForceCondition* condition);
// Returns infinity; i. e. the process does not limit the step,
// but sets the 'Forced' condition for the DoIt to be invoked at
// every step. However, only at a boundary will any action be
// taken.
G4VParticleChange* PostStepDoIt(const G4Track& aTrack,
const G4Step& aStep);
// This is the method implementing boundary processes.
G4OpticalSurfaceModel GetModel() const;
// Returns the optical surface mode.
void SetModel(G4OpticalSurfaceModel model);
// set/get the optical surface model to be followed (glisur || unified)
// Set the optical surface model to be followed
// (glisur || unified).
private:
@@ -314,6 +337,7 @@ inline
void G4OpBoundaryProcess::DoAbsorption()
{
theStatus = Absorption;
if ( G4BooleanRand(theEfficiency) ) {
// EnergyDeposited =/= 0 means: photon has been detected
theStatus = Detection;
@@ -322,6 +346,10 @@ void G4OpBoundaryProcess::DoAbsorption()
else {
aParticleChange.SetLocalEnergyDeposit(0.0);
}
NewMomentum = OldMomentum;
NewPolarization = OldPolarization;
// aParticleChange.SetEnergyChange(0.0);
aParticleChange.SetStatusChange(fStopAndKill);
}
@@ -1,12 +1,12 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
// 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.
//
// $Id: G4OpRayleigh.hh,v 1.1 1999/01/07 16:14:01 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4OpRayleigh.hh,v 1.3.4.1 1999/12/07 20:52:51 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
////////////////////////////////////////////////////////////////////////
@@ -18,7 +18,8 @@
// Version: 1.0
// Created: 1996-05-31
// Author: Juliet Armstrong
// Updated: 1997-04-09 by Peter Gumplinger
// Updated: 1999-10-29 add method and class descriptors
// 1997-04-09 by Peter Gumplinger
// > new physics/tracking scheme
// mail: gum@triumf.ca
//
@@ -44,6 +45,11 @@
#include "G4PhysicsTable.hh"
#include "G4PhysicsOrderedFreeVector.hh"
// Class Description:
// Discrete Process -- Rayleigh scattering of optical photons.
// Class inherits publicly from G4VDiscreteProcess.
// Class Description - End:
/////////////////////
// Class Definition
/////////////////////
@@ -59,7 +65,7 @@ private:
// G4OpRayleigh& operator=(const G4OpRayleigh &right);
public:
public: // Without description
////////////////////////////////
// Constructors and Destructor
@@ -75,19 +81,26 @@ public:
// Methods
////////////
public: // With description
G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
// Returns true -> 'is applicable' only for an optical photon.
G4double GetMeanFreePath(const G4Track& aTrack,
G4double ,
G4ForceCondition* );
// Returns the mean free path for Rayleigh scattering in water.
// --- Not yet implemented for other materials! ---
G4VParticleChange* PostStepDoIt(const G4Track& aTrack,
const G4Step& aStep);
// This is the method implementing Rayleigh scattering.
G4PhysicsTable* GetPhysicsTable() const;
// Returns the address of the physics table.
// Returns the address of the physics table.
void DumpPhysicsTable() const;
// Prints the physics table.
private: