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
00040
00041
00042
00043
00044 #include "G4VSteppingVerbose.hh"
00045 #include "G4SteppingManager.hh"
00046 #include "G4Track.hh"
00047 #include "G4ParticleDefinition.hh"
00048
00049 G4VSteppingVerbose* G4VSteppingVerbose::fInstance = 0;
00050 G4int G4VSteppingVerbose::Silent = 0;
00051 G4int G4VSteppingVerbose::SilentStepInfo = 0;
00052
00053 G4VSteppingVerbose::G4VSteppingVerbose()
00054 : fManager(0), fUserSteppingAction(0),
00055 PhysicalStep(0.), GeometricalStep(0.), CorrectedStep(0.),
00056 PreStepPointIsGeom(false), FirstStep(false),
00057 TempInitVelocity(0.), TempVelocity(0.), Mass(0.), sumEnergyChange(0.),
00058 fParticleChange(0), fTrack(0), fSecondary(0), fStep(0),
00059 fPreStepPoint(0), fPostStepPoint(0), fCurrentVolume(0),
00060 fSensitive(0), fCurrentProcess(0), fAtRestDoItVector(0),
00061 fAlongStepDoItVector(0), fPostStepDoItVector(0), fAtRestGetPhysIntVector(0),
00062 fAlongStepGetPhysIntVector(0), fPostStepGetPhysIntVector(0),
00063 MAXofAtRestLoops(0), MAXofAlongStepLoops(0), MAXofPostStepLoops(0),
00064 currentMinimumStep(0.), numberOfInteractionLengthLeft(0.),
00065 fAtRestDoItProcTriggered(0), fAlongStepDoItProcTriggered(0),
00066 fPostStepDoItProcTriggered(0), fN2ndariesAtRestDoIt(0),
00067 fN2ndariesAlongStepDoIt(0), fN2ndariesPostStepDoIt(0),
00068 fNavigator(0), verboseLevel(0), fSelectedAtRestDoItVector(0),
00069 fSelectedAlongStepDoItVector(0), fSelectedPostStepDoItVector(0),
00070 fPreviousStepSize(0.), physIntLength(0.)
00071 {
00072 if(fInstance!= 0)
00073 {
00074 G4Exception("G4VSteppingVerbose::G4VSteppingVerbose()",
00075 "Tracking0014", FatalException,
00076 "Only one SteppingVerbose class can be instantiated.");
00077 }
00078 }
00079 G4VSteppingVerbose::~G4VSteppingVerbose(){;}
00080
00082 void G4VSteppingVerbose::SetManager(G4SteppingManager* const fMan)
00084 {
00085 fManager=fMan;
00086 }
00087
00089 void G4VSteppingVerbose::CopyState()
00091 {
00092
00093 fUserSteppingAction = fManager->GetUserAction();
00094
00095
00096 PhysicalStep = fManager->GetPhysicalStep();
00097 GeometricalStep = fManager->GetGeometricalStep();
00098 CorrectedStep = fManager->GetCorrectedStep();
00099 PreStepPointIsGeom = fManager->GetPreStepPointIsGeom();
00100 FirstStep = fManager->GetFirstStep();
00101 fStepStatus = fManager->GetfStepStatus();
00102
00103 TempInitVelocity = fManager->GetTempInitVelocity();
00104 TempVelocity = fManager->GetTempVelocity();
00105 Mass = fManager->GetMass();
00106
00107 sumEnergyChange = fManager->GetsumEnergyChange();
00108
00109 fParticleChange = fManager->GetfParticleChange();
00110 fTrack = fManager->GetfTrack();
00111 fSecondary = fManager->GetfSecondary();
00112 fStep = fManager->GetfStep();
00113 fPreStepPoint = fManager->GetfPreStepPoint();
00114 fPostStepPoint = fManager->GetfPostStepPoint();
00115
00116 fCurrentVolume = fManager->GetfCurrentVolume();
00117 fSensitive = fManager->GetfSensitive();
00118 fCurrentProcess = fManager->GetfCurrentProcess();
00119
00120 fAtRestDoItVector = fManager->GetfAtRestDoItVector();
00121 fAlongStepDoItVector = fManager->GetfAlongStepDoItVector();
00122 fPostStepDoItVector = fManager->GetfPostStepDoItVector();
00123
00124 fAtRestGetPhysIntVector = fManager->GetfAtRestGetPhysIntVector();
00125 fAlongStepGetPhysIntVector = fManager->GetfAlongStepGetPhysIntVector();
00126 fPostStepGetPhysIntVector = fManager->GetfPostStepGetPhysIntVector();
00127
00128 MAXofAtRestLoops = fManager->GetMAXofAtRestLoops();
00129 MAXofAlongStepLoops = fManager->GetMAXofAlongStepLoops();
00130 MAXofPostStepLoops = fManager->GetMAXofPostStepLoops();
00131
00132 fAtRestDoItProcTriggered = fManager->GetfAtRestDoItProcTriggered();
00133 fAlongStepDoItProcTriggered = fManager->GetfAlongStepDoItProcTriggered();
00134 fPostStepDoItProcTriggered = fManager->GetfPostStepDoItProcTriggered();
00135
00136 fN2ndariesAtRestDoIt = fManager->GetfN2ndariesAtRestDoIt();
00137 fN2ndariesAlongStepDoIt = fManager->GetfN2ndariesAlongStepDoIt();
00138 fN2ndariesPostStepDoIt = fManager->GetfN2ndariesPostStepDoIt();
00139
00140 fNavigator = fManager->GetfNavigator();
00141
00142 verboseLevel = fManager->GetverboseLevel();
00143
00144 fSelectedAtRestDoItVector = fManager->GetfSelectedAtRestDoItVector();
00145 fSelectedAlongStepDoItVector = fManager->GetfSelectedAlongStepDoItVector();
00146 fSelectedPostStepDoItVector = fManager->GetfSelectedPostStepDoItVector();
00147
00148 fPreviousStepSize = fManager->GetfPreviousStepSize();
00149
00150 fTouchableHandle = fManager->GetTouchableHandle();
00151
00152 StepControlFlag = fManager->GetStepControlFlag();
00153
00154 physIntLength = fManager->GetphysIntLength();
00155 fCondition = fManager->GetfCondition();
00156 fGPILSelection = fManager->GetfGPILSelection();
00157 }
00158
00159 void G4VSteppingVerbose::SetInstance(G4VSteppingVerbose* Instance)
00160 {
00161 fInstance=Instance;
00162 }
00163
00164 G4VSteppingVerbose* G4VSteppingVerbose::GetInstance()
00165 {
00166 return fInstance;
00167 }
00168
00169 G4int G4VSteppingVerbose::GetSilent()
00170 {
00171 return Silent;
00172 }
00173
00174 void G4VSteppingVerbose::SetSilent(G4int fSilent)
00175 {
00176 Silent=fSilent;
00177 }
00178
00179 G4int G4VSteppingVerbose::GetSilentStepInfo()
00180 {
00181 return SilentStepInfo;
00182 }
00183
00184 void G4VSteppingVerbose::SetSilentStepInfo(G4int fSilent)
00185 {
00186 SilentStepInfo=fSilent;
00187 }
00188