Organization and simultaneous fits: illustration use of ROOT.RooCustomizer and ROOT.RooSimWSTool interface in factory workspace tool in a complex standalone B physics example
import ROOT
w = ROOT.RooWorkspace("w")
w.factory(
"PROD::sig( BMixDecay::sig_t( dt[-20,20], mixState[mixed=1,unmix=-1], tagFlav[B0=1,B0bar=-1], "
"tau[1.54], dm[0.472], w[0.05], dw[0], "
"AddModel::gm({GaussModel(dt,biasC[-10,10],sigmaC[0.1,3],dterr[0.01,0.2]), "
"GaussModel(dt,0,sigmaT[3,10]), "
"GaussModel(dt,0,20)},{fracC[0,1],fracT[0,1]}), "
"DoubleSided ), "
"Gaussian::sig_m( mes[5.20,5.30], mB0[5.20,5.30], sigmB0[0.01,0.05] ))")
w.factory("PROD::bkg( Decay::bkg_t( dt, tau, gm, DoubleSided), "
"ArgusBG::bkg_m( mes, 5.291, k[-100,-10]))")
w.factory("SUM::model( Nsig[5000,0,10000]*sig, NBkg[500,0,10000]*bkg )")
w.factory(
"SIMCLONE::model_sim( model, $SplitParam({w,dw,biasC},tagCat[Lep,Kao,NT1,NT2]))")
w.factory("EDIT::model_D(model, w=expr('0.5-D/2',D[0,1]) )")
w.Print()
ROOT.gDirectory.Add(w)