Classes | Public Types | Public Member Functions | Private Attributes | List of all members
arttest::MixFilterTestDetail Class Reference

Classes

struct  Config
 

Public Types

using mv_t = cet::map_vector< unsigned int >
 
using mvv_t = mv_t::value_type
 
using mvm_t = mv_t::mapped_type
 
using Parameters = art::MixFilterTable< Config >
 
using mv_t = cet::map_vector< unsigned int >
 
using mvv_t = typename mv_t::value_type
 
using mvm_t = typename mv_t::mapped_type
 
using mv_t = cet::map_vector< unsigned int >
 
using mvv_t = typename mv_t::value_type
 
using mvm_t = typename mv_t::mapped_type
 
using mv_t = cet::map_vector< unsigned int >
 
using mvv_t = typename mv_t::value_type
 
using mvm_t = typename mv_t::mapped_type
 
using mv_t = cet::map_vector< unsigned int >
 
using mvv_t = typename mv_t::value_type
 
using mvm_t = typename mv_t::mapped_type
 

Public Member Functions

 MixFilterTestDetail (Parameters const &p, art::MixHelper &helper)
 
 MixFilterTestDetail (MixFilterTestDetail const &)=delete
 
MixFilterTestDetailoperator= (MixFilterTestDetail const &)=delete
 
 ~MixFilterTestDetail ()
 
void startEvent (art::Event const &)
 
size_t nSecondaries () const
 
void processEventIDs (art::EventIDSequence const &seq)
 
void processEventAuxiliaries (art::EventAuxiliarySequence const &)
 
void finalizeEvent (art::Event &t)
 
void respondToOpenInputFile (art::FileBlock const &fb)
 
void respondToCloseInputFile (art::FileBlock const &fb)
 
void respondToOpenOutputFiles (art::FileBlock const &fb)
 
void respondToCloseOutputFiles (art::FileBlock const &fb)
 
void beginSubRun (art::SubRun const &sr)
 
void endSubRun (art::SubRun &sr)
 
void beginRun (art::Run const &r)
 
void endRun (art::Run &r)
 
template<typename PROD , typename OPROD = PROD>
bool mixByAddition (std::vector< PROD const * > const &, OPROD &, art::PtrRemapper const &)
 
bool aggregateDoubleCollection (std::vector< std::vector< double > const * > const &in, std::vector< double > &out, art::PtrRemapper const &)
 
bool aggregate_map_vector (std::vector< mv_t const * > const &in, mv_t &out, art::PtrRemapper const &)
 
bool mixPtrs (std::vector< std::vector< art::Ptr< double >> const * > const &in, std::vector< art::Ptr< double >> &out, art::PtrRemapper const &remap)
 
bool mixPtrVectors (std::vector< art::PtrVector< double > const * > const &in, art::PtrVector< double > &out, art::PtrRemapper const &remap)
 
bool mixProductWithPtrs (std::vector< arttest::ProductWithPtrs const * > const &in, arttest::ProductWithPtrs &out, art::PtrRemapper const &remap)
 
bool mixmap_vectorPtrs (std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &in, std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &out, art::PtrRemapper const &remap)
 
bool mixSRProduct (std::vector< double const * > const &in, DoubleProduct &out, art::PtrRemapper const &)
 
bool mixRProduct (std::vector< double const * > const &in, DoubleProduct &out, art::PtrRemapper const &)
 
template<typename COLL >
void verifyInSize (COLL const &in) const
 
 MixFilterTestDetail (fhicl::ParameterSet const &p, art::MixHelper &helper)
 
 MixFilterTestDetail (MixFilterTestDetail const &)=delete
 
MixFilterTestDetailoperator= (MixFilterTestDetail const &)=delete
 
 ~MixFilterTestDetail ()
 
void startEvent (art::Event const &)
 
size_t nSecondaries () const
 
void processEventIDs (art::EventIDSequence const &seq)
 
void finalizeEvent (art::Event &t)
 
void respondToOpenInputFile (art::FileBlock const &fb)
 
void respondToCloseInputFile (art::FileBlock const &fb)
 
void respondToOpenOutputFiles (art::FileBlock const &fb)
 
void respondToCloseOutputFiles (art::FileBlock const &fb)
 
template<typename T >
bool mixByAddition (std::vector< T const * > const &, T &, art::PtrRemapper const &)
 
bool aggregateDoubleCollection (std::vector< std::vector< double > const * > const &in, std::vector< double > &out, art::PtrRemapper const &)
 
bool aggregate_map_vector (std::vector< mv_t const * > const &in, mv_t &out, art::PtrRemapper const &)
 
bool mixPtrs (std::vector< std::vector< art::Ptr< double >> const * > const &in, std::vector< art::Ptr< double >> &out, art::PtrRemapper const &remap)
 
bool mixPtrVectors (std::vector< art::PtrVector< double > const * > const &in, art::PtrVector< double > &out, art::PtrRemapper const &remap)
 
bool mixProductWithPtrs (std::vector< arttest::ProductWithPtrs const * > const &in, arttest::ProductWithPtrs &out, art::PtrRemapper const &remap)
 
bool mixmap_vectorPtrs (std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &in, std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &out, art::PtrRemapper const &remap)
 
template<typename COLL >
void verifyInSize (COLL const &in) const
 
 MixFilterTestDetail (fhicl::ParameterSet const &p, art::MixHelper &helper)
 
 MixFilterTestDetail (MixFilterTestDetail const &)=delete
 
MixFilterTestDetailoperator= (MixFilterTestDetail const &)=delete
 
 ~MixFilterTestDetail ()
 
void startEvent (art::Event const &)
 
size_t nSecondaries () const
 
void processEventIDs (art::EventIDSequence const &seq)
 
void finalizeEvent (art::Event &t)
 
void respondToOpenInputFile (art::FileBlock const &fb)
 
void respondToCloseInputFile (art::FileBlock const &fb)
 
void respondToOpenOutputFiles (art::FileBlock const &fb)
 
void respondToCloseOutputFiles (art::FileBlock const &fb)
 
template<typename T >
bool mixByAddition (std::vector< T const * > const &, T &, art::PtrRemapper const &)
 
bool aggregateDoubleCollection (std::vector< std::vector< double > const * > const &in, std::vector< double > &out, art::PtrRemapper const &)
 
bool aggregate_map_vector (std::vector< mv_t const * > const &in, mv_t &out, art::PtrRemapper const &)
 
bool mixPtrs (std::vector< std::vector< art::Ptr< double >> const * > const &in, std::vector< art::Ptr< double >> &out, art::PtrRemapper const &remap)
 
bool mixPtrVectors (std::vector< art::PtrVector< double > const * > const &in, art::PtrVector< double > &out, art::PtrRemapper const &remap)
 
bool mixProductWithPtrs (std::vector< arttest::ProductWithPtrs const * > const &in, arttest::ProductWithPtrs &out, art::PtrRemapper const &remap)
 
bool mixmap_vectorPtrs (std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &in, std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &out, art::PtrRemapper const &remap)
 
template<typename COLL >
void verifyInSize (COLL const &in) const
 
 MixFilterTestDetail (fhicl::ParameterSet const &p, art::MixHelper &helper)
 
 MixFilterTestDetail (MixFilterTestDetail const &)=delete
 
MixFilterTestDetailoperator= (MixFilterTestDetail const &)=delete
 
 ~MixFilterTestDetail ()
 
void startEvent (art::Event const &)
 
size_t nSecondaries () const
 
void processEventIDs (art::EventIDSequence const &seq)
 
void finalizeEvent (art::Event &t)
 
void respondToOpenInputFile (art::FileBlock const &fb)
 
void respondToCloseInputFile (art::FileBlock const &fb)
 
void respondToOpenOutputFiles (art::FileBlock const &fb)
 
void respondToCloseOutputFiles (art::FileBlock const &fb)
 
template<typename T >
bool mixByAddition (std::vector< T const * > const &, T &, art::PtrRemapper const &)
 
bool aggregateDoubleCollection (std::vector< std::vector< double > const * > const &in, std::vector< double > &out, art::PtrRemapper const &)
 
bool aggregate_map_vector (std::vector< mv_t const * > const &in, mv_t &out, art::PtrRemapper const &)
 
bool mixPtrs (std::vector< std::vector< art::Ptr< double >> const * > const &in, std::vector< art::Ptr< double >> &out, art::PtrRemapper const &remap)
 
bool mixPtrVectors (std::vector< art::PtrVector< double > const * > const &in, art::PtrVector< double > &out, art::PtrRemapper const &remap)
 
bool mixProductWithPtrs (std::vector< arttest::ProductWithPtrs const * > const &in, arttest::ProductWithPtrs &out, art::PtrRemapper const &remap)
 
bool mixmap_vectorPtrs (std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &in, std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &out, art::PtrRemapper const &remap)
 
template<typename COLL >
void verifyInSize (COLL const &in) const
 
 MixFilterTestDetail (fhicl::ParameterSet const &p, art::MixHelper &helper)
 
 MixFilterTestDetail (MixFilterTestDetail const &)=delete
 
MixFilterTestDetailoperator= (MixFilterTestDetail const &)=delete
 
 ~MixFilterTestDetail ()
 
void startEvent (art::Event const &)
 
size_t nSecondaries () const
 
void processEventIDs (art::EventIDSequence const &seq)
 
void finalizeEvent (art::Event &t)
 
void respondToOpenInputFile (art::FileBlock const &fb)
 
void respondToCloseInputFile (art::FileBlock const &fb)
 
void respondToOpenOutputFiles (art::FileBlock const &fb)
 
void respondToCloseOutputFiles (art::FileBlock const &fb)
 
template<typename T >
bool mixByAddition (std::vector< T const * > const &, T &, art::PtrRemapper const &)
 
bool aggregateDoubleCollection (std::vector< std::vector< double > const * > const &in, std::vector< double > &out, art::PtrRemapper const &)
 
bool aggregate_map_vector (std::vector< mv_t const * > const &in, mv_t &out, art::PtrRemapper const &)
 
bool mixPtrs (std::vector< std::vector< art::Ptr< double >> const * > const &in, std::vector< art::Ptr< double >> &out, art::PtrRemapper const &remap)
 
bool mixPtrVectors (std::vector< art::PtrVector< double > const * > const &in, art::PtrVector< double > &out, art::PtrRemapper const &remap)
 
bool mixProductWithPtrs (std::vector< arttest::ProductWithPtrs const * > const &in, arttest::ProductWithPtrs &out, art::PtrRemapper const &remap)
 
bool mixmap_vectorPtrs (std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &in, std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &out, art::PtrRemapper const &remap)
 
template<typename COLL >
void verifyInSize (COLL const &in) const
 

Private Attributes

size_t const nSecondaries_
 
bool const testRemapper_
 
std::vector< size_t > doubleVectorOffsets_ {}
 
std::vector< size_t > map_vectorOffsets_ {}
 
std::unique_ptr< art::EventIDSequenceeIDs_ {}
 
bool startEvent_called_ {false}
 
bool processEventIDs_called_ {false}
 
bool processEventAuxiliaries_called_ {false}
 
size_t beginSubRunCounter_ {}
 
size_t endSubRunCounter_ {}
 
size_t beginRunCounter_ {}
 
size_t endRunCounter_ {}
 
int currentEvent_ {-1}
 
bool const testZeroSecondaries_
 
bool const testPtrFailure_
 
bool const testEventOrdering_
 
bool const testNoLimEventDupes_
 
bool const compactMissingProducts_
 
size_t const expectedRespondFunctionCalls_
 
art::MixHelper::Mode const readMode_
 
size_t respondFunctionsSeen_ {}
 
std::vector< int > allEvents_ {}
 
std::unordered_set< int > uniqueEvents_ {}
 
double subRunInfo_ {}
 
double runInfo_ {}
 

Detailed Description

Definition at line 87 of file MixFilterTest_module.cc.

Member Typedef Documentation

Definition at line 87 of file MixFilterTestETS_module.cc.

Definition at line 87 of file MixFilterTestETSc_module.cc.

Definition at line 87 of file MixFilterTestNoStartEvent_module.cc.

Definition at line 87 of file MixFilterTestOldStartEvent_module.cc.

Definition at line 89 of file MixFilterTest_module.cc.

Definition at line 89 of file MixFilterTestOldStartEvent_module.cc.

Definition at line 89 of file MixFilterTestETSc_module.cc.

Definition at line 89 of file MixFilterTestNoStartEvent_module.cc.

Definition at line 89 of file MixFilterTestETS_module.cc.

Definition at line 91 of file MixFilterTest_module.cc.

Definition at line 88 of file MixFilterTestETS_module.cc.

Definition at line 88 of file MixFilterTestOldStartEvent_module.cc.

Definition at line 88 of file MixFilterTestNoStartEvent_module.cc.

Definition at line 88 of file MixFilterTestETSc_module.cc.

Definition at line 90 of file MixFilterTest_module.cc.

Definition at line 109 of file MixFilterTest_module.cc.

Constructor & Destructor Documentation

arttest::MixFilterTestDetail::MixFilterTestDetail ( Parameters const &  p,
art::MixHelper helper 
)

Definition at line 265 of file MixFilterTest_module.cc.

267  : nSecondaries_{p().numSecondaries()}
268  , testRemapper_{p().testRemapper()}
269  , testZeroSecondaries_{p().testZeroSecondaries()}
270  , testPtrFailure_{p().testPtrFailure()}
271  , testEventOrdering_{p().testEventOrdering()}
272  , testNoLimEventDupes_{p().testNoLimEventDupes()}
273  , compactMissingProducts_{p().compactMissingProducts()}
274  , expectedRespondFunctionCalls_{p().expectedRespondFunctionCalls()}
275  , readMode_{helper.readMode()}
276 {
277  std::vector<std::string> fnToProvide;
278  if (p().fileNamesToProvide(fnToProvide)) {
279  std::cerr << "Calling registerSecondaryFileNameProvider.\n";
280  std::copy(fnToProvide.cbegin(),
281  fnToProvide.cend(),
282  std::ostream_iterator<std::string>(std::cerr, ", "));
283  std::cerr << "\n";
285  SecondaryFileNameProvider{move(fnToProvide)});
286  }
287 
288  // Test createEngine when it should have already been created
290  helper.createEngine(123456);
291  helper.createEngine(123456, "HepJamesRandom");
292  helper.createEngine(123456, "HepJamesRandom", "");
293  // Cannot assign empty label to different type
294  BOOST_REQUIRE_THROW(helper.createEngine(123456, "MTwistEngine"),
296  // Cannot specify type that is not supported.
297  BOOST_REQUIRE_THROW(helper.createEngine(123456, "HEPJamesRandom", "Edna"),
299  }
300 
301  auto const mixProducerLabel = p().mixProducerLabel();
302  helper.produces<std::string>(); // "Bookkeeping"
303  helper.produces<art::EventIDSequence>(); // "Bookkeeping"
304  helper.produces<double, art::InSubRun>(); // SubRun product test.
305  helper.produces<double, art::InRun>(); // Run product test.
306  helper.declareMixOp(art::InputTag{mixProducerLabel, "doubleLabel"},
307  &MixFilterTestDetail::mixByAddition<double>,
308  *this);
309  helper.declareMixOp(art::InputTag{mixProducerLabel, "IntProductLabel"},
310  &MixFilterTestDetail::mixByAddition<arttest::IntProduct>,
311  *this);
312  helper.declareMixOp(art::InputTag{mixProducerLabel, "stringLabel", "SWRITE"},
313  &MixFilterTestDetail::mixByAddition<std::string>,
314  *this);
315  helper.declareMixOp(art::InputTag{mixProducerLabel, "doubleCollectionLabel"},
317  *this);
318  helper.declareMixOp(art::InputTag{mixProducerLabel, "doubleVectorPtrLabel"},
320  *this);
321 #ifndef ART_NO_MIX_PTRVECTOR
322  helper.declareMixOp(art::InputTag{mixProducerLabel, "doublePtrVectorLabel"},
324  *this);
325 #endif
326  helper.declareMixOp(art::InputTag{mixProducerLabel, "ProductWithPtrsLabel"},
328  *this);
329  helper.declareMixOp(art::InputTag{mixProducerLabel, "mapVectorLabel"},
331  *this);
332  helper.declareMixOp(art::InputTag{mixProducerLabel, "intVectorPtrLabel"},
334  *this);
335  art::MixFunc<IntProduct> mixfunc(
336  [this](std::vector<IntProduct const*> const& in,
337  IntProduct,
338  art::PtrRemapper const&) -> bool {
339  auto const sz = in.size();
340  auto expected = nSecondaries_;
342  expected -= std::count_if(
343  eIDs_->begin(), eIDs_->end(), [](art::EventID const& eID) {
344  return (eID.event() % 100) == 0;
345  });
346  }
347  for (auto i = 0ul; i < sz; ++i) {
348  if (!compactMissingProducts_ && ((*eIDs_)[i].event() % 100) == 0) {
349  // Product missing
350  BOOST_REQUIRE(in[i] == nullptr);
351  } else {
352  BOOST_REQUIRE(in[i] != nullptr);
353  }
354  }
355  BOOST_REQUIRE_EQUAL(
356  sz, (currentEvent_ == 2 && testZeroSecondaries_) ? 0ul : expected);
357  return false;
358  });
359  helper.declareMixOp(
360  art::InputTag{mixProducerLabel, "SpottyProductLabel"}, mixfunc, false);
361  // SubRun mixing.
362  helper.declareMixOp<art::InSubRun>(
363  art::InputTag{mixProducerLabel, "DoubleSRLabel"},
364  "SRInfo",
366  *this);
367  // Run mixing.
368  helper.declareMixOp<art::InRun>(
369  art::InputTag{mixProducerLabel, "DoubleRLabel"},
370  "RInfo",
372  *this);
373 }
void registerSecondaryFileNameProvider(ProviderFunc_ func)
Definition: MixHelper.cc:146
std::vector< EventID > EventIDSequence
Definition: MixTypes.h:22
bool mixPtrs(std::vector< std::vector< art::Ptr< double >> const * > const &in, std::vector< art::Ptr< double >> &out, art::PtrRemapper const &remap)
const char expected[]
Definition: Exception_t.cc:22
std::string string
Definition: nybbler.cc:12
bool mixPtrVectors(std::vector< art::PtrVector< double > const * > const &in, art::PtrVector< double > &out, art::PtrRemapper const &remap)
bool mixmap_vectorPtrs(std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &in, std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &out, art::PtrRemapper const &remap)
void produces(std::string const &instanceName={})
Definition: MixHelper.h:455
base_engine_t & createEngine(seed_t seed)
Definition: MixHelper.cc:157
bool aggregateDoubleCollection(std::vector< std::vector< double > const * > const &in, std::vector< double > &out, art::PtrRemapper const &)
void declareMixOp(InputTag const &inputTag, MixFunc< PROD, OPROD > mixFunc, bool outputProduct=true)
Definition: MixHelper.h:471
std::function< bool(std::vector< PROD const * > const &, OPROD &, PtrRemapper const &)> MixFunc
Definition: MixTypes.h:17
art::MixHelper::Mode const readMode_
BOOST_REQUIRE(inFile)
bool mixRProduct(std::vector< double const * > const &in, DoubleProduct &out, art::PtrRemapper const &)
std::unique_ptr< art::EventIDSequence > eIDs_
p
Definition: test.py:228
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
bool aggregate_map_vector(std::vector< mv_t const * > const &in, mv_t &out, art::PtrRemapper const &)
Mode readMode() const
Definition: MixHelper.h:447
T copy(T const &v)
bool mixSRProduct(std::vector< double const * > const &in, DoubleProduct &out, art::PtrRemapper const &)
bool mixProductWithPtrs(std::vector< arttest::ProductWithPtrs const * > const &in, arttest::ProductWithPtrs &out, art::PtrRemapper const &remap)
cet::coded_exception< error, detail::translate > exception
Definition: exception.h:33
arttest::MixFilterTestDetail::MixFilterTestDetail ( MixFilterTestDetail const &  )
delete
arttest::MixFilterTestDetail::~MixFilterTestDetail ( )

Definition at line 375 of file MixFilterTest_module.cc.

376 {
378  testNoLimEventDupes_ == false) {
379  // Require dupes across the job.
380  BOOST_CHECK_GT(allEvents_.size(), uniqueEvents_.size());
382  // Require no dupes across the job.
383  BOOST_CHECK_EQUAL(allEvents_.size(), uniqueEvents_.size());
384  }
386  BOOST_CHECK_EQUAL(beginSubRunCounter_, 1ull);
387  BOOST_CHECK_EQUAL(endSubRunCounter_, 1ull);
388  BOOST_CHECK_EQUAL(beginRunCounter_, 1ull);
389  BOOST_CHECK_EQUAL(endRunCounter_, 1ull);
390 }
art::MixHelper::Mode const readMode_
std::unordered_set< int > uniqueEvents_
arttest::MixFilterTestDetail::MixFilterTestDetail ( fhicl::ParameterSet const &  p,
art::MixHelper helper 
)

Definition at line 212 of file MixFilterTestETS_module.cc.

214  : nSecondaries_(p.get<size_t>("numSecondaries", 1))
215  , testRemapper_(p.get<bool>("testRemapper", true))
218  , eIDs_()
219  , startEvent_called_(false)
220  , processEventIDs_called_(false)
221  , currentEvent_(-1)
222  , testZeroSecondaries_(p.get<bool>("testZeroSecondaries", false))
223  , testPtrFailure_(p.get<bool>("testPtrFailure", false))
224  , testEventOrdering_(p.get<bool>("testEventOrdering", false))
225  , testNoLimEventDupes_(p.get<bool>("testNoLimEventDupes", false))
226  , compactMissingProducts_(p.get<bool>("compactMissingProducts", false))
227  , readMode_(helper.readMode())
229  , allEvents_()
230  , uniqueEvents_()
231 {
232  std::vector<std::string> fnToProvide;
233  if (p.get_if_present("fileNamesToProvide", fnToProvide)) {
234  std::cerr << "Calling registerSecondaryFileNameProvider.\n";
235  std::copy(fnToProvide.cbegin(),
236  fnToProvide.cend(),
237  std::ostream_iterator<std::string>(std::cerr, ", "));
238  std::cerr << "\n";
240  SecondaryFileNameProvider(std::move(fnToProvide)));
241  }
242 
243  std::string mixProducerLabel(
244  p.get<std::string>("mixProducerLabel", "mixProducer"));
245  helper.produces<std::string>(); // "Bookkeeping"
246  helper.produces<art::EventIDSequence>(); // "Bookkeeping"
247  helper.declareMixOp(art::InputTag(mixProducerLabel, "doubleLabel"),
248  &MixFilterTestDetail::mixByAddition<double>,
249  *this);
250  helper.declareMixOp(art::InputTag(mixProducerLabel, "IntProductLabel"),
251  &MixFilterTestDetail::mixByAddition<arttest::IntProduct>,
252  *this);
253  helper.declareMixOp(art::InputTag(mixProducerLabel, "stringLabel", "SWRITE"),
254  &MixFilterTestDetail::mixByAddition<std::string>,
255  *this);
256  helper.declareMixOp(art::InputTag(mixProducerLabel, "doubleCollectionLabel"),
258  *this);
259  helper.declareMixOp(art::InputTag(mixProducerLabel, "doubleVectorPtrLabel"),
261  *this);
262 #ifndef ART_NO_MIX_PTRVECTOR
263  helper.declareMixOp(art::InputTag(mixProducerLabel, "doublePtrVectorLabel"),
265  *this);
266 #endif
267  helper.declareMixOp(art::InputTag(mixProducerLabel, "ProductWithPtrsLabel"),
269  *this);
270  helper.declareMixOp(art::InputTag(mixProducerLabel, "mapVectorLabel"),
272  *this);
273  helper.declareMixOp(art::InputTag(mixProducerLabel, "intVectorPtrLabel"),
275  *this);
276  std::function<bool(std::vector<IntProduct const*> const&,
277  IntProduct&,
278  art::PtrRemapper const&)>
279  mixfunc([this](std::vector<IntProduct const*> const& in,
280  IntProduct,
281  art::PtrRemapper const&) -> bool {
282  auto const sz = in.size();
283  auto expected = nSecondaries_;
285  expected -= std::count_if(
286  eIDs_->begin(), eIDs_->end(), [](art::EventID const& eID) {
287  return (eID.event() % 100) == 0;
288  });
289  }
290  for (auto i = 0ul; i < sz; ++i) {
291  if (!compactMissingProducts_ && ((*eIDs_)[i].event() % 100) == 0) {
292  // Product missing
293  BOOST_REQUIRE(in[i] == nullptr);
294  } else {
295  BOOST_REQUIRE(in[i] != nullptr);
296  }
297  }
298  BOOST_REQUIRE_EQUAL(
299  sz, (currentEvent_ == 2 && testZeroSecondaries_) ? 0ul : expected);
300  return false;
301  });
302  helper.declareMixOp(
303  art::InputTag(mixProducerLabel, "SpottyProductLabel"), mixfunc, false);
304 }
void registerSecondaryFileNameProvider(ProviderFunc_ func)
Definition: MixHelper.cc:146
std::vector< EventID > EventIDSequence
Definition: MixTypes.h:22
bool mixPtrs(std::vector< std::vector< art::Ptr< double >> const * > const &in, std::vector< art::Ptr< double >> &out, art::PtrRemapper const &remap)
const char expected[]
Definition: Exception_t.cc:22
std::string string
Definition: nybbler.cc:12
bool mixPtrVectors(std::vector< art::PtrVector< double > const * > const &in, art::PtrVector< double > &out, art::PtrRemapper const &remap)
bool mixmap_vectorPtrs(std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &in, std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &out, art::PtrRemapper const &remap)
void produces(std::string const &instanceName={})
Definition: MixHelper.h:455
bool aggregateDoubleCollection(std::vector< std::vector< double > const * > const &in, std::vector< double > &out, art::PtrRemapper const &)
void declareMixOp(InputTag const &inputTag, MixFunc< PROD, OPROD > mixFunc, bool outputProduct=true)
Definition: MixHelper.h:471
std::vector< size_t > map_vectorOffsets_
art::MixHelper::Mode const readMode_
BOOST_REQUIRE(inFile)
std::unique_ptr< art::EventIDSequence > eIDs_
std::unordered_set< int > uniqueEvents_
p
Definition: test.py:228
bool aggregate_map_vector(std::vector< mv_t const * > const &in, mv_t &out, art::PtrRemapper const &)
Mode readMode() const
Definition: MixHelper.h:447
std::vector< size_t > doubleVectorOffsets_
T copy(T const &v)
bool mixProductWithPtrs(std::vector< arttest::ProductWithPtrs const * > const &in, arttest::ProductWithPtrs &out, art::PtrRemapper const &remap)
arttest::MixFilterTestDetail::MixFilterTestDetail ( MixFilterTestDetail const &  )
delete
arttest::MixFilterTestDetail::~MixFilterTestDetail ( )
arttest::MixFilterTestDetail::MixFilterTestDetail ( fhicl::ParameterSet const &  p,
art::MixHelper helper 
)
arttest::MixFilterTestDetail::MixFilterTestDetail ( MixFilterTestDetail const &  )
delete
arttest::MixFilterTestDetail::~MixFilterTestDetail ( )
arttest::MixFilterTestDetail::MixFilterTestDetail ( fhicl::ParameterSet const &  p,
art::MixHelper helper 
)
arttest::MixFilterTestDetail::MixFilterTestDetail ( MixFilterTestDetail const &  )
delete
arttest::MixFilterTestDetail::~MixFilterTestDetail ( )
arttest::MixFilterTestDetail::MixFilterTestDetail ( fhicl::ParameterSet const &  p,
art::MixHelper helper 
)
arttest::MixFilterTestDetail::MixFilterTestDetail ( MixFilterTestDetail const &  )
delete
arttest::MixFilterTestDetail::~MixFilterTestDetail ( )

Member Function Documentation

bool arttest::MixFilterTestDetail::aggregate_map_vector ( std::vector< mv_t const * > const &  in,
mv_t out,
art::PtrRemapper const &   
)
bool arttest::MixFilterTestDetail::aggregate_map_vector ( std::vector< mv_t const * > const &  in,
mv_t out,
art::PtrRemapper const &   
)
bool arttest::MixFilterTestDetail::aggregate_map_vector ( std::vector< mv_t const * > const &  in,
mv_t out,
art::PtrRemapper const &   
)
bool arttest::MixFilterTestDetail::aggregate_map_vector ( std::vector< mv_t const * > const &  in,
mv_t out,
art::PtrRemapper const &   
)
bool arttest::MixFilterTestDetail::aggregate_map_vector ( std::vector< mv_t const * > const &  in,
mv_t out,
art::PtrRemapper const &   
)

Definition at line 587 of file MixFilterTest_module.cc.

591 {
592  verifyInSize(in);
594  return true; // Always want product in event.
595 }
void flattenCollections(std::vector< COLLECTION const * > const &in, COLLECTION &out)
void verifyInSize(COLL const &in) const
std::vector< size_t > map_vectorOffsets_
bool arttest::MixFilterTestDetail::aggregateDoubleCollection ( std::vector< std::vector< double > const * > const &  in,
std::vector< double > &  out,
art::PtrRemapper const &   
)
bool arttest::MixFilterTestDetail::aggregateDoubleCollection ( std::vector< std::vector< double > const * > const &  in,
std::vector< double > &  out,
art::PtrRemapper const &   
)
bool arttest::MixFilterTestDetail::aggregateDoubleCollection ( std::vector< std::vector< double > const * > const &  in,
std::vector< double > &  out,
art::PtrRemapper const &   
)
bool arttest::MixFilterTestDetail::aggregateDoubleCollection ( std::vector< std::vector< double > const * > const &  in,
std::vector< double > &  out,
art::PtrRemapper const &   
)
bool arttest::MixFilterTestDetail::aggregateDoubleCollection ( std::vector< std::vector< double > const * > const &  in,
std::vector< double > &  out,
art::PtrRemapper const &   
)

Definition at line 576 of file MixFilterTest_module.cc.

580 {
581  verifyInSize(in);
583  return true; // Always want product in event.
584 }
void flattenCollections(std::vector< COLLECTION const * > const &in, COLLECTION &out)
void verifyInSize(COLL const &in) const
std::vector< size_t > doubleVectorOffsets_
void arttest::MixFilterTestDetail::beginRun ( art::Run const &  r)

Definition at line 547 of file MixFilterTest_module.cc.

void arttest::MixFilterTestDetail::beginSubRun ( art::SubRun const &  sr)

Definition at line 533 of file MixFilterTest_module.cc.

void arttest::MixFilterTestDetail::endRun ( art::Run r)

Definition at line 554 of file MixFilterTest_module.cc.

555 {
556  ++endRunCounter_;
557  r.put(std::make_unique<double>(runInfo_));
558 }
ProductID put(std::unique_ptr< PROD > &&edp, FullSemantic< Level::Run > const semantic)
Definition: DataViewImpl.h:692
void arttest::MixFilterTestDetail::endSubRun ( art::SubRun sr)

Definition at line 540 of file MixFilterTest_module.cc.

541 {
543  sr.put(std::make_unique<double>(subRunInfo_));
544 }
ProductID put(std::unique_ptr< PROD > &&edp, FullSemantic< Level::Run > const semantic)
Definition: DataViewImpl.h:692
void arttest::MixFilterTestDetail::finalizeEvent ( art::Event t)
void arttest::MixFilterTestDetail::finalizeEvent ( art::Event t)
void arttest::MixFilterTestDetail::finalizeEvent ( art::Event t)
void arttest::MixFilterTestDetail::finalizeEvent ( art::Event t)
void arttest::MixFilterTestDetail::finalizeEvent ( art::Event t)

Definition at line 494 of file MixFilterTest_module.cc.

495 {
496  e.put(std::make_unique<std::string>("BlahBlahBlah"));
497  e.put(std::move(eIDs_));
498 #ifndef ART_TEST_NO_STARTEVENT
500  startEvent_called_ = false;
501 #endif
503  processEventIDs_called_ = false;
506 }
const double e
BOOST_REQUIRE(inFile)
std::unique_ptr< art::EventIDSequence > eIDs_
template<typename T >
bool arttest::MixFilterTestDetail::mixByAddition ( std::vector< T const * > const &  ,
T &  ,
art::PtrRemapper const &   
)
template<typename T >
bool arttest::MixFilterTestDetail::mixByAddition ( std::vector< T const * > const &  in,
T &  out,
art::PtrRemapper const &   
)

Definition at line 442 of file MixFilterTestETS_module.cc.

445 {
446  verifyInSize(in);
447  for (auto const* prod : in) {
448  if (prod != nullptr) {
449  out += *prod;
450  }
451  }
452  return true; // Always want product in event.
453 }
void verifyInSize(COLL const &in) const
template<typename T >
bool arttest::MixFilterTestDetail::mixByAddition ( std::vector< T const * > const &  ,
T &  ,
art::PtrRemapper const &   
)
template<typename T >
bool arttest::MixFilterTestDetail::mixByAddition ( std::vector< T const * > const &  ,
T &  ,
art::PtrRemapper const &   
)
template<typename PROD , typename OPROD >
bool arttest::MixFilterTestDetail::mixByAddition ( std::vector< PROD const * > const &  in,
OPROD &  out,
art::PtrRemapper const &   
)

Definition at line 562 of file MixFilterTest_module.cc.

565 {
566  verifyInSize(in);
567  for (auto const* prod : in) {
568  if (prod != nullptr) {
569  out += *prod;
570  }
571  }
572  return true; // Always want product in event.
573 }
void verifyInSize(COLL const &in) const
bool arttest::MixFilterTestDetail::mixmap_vectorPtrs ( std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &  in,
std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixmap_vectorPtrs ( std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &  in,
std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixmap_vectorPtrs ( std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &  in,
std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixmap_vectorPtrs ( std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &  in,
std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixmap_vectorPtrs ( std::vector< std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> const * > const &  in,
std::vector< art::Ptr< cet::map_vector< unsigned int >::value_type >> &  out,
art::PtrRemapper const &  remap 
)

Definition at line 651 of file MixFilterTest_module.cc.

656 {
657  verifyInSize(in);
658  remap(in, std::back_inserter(out), map_vectorOffsets_);
659  return true; // Always want product in event.
660 }
void verifyInSize(COLL const &in) const
std::vector< size_t > map_vectorOffsets_
bool arttest::MixFilterTestDetail::mixProductWithPtrs ( std::vector< arttest::ProductWithPtrs const * > const &  in,
arttest::ProductWithPtrs out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixProductWithPtrs ( std::vector< arttest::ProductWithPtrs const * > const &  in,
arttest::ProductWithPtrs out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixProductWithPtrs ( std::vector< arttest::ProductWithPtrs const * > const &  in,
arttest::ProductWithPtrs out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixProductWithPtrs ( std::vector< arttest::ProductWithPtrs const * > const &  in,
arttest::ProductWithPtrs out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixProductWithPtrs ( std::vector< arttest::ProductWithPtrs const * > const &  in,
arttest::ProductWithPtrs out,
art::PtrRemapper const &  remap 
)

Definition at line 625 of file MixFilterTest_module.cc.

629 {
630  verifyInSize(in);
631 #ifndef ART_NO_MIX_PTRVECTOR
632  remap(in,
633  std::back_inserter(out.ptrVectorDouble()),
636 #endif
637  remap(in,
638  std::back_inserter(out.vectorPtrDouble()),
641  // Throw-away object to test non-standard remap interface.
643  remap(in,
644  std::back_inserter(tmp.vectorPtrDouble()),
647  return true; // Always want product in event.
648 }
art::PtrVector< double > const & ptrVectorDouble() const
std::vector< art::Ptr< double > > const & vectorPtrDouble() const
void verifyInSize(COLL const &in) const
std::vector< art::Ptr< double > > vpd_
std::vector< size_t > doubleVectorOffsets_
bool arttest::MixFilterTestDetail::mixPtrs ( std::vector< std::vector< art::Ptr< double >> const * > const &  in,
std::vector< art::Ptr< double >> &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixPtrs ( std::vector< std::vector< art::Ptr< double >> const * > const &  in,
std::vector< art::Ptr< double >> &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixPtrs ( std::vector< std::vector< art::Ptr< double >> const * > const &  in,
std::vector< art::Ptr< double >> &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixPtrs ( std::vector< std::vector< art::Ptr< double >> const * > const &  in,
std::vector< art::Ptr< double >> &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixPtrs ( std::vector< std::vector< art::Ptr< double >> const * > const &  in,
std::vector< art::Ptr< double >> &  out,
art::PtrRemapper const &  remap 
)

Definition at line 598 of file MixFilterTest_module.cc.

602 {
603  verifyInSize(in);
604  remap(in, std::back_inserter(out), doubleVectorOffsets_);
605  if (testPtrFailure_) {
606  BOOST_REQUIRE_THROW(*out.front(), art::Exception);
607  }
608  return true; // Always want product in event.
609 }
void verifyInSize(COLL const &in) const
cet::coded_exception< errors::ErrorCodes, ExceptionDetail::translate > Exception
Definition: Exception.h:66
std::vector< size_t > doubleVectorOffsets_
bool arttest::MixFilterTestDetail::mixPtrVectors ( std::vector< art::PtrVector< double > const * > const &  in,
art::PtrVector< double > &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixPtrVectors ( std::vector< art::PtrVector< double > const * > const &  in,
art::PtrVector< double > &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixPtrVectors ( std::vector< art::PtrVector< double > const * > const &  in,
art::PtrVector< double > &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixPtrVectors ( std::vector< art::PtrVector< double > const * > const &  in,
art::PtrVector< double > &  out,
art::PtrRemapper const &  remap 
)
bool arttest::MixFilterTestDetail::mixPtrVectors ( std::vector< art::PtrVector< double > const * > const &  in,
art::PtrVector< double > &  out,
art::PtrRemapper const &  remap 
)

Definition at line 613 of file MixFilterTest_module.cc.

617 {
618  verifyInSize(in);
619  remap(in, std::back_inserter(out), doubleVectorOffsets_);
620  return true; // Always want product in event.
621 }
void verifyInSize(COLL const &in) const
std::vector< size_t > doubleVectorOffsets_
bool arttest::MixFilterTestDetail::mixRProduct ( std::vector< double const * > const &  in,
DoubleProduct out,
art::PtrRemapper const &  remap 
)

Definition at line 673 of file MixFilterTest_module.cc.

676 {
677  mixByAddition(in, out, remap);
678  runInfo_ += out.value;
679  return true;
680 }
bool mixByAddition(std::vector< PROD const * > const &, OPROD &, art::PtrRemapper const &)
bool arttest::MixFilterTestDetail::mixSRProduct ( std::vector< double const * > const &  in,
DoubleProduct out,
art::PtrRemapper const &  remap 
)

Definition at line 663 of file MixFilterTest_module.cc.

666 {
667  mixByAddition(in, out, remap);
668  subRunInfo_ += out.value;
669  return true;
670 }
bool mixByAddition(std::vector< PROD const * > const &, OPROD &, art::PtrRemapper const &)
size_t arttest::MixFilterTestDetail::nSecondaries ( ) const
size_t arttest::MixFilterTestDetail::nSecondaries ( ) const
size_t arttest::MixFilterTestDetail::nSecondaries ( ) const
size_t arttest::MixFilterTestDetail::nSecondaries ( ) const
size_t arttest::MixFilterTestDetail::nSecondaries ( ) const
MixFilterTestDetail& arttest::MixFilterTestDetail::operator= ( MixFilterTestDetail const &  )
delete
MixFilterTestDetail& arttest::MixFilterTestDetail::operator= ( MixFilterTestDetail const &  )
delete
MixFilterTestDetail& arttest::MixFilterTestDetail::operator= ( MixFilterTestDetail const &  )
delete
MixFilterTestDetail& arttest::MixFilterTestDetail::operator= ( MixFilterTestDetail const &  )
delete
MixFilterTestDetail& arttest::MixFilterTestDetail::operator= ( MixFilterTestDetail const &  )
delete
void arttest::MixFilterTestDetail::processEventAuxiliaries ( art::EventAuxiliarySequence const &  seq)

Definition at line 476 of file MixFilterTest_module.cc.

478 {
480  // We only need a very simple test to check that there actually
481  // are auxiliaries in the sequence. No need for full coverage,
482  // the event ids test takes care of that.
484  BOOST_REQUIRE_EQUAL(seq.size(), nSecondaries_);
485  size_t offset = 1;
486  for (auto const& val : seq) {
487  BOOST_REQUIRE_EQUAL(val.event(), offset);
488  ++offset;
489  }
490  }
491 }
art::MixHelper::Mode const readMode_
void arttest::MixFilterTestDetail::processEventIDs ( art::EventIDSequence const &  seq)
void arttest::MixFilterTestDetail::processEventIDs ( art::EventIDSequence const &  seq)
void arttest::MixFilterTestDetail::processEventIDs ( art::EventIDSequence const &  seq)
void arttest::MixFilterTestDetail::processEventIDs ( art::EventIDSequence const &  seq)
void arttest::MixFilterTestDetail::processEventIDs ( art::EventIDSequence const &  seq)

Definition at line 415 of file MixFilterTest_module.cc.

416 {
417 #ifdef ART_TEST_NO_STARTEVENT
418  // Need to deal with this here
419  ++currentEvent_;
420 #endif
422  eIDs_ = std::make_unique<art::EventIDSequence>(seq);
423  if (!testEventOrdering_) {
424  return;
425  }
426  switch (readMode_) {
428  auto count(1);
429  for (auto const& eid : seq) {
430  BOOST_REQUIRE_EQUAL(eid.event(),
431  currentEvent_ * nSecondaries() + count++);
432  }
433  } break;
435  // We should have a duplicate within the secondaries.
436  std::unordered_set<int> s;
437  cet::transform_all(seq,
438  std::inserter(s, s.begin()),
439  [](art::EventID const& eid) { return eid.event(); });
440  BOOST_CHECK_GT(seq.size(), s.size());
441  } break;
443  if (testNoLimEventDupes_) {
444  // We should have no duplicate within the secondaries.
445  std::unordered_set<int> s;
447  seq, std::inserter(s, s.begin()), [](art::EventID const& eid) {
448  return eid.event() + eid.subRun() * 100 + (eid.run() - 1) * 500;
449  });
450  BOOST_CHECK_EQUAL(seq.size(), s.size());
451  } else { // Require dupes over 2 events.
452  auto checkpoint(allEvents_.size());
454  seq, std::back_inserter(allEvents_), [](art::EventID const& eid) {
455  return eid.event() + eid.subRun() * 100 + (eid.run() - 1) * 500;
456  });
457  uniqueEvents_.insert(allEvents_.cbegin() + checkpoint,
458  allEvents_.cend());
459  // Test at end job for duplicates.
460  }
461  break;
463  auto checkpoint(allEvents_.size());
465  seq, std::back_inserter(allEvents_), [](art::EventID const& eid) {
466  return eid.event() + eid.subRun() * 100 + (eid.run() - 1) * 500;
467  });
468  uniqueEvents_.insert(allEvents_.cbegin() + checkpoint, allEvents_.cend());
469  // Test at end job for no duplicates.
470  } break;
471  default:;
472  }
473 }
RunNumber_t run() const
Definition: EventID.h:99
art::MixHelper::Mode const readMode_
auto transform_all(Container &, OutputIt, UnaryOp)
std::unique_ptr< art::EventIDSequence > eIDs_
std::unordered_set< int > uniqueEvents_
EventNumber_t event() const
Definition: EventID.h:117
static const double s
Definition: Units.h:99
SubRunNumber_t subRun() const
Definition: EventID.h:111
void arttest::MixFilterTestDetail::respondToCloseInputFile ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToCloseInputFile ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToCloseInputFile ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToCloseInputFile ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToCloseInputFile ( art::FileBlock const &  fb)

Definition at line 515 of file MixFilterTest_module.cc.

void arttest::MixFilterTestDetail::respondToCloseOutputFiles ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToCloseOutputFiles ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToCloseOutputFiles ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToCloseOutputFiles ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToCloseOutputFiles ( art::FileBlock const &  fb)

Definition at line 527 of file MixFilterTest_module.cc.

void arttest::MixFilterTestDetail::respondToOpenInputFile ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToOpenInputFile ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToOpenInputFile ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToOpenInputFile ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToOpenInputFile ( art::FileBlock const &  fb)

Definition at line 509 of file MixFilterTest_module.cc.

void arttest::MixFilterTestDetail::respondToOpenOutputFiles ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToOpenOutputFiles ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToOpenOutputFiles ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToOpenOutputFiles ( art::FileBlock const &  fb)
void arttest::MixFilterTestDetail::respondToOpenOutputFiles ( art::FileBlock const &  fb)

Definition at line 521 of file MixFilterTest_module.cc.

void arttest::MixFilterTestDetail::startEvent ( art::Event const &  )
void arttest::MixFilterTestDetail::startEvent ( art::Event const &  )
void arttest::MixFilterTestDetail::startEvent ( art::Event const &  )
void arttest::MixFilterTestDetail::startEvent ( art::Event const &  )
void arttest::MixFilterTestDetail::startEvent ( art::Event const &  )
template<typename COLL >
void arttest::MixFilterTestDetail::verifyInSize ( COLL const &  in) const
template<typename COLL >
void arttest::MixFilterTestDetail::verifyInSize ( COLL const &  in) const
template<typename COLL >
void arttest::MixFilterTestDetail::verifyInSize ( COLL const &  in) const
template<typename COLL >
void arttest::MixFilterTestDetail::verifyInSize ( COLL const &  in) const
template<typename COLL >
void arttest::MixFilterTestDetail::verifyInSize ( COLL const &  in) const
inline

Definition at line 258 of file MixFilterTest_module.cc.

259 {
260  BOOST_REQUIRE_EQUAL(
261  in.size(),
263 }

Member Data Documentation

std::vector< int > arttest::MixFilterTestDetail::allEvents_ {}
private

Definition at line 248 of file MixFilterTest_module.cc.

size_t arttest::MixFilterTestDetail::beginRunCounter_ {}
private

Definition at line 234 of file MixFilterTest_module.cc.

size_t arttest::MixFilterTestDetail::beginSubRunCounter_ {}
private

Definition at line 232 of file MixFilterTest_module.cc.

bool const arttest::MixFilterTestDetail::compactMissingProducts_
private

Definition at line 241 of file MixFilterTest_module.cc.

int arttest::MixFilterTestDetail::currentEvent_ {-1}
private

Definition at line 236 of file MixFilterTest_module.cc.

std::vector< size_t > arttest::MixFilterTestDetail::doubleVectorOffsets_ {}
private

Definition at line 226 of file MixFilterTest_module.cc.

std::unique_ptr< art::EventIDSequence > arttest::MixFilterTestDetail::eIDs_ {}
private

Definition at line 228 of file MixFilterTest_module.cc.

size_t arttest::MixFilterTestDetail::endRunCounter_ {}
private

Definition at line 235 of file MixFilterTest_module.cc.

size_t arttest::MixFilterTestDetail::endSubRunCounter_ {}
private

Definition at line 233 of file MixFilterTest_module.cc.

size_t const arttest::MixFilterTestDetail::expectedRespondFunctionCalls_
private

Definition at line 242 of file MixFilterTest_module.cc.

std::vector< size_t > arttest::MixFilterTestDetail::map_vectorOffsets_ {}
private

Definition at line 227 of file MixFilterTest_module.cc.

size_t const arttest::MixFilterTestDetail::nSecondaries_
private

Definition at line 224 of file MixFilterTest_module.cc.

bool arttest::MixFilterTestDetail::processEventAuxiliaries_called_ {false}
private

Definition at line 231 of file MixFilterTest_module.cc.

bool arttest::MixFilterTestDetail::processEventIDs_called_ {false}
private

Definition at line 230 of file MixFilterTest_module.cc.

art::MixHelper::Mode const arttest::MixFilterTestDetail::readMode_
private

Definition at line 243 of file MixFilterTest_module.cc.

size_t arttest::MixFilterTestDetail::respondFunctionsSeen_ {}
private

Definition at line 245 of file MixFilterTest_module.cc.

double arttest::MixFilterTestDetail::runInfo_ {}
private

Definition at line 253 of file MixFilterTest_module.cc.

bool arttest::MixFilterTestDetail::startEvent_called_ {false}
private

Definition at line 229 of file MixFilterTest_module.cc.

double arttest::MixFilterTestDetail::subRunInfo_ {}
private

Definition at line 252 of file MixFilterTest_module.cc.

bool const arttest::MixFilterTestDetail::testEventOrdering_
private

Definition at line 239 of file MixFilterTest_module.cc.

bool const arttest::MixFilterTestDetail::testNoLimEventDupes_
private

Definition at line 240 of file MixFilterTest_module.cc.

bool const arttest::MixFilterTestDetail::testPtrFailure_
private

Definition at line 238 of file MixFilterTest_module.cc.

bool const arttest::MixFilterTestDetail::testRemapper_
private

Definition at line 225 of file MixFilterTest_module.cc.

bool const arttest::MixFilterTestDetail::testZeroSecondaries_
private

Definition at line 237 of file MixFilterTest_module.cc.

std::unordered_set< int > arttest::MixFilterTestDetail::uniqueEvents_ {}
private

Definition at line 249 of file MixFilterTest_module.cc.


The documentation for this class was generated from the following files: