Skip to content

Handling of rAbsAccuracy_ and rRelAccuracy_ in HybridNew #1232

Description

@Ma128-bit

Referring to src/HybridNew.cc.

Note: It is unclear to me whether the current behavior is intentional or a bug.

In several places, the limit uncertainty (limitErr) is compared against max(rAbsAccuracy_, rRelAccuracy_ * limit). However, it seems more natural to compare it against min(rAbsAccuracy_, rRelAccuracy_ * limit)

Example:
Default values:

  • rAbsAccuracy_ = 0.1
  • rRelAccuracy_ = 0.05

I'm obtaining:

Limit: r < 0.113864 +/- 0.050296 @ 95% CL

In this case:

  • rRelAccuracy_ * limit = 0.0057
  • rAbsAccuracy_ = 0.1
  • limitErr = 0.050296

Since 0.050296 < max(0.1, 0.0057) = 0.1 the convergence criterion is satisfied and HybridNew stops, even though the relative uncertainty is ~44%, and no further fit of the grid toys is performed. This would not have happened if the limitErr had been compared to min(rAbsAccuracy_, rRelAccuracy_ * limit) = 0.0057.

Note:
Obviously, it could be easily fixed by passing a very small value of --rAbsAcc . In the previous example, the limit converges to:

Limit: r < 0.114009 +/- 0.000891322 @ 95% CL

However, it would be more natural if the minimum were used directly.

Conclusions
My suggestion would be to replace max with min when comparing limitErr to the accuracy thresholds, so that the stricter of the absolute and relative criteria is enforced.
If the current implementation is intentional, clarification on the rationale would be appreciated.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions