1 #include "art/Framework/Core/EDProducer.h"
2 #include "art/Framework/Core/ModuleMacros.h"
3 #include "art/Framework/Principal/Event.h"
4 #include "art/Framework/Principal/Handle.h"
6 #include "fhiclcpp/types/Atom.h"
7 #include "fhiclcpp/types/Table.h"
8 #include "canvas/Utilities/InputTag.h"
41 Comment(
"Label of recob::TrackTrajectory Collection to be fit")
47 fhicl::Table<MCSFitProducer::Inputs>
inputs {
50 fhicl::Table<TrajectoryMCSFitter::Config>
fitter {
66 void produce(art::Event &
e)
override;
75 : EDProducer{p}, p_(
p), mcsfitter(p_().fitter)
77 inputTag = art::InputTag(p_().inputs().inputLabel());
78 produces<std::vector<recob::MCSFitResult> >();
86 auto output = std::make_unique<std::vector<recob::MCSFitResult> >();
88 art::Handle<std::vector<recob::Track> > inputH;
89 bool ok = e.getByLabel(inputTag,inputH);
90 if (!ok)
throw cet::exception(
"MCSFitProducer") <<
"Cannot find input art::Handle with inputTag " << inputTag;
91 const auto& inputVec = *(inputH.product());
92 for (
const auto&
element : inputVec) {
95 output->emplace_back(std::move(result));
MCSFitProducer & operator=(MCSFitProducer const &)=delete
MCSFitProducer(Parameters const &p)
Producer for TrajectoryMCSFitter.
fhicl::Table< MCSFitProducer::Inputs > inputs
void produce(art::Event &e) override
BEGIN_PROLOG vertical distance to the surface Name
fhicl::Table< TrajectoryMCSFitter::Config > fitter
Provides recob::Track data product.
Class storing the result of the Maximum Likelihood fit of Multiple Coulomb Scattering angles between ...
art::EDProducer::Table< Config > Parameters
BEGIN_PROLOG sequence::SlidingWindowTriggerPatternsOppositeWindows END_PROLOG simSlidingORM6O6 effSlidingORW output
TrajectoryMCSFitter mcsfitter
Class for Maximum Likelihood fit of Multiple Coulomb Scattering angles between segments within a Trac...