Turn off a Warning Message form a specific Root Class

Hey guys

I am working on a fit and I get this error message while getting the value of the negative loglikehood (NLL):

[#0] ERROR:Eval -- RooAbsReal::logEvalError(pdf_full) evaluation error, origin : RooJModel::pdf_full[ costhetal=cos_thetal costhetak=cos_thetak phi=phi J=(J1s,J1c,J2s,J2c,J3,J4,J5,J6,J7,J8,J9) ] message : p.d.f value is less than zero (-0.002973), forcing value to zero server values: costhetal=cos_thetal=-0.72156, costhetak=cos_thetak=-0.597065, phi=phi=0.151795, J=(J1s = 0.464361,J1c = 0.380852,J2s = 0.154787,J2c = -0.380852,J3 = 0.0680574,J4 = -0.298288,J5 = 0.159745,J6 = 0.17019,J7 = 0.0282218,J8 = -0.142676,J9 = 0.0336526) [#0] ERROR:Eval -- RooAbsReal::logEvalError(pdf_full) evaluation error, origin : RooJModel::pdf_full[ costhetal=cos_thetal costhetak=cos_thetak phi=phi J=(J1s,J1c,J2s,J2c,J3,J4,J5,J6,J7,J8,J9) ] message : getLogVal() top-level p.d.f evaluates to zero server values: costhetal=cos_thetal=-0.72156, costhetak=cos_thetak=-0.597065, phi=phi=0.151795, J=(J1s = 0.464361,J1c = 0.380852,J2s = 0.154787,J2c = -0.380852,J3 = 0.0680574,J4 = -0.298288,J5 = 0.159745,J6 = 0.17019,J7 = 0.0282218,J8 = -0.142676,J9 = 0.0336526) [#0] ERROR:Eval -- RooAbsReal::logEvalError(nll_pdf_full_data) evaluation error, origin : RooNLLVar::nll_pdf_full_data[ paramSet=(J1c,J3,J4,J5,J6,J7,J8,J9) ] message : function value is NAN server values: paramSet=(J1c = 0.380852,J3 = 0.0680574,J4 = -0.298288,J5 = 0.159745,J6 = 0.17019,J7 = 0.0282218,J8 = -0.142676,J9 = 0.0336526) negative value in pdf encountert setting nll to 1e16 [#0] ERROR:Eval -- RooAbsReal::logEvalError(pdf_full) evaluation error, origin : RooJModel::pdf_full[ costhetal=cos_thetal costhetak=cos_thetak phi=phi J=(J1s,J1c,J2s,J2c,J3,J4,J5,J6,J7,J8,J9) ] message : p.d.f value is less than zero (-0.000683), forcing value to zero server values: costhetal=cos_thetal=-0.72156, costhetak=cos_thetak=-0.597065, phi=phi=0.151795, J=(J1s = 0.429375,J1c = 0.427501,J2s = 0.143125,J2c = -0.427501,J3 = 0.0638835,J4 = -0.259487,J5 = 0.163623,J6 = 0.172552,J7 = 0.0167933,J8 = -0.133111,J9 = 0.0129205)

The Problem basically is that the NLL encounters a negative value in the pdf and sets it to zero. Then the NLL value becomes -nan. That is all fine for me.
I just need to somehow turn off this crazy long output every time this error happens, since my programm will cout a much shorter message already with explanation how this problem gets solved.

Is there a possibility to turn off this specific message or error messages from the RooAbsReal class. I do not want to turn off warning messages from root in general. That is the only solution I found so far.

Hi,

perhaps this post will be of help RooFit: Changing output level

D

[quote=“dpiparo”]Hi,

perhaps this post will be of help RooFit: Changing output level

D[/quote]

I passed the Arguments: RooFit::PrintLevel(-1), RooFit::Verbose(kFALSE), RooFit::Silence()

But it changed nothing

Hi,

have you tried

RooMsgService::instance().setGlobalKillBelow(RooFit::WARNING) ;

where RooFit::WARNING comes from this enumerator?

enum MsgLevel { DEBUG=0, INFO=1, PROGRESS=2, WARNING=3, ERROR=4, FATAL=5 } ;

D

Yes it worked, thank you very much