Problem getting POI from ProfileLikelihoodCalculator/

Hi

While trying to read the CLs from the workspace, using the Profile.cpp script I get this

[code]Error - invalid parameter SigXsecOverSM specified for finding the interval limits
Printing results…SigXsecOverSM
Error - invalid parameter SigXsecOverSM specified for finding the interval limits
Error - invalid parameter SigXsecOverSM specified for finding the interval limits

95% confidence interval on the point of interest SigXsecOverSM: [0, 0]
[/code]

Any hints why ?

Thanks

Alex
Profile.cpp (3.47 KB)
3Gsusy_combined_StopAnalysis_model.root (39.1 KB)

Hi,

The problem is that your POI is set as a constant in your workspace. To make the script work, just call at the beginning, (before calling ProfileLikelihoodCalculator::GetInterval)

      RooRealVar* myPOI = (RooRealVar*) myModelConfig->GetParametersOfInterest()->first();
      myPOI->setConstant(false);

Best Regards

Lorenzo

Hi Lorenzo

Thanks for the tip - Unfortunately, I still have issues…

[code][#1] INFO:Fitting – RooAbsTestStatistic::initSimMode: creating slave calculator #0 for state stop (22 dataset entries)
[#1] INFO:NumericIntegration – RooRealIntegral::init(stop_model_Int[obs_x_stop]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_stop)
[#1] INFO:NumericIntegration – RooRealIntegral::init(stop_model_Int[obs_x_stop]) using numeric integrator RooBinIntegrator to calculate Int(obs_x_stop)
Error: Minimization failed
Error returned from minimization of likelihood function - cannot find interval limits
Printing results…xsec
FUNCTION MUST BE MINIMIZED BEFORE CALLING MINOs
PARAMETER NUMBER 23 NOT A VARIABLE. IGNORED.
THERE ARE NO MINOS ERRORS TO CALCULATE.
Warning: lower value for xsec is at limit 0
Warning: upper value for xsec is at limit 0

95% confidence interval on the point of interest xsec: [0, 3]
[/code]

thanks

Alexis

Hi,

Are you using the code you have posted ? That one works for me (ROOT version 5.34.07).
If you are using a different code or workspace, please upload it

Lorenzo

Hi

Nop, 5.34/07 as well - I reupload the Profile.cc and an .root file to be sure, but this is same as I was using before.

I also compile it like this

g++ -m64 -g -O2 -fPIC -Wno-deprecated `root-config --cflags --libs --ldflags` -lHistFactory -lXMLParser -lRooStats -lRooFit -lRooFitCore -lThread -lMinuit -lFoam -lHtml -lMathMore -I$ROOTSYS/include -L$ROOTSYS/lib Profile.cpp -o a; ./a

thanks again

-a
Profile.cpp (3.59 KB)
3Gsusy_combined_StopAnalysis_model.root (253 KB)

Hi,
As I said before, you should add the line setting the parameter not constant before calling ProfileLikelihoodCalculator::GetInterval. here is however your script working

Lorenzo
Profile.cpp (3.5 KB)

Hi again

Yes, I missed the “before” :wink:

Thanks for your time and help

-a