4 #include <torch/torch.h> 47 const vector<vector<size_t>>& idsmap,
48 const vector<NuGraphOutput>& infer_output)
override;
57 for (
auto& v : idsmap)
66 const vector<vector<size_t>>& idsmap,
67 const vector<NuGraphOutput>& infer_output)
71 for (
auto& v : idsmap)
76 for (
size_t p = 0; p <
planes.size(); p++) {
78 const std::vector<float>* x_filter_data = 0;
79 for (
auto& io : infer_output) {
80 if (io.output_name ==
outputname +
planes[p]) x_filter_data = &io.output_vec;
87 torch::TensorOptions options = torch::TensorOptions().dtype(torch::kFloat32);
88 int64_t num_elements = x_filter_data->size();
89 const torch::Tensor
f =
90 torch::from_blob(const_cast<float*>(x_filter_data->data()), {num_elements}, options);
92 for (
int i = 0; i < f.numel(); ++i) {
93 size_t idx = idsmap[p][i];
94 std::array<float, 1> input({f[i].item<
float>()});
void writeToEvent(art::Event &e, const vector< vector< size_t >> &idsmap, const vector< NuGraphOutput > &infer_output) override
Decoder function.
PutHandle< PROD > put(std::unique_ptr< PROD > &&edp, std::string const &instance={})
decltype(auto) constexpr size(T &&obj)
ADL-aware version of std::size.
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
void produces(std::string const &instanceName={}, Persistable const persistable=Persistable::Yes)
FilterDecoder(const fhicl::ParameterSet &pset)
Constructor.
void writeEmptyToEvent(art::Event &e, const vector< vector< size_t >> &idsmap) override
writeEmptyToEvent function
void declareProducts(art::ProducesCollector &collector) override
declareProducts function
virtual ~FilterDecoder() noexcept=default
Virtual Destructor.