Dear RooFit-Savants,
For an efficiency measurement we perform an extended fit [workspace contents printed at the end of the post]. Our PDF is the sum of a Gaussian and a CB, which we fit without constraints in MC. And obtain a value for the fraction of events of peak1 versus peak2. Now we want to fit the data, but keeping the fraction of events below each peak constant. Our initial naive implementation basically just froze the fraction parameter (cPass) in the sum of the two peak pdf’s:
This however, seems to not fix the fraction of events in “signalTailPass” versus “signal1Pass”. Thus the question: How do we perform an extended fit with fixed fractions?
The manual and google haven’t been too helpful so far, so any pointer to material elucidating the issue would be of help.
Cheers
Philip
RooWorkspace() contents
variables
---------
(TmeanF,TmeanP,TsigmaF,TsigmaP,_efficiencyCategory_,alphaF,alphaFail,alphaP,alphaPass,betaFail,betaPass,cFail,cPass,efficiency,gammaFail,gammaP,gammaPass,mass,massP,meanF,meanP,nF,nP,numBackgroundFail,numBackgroundPass,numSignalAll,passingALL,peakFail,peakPass,probe_Ele_abseta,probe_Ele_pt,sigmaF,sigmaF_2,sigmaP,sigmaP_2,signalFractionInPassing)
p.d.f.s
-------
RooCMSShape::backgroundFail[ x=mass alpha=alphaFail beta=betaFail gamma=gammaFail peak=peakFail ] = 1.21353
RooCMSShape::backgroundPass[ x=mass alpha=alphaPass beta=betaPass gamma=gammaPass peak=peakPass ] = 5.19998
RooAddPdf::pdfFail[ numSignalFail * signalFail + numBackgroundFail * backgroundFail ] = 1.05865
RooAddPdf::pdfPass[ numSignalPass * signalPass + numBackgroundPass * backgroundPass ] = 0.578354
RooFFTConvPdf::signal1Fail[ signalBWFail(mass) (*) signalResFail(mass) ] = 0.0135033
RooFFTConvPdf::signal1Pass[ signalBWPass(mass) (*) signalResPass(mass) ] = 0.00820698
RooBreitWigner::signalBWFail[ x=mass mean=massP width=gammaP ] = 0.00805569
RooBreitWigner::signalBWPass[ x=mass mean=massP width=gammaP ] = 0.00805569
RooAddPdf::signalFail[ cFail * signalTailFail + [%] * signal1Fail ] = 0.874399
RooAddPdf::signalPass[ cPass * signalTailPass + [%] * signal1Pass ] = 0.544334
RooCBExGaussShape::signalResFail[ m=mass m0=meanF sigma=sigmaF alpha=alphaF n=nF sigma_2=sigmaF_2 ] = 2.08269e-138
RooCBExGaussShape::signalResPass[ m=mass m0=meanP sigma=sigmaP alpha=alphaP n=nP sigma_2=sigmaP_2 ] = 0
RooGaussian::signalTailFail[ x=mass mean=TmeanF sigma=TsigmaF ] = 0.855308
RooGaussian::signalTailPass[ x=mass mean=TmeanP sigma=TsigmaP ] = 0.576384
RooSimultaneous::simPdf[ indexCat=_efficiencyCategory_ Failed=pdfFail Passed=pdfPass ] = 0.24578
functions
--------
RooFormulaVar::numSignalFail[ actualVars=(efficiency,numSignalAll) formula="(1-efficiency)*numSignalAll" ] = 13807.4
RooFormulaVar::numSignalPass[ actualVars=(efficiency,numSignalAll) formula="efficiency*numSignalAll" ] = 99260.3