Commit 43c976e5 authored by Zolnierczuk, Piotr's avatar Zolnierczuk, Piotr
Browse files

removed misc/nxs_xyz.py

parent ba019977
Loading
Loading
Loading
Loading

misc/nxs_xyz.py

deleted100755 → 0
+0 −100
Original line number Diff line number Diff line
#!/usr/bin/env python
"Simple Atari Plot for NeXus SNS-NSE Files"
import logging
import argparse

import numpy as np
import matplotlib.pyplot as plt

from pysen.inout.scans import XYZScan
from pysen.plot.xyzplotlib import plot_xyz_nexus

def plot_xyz(filename, **kwargs):
    scan = XYZScan()
    scan.read_nexus(filename, **kwargs)

    plot_xyz_nexus(scan.data, scan.info, **kwargs)

    log = logging.getLogger()

    rates = {}
    base  = scan.info['base']
    for key, data in scan.data.items():
        rates[key]=0.0
        if data['pcharge']>0:
            counts = data['selection_counts']
            scale  = data['pcharge']/1e12
            rates[key]        = counts/scale
            rates[key+'_sig'] = np.sqrt(counts)/scale
            log.info("%s: %-6.6s = (%9.1f +/- %9.1f) counts/C", base, key.upper(), rates[key], rates[key+'_sig'])
        #
    res = xyz_decomposition(rates, errors=True)
    #
    stot = res['sum_ave']
    log.info("%s:", base)
    for key in ('n_coh', 'i_inc', 'm_mag'):
        log.info("%s: %-6.6s = (%9.1f +/- %9.1f) counts/C  (%5.2f +/- %4.2f)%%",
            base, key.upper(), res[key], res[key+'_sig'], res[key]/stot*100, res[key+'_sig']/stot*100)
    for key in ('m_up/2', 'm_dn/2',):
        log.info("%s: %-6.6s = (%9.1f +/- %9.1f) counts/C",
            base, key.upper(), res[key], res[key+'_sig'])
    log.info("%s: TOT    = %9.1f counts/C", base, stot)


def main():
    "the main"
    parser = argparse.ArgumentParser()
    parser.set_defaults(ntof=42, npix=32,
                        tbin1=0, tbin2=None,
                        xpix1=10,xpix2=-10,ypix1=10,ypix2=-10, whole_detector=False,
                        vmin=0, vmax=None, logz=False,
                        show=True, save=False)
    parser.add_argument('filename', metavar='file', nargs='+', help='filename to plot')

    parser.add_argument('--t1' , '-b', dest='tbin1', type=int,
                     help='set min TOF bin (default=%(default)s)')
    parser.add_argument('--t2' , '-B', dest='tbin2', type=int,
                     help='set max TOF bin (default=%(default)s)')
    parser.add_argument('--x1' , dest='xpix1', type=int,
                     help='set min X pix (default=%(default)s)')
    parser.add_argument('--x2' , dest='xpix2', type=int,
                     help='set max X pix (default=%(default)s)')
    parser.add_argument('--y1' , dest='ypix1', type=int,
                     help='set min Y pix (default=%(default)s)')
    parser.add_argument('--y2' , dest='ypix2', type=int,
                     help='set max Y pix (default=%(default)s)')
    parser.add_argument('--whole-detector', '-W', dest='whole_detector', action='store_true',
                        help='use the whole detector')
    #
    parser.add_argument('--vmin', '-v' , dest='vmin', type=int,
                     help='set min vertical scale (default=%(default)s)')
    parser.add_argument('--vmax', '-V' , dest='vmax', type=int,
                     help='set max vertical scale (default=%(default)s)')
    parser.add_argument('--logz',        dest='logz', action='store_true',
                     help='detector image log vertical scale')
    #
    parser.add_argument('--npix' , dest='npix', type=int,
                     help='set number of pixels (default=%(default)s)')
    parser.add_argument('--ntof' , dest='ntof', type=int,
                     help='set number of pixels (default=%(default)s)')
    #
    parser.add_argument('--no-show', '-N', dest='show',  action='store_false',
                        help='do not show plots')
    parser.add_argument('--save',    '-S', dest='save',  action='store_true',
                        help='save figure to a file')
    args = parser.parse_args()


    logging.basicConfig(format='%(levelname)s %(message)s', level=logging.INFO)

    kwargs = vars(args)
    filenames = kwargs.pop('filename')
    for file_name in filenames:
        plot_xyz_nexus(file_name, **kwargs)

    if args.show:
        plt.show()


if __name__ == "__main__":
    main()