ElecResponse.h
Go to the documentation of this file.
1 /** An ElecResponse waveform is that due to sending a unit charge
2  * pulse into an amplifier with gain and shaping and a particular
3  * response function of the BNL cold electronics. */
4 
5 #ifndef WIRECELL_GEN_ELECRESPONSE
6 #define WIRECELL_GEN_ELECRESPONSE
7 
10 #include "WireCellUtil/Units.h"
11 
12 namespace WireCell {
13  namespace Gen {
14 
15  class ElecResponse : public IWaveform, public IConfigurable {
16  public:
17  ElecResponse(int nticks = 10000,
18  double t0 = 0,
19  double gain = 14.0*units::mV/units::fC,
20  double shaping = 2*units::us,
21  double postgain = 1.0,
22  double tick = 0.5*units::us);
23  // IConfigurable interface
24  virtual void configure(const WireCell::Configuration& cfg);
26 
27  // The starting point of the sampling
28  virtual double waveform_start() const;
29  // The sampling period aka bin width
30  virtual double waveform_period() const;
31  // The collection of samples
32  virtual const sequence_type& waveform_samples() const;
33  private:
36  };
37  }
38 }
39 
40 #endif
41 
code to link reconstructed objects back to the MC truth information
virtual WireCell::Configuration default_configuration() const
Optional, override to return a hard-coded default configuration.
virtual double waveform_period() const
static const double mV
Definition: Units.h:180
cfg
Definition: dbjson.py:29
const double tick
virtual void configure(const WireCell::Configuration &cfg)
Accept a configuration.
const int nticks
std::vector< float > sequence_type
Definition: IWaveform.h:17
static const double fC
Definition: Units.h:113
Definition: Main.h:22
virtual double waveform_start() const
virtual const sequence_type & waveform_samples() const
Json::Value Configuration
Definition: Configuration.h:50
static const double us
Definition: Units.h:105
ElecResponse(int nticks=10000, double t0=0, double gain=14.0 *units::mV/units::fC, double shaping=2 *units::us, double postgain=1.0, double tick=0.5 *units::us)