diff --git a/Processes/Sibyll/code_generator.py b/Processes/Sibyll/code_generator.py index a87e644fa12feccad7b61c76f2fd308d17c5e263..a2929fdaa1fca5e544f153a197af02fbdc4e1649 100755 --- a/Processes/Sibyll/code_generator.py +++ b/Processes/Sibyll/code_generator.py @@ -28,10 +28,11 @@ def read_sibyll_codes(filename, pythia_db): line = line.strip() if line[0] == '#': continue - identifier, sib_code, canInteractFlag, xsctnId = line.split() + identifier, sib_code, canInteractFlag, xsType = line.split() try: pythia_db[identifier]["sibyll_code"] = int(sib_code) pythia_db[identifier]["sibyll_canInteract"] = int(canInteractFlag) + pythia_db[identifier]["xsType"] = int(xsType) except KeyError as e: raise Exception("Identifier '{:s}' not found in pythia_db".format(identifier)) @@ -126,7 +127,7 @@ def generate_interacting_particle(pythia_db): low = numeric & 0xFFFFFFFF numeric = numeric >> 32 string += " 0x{:0x},\n".format(low) - + string += "}}};\n" return string diff --git a/Processes/Sibyll/sibyll_codes.dat b/Processes/Sibyll/sibyll_codes.dat index d04a8436bafc27d1c9e4c7ea983477c86451f515..fc8515886b07c5f5a8f7a9307a7f06b88a65366c 100644 --- a/Processes/Sibyll/sibyll_codes.dat +++ b/Processes/Sibyll/sibyll_codes.dat @@ -1,3 +1,5 @@ +# input file for particle conversion to/from SIBYLL +# the format of this file is: "corsika-identifier" "sibyll-id" "can-interact-in-sibyll" "cross-section-type" Electron 3 0 0 Positron 2 0 0 NuE 15 0 0 diff --git a/Processes/Sibyll/testSibyll.cc b/Processes/Sibyll/testSibyll.cc index 8302be00948cef70a7ea6a0ded519bae20e930d5..c811327706efced8ef430a37ebb1fb333ddd4337 100644 --- a/Processes/Sibyll/testSibyll.cc +++ b/Processes/Sibyll/testSibyll.cc @@ -33,10 +33,20 @@ TEST_CASE("Sibyll", "[processes]") { 13 ); } - SECTION("KnownBySibyll") { + SECTION("handledBySibyll") { REQUIRE(process::sibyll::KnownBySibyll(corsika::particles::Electron::GetCode())); REQUIRE_FALSE( process::sibyll::KnownBySibyll(corsika::particles::XiPrimeC0::GetCode())); } + + SECTION("cross-section type") { + REQUIRE(process::sibyll::CanInteract(corsika::particles::Proton::GetCode())); + REQUIRE(process::sibyll::CanInteract(corsika::particles::XiCPlus::GetCode())); + + REQUIRE_FALSE( + process::sibyll::CanInteract(corsika::particles::Electron::GetCode())); + REQUIRE_FALSE( + process::sibyll::CanInteract(corsika::particles::SigmaC0::GetCode())); + } }