17dt = ROOT.RooRealVar(
"dt", 
"dt", -10, 10)
 
   18dterr = ROOT.RooRealVar(
"dterr", 
"per-event error on dt", 0.01, 10)
 
   22bias = ROOT.RooRealVar(
"bias", 
"bias", 0, -10, 10)
 
   23sigma = ROOT.RooRealVar(
 
   24    "sigma", 
"per-event error scale factor", 1, 0.1, 10)
 
   25gm = ROOT.RooGaussModel(
 
   26    "gm1", 
"gauss model scaled bt per-event error", dt, bias, sigma, dterr)
 
   29tau = ROOT.RooRealVar(
"tau", 
"tau", 1.548)
 
   30decay_gm = ROOT.RooDecay(
"decay_gm", 
"decay", dt,
 
   31                         tau, gm, ROOT.RooDecay.DoubleSided)
 
   37pdfDtErr = ROOT.RooLandau(
"pdfDtErr", 
"pdfDtErr", dterr, ROOT.RooFit.RooConst(
 
   38    1), ROOT.RooFit.RooConst(0.25))
 
   39expDataDterr = pdfDtErr.generate(ROOT.RooArgSet(dterr), 10000)
 
   46data = decay_gm.generate(ROOT.RooArgSet(
 
   47    dt), ROOT.RooFit.ProtoData(expDataDterr))
 
   53decay_gm.fitTo(data, ROOT.RooFit.ConditionalObservables(
 
   54    ROOT.RooArgSet(dterr)))
 
   60hh_decay = decay_gm.createHistogram(
"hh_decay", dt, ROOT.RooFit.Binning(
 
   61    50), ROOT.RooFit.YVar(dterr, ROOT.RooFit.Binning(50)))
 
   62hh_decay.SetLineColor(ROOT.kBlue)
 
   65frame = dt.frame(ROOT.RooFit.Title(
 
   66    "Slices of decay(dt|dterr) at various dterr"))
 
   67for ibin 
in range(0, 100, 20):
 
   69    decay_gm.plotOn(frame, ROOT.RooFit.Normalization(5.))
 
   72frame2 = dt.frame(ROOT.RooFit.Title(
"Projection of decay(dt|dterr) on dt"))
 
   80decay_gm.plotOn(frame2, ROOT.RooFit.ProjWData(expDataDterr, ROOT.kTRUE))
 
   83c = ROOT.TCanvas(
"rf306_condpereventerrors",
 
   84                 "rf306_condperventerrors", 1200, 400)
 
   87ROOT.gPad.SetLeftMargin(0.20)
 
   88hh_decay.GetZaxis().SetTitleOffset(2.5)
 
   91ROOT.gPad.SetLeftMargin(0.15)
 
   92frame.GetYaxis().SetTitleOffset(1.6)
 
   95ROOT.gPad.SetLeftMargin(0.15)
 
   96frame2.GetYaxis().SetTitleOffset(1.6)
 
   99c.SaveAs(
"rf306_condpereventerrors.png")