Import Geant4 3.0.0 source tree
This commit is contained in:
@@ -5,8 +5,8 @@
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VProcess.hh,v 1.5 1999/11/07 17:11:47 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-02-00 $
|
||||
// $Id: G4VProcess.hh,v 1.7 2000/11/08 00:47:23 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-03-00 $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
@@ -30,7 +30,8 @@
|
||||
// modified for new ParticleChange 12 Mar. 1998 H.Kurashige
|
||||
// Add process trype 27 Mar. 1998 H.Kurashige
|
||||
// Remove thePhysicsTable 2 Aug. 1998 H.Kurashige
|
||||
|
||||
// Add PILfactor and GPIL 3 Nov. 2000 H.Kurashige
|
||||
// Add Store/RetrievePhysicsTable 8 Nov. 2000 H.Kurashige
|
||||
#ifndef G4VProcess_h
|
||||
#define G4VProcess_h 1
|
||||
|
||||
@@ -152,6 +153,28 @@ class G4VProcess
|
||||
// this value is used for transformation of
|
||||
// true path length to geometrical path length
|
||||
|
||||
////////// PIL factor ////////
|
||||
void SetPILfactor(G4double value);
|
||||
G4double GetPILfactor() const;
|
||||
// Set/Get factor for PhysicsInteractionLength
|
||||
// which is passed to G4SteppingManager for both AtRest and PostStep
|
||||
|
||||
// These three GPIL methods are used by Stepping Manager.
|
||||
// They invoke virtual GPIL methods listed above.
|
||||
// As for AtRest and PostStep the returned value is multipled by thePILfactor
|
||||
//
|
||||
G4double AlongStepGPIL( const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4double currentMinimumStep,
|
||||
G4double& proposedSafety,
|
||||
G4GPILSelection* selection );
|
||||
|
||||
G4double AtRestGPIL( const G4Track& track,
|
||||
G4ForceCondition* condition );
|
||||
|
||||
G4double PostStepGPIL( const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition );
|
||||
|
||||
//////////////////////
|
||||
virtual G4bool IsApplicable(const G4ParticleDefinition&){return true;};
|
||||
@@ -172,6 +195,18 @@ class G4VProcess
|
||||
// private void BuildThePhysicsTable()
|
||||
// function. Not another BuildPhysicsTable, please.
|
||||
|
||||
|
||||
virtual G4bool StorePhysicsTable(const G4String& directory){return true;}
|
||||
// Store PhysicsTable in a file.
|
||||
// (return false in caase of failure at I/O )
|
||||
|
||||
virtual G4bool RetrievePhysicsTable(const G4String& directory){return false;}
|
||||
// Retrieve Physics from a file.
|
||||
// (return true if the Physics Table can be build by using file)
|
||||
// (return false if the process has no functionality or in case of failure)
|
||||
// File name should be defined by each process
|
||||
// and the file should be placed under the directory specifed by the argument.
|
||||
|
||||
////////////////////////////
|
||||
const G4String& GetProcessName() const;
|
||||
// Returns the name of the process.
|
||||
@@ -231,6 +266,10 @@ class G4VProcess
|
||||
G4ProcessType theProcessType;
|
||||
// The type of the process
|
||||
|
||||
G4double thePILfactor;
|
||||
// factor for PhysicsInteractionLength
|
||||
// which is passed to G4SteppingManager
|
||||
|
||||
public: // with description
|
||||
virtual void DumpInfo() const;
|
||||
// dump out process information
|
||||
@@ -293,6 +332,45 @@ inline void G4VProcess::ClearNumberOfInteractionLengthLeft()
|
||||
theNumberOfInteractionLengthLeft = -1.0;
|
||||
}
|
||||
|
||||
inline void G4VProcess::SetPILfactor(G4double value)
|
||||
{
|
||||
if (value>0.) {
|
||||
thePILfactor = value;
|
||||
}
|
||||
}
|
||||
|
||||
inline G4double G4VProcess::GetPILfactor() const
|
||||
{
|
||||
return thePILfactor;
|
||||
}
|
||||
|
||||
inline G4double G4VProcess::AlongStepGPIL( const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4double currentMinimumStep,
|
||||
G4double& proposedSafety,
|
||||
G4GPILSelection* selection )
|
||||
{
|
||||
G4double value
|
||||
=AlongStepGetPhysicalInteractionLength(track, previousStepSize, currentMinimumStep, proposedSafety, selection);
|
||||
return value;
|
||||
}
|
||||
|
||||
inline G4double G4VProcess::AtRestGPIL( const G4Track& track,
|
||||
G4ForceCondition* condition )
|
||||
{
|
||||
G4double value
|
||||
=AtRestGetPhysicalInteractionLength(track, condition);
|
||||
return thePILfactor*value;
|
||||
}
|
||||
|
||||
inline G4double G4VProcess::PostStepGPIL( const G4Track& track,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition )
|
||||
{
|
||||
G4double value
|
||||
=PostStepGetPhysicalInteractionLength(track, previousStepSize, condition);
|
||||
return thePILfactor*value;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user