Closed wenqiang-gu closed 7 months ago
Here are some essential updates for using this "ResponseShaper" in the noise filter stage:
* common/tools.jsonnet
type: "ParamsPerChannelResponse"
* nf.jsonnet
function(params, anode, tools, chndbobj, n, name='')
local pc = tools.perchanresp_nameuses,
local shaper = {
type: 'perChannelShaper',
name: name,
data: {
noisedb: wc.tn(chndbobj),
anode: wc.tn(anode),
elecresponse: wc.tn(tools.elec_resp),
},
},
uses=[chndbobj, anode, single, shaper, grouped, tools.elec_resp] + pc.uses
* params.jsonnet
elec: super.elec {
type: "ColdElecResponse",
postgain: 1.0,
gain : 14.0*wc.mV/wc.fC,
shaping : 4.0*wc.us, // extreme value for sanity check
},
With a shaping time value of 4us, I can see that the "ResponseShaper" is working:
For validation purpose, I copied the "perchan" code from the OmnibusSigproc and re-implemented it as a "noise filter" module. With the following package on dunegpvm, one can check the corrected pulser waveforms in DUNE VD CRP5 coldgox data:
One can check the waveforms (_hdaq is before correction, _hraw is after correction) in the output file:
magnify-21040-1-nf.root