printing more details about why parameters are at a boundary#197
Conversation
…:isParameterAtLowerBoundary(..) and utils::isParameterAtUpperBoundary(..); method utils::anyParameterAtBoundaries(..) now prints more details about why a parameter is at a boundary
|
@adavidzh since you wrote the original boundary checking, can you check this PR and if it's ok merge it? |
There was a problem hiding this comment.
This is bugged: should be atUpperBoundary = isParameterAtUpperBoundary.
There was a problem hiding this comment.
On 06/07/15 04:06, André David wrote:
In src/utils.cc
#197 (comment):@@ -740,14 +757,31 @@ bool utils::anyParameterAtBoundaries( const RooArgSet ¶ms, int verbosity ){
RooLinkedListIter iter = params.iterator(); int i = 0; for (RooRealVar *a = (RooRealVar *) iter.Next(); a != 0; a = (RooRealVar *) iter.Next(), ++i) {
bool isBad = isParameterAtBoundary(*a);
bool atLowerBoundary = isParameterAtLowerBoundary(*a);bool atUpperBoundary = isParameterAtLowerBoundary(*a);This is bugged: should be atUpperBoundary = isParameterAtUpperBoundary.
ah.. thanks for spotting this (it didn't reveal itself in my test case
where the parameter
is close to both boundaries). I'll update this.
…d isParameterAtLowerBoundary(..) replaced by isParameterAtUpperBoundary(..)
… upper/lower/both boundaries more explicit
|
This would be indeed useful. |
|
Although this is quite an old PR, since it merges into |
This has been useful to identify issues where the uncertainty of a parameter became quite big (and thus the parameter was seen to be close to both boundaries).
Example output:
[WARNING] Found [paramXYZ] at both boundaries (value: 3.593620 +8.407840-8.407840 range: -4.472136..4.472136).