File indexing completed on 2024-04-06 12:27:39
0001 #include "catch.hpp"
0002 #include "FWCore/TestProcessor/interface/TestProcessor.h"
0003 #include "FWCore/Utilities/interface/Exception.h"
0004 #include "DataFormats/ParticleFlowReco/interface/PFDisplacedVertexFwd.h"
0005
0006 static constexpr auto s_tag = "[PFDisplacedVertexProducer]";
0007
0008 TEST_CASE("Standard checks of PFDisplacedVertexProducer", s_tag) {
0009 const std::string baseConfig{
0010 R"_(from FWCore.TestProcessor.TestProcess import *
0011 process = TestProcess()
0012 from RecoParticleFlow.PFTracking.particleFlowDisplacedVertex_cfi import particleFlowDisplacedVertex
0013 process.toTest = particleFlowDisplacedVertex
0014 process.moduleToTest(process.toTest)
0015 )_"};
0016
0017 const std::string fullConfig{
0018 R"_(from FWCore.TestProcessor.TestProcess import *
0019 process = TestProcess()
0020 process.load("MagneticField.Engine.uniformMagneticField_cfi")
0021 process.load("Configuration.Geometry.GeometryExtended2018Reco_cff")
0022 process.add_(cms.ESProducer("TrackerParametersESModule"))
0023 process.load("Alignment.CommonAlignmentProducer.FakeAlignmentSource_cfi")
0024
0025
0026 from RecoParticleFlow.PFTracking.particleFlowDisplacedVertex_cfi import particleFlowDisplacedVertex
0027 process.toTest = particleFlowDisplacedVertex
0028 process.moduleToTest(process.toTest)
0029 )_"};
0030
0031 edm::test::TestProcessor::Config config{baseConfig};
0032 SECTION("base configuration is OK") { REQUIRE_NOTHROW(edm::test::TestProcessor(config)); }
0033
0034 SECTION("No event data") {
0035 edm::test::TestProcessor::Config config{fullConfig};
0036 edm::test::TestProcessor tester(config);
0037
0038
0039 REQUIRE(tester.test().get<reco::PFDisplacedVertexCollection>()->empty());
0040 }
0041
0042 SECTION("beginJob and endJob only") {
0043 edm::test::TestProcessor tester(config);
0044
0045 REQUIRE_NOTHROW(tester.testBeginAndEndJobOnly());
0046 }
0047
0048 SECTION("Run with no LuminosityBlocks") {
0049 edm::test::TestProcessor tester(config);
0050
0051 REQUIRE_NOTHROW(tester.testRunWithNoLuminosityBlocks());
0052 }
0053
0054 SECTION("LuminosityBlock with no Events") {
0055 edm::test::TestProcessor tester(config);
0056
0057 REQUIRE_NOTHROW(tester.testLuminosityBlockWithNoEvents());
0058 }
0059 }
0060
0061