|Message: Re: Track particle ID through specific volume||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 Thu, 08 Mar 2018 19:53:54 GMT, Ruaridh Scott wrote:
> I'm trying to track the decays of neutral kaons through a simple > geometry. What I want to read out is the physical volume each particle > propagates through as well as the number for that particle. I can get > the volume and ParentID from the track i.e track-.GetPhysicalVolume(), > but the numbers that are coming out don't match the Geant4 particle list > for the particle names. I've also tried track ID but I'm not sure what > this does. Do I have to use sensitive detector and get the step > properties or is there a simpler way?
The "trackID" and "parentID" are just indices, and don't have any meaning. The primary track in an event is track #1, with parent = 0. The secondaries produced from track #1 are 2, 3, 4, etc., and they all have parent=1. And so on. Note that once a track stops or decays, it is deleted from memory; the track ID is just an archival value that might be useful to save if you want to reconstruct the sequence of events.
To know what kind of particle you have, use track->GetParticleDefinition(). You can then look at the name of the particle if you just want to print something human-readable, or you can use that PD pointer (they're all singletons) directly in your code (e.g., "if (track->GetParticleDefinition() == G4KaonZero::Definition())").
If you want to know things like the energy deposited by the track, or interactions along the way, then you do need to look at the G4Step information. You can use a sensitive detector for that (if you only care about stuff in a specific volume), or you can define a SteppingAction, which lets you look at every step of every track, no matter where it is in your geometry.
There are numerous examples in the G4 distribution that show all of these things. That may be a place for you to start, and to steal code fragments.
-- Michael Kelsey