示例#1
0
    hd = ('%d' % hash(hash_str)).replace('-', 'm')
    directory = '1bin_%4.2ffs_simple/%s' % (1000 * (t.getMax() - t.getMin()), hd)
    cache = Cache(input_data[years]['cache'].rsplit('/', 1), directory)
    data, sdatas = cache.read_data()
    if component == 'signal':
        data = single_bin_sig_sdata = sdatas['sig_sdata']
    else:
        data = single_bin_bkg_sdata = sdatas['bkg_sdata']

## Fit options
fitOpts = dict(NumCPU = 4, Timer = 1, Save = True,
               Verbose = False, Optimize = 2, Minimizer = 'Minuit2')

from P2VV.Parameterizations.SigmatPDFs import DoubleLogNormal
dln = DoubleLogNormal(st)
ln = dln.pdf()

# Fit
result = ln.fitTo(data, **fitOpts)

# Plot
from ROOT import TCanvas
canvas = TCanvas('canvas', 'canvas', 600, 400)
p = canvas.cd(1)
from P2VV.Utilities.Plotting import plot
from ROOT import kBlack, kBlue
plot(p, st, pdf = ln, data = data,
     dataOpts = dict(MarkerSize = 0.8, MarkerColor = kBlack, Binning = 60),
     pdfOpts  = dict(LineWidth = 3),
    xTitle = 'estimated decay-time error [ps]',
    yTitle = 'Candidates / (0.002 ps)')
示例#2
0
                         , psi_t_ml_tau = dict(Name = 'psi_t_ml_tau', Value = 1.3405e-01, MinMax = (0.01, 0.5))
                         )
psi_t = psi_t.pdf()

# Sigmat PDFs
from P2VV.Parameterizations.SigmatPDFs import DoubleLogNormal
sig_ln = DoubleLogNormal(st, ParNamePrefix = 'sig')
bkg_ln = DoubleLogNormal(st, ParNamePrefix = 'bkg')

# Background time pdf
from P2VV.Parameterizations.TimePDFs import Prompt_Peak
bkg_peak = Prompt_Peak(time_obs, bkg_tres.model(), Name = 'prompt_bkg')
bkg_t = Background_Time(Name = 'bkg_t', time = time_obs, resolutionModel = bkg_tres.model())

# J/psi signal component
psi_ll = Component('psi_ll', (psi_m, psi_t, sig_ln.pdf()), Yield= (8.5575e+03,100,500000) )
psi_prompt_pdf = Prompt_Peak(time_obs, sig_tres.model(), Name = 'psi_prompt_pdf')
psi_prompt = Component('psi_prompt', (psi_prompt_pdf.pdf(), psi_m, sig_ln.pdf()), Yield = (160160, 100, 500000))

# Background component
bkg_prompt_pdf = Prompt_Peak(time_obs, bkg_tres.model(), Name = 'bkg_prompt_pdf')
bkg_prompt = Component('bkg_prompt', (bkg_mpsi.pdf(), bkg_prompt_pdf.pdf(), bkg_ln.pdf()),
                       Yield = (19620,100,500000))
bkg_ll = Component('bkg_ll', (bkg_mpsi.pdf(), bkg_t.pdf(), bkg_ln.pdf()),
                    Yield = (19620,100,500000) )

from ROOT import RooKeysPdf
def observables(self):
    return self._observables
def conditional_observables(self):
    return set()