-
Notifications
You must be signed in to change notification settings - Fork 1
/
detectors.jsonnet
113 lines (107 loc) · 5.02 KB
/
detectors.jsonnet
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
#!/usr/bin/env jsonnet
/**
This file yields an object keyed by canonical Wire-Cell detector names. Each
attribute holds an object keyed by a canonical short name for a type of data
file and the leaf values provide a file name as a string or multiple file names
as an array of string.
*/
// A function to enforce the schema of each detector entry. It transforms it's
// arguments into attributes of a dictionary keeping only non-null values.
local detector(detname, // canonical detector name
wires, // wires file
fields, // field file(s), first is "nominal"
noise=null, // incoherent noise spectra
wiregroups=null, // coherent groups of wires
noisegroups=null, // coherent noise spectra
chresp=null, // per channel response
qerr=null, // charge error
elresp=null) = // electronics response (if not analytical CE)
std.prune({
detname:detname,
wires:wires,
field: if std.type(fields) == "array" then fields[0] else fields,
fields:if std.type(fields) == "array" then fields else [fields],
noise:noise,
chresp:chresp,
qerr:qerr,
elresp:elresp,
});
// A temporary array
local detectors = [
// The "base" detector is idealized. Someday replace these with idealized
// equivalents but for now, copy from PDSP/uboone.
detector("base",
wires="protodune-wires-larsoft-v4.json.bz2",
fields="dune-garfield-1d565.json.bz2",
noise="protodune-noise-spectra-v1.json.bz2",
qerr="microboone-charge-error.json.bz2", // reuse uboone
),
detector("pdsp",
wires="protodune-wires-larsoft-v4.json.bz2",
fields="dune-garfield-1d565.json.bz2",
noise="protodune-noise-spectra-v1.json.bz2",
qerr="microboone-charge-error.json.bz2", // reuse uboone
),
detector("uboone",
wires="microboone-celltree-wires-v2.1.json.bz2",
fields=["ub-10-half.json.bz2",
"ub-10-uv-ground-tuned-half.json.bz2",
"ub-10-vy-ground-tuned-half.json.bz2"], // array!
noise="microboone-noise-spectra-v2.json.bz2",
chresp="microboone-channel-responses-v1.json.bz2",
qerr="microboone-charge-error.json.bz2", // reuse uboone
),
detector("sbnd",
wires="sbnd-wires-geometry-v0200.json.bz2",
fields="garfield-sbnd-v1.json.bz2",
noise="sbnd-noise-spectra-v1.json.bz2",
),
detector("dune-vd",
wires="dunevd10kt-1x6x6-3view30deg-wires-v1.json.bz2",
fields="dunevd-resp-isoc3views-18d92.json.bz2",
noise="dunevd10kt-1x6x6-3view30deg-noise-spectra-v1.json.bz2",
qerr="microboone-charge-error.json.bz2", // reuse uboone
),
detector("dune-vd-coldbox",
wires="dunevdcb1-3view-wires-v2-splitanode.json.bz2",
fields="dunevd-resp-isoc3views-18d92.json.bz2",
noise="protodune-noise-spectra-v1.json.bz2", // reuse pdsp
elresp="dunevd-coldbox-elecresp-top-psnorm_400.json.bz2"
),
detector("dune10kt-1x2x6",
wires="dune10kt-1x2x6-wires-larsoft-v1.json.bz2",
fields="dune-garfield-1d60563.json.bz2",
noise="protodune-noise-spectra-v1.json.bz2",
),
detector("dunevd-crp2",
wires="dunevdcrp2-wires-larsoft-v1.json.bz2",
fields="dunevd-resp-isoc3views-18d92.json.bz2",
noise="protodune-noise-spectra-v1.json.bz2",
elresp="dunevd-coldbox-elecresp-top-psnorm_400.json.bz2",
),
detector("icarus",
wires="icarus-wires-dualanode-v5.json.bz2",
fields="garfield-icarus-fnal-rev1.json.bz2",
chresp="icarus-channel-responses-v1.json.bz2",
wiregroups="icarus_group_to_channel_map.json.bz2",
noisegroups=[ "icarus_noise_model_int_by_board_TPCEE.json.bz2",
"icarus_noise_model_int_by_board_TPCEW.json.bz2",
"icarus_noise_model_int_by_board_TPCWE.json.bz2",
"icarus_noise_model_int_by_board_TPCWW.json.bz2",
"icarus_noise_model_coh_by_board_TPCEE.json.bz2",
"icarus_noise_model_coh_by_board_TPCEW.json.bz2",
"icarus_noise_model_coh_by_board_TPCWE.json.bz2",
"icarus_noise_model_coh_by_board_TPCWW.json.bz2" ],
),
detector("iceberg",
wires="iceberg-wires-larsoft-v2.json.bz2",
fields="dune-garfield-1d565.json.bz2",
noise="protodune-noise-spectra-v1.json.bz2",
),
detector("pcbro",
wires="pcbro-wires.json.bz2",
fields="FR_50L.json.bz2",
noise="protodune-noise-spectra-v1.json.bz2",
),
];
{[d.detname]:d for d in detectors}