Back to home page

Project CMSSW displayed by LXR

 
 

    


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     //The module ignores missing data products
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 //Add additional TEST_CASEs to exercise the modules capabilities