Ductor.h
Go to the documentation of this file.
1 #ifndef WIRECELLGEN_DUCTOR
2 #define WIRECELLGEN_DUCTOR
3 
4 #include "WireCellUtil/Pimpos.h"
6 
9 
13 #include "WireCellIface/IRandom.h"
14 #include "WireCellUtil/Logging.h"
15 
16 #include <vector>
17 
18 namespace WireCell {
19  namespace Gen {
20 
21  /** This IDuctor needs a Garfield2D field calculation data
22  * file in compressed JSON format as produced by Python module
23  * wirecell.sigproc.garfield.
24  */
25  class Ductor : public IDuctor, public IConfigurable {
26  public:
27 
28  Ductor();
29  virtual ~Ductor() {};
30 
31  //virtual void reset();
32  virtual bool operator()(const input_pointer& depo, output_queue& frames);
33 
34  virtual void configure(const WireCell::Configuration& config);
36 
37  protected:
38 
39  // The "Type:Name" of the IAnodePlane (default is "AnodePlane")
42  std::vector<std::string> m_pir_tns;
43 
46  std::vector<IPlaneImpactResponse::pointer> m_pirs;
47 
49 
50  double m_start_time;
52  double m_tick;
53  double m_drift_speed;
54  double m_nsigma;
57 
59 
60  virtual void process(output_queue& frames);
62  const IDepo::vector& face_depos);
63  bool start_processing(const input_pointer& depo);
65 
66  };
67  }
68 }
69 
70 #endif
std::string m_rng_tn
Definition: Ductor.h:41
virtual void process(output_queue &frames)
Definition: Ductor.cxx:174
virtual WireCell::Configuration default_configuration() const
Optional, override to return a hard-coded default configuration.
Definition: Ductor.cxx:34
std::string string
Definition: nybbler.cc:12
virtual void configure(const WireCell::Configuration &config)
Accept a configuration.
Definition: Ductor.cxx:84
double m_readout_time
Definition: Ductor.h:51
IAnodePlane::pointer m_anode
Definition: Ductor.h:44
std::string m_anode_tn
Definition: Ductor.h:40
std::vector< pointer > vector
Definition: IData.h:21
bool start_processing(const input_pointer &depo)
Definition: Ductor.cxx:244
std::deque< output_pointer > output_queue
virtual bool operator()(const input_pointer &depo, output_queue &frames)
The calling signature:
Definition: Ductor.cxx:272
Log::logptr_t l
Definition: Ductor.h:64
static Config * config
Definition: config.cpp:1054
std::shared_ptr< Interface > pointer
Definition: Interface.h:16
double m_start_time
Definition: Ductor.h:50
double m_drift_speed
Definition: Ductor.h:53
std::shared_ptr< spdlog::logger > logptr_t
Definition: Logging.h:24
Definition: Main.h:22
IRandom::pointer m_rng
Definition: Ductor.h:45
IDepo::vector m_depos
Definition: Ductor.h:48
std::string m_mode
Definition: Ductor.h:56
Json::Value Configuration
Definition: Configuration.h:50
std::vector< IPlaneImpactResponse::pointer > m_pirs
Definition: Ductor.h:46
std::shared_ptr< const IDepo > input_pointer
virtual ITrace::vector process_face(IAnodeFace::pointer face, const IDepo::vector &face_depos)
Definition: Ductor.cxx:130
virtual ~Ductor()
Definition: Ductor.h:29
std::vector< std::string > m_pir_tns
Definition: Ductor.h:42