コード例 #1
0
ファイル: staterr.py プロジェクト: xshi/dhad
def data_fit_staterrors(fit, prefix, verbose=0):
    outfilename  = 'bf_stat'
    
    outfile  = tools.set_file(extbase=attr.brfpath, prefix=prefix, 
                              comname=outfilename)
    fdir = outfile.replace(outfilename, '')
    com1_name = 'newfit-cat_files_data_statonly.sh'

    #bashbase = os.path.join(attr.base, 'src', attr.src, 'brf')
    com1 = tools.set_file(extbase=attr.brfpath, prefix=prefix, comname=com1_name)
    sdir = com1.replace(com1_name, '')
    com2 = create_bash_statonly(fdir, sdir, com1)

    if fit or not os.access(outfile, os.F_OK) :
        print 'Running fitter for staterrors ...'
        run_bf_fitter(com2, outfile, verbose)
    
    start_line_str   = 'Fitted parameters'
    start_column_str = '+-'
    end_column_str   = '('
    end_line_str     = 'Difference from seeds'

    data = tools.get_column_from_file(outfile,
                                      start_line_str, start_column_str,
                                      end_column_str, end_line_str,
                                      verbose = verbose)
    datafilename =  'data_fit_staterrors'

    outfile  = tools.set_file(extbase=attr.brfpath, prefix=prefix, 
                              comname=datafilename)

    fo, bakfile = tools.backup_output(outfile)
    for line in data: fo.write('%s\n' %line)
    tools.check_output(fo, outfile, bakfile)
コード例 #2
0
def run_bf_fitter(com, outfile, verbose=0):
    fo, bakfile = tools.backup_output(outfile)
    output = commands.getoutput(com)
    if verbose > 0:
        print output
    fo.write(output)
    tools.check_output(fo, outfile, bakfile)
コード例 #3
0
ファイル: staterr.py プロジェクト: xshi/dhad
def run_bf_fitter(com, outfile, verbose=0):
    fo, bakfile = tools.backup_output(outfile)
    output = commands.getoutput(com)
    if verbose > 0:
        print output
    fo.write(output)
    tools.check_output(fo, outfile, bakfile)
コード例 #4
0
ファイル: staterr.py プロジェクト: xshi/dhad
def create_bash_generic_20060927(fdir, sdir, outfile):
    EXE = attr.fitter.replace('20070611', '20060927')

    sys.stdout.write('Using fitter: %s \n' %EXE)

    bash_content = '''#!/usr/bin/env bash

EXE=%s
FDIR=%s
SDIR=%s

YLDFILE=$FDIR/generic_yields_for_werner
BKGBRS=$FDIR/generic_external_bkg_bfs_for_werner
BKGEFFS=$FDIR/generic_bkg_effs_for_werner
BKGERRS=$FDIR/generic_bkg_effs_errs_for_werner
SIGSINGEFFS=$FDIR/signal_single_efficiencies_for_werner
SIGSINGERRS=$FDIR/signal_single_efficiencies_errors_for_werner
SIGDOUBEFFS=$FDIR/signal_double_efficiencies_for_werner
SIGDOUBERRS=$FDIR/signal_double_efficiencies_errors_for_werner
SYSTERRORS=$FDIR/newfit-generic_systerrors
SEEDS=$FDIR/generic_seeds

echo "#!/usr/bin/env bash" > $SDIR/newfit-generic.sh
echo "$EXE <<EOF" >> $SDIR/newfit-generic.sh
echo -e "n\\nn" >> $SDIR/newfit-generic.sh
cat $FDIR/newfit-modedef >> $SDIR/newfit-generic.sh
cat $YLDFILE >> $SDIR/newfit-generic.sh
cat $BKGBRS >> $SDIR/newfit-generic.sh
cat $SIGSINGEFFS >> $SDIR/newfit-generic.sh
cat $SIGDOUBEFFS >> $SDIR/newfit-generic.sh
cat $BKGEFFS >> $SDIR/newfit-generic.sh
cat $SIGSINGERRS >> $SDIR/newfit-generic.sh
cat $SIGDOUBERRS >> $SDIR/newfit-generic.sh
cat $BKGERRS >> $SDIR/newfit-generic.sh
#echo -e "0\\n0\\n0\\n0\\n0\\n0\\n1\\n1\\n1\\n1\\n1\\n1" >> \
$SDIR/newfit-generic.sh
cat $SYSTERRORS >> $SDIR/newfit-generic.sh
cat $SEEDS >> $SDIR/newfit-generic.sh
echo -e "n\\nn\\nn\\ny" >> $SDIR/newfit-generic.sh
cat $FDIR/generic_statonly_brratiodef >> $SDIR/newfit-generic.sh
echo -e "n" >> $SDIR/newfit-generic.sh
echo "EOF" >> $SDIR/newfit-generic.sh
chmod +x $SDIR/newfit-generic.sh
''' % (EXE, fdir, sdir)


    fo, bakfile = tools.backup_output(outfile)
    fo.write(bash_content)
    tools.check_output(fo, outfile, bakfile)
    bashfile = outfile
    os.chmod(bashfile, 0755)
    output = commands.getoutput(bashfile)
    if output:
        raise ValueError(output)

    new_bashfile = os.path.join(sdir, 'newfit-generic.sh')

    return new_bashfile
コード例 #5
0
def create_bash_generic_20060927(fdir, sdir, outfile):
    EXE = attr.fitter.replace('20070611', '20060927')

    sys.stdout.write('Using fitter: %s \n' % EXE)

    bash_content = '''#!/usr/bin/env bash

EXE=%s
FDIR=%s
SDIR=%s

YLDFILE=$FDIR/generic_yields_for_werner
BKGBRS=$FDIR/generic_external_bkg_bfs_for_werner
BKGEFFS=$FDIR/generic_bkg_effs_for_werner
BKGERRS=$FDIR/generic_bkg_effs_errs_for_werner
SIGSINGEFFS=$FDIR/signal_single_efficiencies_for_werner
SIGSINGERRS=$FDIR/signal_single_efficiencies_errors_for_werner
SIGDOUBEFFS=$FDIR/signal_double_efficiencies_for_werner
SIGDOUBERRS=$FDIR/signal_double_efficiencies_errors_for_werner
SYSTERRORS=$FDIR/newfit-generic_systerrors
SEEDS=$FDIR/generic_seeds

echo "#!/usr/bin/env bash" > $SDIR/newfit-generic.sh
echo "$EXE <<EOF" >> $SDIR/newfit-generic.sh
echo -e "n\\nn" >> $SDIR/newfit-generic.sh
cat $FDIR/newfit-modedef >> $SDIR/newfit-generic.sh
cat $YLDFILE >> $SDIR/newfit-generic.sh
cat $BKGBRS >> $SDIR/newfit-generic.sh
cat $SIGSINGEFFS >> $SDIR/newfit-generic.sh
cat $SIGDOUBEFFS >> $SDIR/newfit-generic.sh
cat $BKGEFFS >> $SDIR/newfit-generic.sh
cat $SIGSINGERRS >> $SDIR/newfit-generic.sh
cat $SIGDOUBERRS >> $SDIR/newfit-generic.sh
cat $BKGERRS >> $SDIR/newfit-generic.sh
#echo -e "0\\n0\\n0\\n0\\n0\\n0\\n1\\n1\\n1\\n1\\n1\\n1" >> \
$SDIR/newfit-generic.sh
cat $SYSTERRORS >> $SDIR/newfit-generic.sh
cat $SEEDS >> $SDIR/newfit-generic.sh
echo -e "n\\nn\\nn\\ny" >> $SDIR/newfit-generic.sh
cat $FDIR/generic_statonly_brratiodef >> $SDIR/newfit-generic.sh
echo -e "n" >> $SDIR/newfit-generic.sh
echo "EOF" >> $SDIR/newfit-generic.sh
chmod +x $SDIR/newfit-generic.sh
''' % (EXE, fdir, sdir)

    fo, bakfile = tools.backup_output(outfile)
    fo.write(bash_content)
    tools.check_output(fo, outfile, bakfile)
    bashfile = outfile
    os.chmod(bashfile, 0755)
    output = commands.getoutput(bashfile)
    if output:
        raise ValueError(output)

    new_bashfile = os.path.join(sdir, 'newfit-generic.sh')

    return new_bashfile
コード例 #6
0
ファイル: sigeffs.py プロジェクト: xshi/dhad
def output_matrix(matrix, outfile):

    fo, bakfile = tools.backup_output(outfile)

    for i in xrange(len(matrix[0])):
        for j in xrange(len(matrix)):
            fo.write('%s\n' % matrix[j][i])

    tools.check_output(fo, outfile, bakfile)
コード例 #7
0
ファイル: sigeffs.py プロジェクト: zhixing1996/dhad
def output_matrix(matrix, outfile):

    fo, bakfile = tools.backup_output(outfile)

    for i in xrange(len(matrix[0])):
        for j in xrange(len(matrix)):
            fo.write('%s\n' % matrix[j][i])

    tools.check_output(fo, outfile, bakfile)
コード例 #8
0
ファイル: syserr.py プロジェクト: zhixing1996/dhad
def get_statonly_sys_err_generic(prefix='', verbose = 0):
    filename = 'newfit-generic_systerrors'
    outfile  = tools.set_file(extbase=attr.brfpath, prefix=prefix, 
                              comname=filename)
    statonly_sys_err = get_statonly_sys_err_for_fit_generic(prefix)
    statonly_sys_list = map(str, statonly_sys_err)
    content = '\n'.join(statonly_sys_list)+ '\n'
    fo, bakfile = tools.backup_output(outfile)
    fo.write(content)
    tools.check_output(fo, outfile, bakfile)
コード例 #9
0
ファイル: datayields.py プロジェクト: xshi/dhad
def statonly_data_yields(prefix, prefix_data, verbose=0):
    outfilename = 'statonly_data_yields_for_werner'

    label = prefix.replace('dir_', '')
    outfile = tools.set_file(extbase=attr.brfpath, prefix=prefix, 
                             comname=outfilename)

    fo, bakfile = tools.backup_output(outfile)

    data_yields_single(fo, prefix_data, opt='statonly', label=label, verbose=verbose)
    data_yields_double(fo, prefix_data, opt='statonly', label=label, verbose=verbose)

    tools.check_output(fo, outfile, bakfile)
コード例 #10
0
ファイル: datayields.py プロジェクト: xshi/dhad
def data_yields(prefix, prefix_data, opt_sys_err='', verbose=0):
    outfilename = 'data_yields_for_werner'
    outfile  = tools.set_file(
        extbase = attr.brfpath, prefix = prefix, 
        comname = outfilename)

    label = prefix.replace('dir_', '')
    fo, bakfile = tools.backup_output(outfile)

    data_yields_single(fo, prefix_data, label=label, verbose=verbose)
    data_yields_double(fo, prefix_data, opt=opt_sys_err, label=label,
                       verbose=verbose)

    tools.check_output(fo, outfile, bakfile)
コード例 #11
0
ファイル: syserr.py プロジェクト: zhixing1996/dhad
def get_sys_err(prefix= '' , opt_sys_err='', verbose=0):
    label = prefix.replace('dir_', '')

    filename = 'newfit-data_systerrors'
    outfile  = tools.set_file(
        extbase   = attr.brfpath, prefix  = prefix, 
        comname   = filename)

    sys_err_ = get_sys_err_for_fit(label)
    
    sys_list = map(str, sys_err_)
    content = '\n'.join(sys_list)+ '\n'
    fo, bakfile = tools.backup_output(outfile)

    fo.write(content)
    tools.check_output(fo, outfile, bakfile)
コード例 #12
0
ファイル: datayields.py プロジェクト: zhixing1996/dhad
def data_yields(prefix, prefix_data, opt_sys_err='', verbose=0):
    outfilename = 'data_yields_for_werner'
    outfile = tools.set_file(extbase=attr.brfpath,
                             prefix=prefix,
                             comname=outfilename)

    label = prefix.replace('dir_', '')
    fo, bakfile = tools.backup_output(outfile)

    data_yields_single(fo, prefix_data, label=label, verbose=verbose)
    data_yields_double(fo,
                       prefix_data,
                       opt=opt_sys_err,
                       label=label,
                       verbose=verbose)

    tools.check_output(fo, outfile, bakfile)
コード例 #13
0
def data_fit_staterrors(fit, prefix, verbose=0):
    outfilename = 'bf_stat'

    outfile = tools.set_file(extbase=attr.brfpath,
                             prefix=prefix,
                             comname=outfilename)
    fdir = outfile.replace(outfilename, '')
    com1_name = 'newfit-cat_files_data_statonly.sh'

    #bashbase = os.path.join(attr.base, 'src', attr.src, 'brf')
    com1 = tools.set_file(extbase=attr.brfpath,
                          prefix=prefix,
                          comname=com1_name)
    sdir = com1.replace(com1_name, '')
    com2 = create_bash_statonly(fdir, sdir, com1)

    if fit or not os.access(outfile, os.F_OK):
        print 'Running fitter for staterrors ...'
        run_bf_fitter(com2, outfile, verbose)

    start_line_str = 'Fitted parameters'
    start_column_str = '+-'
    end_column_str = '('
    end_line_str = 'Difference from seeds'

    data = tools.get_column_from_file(outfile,
                                      start_line_str,
                                      start_column_str,
                                      end_column_str,
                                      end_line_str,
                                      verbose=verbose)
    datafilename = 'data_fit_staterrors'

    outfile = tools.set_file(extbase=attr.brfpath,
                             prefix=prefix,
                             comname=datafilename)

    fo, bakfile = tools.backup_output(outfile)
    for line in data:
        fo.write('%s\n' % line)
    tools.check_output(fo, outfile, bakfile)
コード例 #14
0
ファイル: datayields.py プロジェクト: zhixing1996/dhad
def statonly_data_yields(prefix, prefix_data, verbose=0):
    outfilename = 'statonly_data_yields_for_werner'

    label = prefix.replace('dir_', '')
    outfile = tools.set_file(extbase=attr.brfpath,
                             prefix=prefix,
                             comname=outfilename)

    fo, bakfile = tools.backup_output(outfile)

    data_yields_single(fo,
                       prefix_data,
                       opt='statonly',
                       label=label,
                       verbose=verbose)
    data_yields_double(fo,
                       prefix_data,
                       opt='statonly',
                       label=label,
                       verbose=verbose)

    tools.check_output(fo, outfile, bakfile)
コード例 #15
0
def create_bash_statonly(fdir, sdir, outfile):

    EXE = attr.fitter

    sys.stdout.write('Using fitter: %s \n' % EXE)

    bash_content = '''#!/usr/bin/env bash

EXE=%s
FDIR=%s
SDIR=%s

YLDFILE=$FDIR/statonly_data_yields_for_werner
BKGBRS=$FDIR/data_statonly_external_bkg_bfs_for_werner
BKGEFFS=$FDIR/data_bkg_effs_for_werner
BKGERRS=$FDIR/data_bkg_effs_errs_for_werner
SIGSINGEFFS=$FDIR/signal_single_efficiencies_for_werner
SIGSINGERRS=$FDIR/zero_single_efficiencies_errors_for_werner
SIGDOUBEFFS=$FDIR/signal_double_efficiencies_for_werner
SIGDOUBERRS=$FDIR/zero_double_efficiencies_errors_for_werner
SYSTERRORS=$FDIR/newfit-data_statonly_systerrors
SEEDS=$FDIR/data_seeds

echo "#!/usr/bin/env bash" > $SDIR/newfit-data_statonly.sh
echo "$EXE <<EOF" >> $SDIR/newfit-data_statonly.sh
echo -e "n\\nn" >> $SDIR/newfit-data_statonly.sh
cat $FDIR/newfit-modedef >> $SDIR/newfit-data_statonly.sh
cat $YLDFILE >> $SDIR/newfit-data_statonly.sh
cat $BKGBRS >> $SDIR/newfit-data_statonly.sh
cat $SIGSINGEFFS >> $SDIR/newfit-data_statonly.sh
cat $SIGDOUBEFFS >> $SDIR/newfit-data_statonly.sh
cat $BKGEFFS >> $SDIR/newfit-data_statonly.sh
cat $SIGSINGERRS >> $SDIR/newfit-data_statonly.sh
cat $SIGDOUBERRS >> $SDIR/newfit-data_statonly.sh
cat $BKGERRS >> $SDIR/newfit-data_statonly.sh
#echo -e "0\\n0\\n0\\n0\\n0\\n0\\n1\\n1\\n1\\n1\\n1\\n1" >> \
$SDIR/newfit-data_statonly.sh
cat $SYSTERRORS >> $SDIR/newfit-data_statonly.sh
cat $SEEDS >> $SDIR/newfit-data_statonly.sh
echo -e "n\\nn\\nn\\ny" >> $SDIR/newfit-data_statonly.sh
cat $FDIR/data_statonly_brratiodef >> $SDIR/newfit-data_statonly.sh
echo -e "\\ny" >> $SDIR/newfit-data_statonly.sh
cat $FDIR/data_statonly_crosssectionsdef >> $SDIR/newfit-data_statonly.sh
echo "EOF" >> $SDIR/newfit-data_statonly.sh
chmod +x $SDIR/newfit-data_statonly.sh
''' % (EXE, fdir, sdir)

    fo, bakfile = tools.backup_output(outfile)
    fo.write(bash_content)
    tools.check_output(fo, outfile, bakfile)
    bashfile = outfile
    os.chmod(bashfile, 0755)
    output = commands.getoutput(bashfile)
    if output:
        print 'Stop message from DHadBF:: create_bash_statonly:'
        print '-------------------------------------------------'
        print output
        print '-------------------------------------------------'
        sys.exit()

    new_bashfile = os.path.join(sdir, 'newfit-data_statonly.sh')

    return new_bashfile
コード例 #16
0
ファイル: syserr.py プロジェクト: xshi/dhad
def create_bash_stat_syst(fdir, sdir, outfile):
    EXE = attr.fitter
    sys.stdout.write('Using fitter: %s \n' %EXE)
    bash_content = '''#!/usr/bin/env bash
EXE=%s
FDIR=%s
SDIR=%s

YLDFILE=$FDIR/data_yields_for_werner

BKGBRS=$FDIR/data_external_bkg_bfs_for_werner
BKGEFFS=$FDIR/data_bkg_effs_for_werner
BKGERRS=$FDIR/data_bkg_effs_errs_for_werner

SIGSINGEFFS=$FDIR/signal_single_efficiencies_for_werner
SIGSINGERRS=$FDIR/signal_single_efficiencies_errors_for_werner
SIGDOUBEFFS=$FDIR/signal_double_efficiencies_for_werner
SIGDOUBERRS=$FDIR/signal_double_efficiencies_errors_for_werner
SYSTERRORS=$FDIR/newfit-data_systerrors
SEEDS=$FDIR/data_seeds
STATTOSUBTRACT=$FDIR/data_fit_staterrors

echo "#!/usr/bin/env bash" > $SDIR/newfit-data.sh
echo "$EXE <<EOF" >> $SDIR/newfit-data.sh
echo -e "n\\nn" >> $SDIR/newfit-data.sh
cat $FDIR/newfit-modedef >> $SDIR/newfit-data.sh
cat $YLDFILE >> $SDIR/newfit-data.sh
cat $BKGBRS >> $SDIR/newfit-data.sh
cat $SIGSINGEFFS >> $SDIR/newfit-data.sh
cat $SIGDOUBEFFS >> $SDIR/newfit-data.sh
cat $BKGEFFS >> $SDIR/newfit-data.sh
cat $SIGSINGERRS >> $SDIR/newfit-data.sh
cat $SIGDOUBERRS >> $SDIR/newfit-data.sh
cat $BKGERRS >> $SDIR/newfit-data.sh
#echo -e "0\\n0\\n0\\n0\\n0\\n0\\n1\\n1\\n1\\n1\\n1\\n1" >> \
$SDIR/newfit-data.sh
cat $SYSTERRORS >> $SDIR/newfit-data.sh
cat $SEEDS >> $SDIR/newfit-data.sh
echo -e "n\\nn\\ny" >> $SDIR/newfit-data.sh
cat $STATTOSUBTRACT >> $SDIR/newfit-data.sh
echo -e "y" >> $SDIR/newfit-data.sh
cat $FDIR/data_brratiodef >> $SDIR/newfit-data.sh
echo -e "\\ny" >> $SDIR/newfit-data.sh
cat $FDIR/data_crosssectionsdef >> $SDIR/newfit-data.sh
echo "EOF" >> $SDIR/newfit-data.sh
chmod +x $SDIR/newfit-data.sh
''' % (EXE, fdir, sdir)

    fo, bakfile = tools.backup_output(outfile)
    fo.write(bash_content)
    tools.check_output(fo, outfile, bakfile)
    bashfile = outfile
    os.chmod(bashfile, 0755)
    output = commands.getoutput(bashfile)
    if output:
        print 'Stop message from DHadBF:: create_bash_stat_syst:'
        print '-------------------------------------------------'
        print output
        print '-------------------------------------------------'
        sys.exit()
        
    new_bashfile = os.path.join(sdir, 'newfit-data.sh')
    return new_bashfile