Projection of a n-dim. PDF into a (n-1) dim. PDF with RooFit

Hi ROOTers,

I am currently using a n-dimensional PDF in RooFit.
From this PDF, I’d like to produce a (n-1)-dim. PDF, obtained from the previous one for which I integrate over the n^th variable.

Using the createProjection method, I get a RooAbsReal and no RooAbsPdf …

How can I do that in a simple way ? Is there a method I didn’t think about to do that ?

Actually, to be more precise, what I really want to do is the following.

My Pdf has the following structure :
PDF = PDF(v,w,x,y(x),z(x)) = PDF(v) * PDF(w) * PDF(x) * PDF(y,x) * PDF(z,x)

In order to do likelihood ratio plot studies in a proper manner, I want to integrate y and z over x after my fit is finished : the dependence in x is here to describe better data, not to increase discriminative power …

I’d really appreciate any help from you.


Hi Jennifer

If you use ROOT version 5.18 or later you will have a createProjection function that returns a p.d.f

// Project p.d.f into lower dimensional p.d.f
virtual RooAbsPdf* createProjection(const RooArgSet& iset) ;