ResolutionModel=tres.model(), Bins=bin_spec, Relative=rel_spec, ) pdf = Single_Exponent_Time(Name="pdf", time=t, resolutionModel=res_model) pdf = pdf.pdf() gen_observables = [t, hlt1_excl_biased, hlt2_unbiased, hlt2_biased] ## Get proto data proto_data = None if options.protodata: proto_file = TFile.Open(options.protodata) if not proto_file.IsOpen(): raise OSError for key in proto_file.GetListOfKeys(): if key.GetClassName() == "RooDataSet": proto_data = key.ReadObj() break else: raise RunTimeError if not proto_data: raise RunTimeError ## run the toy toy.set_fit_opts(**dict(Verbose=False)) toy.run(Observables=gen_observables, Pdf=pdf, GenPdf=pdf, ProtoData=proto_data) toy.write_output()
gexp_frac = RealVar(Name = "gexp_frac", Value = 0.1, MinMax = (0.0001, 0.9999)) add_model = AddModel("add_model", Models = [gexp_model, gauss_model], Fractions = [gexp_frac], ConditionalObservables = [st]) from ROOT import RooDecay as Decay peak_tau = RealVar(Name = "peak_tau", Value = 0, Constant = True) peak = Pdf(Name = "peak", Type = Decay, Parameters = [t_diff, peak_tau, add_model, 'SingleSided'], ConditionalObservables = [st]) ## peak2 = Pdf(Name = "peak2", Type = Decay, Parameters = [t_diff, peak_tau, gexp_model, 'SingleSided'], ConditionalObservables = [st]) ## peak3 = Pdf(Name = "peak3", Type = Decay, Parameters = [t_diff, peak_tau, gauss_model, 'SingleSided'], ConditionalObservables = [st]) # signal component from P2VV.Parameterizations.MassPDFs import LP2011_Signal_Mass as Signal_Mass sig_m = Signal_Mass(Name = 'sig_m', mass = m) signal = Component('signal', (sig_m.pdf(), st_pdf, peak), Yield = (150000, 10000, 1000000)) sig_mass_pdf = buildPdf(Components = (signal, background), Observables = (m,), Name = 'sig_mass_pdf') signal_name = signal.GetName() mass_pdf = sig_mass_pdf fitOpts = dict(NumCPU = 4, Timer = 1, Save = True, Minimizer = 'Minuit2', Optimize = 2, Offset = True, Verbose = False) gen_pdf = buildPdf(Components = (signal,), Observables = (t_diff, st), Name = 'gen_pdf') fit_pdf = buildPdf(Components = (signal,), Observables = (t_diff,), Name = 'fit_pdf') toy.set_fit_opts(**dict(Verbose = False)) toy.run(Observables = [t_diff, st], Pdf = fit_pdf, GenPdf = gen_pdf)