23 using std::make_unique;
67 produces<stringvec>();
69 produces<mapvec>(
"mv");
70 produces<AssnsABX_t>(
"mapvec");
72 produces<AssnsABX_t>(
"manymapvec");
75 produces<AssnsVoid_t>(
"mapvec");
77 produces<AssnsVoid_t>(
"manymapvec");
81 produces<AssnsABX_t>();
83 produces<AssnsABX_t>(
"many");
86 produces<AssnsVoid_t>();
88 produces<AssnsVoid_t>(
"many");
92 produces<AssnsABY_t>();
101 auto vui = make_unique<uintvec>(
uintvec{2, 0, 1});
102 auto vs = make_unique<stringvec>(
stringvec{
"one",
"two",
"zero"});
105 auto mvs = make_unique<mapvec>();
108 (*mvs)[
key_t(0)] =
"zero";
109 (*mvs)[
key_t(11)] =
"one";
110 (*mvs)[
key_t(22)] =
"two";
114 vui->emplace_back(4);
115 vs->emplace_back(
"four");
116 (*mvs)[
key_t(33)] =
"four";
125 auto a = std::make_unique<AssnsABX_t>();
126 auto ay = std::make_unique<AssnsABY_t>();
127 auto av = std::make_unique<AssnsVoid_t>();
130 auto b = std::make_unique<AssnsABX_t>();
131 auto bv = std::make_unique<AssnsVoid_t>();
136 auto addS = [&
e](
auto&
x,
145 x->addSingle(p1, p2, td);
146 xv->addSingle(p1, p2);
149 auto addSV = [&
e](
auto&
x,
153 size_t const slot2) {
156 x->addSingle(p1, p2);
159 auto addSS = [&
e](
auto&
x,
167 x->addSingle(p1, p2, td);
172 addS(a, av, vui_pid, 1, vs_pid, 2,
AssnTestData(1, 2,
"A"));
173 addSS(ay, vui_pid, 1, vs_pid, 2,
"A");
175 addS(a, av, vui_pid, 2, vs_pid, 0,
AssnTestData(2, 0,
"B"));
176 addSS(ay, vui_pid, 2, vs_pid, 0,
"B");
178 addS(a, av, vui_pid, 0, vs_pid, 1,
AssnTestData(0, 1,
"C"));
179 addSS(ay, vui_pid, 0, vs_pid, 1,
"C");
182 addSV(av, vui_pid, 3, vs_pid, 3);
185 auto am = make_unique<AssnsABX_t>(*a);
186 auto avm = make_unique<AssnsVoid_t>(*av);
188 addS(am, avm, vui_pid, 1, vs_pid, 2,
AssnTestData(1, 2,
"AA"));
191 addSV(avm, vui_pid, 3, vs_pid, 3);
194 std::unique_ptr<AssnsABX_t> bm;
195 std::unique_ptr<AssnsVoid_t> bvm;
199 addS(b, bv, vui_pid, 1, mvs_pid, 0,
AssnTestData(1, 0,
"A"));
200 addS(b, bv, vui_pid, 2, mvs_pid, 11,
AssnTestData(2, 11,
"B"));
201 addS(b, bv, vui_pid, 0, mvs_pid, 22,
AssnTestData(0, 22,
"C"));
203 addSV(bv, vui_pid, 3, mvs_pid, 33);
205 bm = make_unique<AssnsABX_t>(*b);
206 bvm = make_unique<AssnsVoid_t>(*bv);
207 addS(bm, bvm, vui_pid, 1, mvs_pid, 0,
AssnTestData(1, 0,
"AA"));
209 addSV(bvm, vui_pid, 3, mvs_pid, 33);
213 e.
put(std::move(vui));
214 e.
put(std::move(vs));
216 e.
put(std::move(mvs),
"mv");
217 e.
put(std::move(b),
"mapvec");
219 e.
put(std::move(bm),
"manymapvec");
222 e.
put(std::move(bv),
"mapvec");
224 e.
put(std::move(bvm),
"manymapvec");
230 e.
put(std::move(am),
"many");
233 e.
put(std::move(av));
235 e.
put(std::move(avm),
"many");
239 e.
put(std::move(ay));
ProductID getProductID(std::string const &instance_name="") const
AssnsProducer(fhicl::ParameterSet const &p)
std::string const wantVoid_
void produce(art::Event &e) override
std::vector< std::string > stringvec
auto vector(Vector const &v)
Returns a manipulator which will print the specified array.
#define DEFINE_ART_MODULE(klass)
EDProductGetter const * productGetter(ProductID const pid) const
ProductID put(std::unique_ptr< PROD > &&edp, FullSemantic< Level::Run > const semantic)
bool const wantAmbiguous_