IAP GITLAB

Skip to content
Snippets Groups Projects
Commit 6a2eafd3 authored by ralfulrich's avatar ralfulrich
Browse files

working

parent 5fe647fd
No related branches found
No related tags found
No related merge requests found
......@@ -44,8 +44,8 @@ public:
double MinStepLength(Particle& p) const {
// beam particles for sibyll : 1, 2, 3 for p, pi, k
corsika::particles::Code c_id = p.GetPID();
corsika::process::sibyll::Code s_id = process::sibyll::ConvertToSibyll( p.GetPID() );
corsika::particles::Code p_id_2 = process::sibyll::ConvertFromSibyll( corsika::process::sibyll::Code::Proton );
corsika::process::sibyll::SibyllCode s_id = process::sibyll::ConvertToSibyll( p.GetPID() );
corsika::particles::Code p_id_2 = process::sibyll::ConvertFromSibyll( corsika::process::sibyll::SibyllCode::Proton );
cout << p_id_2 << endl;
std::cout << "MinStepLength: particle input " << "corsika id: " << c_id << std::endl;
auto test = static_cast<corsika::process::sibyll::SibyllCodeIntType>(s_id);
......@@ -157,8 +157,7 @@ public:
const double en_lab = gambet * s_plist_.p[2][i] + gamma * p.GetEnergy();
// add to corsika stack
s.NewParticle().SetEnergy( en_lab * 1_GeV );
}
}
}
}
......
......@@ -28,10 +28,11 @@ def read_sibyll_codes(filename, pythia_db):
line = line.strip()
if line[0] == '#':
continue
identifier, sib_code, canInteractFlag = 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
......@@ -148,3 +149,4 @@ if __name__ == "__main__":
print(generate_corsika2sibyll(pythia_db), file=f)
print(generate_known_particle(pythia_db), file=f)
print(generate_sibyll2corsika(pythia_db), file=f)
print(generate_interacting_particle(pythia_db), file=f)
# 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
......
......@@ -23,20 +23,30 @@ TEST_CASE("Sibyll", "[processes]") {
SECTION("Sibyll -> Corsika") {
REQUIRE(corsika::particles::Electron::GetCode() ==
process::sibyll::ConvertFromSibyll(process::sibyll::Code::Electron));
process::sibyll::ConvertFromSibyll(process::sibyll::SibyllCode::Electron));
}
SECTION("Corsika -> Sibyll") {
REQUIRE(process::sibyll::ConvertToSibyll(corsika::particles::Electron::GetCode()) ==
process::sibyll::Code::Electron);
process::sibyll::SibyllCode::Electron);
REQUIRE(process::sibyll::ConvertToSibyllRaw(corsika::particles::Proton::GetCode()) ==
13 );
}
SECTION("handledBySibyll") {
REQUIRE(process::sibyll::HandledBySibyll(corsika::particles::Electron::GetCode()));
REQUIRE(process::sibyll::KnownBySibyll(corsika::particles::Electron::GetCode()));
REQUIRE_FALSE(
process::sibyll::HandledBySibyll(corsika::particles::XiPrimeC0::GetCode()));
process::sibyll::KnownBySibyll(corsika::particles::XiPrimeC0::GetCode()));
}
SECTION("canInteractInSibyll") {
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()));
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment