|Message: Setting TrackID||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)|
What is the proper way to set the TrackID of a track inside my GeneratePrimaries(G4Event *event) ?
Note that this does not work (specifically the last line of this snippet), and the track's TrackID gets reset to 1 at the start of tracking:
particleGun->SetParticleTime(time); particleGun->SetParticlePosition(pos); particleGun->SetParticleEnergy(ke); particleGun->SetParticleMomentumDirection(direction); particleGun->GeneratePrimaryVertex(event); event->SetEventID(eventID); event->GetPrimaryVertex()->SetWeight(weight); event->GetPrimaryVertex()->GetPrimary()->SetTrackID(trackId);
I am reading a file of existing tracks, and I want to: a) preserve the TrackID's of all tracks, and b) ensure that generated secondaries do not duplicate any TrackIDs that came from the file. Here there is just a single track in the event, but soon I'll have multiple tracks (and possibly multiple vertexes).
Note that my code does not use the primary vertex at all, except to pass a weight into the track. Is there some way I can just create some G4Track-s myself and stack them, rather than jumping through hoops to use G4ParticleGun?
A quick glance at G4EventManager.cc indicates to me that this appears to be impossible, unless I re-write TrackIDs in UserStackingAction or PreUserTrackingAction, which would be complex and fragile. Or do I need to write my own RunManager and EventManager?
Has nobody ever done this before? (I have been living with re-numbered TrackIDs for years, but now it has become a problem.)
|Inline Depth:||Outline Depth:||Add message:|