Skip to content

Conversation

@david-stewart
Copy link
Contributor

  • Functionally fixes the PHCASeeding->SetSplitSeeds(false); to work as expected.
  • Removes the separate mapTrkrDefs::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

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

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work for users)
  • Requiring change in macros repository (Please provide links to the macros pull request in the last section)
  • I am a member of GitHub organization of sPHENIX Collaboration, EIC, or ECCE (contact Chris Pinkenburg to join)

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)

- 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
@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit a6cabab5cfe6df22bf44f5ae32e64e972a6ce51c:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit 4f83926f481096fe93565c51a73aaf25c593670a:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@david-stewart
Copy link
Contributor Author

Hi @pinkenburg / @osbornjd --
I made this PR on a sphnx interactive node and it ran ok. It is failing the alma9 node builds. Should I log onto an alma9 node to check this out and resubmit?

@osbornjd
Copy link
Contributor

Looks like the newer version of g++ picks up a possible error
https://web.sdcc.bnl.gov/jenkins-sphenix/job/sPHENIX/job/Build-Master-gcc14/401/artifact/build/new/rebuild.log/*view*/

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.
@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit d146442f6a0ccbd0debbef4cc7e638db807cdd9c:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit 82580280f7cd07315573afd06a9cd5bdbe5b4fb1:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit 57d30b6b31bfaeb262ba758715d246bdc3e2b198:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit c06185da5350dbb524a7139490aa3261b0b33f40:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit a1cd61cc8792e3ba10f3dcd1cc882496bc9432b9:
Jenkins passed


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@osbornjd
Copy link
Contributor

osbornjd commented Mar 5, 2025

This improves the efficiency in the simulation pretty substantially, do you have some QA checks on the data too?

@david-stewart
Copy link
Contributor Author

david-stewart commented Mar 5, 2025

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.

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit 4691a1240e52077096cfd6f8328cc3dccebc7036:
Jenkins passed


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@david-stewart david-stewart marked this pull request as ready for review March 6, 2025 02:46
@david-stewart
Copy link
Contributor Author

david-stewart commented Mar 6, 2025

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.

@david-stewart
Copy link
Contributor Author

david-stewart commented Mar 7, 2025

Hi @osbornjd -- I believe that this is ready to merge. In other consideration, there is also @petermic 's PR, which wouldrequire some synthesis to take both of them.

@osbornjd
Copy link
Contributor

osbornjd commented Mar 7, 2025

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

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit 6c03611228892b883eccf200a1316bd53f0c38c6:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit c61e573b215453df2ffbb79fa292b3cd210c489b:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit e5d2f20c7306cba9f1caf8a9fc6105377124a260:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit c89d662c5d2edd032cf1392c4e85666b98fef645:
Jenkins on fire


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@sphenix-jenkins-ci
Copy link

Build & test report

Report for commit e5264807f5b73244ecc6495f0d9562db5b12fabd:
Jenkins passed


Automatically generated by sPHENIX Jenkins continuous integration
sPHENIX             jenkins.io

@david-stewart
Copy link
Contributor Author

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.

@david-stewart
Copy link
Contributor Author

Hi @osbornjd -- I think that this is ready to merge. There are still algorithmic choices to made, but it is essentially a merge of @petermic 's PR and this one

@osbornjd
Copy link
Contributor

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

@david-stewart
Copy link
Contributor Author

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.

@osbornjd
Copy link
Contributor

Have you also run tests with this one on some data too?

@david-stewart
Copy link
Contributor Author

At least not after I merge in Michael's code with it

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants