Beispiel #1
0
def make_models():
    models = []
    for i, s1 in enumerate(SRCs):
        for s2 in SRCs[i:]:
            tfit = TFIT if s1 == s2 else TFIT[:(T // 4 - 1)]
            otherdata = None if s1 == s2 else KEYFMT.format(s1=s2, s2=s1)
            if OSC:
                models.append(
                    cf.Corr2(datatag=KEYFMT.format(s1=s1, s2=s2),
                             tdata=TDATA,
                             tfit=tfit,
                             tp=tp,
                             a=(tag + s1, otag + s1),
                             b=(tag + s2, otag + s2),
                             dE=(tag + 'dE', otag + 'dE'),
                             otherdata=otherdata,
                             s=s_coeff))
            else:
                models.append(
                    cf.Corr2(datatag=KEYFMT.format(s1=s1, s2=s2),
                             tdata=TDATA,
                             tfit=tfit,
                             tp=tp,
                             a=tag + s1,
                             b=tag + s2,
                             dE=tag + 'dE',
                             otherdata=otherdata))

    return models
Beispiel #2
0
def make_models(key, otherkey):
    """ Create corrfitter model for G(t). """
    if OSC:
        return [
            cf.Corr2(datatag=key,
                     otherdata=otherkey,
                     tdata=TDATA,
                     tfit=TFIT,
                     tp=TP,
                     a=('a', 'ao'),
                     b=('a', 'ao'),
                     dE=('dE', 'dEo'),
                     s=s_coeff)
        ]
    else:
        return [
            cf.Corr2(datatag=key,
                     otherdata=otherkey,
                     tdata=TDATA,
                     tfit=TFIT,
                     tp=TP,
                     a='a',
                     b='a',
                     dE='dE')
        ]
Beispiel #3
0
def make_models():
    models = []
    for i, s1 in enumerate(SRC):
        for s2 in SRC[i:]:
            tfit=TDATA[tmin:tmax] if s1 == s2 else TDATA[offtmin:offtmax]
            otherdata = None if s1 == s2 else KEYFMT.format(s1=s2, s2=s1)
            if OSC:
                models.append(cf.Corr2(datatag=KEYFMT.format(s1=s1, s2=s2),tdata=TDATA, tfit=tfit, tp=T,
                    a=(tag+s1,otag+s1), b=(tag+s2,otag+s2), dE=(tag+'dE',otag+'dE'),
                    otherdata=otherdata))
            else: models.append(cf.Corr2(datatag=KEYFMT.format(s1=s1, s2=s2),tdata=TDATA, tfit=tfit, tp=T,
                    a=tag+s1, b=tag+s2, dE=tag+'dE', otherdata=otherdata))
            
    return models
Beispiel #4
0
def make_models():
    """ Create models to fit data. """
    tmin = 5
    tp = 64
    models = [
        cf.Corr2(
            datatag='etas',
            tp=tp,
            tmin=tmin,
            a='etas:a',
            b='etas:a',
            dE='etas:dE',
        ),
        cf.Corr2(
            datatag='Ds',
            tp=tp,
            tmin=tmin,
            a=('Ds:a', 'Dso:a'),
            b=('Ds:a', 'Dso:a'),
            dE=('Ds:dE', 'Dso:dE'),
        ),
        cf.Corr3(
            datatag='3ptT15',
            T=15,
            tmin=tmin,
            a='etas:a',
            dEa='etas:dE',
            b=('Ds:a', 'Dso:a'),
            dEb=('Ds:dE', 'Dso:dE'),
            Vnn='Vnn',
            Vno='Vno',
        ),
        cf.Corr3(
            datatag='3ptT16',
            T=16,
            tmin=tmin,
            a='etas:a',
            dEa='etas:dE',
            b=('Ds:a', 'Dso:a'),
            dEb=('Ds:dE', 'Dso:dE'),
            Vnn='Vnn',
            Vno='Vno',
        )
    ]
    return models
Beispiel #5
0
def make_models():
    """ Create corrfitter model for G(t). """
    corr = cf.Corr2(datatag='cdata',
                    tp=T,
                    tdata=range(T),
                    tfit=range(t0, T - t0),
                    a='a',
                    b='a',
                    dE='dE')
    return [corr]
Beispiel #6
0
def make_models():
    models = []
    for i, s1 in enumerate(SOURCES):
        for s2 in SOURCES[i:]:
            tfit = TDATA if s1 == s2 else TDATA[:12]
            otherdata = None if s1 == s2 else KEYFMT.format(s1=s2, s2=s1)
            models.append(
                cf.Corr2(
                    datatag=KEYFMT.format(s1=s1, s2=s2),
                    tdata=TDATA,
                    tfit=tfit,
                    a='etab.' + s1,
                    b='etab.' + s2,
                    dE='etab.dE',
                    otherdata=otherdata,
                ))
    return models
Beispiel #7
0
def make_models():
    """ Create models to fit data. """
    tmin = 3
    tp = 64
    models = [
        cf.Corr2(
            datatag='Ds', tp=tp, tmin=tmin,
            a=('a', 'ao'), b=('a', 'ao'), dE=('dE', 'dEo'), s=(1., -1.),
            ),
        cf.Corr3(
            datatag='DsDsT18', T=18, tmin=tmin,
            a=('a', 'ao'), dEa=('dE', 'dEo'), sa=(1., -1),
            b=('a', 'ao'), dEb=('dE', 'dEo'), sb=(1., -1.),
            Vnn='Vnn', Voo='Voo', Vno='Vno', symmetric_V=True,
            ),
        cf.Corr3(
            datatag='DsDsT15', T=15, tmin=tmin,
            a=('a', 'ao'), dEa=('dE', 'dEo'), sa=(1., -1),
            b=('a', 'ao'), dEb=('dE', 'dEo'), sb=(1., -1.),
            Vnn='Vnn', Voo='Voo', Vno='Vno', symmetric_V=True,
            )
        ]
    return models
Beispiel #8
0
def get_two_point_model(two_point, osc=True):
    """Gets a model for a 2pt function."""
    tag = two_point.tag
    a_pnames = (f'{tag}:a', f'{tag}:ao')
    b_pnames = (f'{tag}:a', f'{tag}:ao')
    dE_pnames = (f'{tag}:dE', f'{tag}:dEo')

    # Handle edge case of no oscillating states
    if not osc:
        a_pnames = a_pnames[0]
        b_pnames = b_pnames[0]
        dE_pnames = dE_pnames[0]

    model = cf.Corr2(datatag=tag,
                     tp=two_point.times.tp,
                     tmin=two_point.times.tmin,
                     tmax=two_point.times.tmax,
                     tdata=two_point.times.tdata,
                     a=a_pnames,
                     b=b_pnames,
                     dE=dE_pnames,
                     s=(1.0, -1.0))
    return model