Iss1325 truthseedprocessor class separations#2064
Conversation
…rocessor Draft of splitting truth tracking into two: - TruthSeedProcessor: handles scoring plane hit selection, hit counting, starts extrapolation, and seed smearing - TruthTrackProcessor: finishes extrapolation to target surface, applies stricter momentum and hit cuts, and applies ecal bound state to recoil tracks Code compiles and runs, but SeedTaggerDQM histograms (e.g., pull_phi vs p) are not lining up. Few other histograms are not lining up as well. Need help with debugging.
…rocessor Draft of splitting truth tracking into two: - TruthSeedProcessor: handles scoring plane hit selection, hit counting, starts extrapolation, and seed smearing - TruthTrackProcessor: finishes extrapolation to target surface, applies stricter momentum and hit cuts, and applies ecal bound state to recoil tracks Code compiles and runs, but SeedTaggerDQM histograms (e.g., pull_phi vs p) are not lining up. Few other histograms are not lining up as well. Need help with debugging.
…rocessor Draft of splitting truth tracking into two: - TruthSeedProcessor: handles scoring plane hit selection, hit counting, starts extrapolation, and seed smearing - TruthTrackProcessor: finishes extrapolation to target surface, applies stricter momentum and hit cuts, and applies ecal bound state to recoil tracks Code compiles and runs, but SeedTaggerDQM histograms (e.g., pull_phi vs p) are not lining up. Few other histograms are not lining up as well. Need help with debugging.
These classes are from the split of the old TruthSeedProcessor class. TruthSeedProcessor: Reads simulated hits, creates hit count maps, performs momentum and hit cuts, adds track states at the target, ecal, or beam electron surface to seeds. Outputs truth seeds. TruthTrackProcessor: Takes seeds from the TruthSeedProcessor, converts parameters from LDMX to ACTS, performs track extrapolations, and applies optional smearing. Outputs final truth tracks.
|
/run-validation |
|
The validation workflow is running here: https://github.com/LDMX-Software/ldmx-sw/actions/runs/27167957798. |
Validation ResultsSome validation samples failed! ❌
|
|
@bloodyyugo what do you think about this? |
|
Can you describe in more detail what these two classes are doing? It seems like TruthSeedProcessor is making truth tracks, then TruthTrackProcessor is also making truth tracks and also making (maybe) smeared truth tracks. I am also getting confused by the term "seed" here (and in the old TruthSeedProcessor tbh). |
|
The old "TruthSeedProcessor" was doing both "truth seeds" and "truth tracks", now with this change these are decoupled similar to the way we do this at reco level. |
|
From what I can tell (in the old processor, which has always been hard to parse) the tracks with the "seed" label are just the truth tracks (maybe smeared) with a non-zero covariance matrix. Honestly, I'm not sure why we save both "truth" and "seed" collections though it may be from PF doing studies. The beamelectrons are handled a bit differently (calls taggerFullSeed, the true position at the target SP is saved as as the atTarget scoring plane and sim hit IDs are added as measurement IDs). Non-beam stuff (in the tagger, recoil is ok) never get their hits added to the track, which seems like an oversight. |
PF actually wanted to break these up, see: |
|
Right, but he's referring to having a base class and then child recoil/tagger classes taking care of (I guess) the different track states get created and handling "beamelectrons" and whatever needs to be handled differently. And I can see how that would be sensible; createTruthTrack and seedFromTruth methods are agnostic, you could just include a loop over a single supplied scoring-plane list in the base class and maybe have a method call to "doSpecificTrackerStuff" (which does different things for recoil/tagger classes)... But, I'm just not sure the PR here makes things that simpler. It adds 3 extra collections to the event (from the new TruthSeedProc), which (I think?) contain exactly the same info as the truth_track output of TrackTruthProc apart from the helical parameters. It does simplify the scoring plane loops, I guess. |

Resolves #1325
This is a draft, still debugging but code compiles and runs.
Split TruthSeedProcessor into two classes: TruthSeedProcessor and TruthTrackProcessor
starts extrapolation, and seed smearing
and hit cuts, and applies ecal bound state to tracks
Issues:
-histograms are not lining up in TaggerDQM and RecoilDQM
-run time is long since both classes are performing extrapolations, want input on how the processes in these classes should be split