00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039 #include "G4VContinuousProcess.hh"
00040 #include "G4SystemOfUnits.hh"
00041
00042 #include "G4Step.hh"
00043 #include "G4Track.hh"
00044 #include "G4MaterialTable.hh"
00045 #include "G4VParticleChange.hh"
00046
00047 G4VContinuousProcess::G4VContinuousProcess()
00048 :G4VProcess("No Name Continuous Process"),
00049 valueGPILSelection(CandidateForSelection)
00050 {
00051 G4Exception("G4VContinuousProcess::G4VContinuousProcess()","ProcMan102",
00052 JustWarning,"Default constructor is called");
00053 }
00054
00055 G4VContinuousProcess::G4VContinuousProcess(const G4String& aName , G4ProcessType aType)
00056 : G4VProcess(aName, aType),
00057 valueGPILSelection(CandidateForSelection)
00058 {
00059 enableAtRestDoIt = false;
00060 enablePostStepDoIt = false;
00061 }
00062
00063 G4VContinuousProcess::~G4VContinuousProcess()
00064 {
00065 }
00066
00067 G4VContinuousProcess::G4VContinuousProcess(G4VContinuousProcess& right)
00068 : G4VProcess(right),
00069 valueGPILSelection(right.valueGPILSelection)
00070 {
00071 }
00072
00073 G4double G4VContinuousProcess::AlongStepGetPhysicalInteractionLength(
00074 const G4Track& track,
00075 G4double previousStepSize,
00076 G4double currentMinimumStep,
00077 G4double& currentSafety,
00078 G4GPILSelection* selection
00079 )
00080 {
00081
00082 valueGPILSelection = CandidateForSelection;
00083
00084
00085 G4double steplength = GetContinuousStepLimit(track,previousStepSize,currentMinimumStep, currentSafety);
00086
00087
00088 *selection = valueGPILSelection;
00089
00090 #ifdef G4VERBOSE
00091 if (verboseLevel>1){
00092 G4cout << "G4VContinuousProcess::AlongStepGetPhysicalInteractionLength ";
00093 G4cout << "[ " << GetProcessName() << "]" <<G4endl;
00094 track.GetDynamicParticle()->DumpInfo();
00095 G4cout << " in Material " << track.GetMaterial()->GetName() <<G4endl;
00096 G4cout << "IntractionLength= " << steplength/cm <<"[cm] " <<G4endl;
00097 }
00098 #endif
00099
00100 return steplength ;
00101 }
00102
00103 G4VParticleChange* G4VContinuousProcess::AlongStepDoIt(
00104 const G4Track& ,
00105 const G4Step&
00106 )
00107 {
00108 return pParticleChange;
00109 }