| Message: Re: Problem with very small stepsize caused by transportation process? | Not Logged In (login) |
|
[ I started writing this before you last posting - but I have now read it.] Your problem is unusual, and could suggest a difficulty in the Navigator or in your setup. My first suggestion would be to run overlap checking. Since you report doing this already, I will provide a different suggestion. [ However, if you can try to check for overlaps a second time, using a different method, it could help too. ] Could you please see whether you can reproduce the problem when locating a point by yourself with just the Navigator. From your output I see that the difficulty is at
Position - x (mm) : -89.70796591921498 Position - y (mm) : -63.48666293803226 Position - z (mm) : -285.232 Can you call the Navigator at this point, (you can get its pointer from the G4TransportationManager), using LocateGlobalPointAndSetup ? I suggest to call it repeatedly and compare its output.
Then add the direction, which from your print out appears to be Momentum Direct - x : -0.9805329125797901 Momentum Direct - y : 0.1807490143955495 Momentum Direct - z : -0.07671376110471373
From the values of the position, it is my guess that there is a boundary exactly at this z value: Position - z (mm) : -285.232 Can you confirm whether the point is at a boundary of one of the TrdLayer volumes at this point ? If so, it would be very useful to create a custom sub-class of G4SteppingVerbose that prints out the copy number of the current TrdLayer (and potentially the parent volume's copy number as well.) This way we can check whether it is confused by bouncing between different copies at their interface. After this, please try to call the Navigator's ComputeStep method yourself. If it returns zero, you are seeing the same problem.
I suggest to repeat
Locate( point, direction, ...
step= ComputeStep( point, direction, ...
point += step * direction;
a few more times (say 20 times in a loop) to confirm that the problem
is with Navigation, not the field.
The code for propagating in a magnetic field should take care for difficult cases, where it can be unclear what volume a track is actually crossing. In this case, though, it appears that it is the Navigator which is having difficulties. I noted that you said that "" a particle should never really enter a "TrdLayer" volume explicitly because the daughter volume "TrdRadiator" in each "TrdModule" fills the upper part of the layer completely. "" This seems to indicate that it is experiencing significant difficult at this level. What type of volume is a 'TrdModule'? A box, a tubs, or other ?? Also what is the TrdRadiator ? |
| Inline Depth: | Outline Depth: | Add message: |
|
to: |