Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
wire-cell-build
gen
inc
WireCellGen
ImpactTransform.h
Go to the documentation of this file.
1
#ifndef WIRECELL_IMPACTTRANSFORM
2
#define WIRECELL_IMPACTTRANSFORM
3
4
#include "
WireCellIface/IPlaneImpactResponse.h
"
5
#include "
WireCellGen/BinnedDiffusion_transform.h
"
6
#include "
WireCellUtil/Array.h
"
7
#include "
WireCellUtil/Logging.h
"
8
9
#include <Eigen/Sparse>
10
11
namespace
WireCell
{
12
namespace
Gen {
13
14
15
/** An ImpactTransform transforms charge on impact positions
16
* into waveforms via 2D FFT.
17
*/
18
class
ImpactTransform
19
{
20
IPlaneImpactResponse::pointer
m_pir
;
21
BinnedDiffusion_transform
&
m_bd
;
22
23
int
m_num_group
;
// how many 2D convolution is needed
24
int
m_num_pad_wire
;
// how many wires are needed to pad on each side
25
std::vector<std::map<int, IImpactResponse::pointer> >
m_vec_map_resp
;
26
std::vector<std::vector<std::tuple<int,int,double> > >
m_vec_vec_charge
;
// ch, time, charge
27
//std::vector<Eigen::SparseMatrix<float>* > m_vec_spmatrix;
28
29
30
std::vector<int>
m_vec_impact
;
31
Array::array_xxf
m_decon_data
;
32
int
m_start_ch
;
33
int
m_end_ch
;
34
int
m_start_tick
;
35
int
m_end_tick
;
36
37
Log::logptr_t
log
;
38
39
public
:
40
41
ImpactTransform
(
IPlaneImpactResponse::pointer
pir,
BinnedDiffusion_transform
& bd);
42
virtual
~ImpactTransform
();
43
44
/// Return the wire's waveform. If the response functions
45
/// are just field response (ie, instantaneous current)
46
/// then the waveforms are expressed as current integrated
47
/// over each sample bin and thus in units of charge. If
48
/// the response functions include electronics response
49
/// then the waveforms are in units of voltage
50
/// representing the sampling of the output of the FEE
51
/// amplifiers.
52
53
// fixme: this should be a forward iterator so that it may cal bd.erase() safely to conserve memory
54
Waveform::realseq_t
waveform
(
int
wire)
const
;
55
56
57
58
};
59
60
}
// Gen
61
}
// WireCell
62
#endif
/* WIRECELL_IMPACTTRANSFORM */
WireCell::Gen::ImpactTransform::m_pir
IPlaneImpactResponse::pointer m_pir
Definition:
ImpactTransform.h:20
WireCell::Waveform::realseq_t
Sequence< real_t > realseq_t
Definition:
Waveform.h:31
Logging.h
WireCell::Gen::ImpactTransform::m_num_pad_wire
int m_num_pad_wire
Definition:
ImpactTransform.h:24
IPlaneImpactResponse.h
WireCell::Gen::ImpactTransform
Definition:
ImpactTransform.h:18
Array.h
WireCell::Gen::ImpactTransform::m_decon_data
Array::array_xxf m_decon_data
Definition:
ImpactTransform.h:31
BinnedDiffusion_transform.h
WireCell::Gen::ImpactTransform::m_vec_impact
std::vector< int > m_vec_impact
Definition:
ImpactTransform.h:30
WireCell::Gen::ImpactTransform::m_start_tick
int m_start_tick
Definition:
ImpactTransform.h:34
WireCell::Interface::pointer
std::shared_ptr< Interface > pointer
Definition:
Interface.h:16
WireCell::Gen::ImpactTransform::m_bd
BinnedDiffusion_transform & m_bd
Definition:
ImpactTransform.h:21
WireCell::Gen::ImpactTransform::m_start_ch
int m_start_ch
Definition:
ImpactTransform.h:32
WireCell::Gen::ImpactTransform::log
Log::logptr_t log
Definition:
ImpactTransform.h:37
WireCell::Log::logptr_t
std::shared_ptr< spdlog::logger > logptr_t
Definition:
Logging.h:24
WireCell
Definition:
Main.h:22
WireCell::Gen::ImpactTransform::m_end_tick
int m_end_tick
Definition:
ImpactTransform.h:35
WireCell::Gen::ImpactTransform::m_end_ch
int m_end_ch
Definition:
ImpactTransform.h:33
WireCell::Gen::ImpactTransform::m_num_group
int m_num_group
Definition:
ImpactTransform.h:23
WireCell::Gen::ImpactTransform::ImpactTransform
ImpactTransform(IPlaneImpactResponse::pointer pir, BinnedDiffusion_transform &bd)
Definition:
ImpactTransform.cxx:9
WireCell::Gen::ImpactTransform::~ImpactTransform
virtual ~ImpactTransform()
Definition:
ImpactTransform.cxx:444
WireCell::Gen::ImpactTransform::m_vec_vec_charge
std::vector< std::vector< std::tuple< int, int, double > > > m_vec_vec_charge
Definition:
ImpactTransform.h:26
WireCell::Gen::ImpactTransform::m_vec_map_resp
std::vector< std::map< int, IImpactResponse::pointer > > m_vec_map_resp
Definition:
ImpactTransform.h:25
WireCell::Gen::ImpactTransform::waveform
Waveform::realseq_t waveform(int wire) const
Definition:
ImpactTransform.cxx:450
WireCell::Gen::BinnedDiffusion_transform
Definition:
BinnedDiffusion_transform.h:27
WireCell::Array::array_xxf
Eigen::ArrayXXf array_xxf
A real, 2D array.
Definition:
Array.h:54
Generated by
1.8.11