-
Notifications
You must be signed in to change notification settings - Fork 221
Various improvements to PHCASeeding #3434
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
base: master
Are you sure you want to change the base?
Various improvements to PHCASeeding #3434
Conversation
- Functionally fixes the `PHCASeeding->SetSplitSeeds(false);` to work
as expected.
- Removes the separate map<TrkrDefs::cluskey,vector3> to just making
a single vector list of the {cluskey,vector} data with pointers
in the links. This is for efficiency, and works nicely. This
also saves recalculating phi many times.
- When adding clusters, don't continually recalculate phi, dphi,
R, dR, dzdR, d2phidr2, but only as needed. Again this is
for efficiency.
Still needed:
- The cluster still makes all combinations of all triplets
to start tracks. This should be either ignored (start further
down the chain) or squashed into average clusters.
- Have the seeds start in the middle, grow inward, then outward
Build & test reportReport for commit a6cabab5cfe6df22bf44f5ae32e64e972a6ce51c: Automatically generated by sPHENIX Jenkins continuous integration |
|
Hi @pinkenburg / @osbornjd -- |
|
Looks like the newer version of g++ picks up a possible error I would login to an alma9 node, try to compile there, and debug and push a commit |
Now compiles and runs. Also commentet out optional compile flag for debugging TNtuple output.
Build & test reportReport for commit a1cd61cc8792e3ba10f3dcd1cc882496bc9432b9:
Automatically generated by sPHENIX Jenkins continuous integration |
|
This improves the efficiency in the simulation pretty substantially, do you have some QA checks on the data too? |
Hey @osbornjd, I looked at the Jupyter QA plots earlier, and I do not understand why the efficiency is so much better. I was hoping that it was because of other changes in the process/distortion corrections that are happening concurrently. I had better check in data and see what happens, just to make sure it's not something that would blow up the combinatorics dramatically. |
Build & test reportReport for commit 4691a1240e52077096cfd6f8328cc3dccebc7036:
Automatically generated by sPHENIX Jenkins continuous integration |
|
OK, the results on spot checking with actual data are identical. There is a complaint from Valgrind, but there isn't any dynamically allocated memory -- they are all allocated into std::vector. What is manual are pointers to that vector, but the memory can't actually be leaked, as both the vector of data, and the vector of pointers, are managed automatically. |
|
How does this mesh with Michael's PR? Maybe we should come up with a plan for how to merge both and/or understand how they help/hurt each other |
Build & test reportReport for commit e5264807f5b73244ecc6495f0d9562db5b12fabd:
Automatically generated by sPHENIX Jenkins continuous integration |
|
OK @petermic -- there are still some algorithmic choices to made regarding removing duplicate seeds, but I think that this successfully merges your PR code. So, if all is good, I think it is all ready to merge. |
|
I may have missed something, but I thought @petermic still wanted to do some development on his PR? Because it halved the efficiency in AuAu data |
|
ah, ok, that may be true. I haven't tested with the data outside of Jenkins. I'll talk with @petermic and maybe just merge this one with his and then the single PR can go in eventually. |
|
Have you also run tests with this one on some data too? |
|
At least not after I merge in Michael's code with it |




PHCASeeding->SetSplitSeeds(false);to work as expected.Still needed:
down the chain) or squashed into average clusters.
Given that the default Fun4All macro splits the tracks, this shouldn't change the QA. I'll wait to see them before asking for the PR merge.
Types of changes
What kind of change does this PR introduce? (Bug fix, feature, ...)
TODOs (if applicable)
Links to other PRs in macros and calibration repositories (if applicable)