I need to make a RooArgSet of length >9 to pass to .FitTo() as the parameters to run MINOS on, ie, function.FitTo(*data, Minos(RooArgSet) ).
I have tried .add(var) for new members and .add(RooAbsCollection), but though this compiles, the members above #9 are not passed to MINOS.
Is there a way to do this?
This should be possible. At some point (long time ago) CINT did not support constructors with >9 arguments of the same type, which is
why only ctors with 1 through 9 args exist for RooArgSet. But this is the only place where this ‘9’ limit shows. A RooArgSet can have an arbitrary number of arguments, and no RooFit code anywhere has any limits on 9 parameters. Here is an example of how you get around:
RooArgSet s(a1,a2,…a9) ; // Add 9 args in ctor
s.add(a10) ; // Add 10th arg
s.add(RooArgSet(a11,a12,…a20) ; Add 11-20th arg
Then you can pass ‘s’ to Minos:
function.FitTo(*data, Minos(s) ).