WireCellToolkit
Wire Cell Simulation, Signal Process and Reconstruction Toolki for Liquid Argon Detectors
WireCell::Gen::Ductor Class Reference

#include <Ductor.h>

Inheritance diagram for WireCell::Gen::Ductor:
Collaboration diagram for WireCell::Gen::Ductor:

Public Member Functions

 Ductor ()
 
virtual ~Ductor ()
 
virtual bool operator() (const input_pointer &depo, output_queue &frames)
 
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 bool operator() (const input_pointer &in, output_queue &outq)=0
 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 ()
 

Protected Member Functions

virtual void process (output_queue &frames)
 
virtual ITrace::vector process_face (IAnodeFace::pointer face, const IDepo::vector &face_depos)
 
bool start_processing (const input_pointer &depo)
 

Protected Attributes

std::string m_anode_tn
 
std::string m_rng_tn
 
std::vector< std::string > m_pir_tns
 
IAnodePlane::pointer m_anode
 
IRandom::pointer m_rng
 
std::vector< IPlaneImpactResponse::pointerm_pirs
 
IDepo::vector m_depos
 
double m_start_time
 
double m_readout_time
 
double m_tick
 
double m_drift_speed
 
double m_nsigma
 
bool m_fluctuate
 
std::string m_mode
 
int m_frame_count
 
Log::logptr_t l
 

Additional Inherited Members

- Public Types inherited from WireCell::IDuctor
typedef std::shared_ptr< IDuctorpointer
 
- Public Types inherited from WireCell::IQueuedoutNode< IDepo, IFrame >
typedef std::shared_ptr< IQueuedoutNodeBasepointer
 
typedef IDepo input_type
 
typedef IFrame output_type
 
typedef std::shared_ptr< const IDepoinput_pointer
 
typedef std::shared_ptr< const IFrameoutput_pointer
 
typedef std::deque< output_pointeroutput_queue
 
- Public Types inherited from WireCell::IQueuedoutNodeBase
typedef std::shared_ptr< IQueuedoutNodeBasepointer
 
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< INodepointer
 Access subclass facet by pointer. More...
 
typedef std::vector< pointervector
 Vector of shared pointers. More...
 
- Public Types inherited from WireCell::Interface
typedef std::shared_ptr< Interfacepointer
 
- Public Types inherited from WireCell::IComponent< IConfigurable >
typedef std::shared_ptr< IConfigurablepointer
 Access subclass facet by pointer. More...
 
typedef std::vector< pointervector
 Vector of shared pointers. More...
 

Detailed Description

This IDuctor needs a Garfield2D field calculation data file in compressed JSON format as produced by Python module wirecell.sigproc.garfield.

Definition at line 25 of file Ductor.h.

Constructor & Destructor Documentation

◆ Ductor()

Gen::Ductor::Ductor ( )

Definition at line 19 of file Ductor.cxx.

◆ ~Ductor()

virtual WireCell::Gen::Ductor::~Ductor ( )
inlinevirtual

Definition at line 29 of file Ductor.h.

Here is the call graph for this function:

Member Function Documentation

◆ configure()

void Gen::Ductor::configure ( const WireCell::Configuration config)
virtual

Accept a configuration.

Implements WireCell::IConfigurable.

Definition at line 84 of file Ductor.cxx.

Here is the caller graph for this function:

◆ default_configuration()

WireCell::Configuration Gen::Ductor::default_configuration ( ) const
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.

Fixed mode simply reads out the same time window all the time. It implies discontinuous (continuous == false).

The nominal speed of drifting electrons

Allow for a custom starting frame number

Name of component providing the anode plane.

don't set here so user must, but eg:

Reimplemented from WireCell::IConfigurable.

Definition at line 34 of file Ductor.cxx.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator()()

bool Gen::Ductor::operator() ( const input_pointer depo,
output_queue frames 
)
virtual

Definition at line 272 of file Ductor.cxx.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process()

void Gen::Ductor::process ( output_queue frames)
protectedvirtual

Definition at line 174 of file Ductor.cxx.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ process_face()

ITrace::vector Gen::Ductor::process_face ( IAnodeFace::pointer  face,
const IDepo::vector face_depos 
)
protectedvirtual

Reimplemented in WireCell::Gen::DepoSplat.

Definition at line 130 of file Ductor.cxx.

Here is the call graph for this function:
Here is the caller graph for this function:

◆ start_processing()

bool Gen::Ductor::start_processing ( const input_pointer depo)
protected

Definition at line 244 of file Ductor.cxx.

Here is the caller graph for this function:

Member Data Documentation

◆ l

Log::logptr_t WireCell::Gen::Ductor::l
protected

Definition at line 64 of file Ductor.h.

◆ m_anode

IAnodePlane::pointer WireCell::Gen::Ductor::m_anode
protected

Definition at line 44 of file Ductor.h.

◆ m_anode_tn

std::string WireCell::Gen::Ductor::m_anode_tn
protected

Definition at line 40 of file Ductor.h.

◆ m_depos

IDepo::vector WireCell::Gen::Ductor::m_depos
protected

Definition at line 48 of file Ductor.h.

◆ m_drift_speed

double WireCell::Gen::Ductor::m_drift_speed
protected

Definition at line 53 of file Ductor.h.

◆ m_fluctuate

bool WireCell::Gen::Ductor::m_fluctuate
protected

Definition at line 55 of file Ductor.h.

◆ m_frame_count

int WireCell::Gen::Ductor::m_frame_count
protected

Definition at line 58 of file Ductor.h.

◆ m_mode

std::string WireCell::Gen::Ductor::m_mode
protected

Definition at line 56 of file Ductor.h.

◆ m_nsigma

double WireCell::Gen::Ductor::m_nsigma
protected

Definition at line 54 of file Ductor.h.

◆ m_pir_tns

std::vector<std::string> WireCell::Gen::Ductor::m_pir_tns
protected

Definition at line 42 of file Ductor.h.

◆ m_pirs

std::vector<IPlaneImpactResponse::pointer> WireCell::Gen::Ductor::m_pirs
protected

Definition at line 46 of file Ductor.h.

◆ m_readout_time

double WireCell::Gen::Ductor::m_readout_time
protected

Definition at line 51 of file Ductor.h.

◆ m_rng

IRandom::pointer WireCell::Gen::Ductor::m_rng
protected

Definition at line 45 of file Ductor.h.

◆ m_rng_tn

std::string WireCell::Gen::Ductor::m_rng_tn
protected

Definition at line 41 of file Ductor.h.

◆ m_start_time

double WireCell::Gen::Ductor::m_start_time
protected

Definition at line 50 of file Ductor.h.

◆ m_tick

double WireCell::Gen::Ductor::m_tick
protected

Definition at line 52 of file Ductor.h.


The documentation for this class was generated from the following files: