New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Calo particle validation with graph #22596
Calo particle validation with graph #22596
Conversation
Actually the debug package contains also a complete reimplementation of the CaloParticle logic fully based on the BGL that greatly simplify the extremely complex logic of the currently used CaloTruthAccumulator. The implementation is not yet final but gives already identical results if compared with the regularly produced CaloParticles.
Full recursion and creation of CaloParticles.
Add more histograms to monitor CaloParticles and monitor more kind of particles based on their pdgId.
Few particles are linked still to vertex 0 but are separate from the main vertex graph. This will recover them and promote them to be CaloParticles if them or any of their children leave hits in the configured calorimeters.
Every CaloParticle is linked to the first stable particle originating the cascade of particles that left hits in the calorimeters: that stable particle is not included as a simCluster (unless it itself left hits in the calorimiters). Additional code has been added to find a matching track based on the trackId linked to the CaloParticle itself, not to the associated simClusters. The most important clients affected by this change are electrons.
Comparison is ready Comparison Summary:
|
In order to speed-up integration, could someone suggest the best way to have the |
The bot gives instructions for this:
|
@kpedro88 |
+1 |
+1 |
+1
|
This pull request is fully signed and it will be integrated in one of the next master IBs (tests are also fine). This pull request will now be reviewed by the release team before it's merged. @davidlange6, @slava77, @smuzaffar, @fabiocos (and backports should be raised in the release meeting by the corresponding L2) |
@rovere are we expecting more stuff entering into the SimGeneral/Debugging package? At present it is just one class. For the rest the PR is ok for me |
after a discussion with @rovere, this will be possibly reviewed in a forthcoming development in case no further additions are needed |
+1 |
REPLACEMENT OF #21701
While doing work on HGCAL, I stumbled upon the CaloParticles several times. In order to "learn&understand" what they are and how they are produced, I took a look at the CaloTruthAccumulator, which is the package responsible for their creation. I found the code to be convoluted and overly complicated. I decided to rewrite it from scratch, keeping the same functionalities using graphs, since particle decays are "naturally" described by graph (and their algorithms).
This is what I came up with: I believe this code is more compact, clean and understandable with respect to the original one.
I slightly changed the meaning of the embedded simClusters for CaloParticles that decay within a certain distance from HGCAL, since in the previous implementation all children were artificially collapsed under the original particle, while now they are added one-by-one as children with their own simClusters.
Besides this change, from quick tests on single particle guns (Zee), I did not notice significant differences. While I trust the algorithm I wrote, I'm not sure the old one was fully capturing all simClusters at all levels of the decay chain. So I do not exclude that there won't be any regression.