Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:13:59

0001 #include "catch.hpp"
0002 #include "FWCore/TestProcessor/interface/TestProcessor.h"
0003 #include "FWCore/Utilities/interface/Exception.h"
0004 
0005 static constexpr auto s_tag = "[External Pythia8GeneratorFilter]";
0006 
0007 TEST_CASE("Standard checks of ExternalGeneratorFilter with Pythia8GeneratorFilter", s_tag) {
0008   const std::string baseConfig{
0009       R"_(from FWCore.TestProcessor.TestProcess import *
0010 process = TestProcess()
0011 process.load("Configuration.StandardSequences.SimulationRandomNumberGeneratorSeeds_cff")
0012 process.RandomNumberGeneratorService.toTest = process.RandomNumberGeneratorService.generator.clone()
0013 from GeneratorInterface.Core.ExternalGeneratorFilter import ExternalGeneratorFilter
0014 _pythia8 = cms.EDFilter("Pythia8GeneratorFilter",
0015     comEnergy = cms.double(7000.),
0016     PythiaParameters = cms.PSet(
0017         pythia8_example02 = cms.vstring('HardQCD:all = on',
0018                                         'PhaseSpace:pTHatMin = 20.'),
0019         parameterSets = cms.vstring('pythia8_example02')
0020     )
0021 )
0022 process.toTest = ExternalGeneratorFilter(_pythia8)
0023 
0024 process.add_(cms.Service('Tracer'))
0025 
0026 process.moduleToTest(process.toTest)
0027 )_"};
0028 
0029   edm::test::TestProcessor::Config config{baseConfig};
0030   SECTION("base configuration is OK") { REQUIRE_NOTHROW(edm::test::TestProcessor(config)); }
0031 
0032   SECTION("No event data") {
0033     edm::test::TestProcessor tester(config);
0034 
0035     REQUIRE_NOTHROW(tester.test());
0036   }
0037 
0038   SECTION("beginJob and endJob only") {
0039     edm::test::TestProcessor tester(config);
0040 
0041     REQUIRE_NOTHROW(tester.testBeginAndEndJobOnly());
0042   }
0043 
0044   SECTION("Run with no LuminosityBlocks") {
0045     edm::test::TestProcessor tester(config);
0046 
0047     REQUIRE_NOTHROW(tester.testRunWithNoLuminosityBlocks());
0048   }
0049 
0050   SECTION("LuminosityBlock with no Events") {
0051     edm::test::TestProcessor tester(config);
0052 
0053     REQUIRE_NOTHROW(tester.testLuminosityBlockWithNoEvents());
0054   }
0055 }
0056 
0057 //Add additional TEST_CASEs to exercise the modules capabilities