# Morse sim/analysis
## simulation
BV: https://indico.bnl.gov/event/21684/contributions/85251/attachments/51799/88575/splat.pdf
Prerequisite:
- numpy 1.24+
- jsonnet 0.18+ (std.get)
Update 3 wire-cell repos:
```bash!
./wcb --tests
```
## DepoSplat -> DepoFluxSplat
```bash!
setup sbndcode v09_83_01 -q e26:prof
```
```jsonnet
// The approximated sim+sigproc
local splat = function(params, tools, anode, name=null) {
local apaid = anode.data.ident,
local sufix = if std.type(name) == "null" then apaid else name,
local bg = g.pnode({
type:'DepoBagger',
name: sufix,
data: {
gate: [params.sim.ductor.start_time,
params.sim.ductor.start_time+params.sim.ductor.readout_time],
},
}, nin=1, nout=1),
local sp = g.pnode({
type: 'DepoFluxSplat',
name: sufix,
data: {
anode: wc.tn(anode),
field_response: wc.tn(tools.field), // for speed and origin
sparse: true,
tick: params.daq.tick,
window_start: params.sim.ductor.start_time,
window_duration: params.sim.ductor.readout_time,
reference_time: 0.0,
// Run wirecell-gen morse-* to find these numbers that match the extra
// spread the sigproc induces.
"smear_long": [
2.691862363980221,
2.6750200122535057,
2.7137567141154055
],
"smear_tran": [
0.7377218875719689,
0.7157764520393882,
0.13980698710556544
]
},
}, nin=1, nout=1, uses=[anode, tools.field]),
local rt = g.pnode({
type: 'Retagger',
name: sufix,
data: {
// Note: retagger keeps tag_rules an array to be like frame fanin/fanout.
tag_rules: [{
// Retagger also handles "frame" and "trace" like fanin/fanout
// merge separately all traces like gaussN to gauss.
frame: {
".*": "deposplat%d" % apaid
},
merge: {
".*": "deposplat%d" % apaid
},
}],
},
}, nin=1, nout=1),
ret: g.pipeline([bg, sp, rt],"%s-%s" % [bg.name, sp.name]),
}.ret;
local deposplats = [splat(params, tools, tools.anodes[n]) for n in anode_iota] ;
```
## PD-HD
```bash=!
# environment setup
source /cvmfs/dune.opensciencegrid.org/products/dune/setup_dune.sh;
setup dunesw v09_83_01d00 -q e26:prof
source /dune/data/users/wgu/DnnRoi/opt/localProducts_larsoft_v09_83_01_e26_prof/setup;
mrbslp
# commands
lar -n1 -c prod_cosmics_1GeV_protodunehd.fcl -o gen.root
lar -n1 -c standard_g4_protodunehd_stage1.fcl gen.root -o g4a.root
lar -n1 -c standard_g4_protodunehd_stage2.fcl g4a.root -o g4b.root
cp -r /dune/data/users/wgu/dune10kt_1x2x6/wire-cell-cfg/ts-model .
lar -n1 -c pdhd_wirecell_sim_deposplat.fcl g4b.root
# One should see hdf5 output files such as: g4-tru-0.h5 (truth label) & g4-rec-0.h5 (sigproc products)
```