#include <TruthSmearer.h>
Public Member Functions | |
TruthSmearer () | |
virtual bool | operator() (const input_pointer &depo, output_queue &frames) |
The calling signature: More... | |
virtual void | configure (const WireCell::Configuration &config) |
Accept a configuration. More... | |
virtual WireCell::Configuration | default_configuration () const |
Optional, override to return a hard-coded default configuration. More... | |
Public Member Functions inherited from WireCell::IDuctor | |
virtual | ~IDuctor () |
virtual std::string | signature () |
Public Member Functions inherited from WireCell::IQueuedoutNode< IDepo, IFrame > | |
virtual | ~IQueuedoutNode () |
virtual bool | operator() (const boost::any &anyin, queuedany &outanyq) |
The calling signature: More... | |
virtual std::vector< std::string > | input_types () |
virtual std::vector< std::string > | output_types () |
Public Member Functions inherited from WireCell::IQueuedoutNodeBase | |
virtual | ~IQueuedoutNodeBase () |
virtual NodeCategory | category () |
Return the behavior category type. More... | |
virtual int | concurrency () |
By default assume all subclasses maintain state. More... | |
Public Member Functions inherited from WireCell::INode | |
virtual | ~INode () |
virtual void | reset () |
Public Member Functions inherited from WireCell::IComponent< INode > | |
virtual | ~IComponent () |
Public Member Functions inherited from WireCell::Interface | |
virtual | ~Interface () |
Public Member Functions inherited from WireCell::IConfigurable | |
virtual | ~IConfigurable () |
Public Member Functions inherited from WireCell::IComponent< IConfigurable > | |
virtual | ~IComponent () |
Private Member Functions | |
void | process (output_queue &frames) |
bool | start_processing (const input_pointer &depo) |
Private Attributes | |
std::string | m_anode_tn |
std::string | m_rng_tn |
IAnodePlane::pointer | m_anode |
IRandom::pointer | m_rng |
IDepo::vector | m_depos |
double | m_start_time |
double | m_readout_time |
double | m_tick |
double | m_drift_speed |
double | m_time_smear |
double | m_wire_smear_ind |
double | m_wire_smear_col |
std::string | m_smear_response_tn |
double | m_truth_gain |
double | m_nsigma |
bool | m_fluctuate |
bool | m_continuous |
int | m_frame_count |
Additional Inherited Members | |
Public Types inherited from WireCell::IDuctor | |
typedef std::shared_ptr< IDuctor > | pointer |
Public Types inherited from WireCell::IQueuedoutNode< IDepo, IFrame > | |
typedef std::shared_ptr< IQueuedoutNodeBase > | pointer |
typedef IDepo | input_type |
typedef IFrame | output_type |
typedef std::shared_ptr< const IDepo > | input_pointer |
typedef std::shared_ptr< const IFrame > | output_pointer |
typedef std::deque< output_pointer > | output_queue |
Public Types inherited from WireCell::IQueuedoutNodeBase | |
typedef std::shared_ptr< IQueuedoutNodeBase > | pointer |
typedef std::deque< boost::any > | queuedany |
Public Types inherited from WireCell::INode | |
enum | NodeCategory { unknown, sourceNode, sinkNode, functionNode, queuedoutNode, joinNode, splitNode, faninNode, fanoutNode, multioutNode, hydraNode } |
Public Types inherited from WireCell::IComponent< INode > | |
typedef std::shared_ptr< INode > | pointer |
Access subclass facet by pointer. More... | |
typedef std::vector< pointer > | vector |
Vector of shared pointers. More... | |
Public Types inherited from WireCell::Interface | |
typedef std::shared_ptr< Interface > | pointer |
Public Types inherited from WireCell::IComponent< IConfigurable > | |
typedef std::shared_ptr< IConfigurable > | pointer |
Access subclass facet by pointer. More... | |
typedef std::vector< pointer > | vector |
Vector of shared pointers. More... | |
Definition at line 16 of file TruthSmearer.h.
Gen::TruthSmearer::TruthSmearer | ( | ) |
based on Gen::Ductor without convolution just smearing of charge depos in time and wire dimenstions (time_smear = 0, wire_smear = 1) means "Charge Truth" otherwires, "Signal Truth" with signal processing residual
Definition at line 26 of file TruthSmearer.cxx.
|
virtual |
Accept a configuration.
An interface, not used. Exact "Truth" after signal processing.
Implements WireCell::IConfigurable.
Definition at line 105 of file TruthSmearer.cxx.
|
virtual |
Optional, override to return a hard-coded default configuration.
How many Gaussian sigma due to diffusion to keep before truncating.
Whether to fluctuate the final Gaussian deposition.
The initial time for this ductor
The time span for each readout.
The sample period
If false then determine start time of each readout based on the input depos. This option is useful when running WCT sim on a source of depos which have already been "chunked" in time. If true then this Ductor will continuously simulate all time in "readout_time" frames leading to empty frames in the case of some readout time with no depos.
The nominal speed of drifting electrons
Gaussian longitudinal (time) smearing – time filter in SP
Discrete wire smear – wire filter in Fig.16 arXiv: 1802.08709 the charge within one wire pitch is equally weighted, i.e. no impact position dependency
Transverse (wire) smearing – re-distribute the charge onto nearby wires. A function of impact position, like field response. Attention: this is the residual field response (true / average). Normalization issue – true, see percentage level charge bias for point source of charge at various locations within a wire. An interface, not used are present.
gain for truth – sign of charge in the output
Allow for a custom starting frame number
Name of component providing the anode plane.
Reimplemented from WireCell::IConfigurable.
Definition at line 45 of file TruthSmearer.cxx.
|
virtual |
The calling signature:
Implements WireCell::IQueuedoutNode< IDepo, IFrame >.
Definition at line 318 of file TruthSmearer.cxx.
|
private |
Similar to ImpactZipper::waveform No convolution m_waveform from BinnedDiffusion::impact_data()
it is doable to read in a JsonArray of the wire smear and use relative bin to target wire as array index fo each wire (or impact position) smear
end: charge wire smearing per wire filter
Definition at line 140 of file TruthSmearer.cxx.
|
private |
Definition at line 299 of file TruthSmearer.cxx.
|
private |
Definition at line 33 of file TruthSmearer.h.
|
private |
Definition at line 30 of file TruthSmearer.h.
|
private |
Definition at line 50 of file TruthSmearer.h.
|
private |
Definition at line 35 of file TruthSmearer.h.
|
private |
Definition at line 40 of file TruthSmearer.h.
|
private |
Definition at line 49 of file TruthSmearer.h.
|
private |
Definition at line 52 of file TruthSmearer.h.
|
private |
Definition at line 48 of file TruthSmearer.h.
|
private |
Definition at line 38 of file TruthSmearer.h.
|
private |
Definition at line 34 of file TruthSmearer.h.
|
private |
Definition at line 31 of file TruthSmearer.h.
|
private |
Definition at line 45 of file TruthSmearer.h.
|
private |
Definition at line 37 of file TruthSmearer.h.
|
private |
Definition at line 39 of file TruthSmearer.h.
|
private |
Definition at line 42 of file TruthSmearer.h.
|
private |
Definition at line 46 of file TruthSmearer.h.
|
private |
Definition at line 44 of file TruthSmearer.h.
|
private |
Definition at line 43 of file TruthSmearer.h.