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)
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)
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)
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)
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)
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)
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)
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)
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)