I am using Bernstein polynomials in order to describe background terms. These are naturally defined on the interval s=[0,1]. Thus Roofit transforms a given range of the independent variable x into the s interval before evaluating the polynomials.
In my particular use case, I want these Bernstein polynomials to be defined on a domain (support) which is only a subrange of x.
The situation can be modeled as follows:
In the end,
RooFitshall separate signal and background components by means of a
RooBernstein(degree n=1, with supporting interval [7,10]) and a
RooGaussian. The fit shall also be limited to the given subrange s.
root v6.26 (which I am using for my daily analysis tasks) I finally succeeded:
But the whole process was quite complicated and I do not understand everything I did there. Also I found a minor bug in the copy constructor of
RooBernstein which caused similar effects as described here: Problem with fit in range with RooBernstein
Thus, I created a notebook including the entire test case and lots of descriptive comments.
I would like to understand if everything I did there is correct and if there is a better (more canonical way) to do it. Especially the very last code cell looks very hacky to me. And I would love to stick to the
ranges strategy described therein, but it did not properly fit the combined distribution.
Furthermore, I tried the notebook together with the HEAD of the
v6-30-00-patches branch resulting in different type of errors. So the solution presented here is not future-proof. How can I port this notebook to
root 6.30 once it gets released?
Many thanks and best regards,