Пример #1
0
def convert_icarustpc_wires(ctx, input_file, output_file):
    '''
    Description
    '''
    from wirecell.util.wires import icarustpc, persist
    store = icarustpc.load(input_file)
    persist.dump(output_file, store)
Пример #2
0
def convert_dunevd_wires(ctx, type, input_file, output_file):
    '''
    Convert txt wire geom to json format
    '''
    from wirecell.util.wires import dunevd, persist
    store = dunevd.load(input_file, type)
    persist.dump(output_file, store)
Пример #3
0
def make_wires_onesided(ctx, **kwds):
    '''
    Generate a WCT wires file.

    The named detector sets initial defaults.  If other options are
    given they overwride.
    '''
    output_file = kwds.pop("output_file")
    detector = kwds.pop("detector")

    import wirecell.util.wires.generator as wgen
    params = dict(getattr(wgen, f'{detector}_params'))

    for key, val in kwds.items():
        if val is None:
            continue
        if isinstance(val, str):
            val = unitify_parse(val)
            if len(val) == 1:
                val = val[0]
        params[key] = val

    import wirecell.util.wires.persist as wpersist
    s = wgen.onesided_wrapped(params)
    wpersist.dump(output_file, s)
Пример #4
0
def convert_dunevd_wires(ctx, input_file, output_file):
    '''
    Description
    '''
    from wirecell.util.wires import dunevd, persist
    store = dunevd.load(input_file)
    persist.dump(output_file, store)
Пример #5
0
def make_wires_onesided(ctx, output_file):
    '''
    Generate a WCT wires file.
    '''
    import wirecell.util.wires.generator as wgen
    import wirecell.util.wires.persist as wpersist
    s = wgen.onesided_wrapped()  # fixme, expose different algs to CLI
    wpersist.dump(output_file, s)
Пример #6
0
def convert_uboon_wire_regions(ctx, wire_json_file, csvfile, region_json_file):
    '''
    Convert CSV file to WCT format for wire regions.  Example is one
    as saved from MicroBooNE_ShortedWireList.xlsx.  Use ,-separated
    and remove quoting.
    '''
    import wirecell.util.wires.persist as wpersist
    import wirecell.util.wires.regions as reg
    store = wpersist.load(wire_json_file)
    ubs = reg.uboone_shorted(store, csvfile)
    wpersist.dump(region_json_file, ubs)
Пример #7
0
def make_wires(ctx, detector, output_file):
    '''
    Generate a WCT "wires" file giving geometry and connectivity of
    conductor wire segments and channel identifiers.
    '''
    if detector == "apa":
        from wirecell.util.wires import apa, graph, persist
        desc = apa.Description()
        G, P = apa.graph(desc)
        store = graph.to_schema(G, P, apa.channel_ident)
        persist.dump(output_file, store)
        return
    click.echo('Unknown detector type: "%s"' % detector)
    sys.exit(1)
Пример #8
0
def convert_oneside_wires(ctx, input_file, output_file):
    '''
    Convert a a "onesided" wires description file into one suitable for WCT.

    An example file is:

    https://github.com/BNLIF/wire-cell-celltree/blob/master/geometry/ChannelWireGeometry_v2.txt

    It has columns like:
    # channel plane wire sx sy sz ex ey ez

    The output file is JSON and if it has .gz or .bz2 it will be compressed.
    '''
    from wirecell.util.wires import onesided, persist
    store = onesided.load(input_file)
    persist.dump(output_file, store)
Пример #9
0
def convert_multitpc_wires(ctx, input_file, output_file):
    '''
    Convert a "multitpc" wire description file into one suitable for
    WCT.

    Here "TPC" refers to on anode face.  That is, one APA is made up
    of two TPCs.  An example file is protodune-wires-larsoft-v1.txt
    from wire-cell-data.  It has columns like:

        # chan tpc plane wire sx sy sz ex ey ez

    And, further the order of rows of identical channel number express
    progressively higher segment count.
    '''
    from wirecell.util.wires import multitpc, persist
    store = multitpc.load(input_file)
    persist.dump(output_file, store)