WireCell / wire-cell-gen

Wire Cell packages that can generate things like wires, cells, depositions, diffusions, slices, frames, ...
0 stars 1 forks source link

A new/easy implementation of "TruthDuctor" #16

Closed brettviren closed 6 years ago

brettviren commented 6 years ago

Here are my thoughts on how to maybe structure the components

tru

The idea is to use the new DepoFanout to send each depo down a per-plane path. A new IDepoFilter would be written to broaden the depo in longitudinal and transverse directions to account for the residual broadening that the signal processing can not remove. These broad depos are then passed to a new "truth ductor", each of which operates to produce waveforms on just one plane. Each (partial) readout frame from each of these new truth ductors are finally merged using the new FrameFanin.

weihythu commented 6 years ago

The "truth" is the charge on the three 2D views/planes.

This way is a good approximation of the exact "Signal Truth" (the deconvolved charge after signal processing 2D deconvolution, no noise), fast (without explicit convolution), and flexible. Turn off the GaussianBroaden, the result will be "Charge Truth" (without any residual signal processing effect).

The "True" maker have two types: 1) trace per channel/wire; 2) trace per track/depo.

weihythu commented 6 years ago

Working on a new component "GaussianBroaden":

  1. Longitudinal smearing independent on impact position.
  2. Transverse smearing dependent on impact position.
weihythu commented 6 years ago

The current "TruthSmearer" is 1D Gauss Broaden + discrete re-weight, not as shown above. The structure is mostly like a "Ductor", the input is the output of Drifter (charge depos), but there’s no explicit convolution (FFT) at present, just 1) add the Gaussian time smearing in the longitudinal diffusion and 2) re-distribute charge to the nearby wires. The time/wire smear is exactly the same as time/wire filters used in SP.

A test Depo->Drifter->TruthSmearer->FrameSink has been done. Everything looks good.

With the recent changes related to PlaneImpactResponse, new configuration and tests are needed/to be done.