Composition on a convolved model

Hello everybody,

I try to do a fit with a convolution between a Breit Wigner and a Crystal Ball function.

/*** Observables ***/
RooRealVar mass("mass","mass",66,116);

/*** Fit Parameter ***/
RooRealVar bw_Zmass("bw_Zmass","bw_Zmass",91.1876,87,95);
RooRealVar bw_Zwidth("bw_Zwidth","bw_Zwidth",2.4952,1,4);

RooRealVar cb_offset("cb_offset","cb_offset",-10,10);
RooRealVar cb_sigma("cb_sigma","cb_sigma",0,10);
RooRealVar cb_cut("cb_cut","cb_cut",0,10);
RooRealVar cb_power("cb_power","cb_power",0,10);

RooRealVar beta("beta","beta",0,-1,1);
RooFormulaVar massCorr("massCorr","massCorr","@0/(1+@1/2)",RooArgList(mass,beta));

bw_Zmass.setConstant();
bw_Zwidth.setConstant();

/*** Breit Wigner ***/
RooBreitWigner bw("bw","Breit Wigner",mass,bw_Zmass,bw_Zwidth);
  
/*** Crystal Ball ***/
RooCBShape cb("cb","Crystal Ball",mass,cb_offset,cb_sigma,cb_cut,cb_power);

/*** Convolved Model ***/
RooFFTConvPdf bw_cb_conv("bw_cb_conv","Breit Wigner (x) Crystal Ball",mass,bw,cb);

But now I want to do a composition mass -> massCorr, so that I have bw_cb_conv in dependence of massCorr instead of mass. I don’t see how I can do that. However, it should be possible somehow. It works for the convolution between a Breit Wigner and a Gaussian, but just because this convolution is already implemented as RooVoigtian, so that you can directly insert massCorr.

I tried to do the composition first, so I build up the Breit Wigner with massCorr already and then convolved it with the Crystal Ball. But I’m not sure if that will lead to the desirable result since I got rather unexpected values for beta.

Thanks a lot for your help!
Cheers,
dWade

Hello again,

I noticed, that the RooFFTConvPdf class has another constructor where you can insert the convolution observable and an input function representing the value of the convolution observable. The latter one should be massCorr in my case and the convolution observable is mass.

So when I do the following, it should lead to my required result. Can somebody confirm?

RooFFTConvPdf bw_cb_conv("bw_cb_conv","Breit Wigner (x) Crystal Ball",massCorr,mass,bw,cb);

Cheers,
dWade