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,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: G4Cerenkov.hh,v 1.1 1999/01/07 16:11:28 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Cerenkov.hh,v 1.3.4.1 1999/12/07 20:51:23 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
////////////////////////////////////////////////////////////////////////
@@ -18,7 +18,8 @@
// Version: 2.0
// Created: 1996-02-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
// > G4MaterialPropertiesTable; new physics/tracking scheme
// mail: gum@triumf.ca
//
@@ -45,6 +46,11 @@
#include "G4MaterialPropertiesTable.hh"
#include "G4PhysicsOrderedFreeVector.hh"
// Class Description:
// Continuous Process -- Generation of Cerenkov Photons.
// Class inherits publicly from G4VContinuousProcess.
// Class Description - End:
/////////////////////
// Class Definition
/////////////////////
@@ -60,7 +66,7 @@ private:
// G4Cerenkov& operator=(const G4Cerenkov &right);
public:
public: // Without description
////////////////////////////////
// Constructors and Destructor
@@ -76,24 +82,40 @@ public:
// Methods
////////////
public: // With description
G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
// Returns true -> 'is applicable', for all charged particles.
G4double GetContinuousStepLimit(const G4Track& aTrack,
G4double ,
G4double ,
G4double& );
// Returns the continuous step limit defined by the Cerenkov
// process.
G4VParticleChange* AlongStepDoIt(const G4Track& aTrack,
const G4Step& aStep);
// This is the method implementing the Cerenkov process.
void SetTrackSecondariesFirst(const G4bool state);
// If set, the primary particle tracking is interrupted and any
// produced Cerenkov photons are tracked next. When all have
// been tracked, the tracking of the primary resumes.
void SetMaxNumPhotonsPerStep(const G4int NumPhotons);
void SetMaxNumPhotonsPerStep(const G4int NumPhotons);
// Set the maximum number of Cerenkov photons allowed to be
// generated during a tracking step. This is an average ONLY;
// the actual number will vary around this average. If invoked,
// the maximum photon stack will roughly be of the size set.
// If not called, the step is not limited by the number of
// photons generated.
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:
@@ -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: G4ForwardXrayTR.hh,v 1.2 1999/04/13 09:08:56 grichine Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ForwardXrayTR.hh,v 1.2.8.1 1999/12/07 20:51:24 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// G4ForwardXrayTR -- header file
//
@@ -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: G4Scintillation.hh,v 1.1 1999/01/07 16:11:28 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Scintillation.hh,v 1.3.4.1 1999/12/07 20:51:24 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
//
////////////////////////////////////////////////////////////////////////
@@ -18,7 +18,7 @@
// Version: 1.0
// Created: 1998-11-07
// Author: Peter Gumplinger
// Updated:
// Updated: 1999-10-29 add method and class descriptors
//
// mail: gum@triumf.ca
//
@@ -45,6 +45,11 @@
#include "G4MaterialPropertiesTable.hh"
#include "G4PhysicsOrderedFreeVector.hh"
// Class Description:
// Discrete Process - Generation of Scintillation Photons.
// Class inherits publicly from G4VDiscreteProcess.
// Class Description - End:
/////////////////////
// Class Definition
/////////////////////
@@ -60,7 +65,7 @@ private:
// G4Scintillation& operator=(const G4Scintillation &right);
public:
public: // Without description
////////////////////////////////
// Constructors and Destructor
@@ -76,31 +81,54 @@ public:
// Methods
////////////
public: // With description
G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
// Returns true -> 'is applicable', for any particle type.
G4double GetMeanFreePath(const G4Track& aTrack,
G4double ,
G4ForceCondition* );
// 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.
G4VParticleChange* PostStepDoIt(const G4Track& aTrack,
const G4Step& aStep);
// This is the method implementing the scintillation process.
void SetTrackSecondariesFirst(const G4bool state);
// If set, the primary particle tracking is interrupted and any
// produced scintillation photons are tracked next. When all
// have been tracked, the tracking of the primary resumes.
G4bool GetTrackSecondariesFirst() const;
// Returns the boolean flag for tracking secondaries first.
void SetScintillationYield(const G4double yield);
// Called to set the scintillation photon yield per unit of
// energy deposition. IMPORTANT: 'yield' has units of 1/energy
// and is not a simple number!
G4double GetScintillationYield() const;
// Returns the photon yield per energy unit.
void SetResolutionScale(const G4double scale);
// Called to set sigma of the Gaussian photon yield distribution.
G4double GetResolutionScale() const;
// Returns the sigma of the Gaussian photon yield distribution.
void SetScintillationTime(const G4double time);
// Called to set the exponential time constant for the delayed
// scintillation photon emission.
G4double GetScintillationTime() const;
// Returns the exponential time constant for the delayed
// scintillation photon emission.
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:
@@ -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: G4TransitionRadiation.hh,v 1.2 1999/04/13 09:26:51 grichine Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4TransitionRadiation.hh,v 1.2.8.1 1999/12/07 20:51:24 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// G4TransitionRadiation -- header file
//
@@ -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: G4Cerenkov.cc,v 1.1 1999/01/07 16:11:29 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Cerenkov.cc,v 1.6.2.1 1999/12/07 20:51:24 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
////////////////////////////////////////////////////////////////////////
// Cerenkov Radiation Class Implementation
@@ -17,7 +17,9 @@
// Version: 2.1
// Created: 1996-02-21
// Author: Juliet Armstrong
// Updated: 1997-08-08 by Peter Gumplinger
// Updated: 1999-10-29 by Peter Gumplinger
// > change: == into <= in GetContinuousStepLimit
// 1997-08-08 by Peter Gumplinger
// > add protection against /0
// > G4MaterialPropertiesTable; new physics/tracking scheme
// mail: gum@triumf.ca
@@ -123,7 +125,6 @@ G4Cerenkov::AlongStepDoIt(const G4Track& aTrack, const G4Step& aStep)
G4double step_length;
step_length = aStep.GetStepLength();
if(step_length == 0.0)step_length = aStep.GetStepLength();
MeanNumPhotons = MeanNumPhotons * step_length;
@@ -132,7 +133,7 @@ G4Cerenkov::AlongStepDoIt(const G4Track& aTrack, const G4Step& aStep)
G4int NumPhotons = (G4int) RandPoisson::shoot(MeanNumPhotons);
if (NumPhotons == 0) {
if (NumPhotons <= 0) {
// return unchanged particle and no secondaries
@@ -387,7 +388,7 @@ G4Cerenkov::GetContinuousStepLimit(const G4Track& aTrack,
// be generated in a Step, then return the Step length for that
// number of photons.
if (fMaxPhotons == 0) return DBL_MAX;
if (fMaxPhotons <= 0) return DBL_MAX;
const G4DynamicParticle* aParticle = aTrack.GetDynamicParticle();
const G4Material* aMaterial = aTrack.GetMaterial();
@@ -403,7 +404,7 @@ G4Cerenkov::GetContinuousStepLimit(const G4Track& aTrack,
G4double MeanNumPhotons =
GetAverageNumberOfPhotons(aParticle,aMaterial,Rindex);
if(MeanNumPhotons == 0.0) return DBL_MAX;
if(MeanNumPhotons <= 0.0) return DBL_MAX;
G4double StepLimit = fMaxPhotons / MeanNumPhotons;
@@ -423,7 +424,7 @@ G4Cerenkov::GetAverageNumberOfPhotons(const G4DynamicParticle* aParticle,
{
const G4double Rfact = 369.81/(eV * cm);
if(aParticle->GetTotalMomentum() == 0.0)return 0.0;
if(aParticle->GetTotalMomentum() <= 0.0)return 0.0;
G4double BetaInverse = aParticle->GetTotalEnergy() /
aParticle->GetTotalMomentum();
@@ -493,8 +494,8 @@ G4Cerenkov::GetAverageNumberOfPhotons(const G4DynamicParticle* aParticle,
G4double charge = aParticle->GetDefinition()->GetPDGCharge();
// Calculate number of photons
G4double NumPhotons =
Rfact * charge*charge * (dp - ge * BetaInverse*BetaInverse);
G4double NumPhotons = Rfact * charge/eplus * charge/eplus *
(dp - ge * BetaInverse*BetaInverse);
return NumPhotons / cm;
return NumPhotons;
}
@@ -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: G4ForwardXrayTR.cc,v 1.2 1999/04/13 09:27:49 grichine Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4ForwardXrayTR.cc,v 1.2.8.1 1999/12/07 20:51:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// G4ForwardXrayTR class -- implementation file
@@ -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: G4Scintillation.cc,v 1.2 1999/05/06 00:23:37 gum Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4Scintillation.cc,v 1.2.8.1 1999/12/07 20:51:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
////////////////////////////////////////////////////////////////////////
// Scintillation Light Class Implementation
@@ -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: G4TransitionRadiation.cc,v 1.1 1999/01/07 16:11:30 gunter Exp $
// GEANT4 tag $Name: geant4-00-01 $
// $Id: G4TransitionRadiation.cc,v 1.1.10.1 1999/12/07 20:51:25 gunter Exp $
// GEANT4 tag $Name: geant4-01-00 $
//
// G4TransitionRadiation class -- implementation file