Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4VITProcess Class Reference

#include <G4VITProcess.hh>

+ Inheritance diagram for G4VITProcess:

Classes

struct  G4ProcessState
 

Public Member Functions

 G4VITProcess (const G4String &name, G4ProcessType type=fNotDefined)
 
virtual ~G4VITProcess ()
 
 G4VITProcess (const G4VITProcess &other)
 
G4VITProcessoperator= (const G4VITProcess &other)
 
G4int operator== (const G4VITProcess &right) const
 
G4int operator!= (const G4VITProcess &right) const
 
size_t GetProcessID () const
 
G4ProcessState_LockGetProcessState ()
 
void SetProcessState (G4ProcessState_Lock *aProcInfo)
 
virtual void StartTracking (G4Track *)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
G4double GetInteractionTimeLeft ()
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
G4bool ProposesTimeStep () const
 
- Public Member Functions inherited from G4VProcess
 G4VProcess (const G4String &aName="NoName", G4ProcessType aType=fNotDefined)
 
 G4VProcess (const G4VProcess &right)
 
virtual ~G4VProcess ()
 
G4int operator== (const G4VProcess &right) const
 
G4int operator!= (const G4VProcess &right) const
 
virtual G4VParticleChangePostStepDoIt (const G4Track &track, const G4Step &stepData)=0
 
virtual G4VParticleChangeAlongStepDoIt (const G4Track &track, const G4Step &stepData)=0
 
virtual G4VParticleChangeAtRestDoIt (const G4Track &track, const G4Step &stepData)=0
 
virtual G4double AlongStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4double currentMinimumStep, G4double &proposedSafety, G4GPILSelection *selection)=0
 
virtual G4double AtRestGetPhysicalInteractionLength (const G4Track &track, G4ForceCondition *condition)=0
 
virtual G4double PostStepGetPhysicalInteractionLength (const G4Track &track, G4double previousStepSize, G4ForceCondition *condition)=0
 
G4double GetCurrentInteractionLength () const
 
void SetPILfactor (G4double value)
 
G4double GetPILfactor () const
 
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 &)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
virtual void PreparePhysicsTable (const G4ParticleDefinition &)
 
virtual G4bool StorePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
virtual G4bool RetrievePhysicsTable (const G4ParticleDefinition *, const G4String &, G4bool)
 
const G4StringGetPhysicsTableFileName (const G4ParticleDefinition *, const G4String &directory, const G4String &tableName, G4bool ascii=false)
 
const G4StringGetProcessName () const
 
G4ProcessType GetProcessType () const
 
void SetProcessType (G4ProcessType)
 
G4int GetProcessSubType () const
 
void SetProcessSubType (G4int)
 
virtual void StartTracking (G4Track *)
 
virtual void EndTracking ()
 
virtual void SetProcessManager (const G4ProcessManager *)
 
virtual const G4ProcessManagerGetProcessManager ()
 
virtual void ResetNumberOfInteractionLengthLeft ()
 
G4double GetNumberOfInteractionLengthLeft () const
 
G4double GetTotalNumberOfInteractionLengthTraversed () const
 
G4bool isAtRestDoItIsEnabled () const
 
G4bool isAlongStepDoItIsEnabled () const
 
G4bool isPostStepDoItIsEnabled () const
 
virtual void DumpInfo () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel () const
 

Static Public Member Functions

static const size_t & GetMaxProcessIndex ()
 
- Static Public Member Functions inherited from G4VProcess
static const G4StringGetProcessTypeName (G4ProcessType)
 

Protected Member Functions

void RetrieveProcessInfo ()
 
void CreateInfo ()
 
virtual void ClearInteractionTimeLeft ()
 
virtual void SubtractNumberOfInteractionLengthLeft (G4double previousStepSize)
 
virtual void ClearNumberOfInteractionLengthLeft ()
 
void SetInstantiateProcessState (G4bool flag)
 
G4bool InstantiateProcessState ()
 
- Protected Member Functions inherited from G4VProcess
void SubtractNumberOfInteractionLengthLeft (G4double previousStepSize)
 
void ClearNumberOfInteractionLengthLeft ()
 

Protected Attributes

G4ProcessStatefpState
 
G4bool fProposesTimeStep
 
- Protected Attributes inherited from G4VProcess
const G4ProcessManageraProcessManager
 
G4VParticleChangepParticleChange
 
G4ParticleChange aParticleChange
 
G4double theNumberOfInteractionLengthLeft
 
G4double currentInteractionLength
 
G4double theInitialNumberOfInteractionLength
 
G4String theProcessName
 
G4String thePhysicsTableFileName
 
G4ProcessType theProcessType
 
G4int theProcessSubType
 
G4double thePILfactor
 
G4bool enableAtRestDoIt
 
G4bool enableAlongStepDoIt
 
G4bool enablePostStepDoIt
 
G4int verboseLevel
 

Detailed Description

G4VITProcess inherits from G4VProcess. A G4VITProcess is able to save its current state for a given track into G4IT. This state may be retrieve latter on to be used by the G4VITProcess. Each G4VITProcess is tagged.

Definition at line 63 of file G4VITProcess.hh.

Constructor & Destructor Documentation

◆ G4VITProcess() [1/2]

G4VITProcess::G4VITProcess ( const G4String name,
G4ProcessType  type = fNotDefined 
)

Definition at line 34 of file G4VITProcess.cc.

34 :
35 G4VProcess( name, type ),
36 fpState (0),
37 fProcessID(fNbProcess)
38{
39 fNbProcess++;
41 currentInteractionLength = 0;
42 theInteractionTimeLeft = 0;
43 theNumberOfInteractionLengthLeft = 0;
44 fProposesTimeStep = false;
45}
void SetInstantiateProcessState(G4bool flag)
G4ProcessState * fpState
G4bool fProposesTimeStep

◆ ~G4VITProcess()

G4VITProcess::~G4VITProcess ( )
virtual

Definition at line 57 of file G4VITProcess.cc.

58{
59 //dtor
60 // As the owner, G4IT should delete fProcessState
61}

◆ G4VITProcess() [2/2]

G4VITProcess::G4VITProcess ( const G4VITProcess other)

Definition at line 63 of file G4VITProcess.cc.

63 : G4VProcess(other), fProcessID(other.fProcessID)
64{
65 //copy ctor
66 fpState = 0 ;
67 currentInteractionLength = 0;
68 theInteractionTimeLeft = 0;
69 theNumberOfInteractionLengthLeft = 0;
70 fInstantiateProcessState = other.fInstantiateProcessState;
72}

Member Function Documentation

◆ BuildPhysicsTable()

virtual void G4VITProcess::BuildPhysicsTable ( const G4ParticleDefinition )
inlinevirtual

Reimplemented from G4VProcess.

Reimplemented in G4ITTransportation, G4DNABrownianTransportation, and G4DNASecondOrderReaction.

Definition at line 100 of file G4VITProcess.hh.

100{}

◆ ClearInteractionTimeLeft()

void G4VITProcess::ClearInteractionTimeLeft ( )
inlineprotectedvirtual

Definition at line 179 of file G4VITProcess.hh.

180{
182}

Referenced by G4DNAMolecularDecay::AtRestDoIt().

◆ ClearNumberOfInteractionLengthLeft()

void G4VITProcess::ClearNumberOfInteractionLengthLeft ( )
inlineprotectedvirtual

◆ CreateInfo()

void G4VITProcess::CreateInfo ( )
protected

◆ GetInteractionTimeLeft()

G4double G4VITProcess::GetInteractionTimeLeft ( )
inline

Definition at line 194 of file G4VITProcess.hh.

195{
196 if(fpState)
198
199 return -1 ;
200}

Referenced by G4ITStepProcessor::DoDefinePhysicalStepLength().

◆ GetMaxProcessIndex()

const size_t & G4VITProcess::GetMaxProcessIndex ( )
inlinestatic

Definition at line 207 of file G4VITProcess.hh.

208{
209 return fNbProcess ;
210}

Referenced by G4TrackingInformation::GetProcessState().

◆ GetProcessID()

◆ GetProcessState()

G4ProcessState_Lock * G4VITProcess::GetProcessState ( )
inline

Definition at line 85 of file G4VITProcess.hh.

86 {
87 return fpState;
88 }

◆ InstantiateProcessState()

G4bool G4VITProcess::InstantiateProcessState ( )
inlineprotected

Definition at line 161 of file G4VITProcess.hh.

161{ return fInstantiateProcessState; }

Referenced by StartTracking().

◆ operator!=()

G4int G4VITProcess::operator!= ( const G4VITProcess right) const

◆ operator=()

G4VITProcess & G4VITProcess::operator= ( const G4VITProcess other)

Definition at line 74 of file G4VITProcess.cc.

75{
76 if (this == &rhs) return *this; // handle self assignment
77 //assignment operator
78 return *this;
79}

◆ operator==()

G4int G4VITProcess::operator== ( const G4VITProcess right) const

◆ ProposesTimeStep()

G4bool G4VITProcess::ProposesTimeStep ( ) const
inline

◆ ResetNumberOfInteractionLengthLeft()

void G4VITProcess::ResetNumberOfInteractionLengthLeft ( )
inlinevirtual

WARNING : Redefine the method of G4VProcess reset (determine the value of)NumberOfInteractionLengthLeft

Reimplemented from G4VProcess.

Definition at line 189 of file G4VITProcess.hh.

190{
192}
#define G4UniformRand()
Definition: Randomize.hh:53

Referenced by G4VITRestDiscreteProcess::AtRestGetPhysicalInteractionLength(), G4VITRestProcess::AtRestGetPhysicalInteractionLength(), G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), and G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength().

◆ RetrieveProcessInfo()

void G4VITProcess::RetrieveProcessInfo ( )
protected

◆ SetInstantiateProcessState()

void G4VITProcess::SetInstantiateProcessState ( G4bool  flag)
inlineprotected

Definition at line 158 of file G4VITProcess.hh.

159 { fInstantiateProcessState = flag; }

Referenced by G4ITTransportation::G4ITTransportation(), and G4VITProcess().

◆ SetProcessState()

◆ StartTracking()

void G4VITProcess::StartTracking ( G4Track track)
virtual

Reimplemented from G4VProcess.

Reimplemented in G4DNASecondOrderReaction, G4ITTransportation, and G4DNABrownianTransportation.

Definition at line 81 of file G4VITProcess.cc.

82{
83 G4TrackingInformation* trackingInfo = GetIT(track)->GetTrackingInfo();
85 {
86 fpState = new G4ProcessState();
87 }
88
89 theNumberOfInteractionLengthLeft = &(fpState->theNumberOfInteractionLengthLeft );
90 theInteractionTimeLeft = &(fpState->theInteractionTimeLeft );
91 currentInteractionLength = &(fpState->currentInteractionLength );
92 trackingInfo->RecordProcessState(fpState,fProcessID);
93 fpState = 0;
94}
G4IT * GetIT(const G4Track *track)
Definition: G4IT.cc:48
G4TrackingInformation * GetTrackingInfo()
Definition: G4IT.hh:134
void RecordProcessState(G4ProcessState_Lock *, size_t index)
G4bool InstantiateProcessState()

Referenced by G4DNASecondOrderReaction::StartTracking(), and G4ITTransportation::StartTracking().

◆ SubtractNumberOfInteractionLengthLeft()

void G4VITProcess::SubtractNumberOfInteractionLengthLeft ( G4double  previousStepSize)
protectedvirtual

Definition at line 96 of file G4VITProcess.cc.

98{
103 }
104
105 } else {
106#ifdef G4VERBOSE
107 if (verboseLevel>0) {
108 G4cerr << "G4VProcess::SubtractNumberOfInteractionLengthLeft()";
109 G4cerr << " [" << theProcessName << "]" <<G4endl;
110 G4cerr << " currentInteractionLength = " << *currentInteractionLength/cm << " [cm]";
111 G4cerr << " previousStepSize = " << previousStepSize/cm << " [cm]";
112 G4cerr << G4endl;
113 }
114#endif
115 G4Exception("G4VProcess::SubtractNumberOfInteractionLengthLeft()",
116 "Negative currentInteractionLength",EventMustBeAborted,theProcessName);
117 }
118}
@ EventMustBeAborted
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cerr
G4int verboseLevel
Definition: G4VProcess.hh:368
G4String theProcessName
Definition: G4VProcess.hh:335
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41

Referenced by G4VITRestDiscreteProcess::PostStepGetPhysicalInteractionLength(), and G4DNASecondOrderReaction::PostStepGetPhysicalInteractionLength().

Member Data Documentation

◆ fProposesTimeStep

G4bool G4VITProcess::fProposesTimeStep
protected

Definition at line 163 of file G4VITProcess.hh.

Referenced by G4VITProcess(), and ProposesTimeStep().

◆ fpState


The documentation for this class was generated from the following files: