|Message: Possible bug. Temporal discrepancy, secondaries created before parent.||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)|
I am simulating a detector setup which records the time-of-flight of some reaction products. In my sensitive detector I save the time I get from the GetGlobalTime() method. I use the QGSP_BERT_HP physics list but the problems I have are not limited to neutrons so it seems unlikely a HP-bug.
It seems I have stumbled onto a bug because with some processes the global time of the secondaries comes out less than the global time of the parent particle. I have identified that it happens if the process "hadElastic" is active but it is not the only process with this behaviour (How to find the process responsible for a specific secondary particle?). For the hadronic elastic scattering I circumvented the bug in "hadElastic" by wrapping the process (G4WrapperProcess) inserting these lines of code in the end of PostStepDoIt:
const G4int secondaries = proc_change->GetNumberOfSecondaries(); for( G4int i = 0; i < secondaries; ++i) proc_change->GetSecondary(i)->SetGlobalTime( track.GetGlobalTime() );
I am using version 4.9.5.p01 and hope some developer will see this.
|Inline Depth:||Outline Depth:||Add message:|