|Message: Re: Primary Vertex Information to Track Information, and question about multiple parent tracks||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 Sun, 11 Aug 2013 11:15:18 GMT, Young wrote:
> I see. What about assigning UserTrackInformation to a track based on the > primary's UserPrimaryVertexInformation? Is using PrimaryTransformer the > proper way to do this?I've had a similar issue to solve lately and am now of strong opinion even tough it would logically make sense to use PrimaryTransformer for this purpose, Geant interfaces simply do not allow the required degree of customisation. I've ended up copying user information in my implementation of G4UserTrackingAction::PreUserTrackingAction() (G4UserStackingAction::ClassifyNewTrack() ought to work too but as I have already had a custom implementation of the former, I decided to extend that one instead of adding another user action), which for each track with parent ID equal to 0 searches for this tracks's ID on the list of primary particles (G4PrimaryParticle::GetTrackID()), constructs a user track-information object using user information attached to the primary particle and attaches it to the track. All in all, fairly straightforward... The only thing of special note here is that the first time I look up track ID of a primary particle, I construct a dictionary (std::unordered_map<G4int, G4PrimaryParticle*>) which allows me to get this information faster than by iterating over all primary particles every time.