|Message: Re: No reallocation step after reflection||Not Logged In (login)|
Click on the Forum title, e.g. on the "Forums by Category" page, to read a sequence of postings to the Forum and its threads all in one page. If you are only interested in one thread or the thread following a specific posting, click the thread or the posting, which takes you to a smaller page, which contains only the part you are interested in and may be easier to navigate.
Messages are "chained" if there are only replies at the first level, i.e. 1/1.html, 1/1/1.html etc. In case of "chained" messages the message number is replaced by the icon and there is no indentation.
Inline: Display the subject line only or also the text of the posting(s); for the choice "All" the "Outline" choices are switched off.
|1||0||1||no text / full text of posting|
|2||1||All||text for level 1 only / text for All postings|
Outline: Choose the depth of the posting thread, successive toggle controls provide increasing detail.
|1||2||1||2 levels / 1 level (original posting)|
|2||3||2||3 levels / 2 levels|
|3||3||All||3 levels / all levels (all postings)|
> What drives the 'reallocation step' to occur?
Upon reflection off of a surface, you get three steps in Geant4:
(1) the step when the track arrives at the surface. This step has preStepPoint inside the volume and postStepPoint pointing to the volume on the other side of the surface
(2) upon reflection, the G4 navigator does a 'reallocation step'. This step has zero length step size and preStepPoint pointing to the volume outside the surface, and postStepPoint to the volume inside the surface
(3) the next step is a normal transportation step inside the volume.
> Why might it not occur?
This, I don't know. You can debug (print) the logic in your SteppingAction that leads to the Exception.
> Volume Name : paddle_phys totMRDphys > #Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName > 1 -424 508 4.69e+03 2.94e-06 0 139 139 totMRDphys Transportation
The above is the (1) step; the track arrives at the surface.
> Volume Name : totMRDphys paddle_phys > #Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName > 2 -424 508 4.69e+03 2.94e-06 0 0 139 paddle_phys Transportation
This is the correct reallocation step (there are no complains from SteppingAction).
> Volume Name : paddle_phys totMRDphys > #Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName > 3 -494 660 4.69e+03 2.94e-06 0 168 307 totMRDphys Transportation
This is step (3) but also step (1) of the next reflection
> Volume Name : totMRDphys paddle_phys > #Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName > 4 -494 660 4.69e+03 2.94e-06 2.94e-06 6.62e-10 307 paddle_phys Transportation > error: poststeppoint volume is paddle_phys prestep point is totMRDphys > > -------- EEEE ------- G4Exception-START -------- EEEE ------- > *** G4Exception : WCSimExpl01 > issued by : WCSimSteppingAction::UserSteppingAction() > WCSimSteppingAction::UserSteppingAction(): No reallocation step after reflection! > Something is wrong with the surface normal or geometry > > *** Fatal Exception *** core dump *** -------- EEEE -------- > G4Exception-END --------- EEEE ------- > > *** G4Exception: Aborting execution *** Aborted
This triggered the G4Exception in your SteppingAction. Can you reduce the stepping verbose to 1 and add additional debug printing to follow the logic at:
i.e. print at every step:
thePostPoint->GetStepStatus() fExpectedNextStatus boundaryStatus