1 #ifndef WIRECELLSIGPROC_RESPONSE 2 #define WIRECELLSIGPROC_RESPONSE 43 : current(c), pitchpos(p), wirepos(w) {}
54 std::vector<PathResponse>
paths;
69 : paths(paths), planeid(pid), location(l), pitch(p) {}
98 for (
auto& pr : planes) {
99 if (pr.planeid == ident) {
106 for (
auto& pr : planes) {
107 if (pr.planeid == ident) {
114 FieldResponse() : origin(-999.0), tstart(-999.0), period(0.0), speed(0.0) {}
116 double o,
double t,
double p,
double s)
117 : planes(planes), axis(adir), origin(o), tstart(t), period(p), speed(s) {}
148 double hf_filter(
double freq,
double sigma = 1,
double power = 2,
bool zero_freq_removal =
true);
151 double lf_filter(
double freq,
double tau = 0.02);
156 virtual double operator()(
double time)
const = 0;
176 virtual double operator()(
double time)
const;
195 virtual double operator()(
double time)
const;
200 const double _tick, _mag, _smear, _offset;
204 virtual double operator()(
double time)
const;
212 virtual double operator()(
double freq)
const;
219 HfFilter(
double sigma,
double power,
bool flag);
221 virtual double operator()(
double freq)
const;
double pitch
The pitch distance between neighboring wires.
double tstart
Time at which drift paths begin.
Schema::FieldResponse wire_region_average(const Schema::FieldResponse &fr)
PlaneResponse * plane(int ident)
double period
The sampling period of the response function.
PlaneResponse(const std::vector< PathResponse > &paths, int pid, double l, double p)
A functional object caching gain and shape.
void dump(const char *filename, const FieldResponse &fr)
Binning tbins(nticks, t0, t0+readout_time)
Array::array_xxf as_array(const Schema::PlaneResponse &pr)
PathResponse(const WireCell::Waveform::realseq_t &c, double p, double w)
Schema::FieldResponse average_1D(const Schema::FieldResponse &fr)
double coldelec(double time, double gain=7.8, double shaping=1.0 *units::us)
The cold electronics response function.
double pitchpos
The position in the pitch direction to the starting point of the path.
std::vector< PlaneResponse > planes
List of PlaneResponse objects.
FieldResponse(const std::vector< PlaneResponse > &planes, const WireCell::Vector &adir, double o, double t, double p, double s)
FieldResponse load(const char *filename)
double wirepos
The position along the wire direction to the starting point of the path.
WireCell::Waveform::realseq_t current
An array holding the induced current for the path on the wire-of-interest.
double hf_filter(double freq, double sigma=1, double power=2, bool zero_freq_removal=true)
const PlaneResponse * plane(int ident) const
std::vector< PathResponse > paths
List of PathResponse objects.
Hold info about multiple plane responses in the detector.
int planeid
A numerical identifier for the plane.
Eigen::ArrayXXf array_xxf
A real, 2D array.
double lf_filter(double freq, double tau=0.02)
double speed
The nominal drift speed.