55 fOldTouchableH(), fNewTouchableH(), fInitialTouchableH(), fFinalTouchableH()
76 delete fpEnergySplitter;
94 fNewTouchableH = fOldTouchableH;
148 G4ThreeVector preStepPosition, postStepPosition, direction, finalPostStepPosition;
156 fOldTouchableH = fInitialTouchableH;
157 fNewTouchableH= fOldTouchableH;
166 direction= (finalPostStepPosition - preStepPosition).unit();
170 postStepPosition= preStepPosition;
173 for ( iStep=0; iStep < numberVoxelsInStep; iStep++ ){
175 G4double stepLength=0.0, energyLoss= 0.0;
177 *fSplitPreStepPoint = *fSplitPostStepPoint;
178 fOldTouchableH = fNewTouchableH;
180 preStepPosition= postStepPosition;
181 fSplitPreStepPoint->
SetPosition( preStepPosition );
189 postStepPosition= preStepPosition + stepLength * direction;
190 fSplitPostStepPoint->
SetPosition(postStepPosition);
195 if( iStep < numberVoxelsInStep -1 ){
197 G4int nextVoxelId= -1;
198 fpEnergySplitter->
GetVoxelID( iStep+1, nextVoxelId );
202 CreateTouchableForSubStep( nextVoxelId, postStepPosition );
213 eLossFraction= (totalEnergyDeposit>0.0) ? energyLoss / totalEnergyDeposit : 1.0 ;
219 ptrSD->
Hit(fSplitStep);
230 G4ScoreSplittingProcess::CreateTouchableForSubStep(
G4int newVoxelNum,
G4ThreeVector )
236 GetNavigatorForTracking()->CreateTouchableHistory(oldTouchableHistory->
GetHistory());
258 G4cout <<
" Current volume type is not Parameterised. " <<
G4endl;
259 G4Exception(
"G4ScoreSplittingProcess::CreateTouchableForSubStep",
261 "Score Splitting Process is used for Regular Structure - but did not find one here.");
263 return ptrTouchableHistory;
266 void G4ScoreSplittingProcess::CopyStepStart(
const G4Step & step)
282 G4cout <<
"In mass geometry ------------------------------------------------" <<
G4endl;
285 G4cout <<
" PreStepPoint : "
290 {
G4cout <<
"NoProcessAssigned"; }
293 G4cout <<
" PostStepPoint : ";
297 {
G4cout <<
"OutOfWorld"; }
302 {
G4cout <<
"NoProcessAssigned"; }
306 G4cout <<
"In ghost geometry ------------------------------------------------" <<
G4endl;
308 <<
" TotalEnergyDeposit : "
310 G4cout <<
" PreStepPoint : "
317 {
G4cout <<
"NoProcessAssigned"; }
320 G4cout <<
" PostStepPoint : ";
328 {
G4cout <<
"OutOfWorld"; }
333 {
G4cout <<
"NoProcessAssigned"; }
381 return &dummyParticleChange;