6 #include <torch/torch.h> 49 const vector<vector<size_t>>& idsmap,
50 const vector<NuGraphOutput>& infer_output)
override;
59 for (
auto& v : idsmap)
68 const vector<vector<size_t>>& idsmap,
69 const vector<NuGraphOutput>& infer_output)
73 for (
auto& v : idsmap)
78 for (
size_t p = 0; p <
planes.size(); p++) {
80 const std::vector<float>* x_filter_data = 0;
81 for (
auto& io : infer_output) {
82 if (io.output_name ==
outputname +
planes[p]) x_filter_data = &io.output_vec;
89 torch::TensorOptions options = torch::TensorOptions().dtype(torch::kFloat32);
90 int64_t num_elements = x_filter_data->size();
91 const torch::Tensor
f =
92 torch::from_blob(const_cast<float*>(x_filter_data->data()), {num_elements}, options);
94 for (
int i = 0; i < f.numel(); ++i) {
95 size_t idx = idsmap[p][i];
96 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.