19 Img::SumSliceBase::~SumSliceBase() { }
42 m_anode = Factory::find_tn<IAnodePlane>(cfg[
"anode"].asString());
50 const double tick = in->tick();
54 const int tbin =
trace->tbin();
55 const int chid =
trace->channel();
57 const auto& charge =
trace->charge();
58 const size_t nq = charge.size();
59 for (
size_t qind=0; qind != nq; ++qind) {
60 const auto q = charge[qind];
64 size_t slicebin = (tbin+qind)/m_tick_span;
65 auto s = svcmap[slicebin];
67 const double start = slicebin *
span;
89 for (
auto sit : svcmap) {
93 out = make_shared<Img::Data::SliceFrame>(islices, in->ident(), in->time());
103 slices.push_back(
nullptr);
112 for (
auto sit : svcmap) {
117 for (
const auto&
a :
s->activity()) {
span(IterB &&b, IterE &&e, Adaptor &&adaptor) -> span< decltype(adaptor(std::forward< IterB >(b))), decltype(adaptor(std::forward< IterE >(e))) >
std::shared_ptr< const IFrame > pointer
SlicingAlgorithm::Slice Slice
std::map< size_t, Data::Slice * > slice_map_t
virtual WireCell::Configuration default_configuration() const
Optional, override to return a hard-coded default configuration.
virtual bool operator()(const input_pointer &depo, output_queue &slices)
The calling signature:
std::vector< pointer > vector
std::deque< output_pointer > output_queue
std::shared_ptr< const IFrame > input_pointer
bool operator()(const input_pointer &in, output_pointer &out)
The calling signature:
std::shared_ptr< const ISliceFrame > output_pointer
std::vector< TCSlice > slices
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
Json::Value Configuration
WIRECELL_FACTORY(SumSlicer, WireCell::Img::SumSlicer, WireCell::IFrameSlicer, WireCell::IConfigurable) WIRECELL_FACTORY(SumSlices
std::shared_ptr< const IFrame > input_pointer
void slice(const IFrame::pointer &in, slice_map_t &sm)
IAnodePlane::pointer m_anode
virtual void configure(const WireCell::Configuration &cfg)
Accept a configuration.