|Message: Re: Segmentation fault for primary particles process name||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)|
On Wed, 13 Feb 2019 14:32:42 GMT, Volodymy Rodin wrote:
> I am saving information about detected particles in NTuples using > SteppingAction. But after the last update of Geant4, this line doesn't > work properly anymore and segmentation fault happens: > > analysisManager->FillNtupleSColumn(0,BranchId=2,aStep->GetTrack()->GetCreatorProcess()->GetProcessName()); (SteppingAction)
That line should never have worked properly without a null pointer check. Primary particles (those with parentID == 0) do not have a creator process. Thus, GetCreatorProcess() returns 0, and the ->GetProcessName() call is dereferencing a null pointer.
You should test for aStep->GetTrack()->GetCreatorProcess() == 0 before the above line, or you can be tricky with the ternary operator, for example:
G4VProcess* trkProc = aStep->GetTrack()->GetCreatorProcess(); analysisManager->FillNtupleSColumn(0,2,(trkProc?trkcProc->GetProcessName():G4String("Primary")));
That way, you have something human readable for the primary tracks.
-- Michael Kelsey
|Inline Depth:||Outline Depth:||Add message:|