|Message: Re: How to get track length of a primary particle at the end of event in the digitization||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)|
Soman writes: > Thank you very much for your note. I'll check your approach and I hope > it works for me. I'm just still wondering why G4Trajectory can't help me > with this. Shouldn't G4Trajectory contain any information about all > tracks and steps of an event? No. It contains a list of points in space, and is used for drawing. Tracks (G4Track) are NOT kept through an event. When a particle comes to rest, the G4Track is deleted. > I had found G4Trajectory(G4Track* aTrack), That is a _constructor_ which is used to create a new G4Trajectory object from an existing track. That construction is handled by the tracking system in the G4 toolkit; user code should not need it. > ================================================================== > G4int fparentID = aTrack->GetParentID() > > if (fparentID == 0) > > G4double ftrackLength = aTRack->GetTrackLength(); You can certainly use this code block in your application's TrackingAction (or anywhere else you have access to the real, correct track pointer. > But the question is that how G4Trajectory keeps all tracks of a given > event It doesn't. It stores a list of the points in space through which the particle (track) travelled before it stopped. > and how (or if) I can search between its tracks and implement above codes. You can't. If you're looking at all the G4Trajectory objects at the end of the event, all the tracks have already been deleted. You can collect the information about tracks while they still exist in your TrackingAction. I would recommend reading the Geant4 Application User's Guide, section 5.1 (Tracking) and chapter 6 (User Actions). Good luck! -- Mike Kelsey
|Inline Depth:||Outline Depth:||Add message:|