Import Geant4 1.0.0 source tree
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user