-
Notifications
You must be signed in to change notification settings - Fork 168
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
refactor!: Refactor CKF branch stopper to allow stop and keep tracks #3102
refactor!: Refactor CKF branch stopper to allow stop and keep tracks #3102
Conversation
📊: Physics performance monitoring for d8560bfphysmon summary
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm, as we already discussed this morning.
I don't see any problems to keep the track, if it has a lot of "holes" in the end. In most (all?) places we consider holes only as such, when they appear etween the first and last measurements.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
It's a pity this change can't be made to be compatible, since an explicit cast from bool
to BranchStopperResult
would return the right result. But I can't see any way to make that work, especially for a Delegate
call.
Invalidated by push of 09cfd26
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately, when I run full_chain_itk.py
, I get a crash:
Core/include/Acts/Utilities/VectorHelpers.hpp:141: std::array<double, 4> Acts::VectorHelpers::evaluateTrigonomics(const Acts::Vector3&): Assertion `sinTheta != 0 && "VectorHelpers: Vector is parallel to the z-axis " "which leads to division by zero"' failed.
after ~47 events. With main HEAD
, it runs OK, at least to >90 events. Of course that difference could just be bad luck.
Hm that looks unrelated. I can try to see if this is easily fixable but this should go into another PR in any case. |
Those fix the problems I had, but my attempt to merge #3164 with this (#3102) led to a crash on the first event:
Maybe I merged them badly. Did you try with both PRs? |
Just to be sure: these plots come from Athena reconstruction? And all of them are ttbar PU 200?
I believe the increase in efficiency comes from #3164. I found a spot where we stop the branch but never stored the track. Speedup 1.4 is great! I am surprised that it is so different between ODD Acts and ITk Athena-Acts. Maybe the previous branch aborter was already more effective than the ODD Acts one because of the detector geometry. I guess you are using the same holes/outlier cuts as before on Athena main? |
No, they are ACTS stand-alone with the ITk. All with ttbar PU 200. I can't easily test it in Athena until the PRs are merged - and even then, the
That is η dependent. Overall, the efficiency is larger in more η regions than regions where it is smaller.
right. Most ttbar PU 200 tracks are low pT.
👍
Cool! I'll test this with #3164 on its own to separate the effect of the two PRs.
Did you check this is still the case? You expressed some doubt about the x3 number before, and the lack of spread in times for different events is a little suspicious. I assume your plot before was for the
This is acts #3102 vs acts |
I will run it again. The output seems to have changed significantly with 2b068ea which is unexpected but the change looks more correct than what was there before. One suspicion I have is that we end up in the Solenoid quite often in the ODD and just waste a lot of time propagating there. This is prohibited in a lot of cases not by stopping the finding earlier. |
again for the ITk:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is clearly an improvement. Unless you are planning other breaking changes to be included at the same time, is it ready to go? 🚀
…cts-project#3102) Changes the CKF branch stopper to allow keeping the tracks after the branch is stopped. This is useful if a track already collected enough measurements but then starts to accumulate holes. This change should allow us to stop branches more aggressively because we don't have to be worried anymore to throw out valid track candidates. closes - acts-project#2967 blocked by - acts-project#3164 - acts-project#3163
After removing this in #3102 I reintroduce this functionality here to reduce the changes to a minimum. After #3102 we see some bigger tack finding changes than expected which I suspect are coming from the fact that we effectively stopped most of the branches when reaching a measurement surface. Having this callback will also be necessary if we want to allow the user to count holes/outliers/measurements in specific geometry regions by themselves.
…cts-project#3102) Changes the CKF branch stopper to allow keeping the tracks after the branch is stopped. This is useful if a track already collected enough measurements but then starts to accumulate holes. This change should allow us to stop branches more aggressively because we don't have to be worried anymore to throw out valid track candidates. closes - acts-project#2967 blocked by - acts-project#3164 - acts-project#3163
…oject#3172) After removing this in acts-project#3102 I reintroduce this functionality here to reduce the changes to a minimum. After acts-project#3102 we see some bigger tack finding changes than expected which I suspect are coming from the fact that we effectively stopped most of the branches when reaching a measurement surface. Having this callback will also be necessary if we want to allow the user to count holes/outliers/measurements in specific geometry regions by themselves.
Changes the CKF branch stopper to allow keeping the tracks after the branch is stopped. This is useful if a track already collected enough measurements but then starts to accumulate holes.
This change should allow us to stop branches more aggressively because we don't have to be worried anymore to throw out valid track candidates.
closes
blocked by
CKF
#3164full_chain_itk.py
#3163