Illustration of operator expressions and expression-based basic p.d.f.s in the workspace factory syntax
import ROOT
w = ROOT.RooWorkspace("w")
w.factory("$Typedef(Gaussian,Gaus)")
w.factory("$Typedef(Chebychev,Cheby)")
w.factory("SUM::summodel( f[0,1]*Gaussian::gx(x[-10,10],m[0],1.0), Chebychev::ch(x,{0.1,0.2,-0.3}) )")
w.factory("SUM::extsummodel( Nsig[0,1000]*gx, Nbkg[0,1000]*ch )")
w.factory("PROD::gxz( gx, Gaussian::gz(z[-10,10],0,1) )")
w.factory("Gaussian::gy( y[-10,10], x, 1.0 )")
w.factory("PROD::gxycond( gy|x, gx )")
w.factory("FCONV::lxg( x, Gaussian::g(x,mg[0],1), Landau::lc(x,0,1) )")
w.factory("SIMUL::smodel( c[A=0,B=1], A=Gaussian::gs(x,m,s[1]), B=Landau::ls(x,0,1) )")
w.factory("prod::uv(u[10],v[10])")
w.factory("sum::uv2(u,v)")
infilename = ROOT.gROOT.GetTutorialDir().Data() + "/roofit/input_histos_rf_lagrangianmorph.root";
w.factory("lagrangianmorph::morph($observableName('pTV'),$fileName('"+infilename+"'),$couplings({cHq3[0,1],SM[1]}),$NewPhysics(cHq3=1,SM=0),$folders({'SM_NPsq0','cHq3_NPsq1','cHq3_NPsq2'}))")
w.factory("taylorexpand::te(expr::poly('x^4+5*x^3+2*x^2+x+1',x),{x},0.0,2)")
w.factory("EXPR::G('x*x+1',x)")
w.factory("CEXPR::GC('x*x+a',{x,a[1]})")
w.Print()
ROOT.gDirectory.Add(w)