Message: Re: Lifetime of touchables Not Logged In (login)
 Next-in-Thread Next-in-Thread
 Next-in-Forum Next-in-Forum

Warning Re: Lifetime of touchables 

Forum: Geometry
Re: Question Lifetime of touchables (Nicola Mori)
Date: 01 Aug, 2014
From: Michael H. Kelsey <Michael H. Kelsey>

On Fri, 01 Aug 2014 13:32:10 GMT, Nicola Mori wrote:
> Hi, to identify volumes where hits happen I'm using the address of the
> corresponding touchable:
> 
>   const G4VTouchable *touchable = aStep->GetPreStepPoint()->GetTouchable();
> 
> In my hit object I record this address during
> G4VSensitiveDetector::ProcessHits, but in my EndOfEventAction() it seems
> that the memory location pointed by this pointer contains invalid data.

You can't do that. Steps and Tracks only have lifetime while they are actively involved. What's more, those objects, and some of their constituents, are allocated from fixed memory pools using the "G4Allocator" method, with the result that a cached address might point to a valid object of the type you care about, but have completely different content.

What you need to do in your ProcessHits() class, is make use of that Touchable to extract whatever information (data) you actually plan to store, rather than trying to defer that activity until later.

  -- Michael Kelsey

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

1 Question: Re: Lifetime of touchables   (Nicola Mori - 02 Aug, 2014)
1 None: Re: Lifetime of touchables   (John Allison - 02 Aug, 2014)
1 Ok: Re: Lifetime of touchables   (Nicola Mori - 02 Aug, 2014)
2 None: Re: Lifetime of touchables   (Mike Kelsey - 02 Aug, 2014)
2 None: Re: Lifetime of touchables   (John Apostolakis - 04 Aug, 2014)
1 None: Re: Lifetime of touchables   (Nicola Mori - 04 Aug, 2014)
 Add Message Add Message
to: "Re: Lifetime of touchables"

 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 ]