-
Notifications
You must be signed in to change notification settings - Fork 628
[PWGHF] Make default sgSelector parameters configurable #14923
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?
Conversation
Rrantu
commented
Feb 11, 2026
- The default values of NDtColl, MinNBCs, MinNTracks and MaxNTracksFix in utilsUpcHf.h were not optimal and have been changed to Configurable parameters.
- Reduced the number of bins in the UPC QA histograms in taskLc.cxx to optimize memory usage.
|
Hi @Rrantu , when these parameters were being added, my understanding was that these were already optimised constants taken from the UD. Can you please explain the motivation of your PR? |
Hi @vkucera, the original default values were not fully consistent with the UD configurations. I have now made these parameters configurable based on the settings used in the UD analysis. |
| /// \brief Configurable group for UPC gap determination thresholds | ||
| struct HfUpcGapThresholds : o2::framework::ConfigurableGroup { | ||
| std::string prefix = "upc"; // JSON group name | ||
| o2::framework::Configurable<int> nDtColl{"nDtColl", static_cast<int>(defaults::NDtColl), "Number of standard deviations to consider in BC range"}; |
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.
Why is the casting necessary?
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.
Because the defaults::NDtColl is constexpr int and cannot bind to Configurable constructor directly.
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.
The issue is that the constructor takes an rvalue reference which cannot bind to NDtColl which is an lvalue. You can cast it to an rvalue reference with std::forward instead of static_cast.
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.
When I try std::forward(defaults::NDtColl), it gives a compilation error. It seems that NDtColl is a constexpr int, and std::forward doesn’t work with constexpr values. Could you please advise how to handle this?