Message: Re: Segmentation fault in G4MaterialCutsCouple::GetMaterial Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

None Re: Segmentation fault in G4MaterialCutsCouple::GetMaterial 

Forum: Geometry
Re: Question Segmentation fault in G4MaterialCutsCouple::GetMaterial (Jérôme Roccaz)
Date: 22 May, 2013
From: John Apostolakis <John Apostolakis>

Dear Jerome,

There seems to be some confusion with the materials - in particular a material appears not to be defined for the relevant volume. 

Some speculation is needed to guess what is happening, and provide suggestions for you to investigate. 

Likely there is a part of your setup which has an undefined material.  I suggest that you review your code with the following questions in mind:

- Where do you define the materials ? 
- Are all the pointers to these materials initialised correctly ?  To check add code Construct to print the pointers to the materials used.
- Potentially when you call "Construct" for a second time, it creates a second copy of a material, and assigns it to the same pointer used in Dec 1 ?

If you define your own materials (rather than using the existing materials by using G4NistManager and its  FindOrBuildMaterial method, then you should consider separating the creation of your own materials into a separate method, such as 
   DefineMaterials()
and make sure that you call it only once - however many times 'Construct' is called - and that you share pointers to the resulting material between instances of 'MyDecConstruction'.

To see whether the problem occurs, and get a hint at the volume, you should run with /tracking/verbose 1 (or potentially 2).

If none of this advice helps, then please repost including a stack trace (by compiling Geant4 and your application with debug information. )

John
===================================================
John Apostolakis, SFT (SoFTware) Group, PH Department, CERN
Email:  john.apostolakis@cern.ch       Office Tel:  +41-22-767-7239
------------------------------------------------------------------------------------------

On May 22, 2013, at 9:36 AM, J?r?me Roccaz wrote:

> 
> *** Discussion title: Geometry
> 
> Hi everyone,
> 
> To simply explain what I've done : I have an experimental setup that contain several identical detectors. These detectors are complex and I
> cannot use Replica or Parameterized Volume.
> 
> To do so I've built a DetectorConstruction class called
> MyDecConstruction. The experimental setup is built in another
> DetectorConstruction class called MyExpConstruction.
> 
> In MyExpConstruction I declare two detectors like this :
> MyDecConstruction* Dec1 = new MyDecConstruction(); Dec1->Construct();
> MyDecConstruction* Dec2 = new MyDecConstruction(); Dec2->Construct();
> 
> When I use (declare) only Dec1, program runs fine and tracking operates
> within the detector. But when I add Dec2, I obtain this message :
> 
>>>>> Begin of event: 2
> 
>>>>> Begin of event: 3
> 
>>>>> Begin of event: 4
> 
>>>>> Begin of event: 5
> 
>>>>> Begin of event: 6
> 
> Program received signal SIGSEGV, Segmentation fault. 0x08555dc4 in
> G4MaterialCutsCouple::GetMaterial (this=0x0) at
> /home/jerome/geant4/geant4.9.5.p01/source/processes/cuts/include/G4MaterialCutsCouple.hh:153
> 153 return fMaterial;
> 
> I don't really understand what that error means and how to solve it.
> 
> Any idea?
> 
> Thanks
> 
> -------------------------------------------------------------
> Visit this GEANT4 at hypernews.slac.stanford.edu message (to reply or unsubscribe) at: 
> http://hypernews.slac.stanford.edu/HyperNews/geant4/get/geometry/1271.html 

Inline Depth:
 1 1
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

1 Agree: Re: Segmentation fault in G4MaterialCutsCouple::GetMaterial   (Jérôme Roccaz - 22 May, 2013)
 Add Message Add Message
to: "Re: Segmentation fault in G4MaterialCutsCouple::GetMaterial"

 Subscribe Subscribe

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews


[ Geant 4 Home | Geant 4 HyperNews | Search | Request New Forum | Feedback ]