From 25691fd84e066f91f1ac6fb370c8f13aa983dc41 Mon Sep 17 00:00:00 2001
From: Felix Riehn <felix@matilda>
Date: Thu, 29 Nov 2018 12:49:51 +0000
Subject: [PATCH] added raw particle conversion for corsika to sibyll

---
 Documentation/Examples/cascade_example.cc | 2 ++
 Processes/Sibyll/ParticleConversion.h     | 4 ++++
 Processes/Sibyll/testSibyll.cc            | 2 ++
 3 files changed, 8 insertions(+)

diff --git a/Documentation/Examples/cascade_example.cc b/Documentation/Examples/cascade_example.cc
index 0d6551cd5..50a8f351c 100644
--- a/Documentation/Examples/cascade_example.cc
+++ b/Documentation/Examples/cascade_example.cc
@@ -51,6 +51,8 @@ public:
     auto test = static_cast<corsika::process::sibyll::SibyllCodeIntType>(s_id);
     std::cout << "MinStepLength: particle input " << "sibyll id: |" << (int)test << "|" <<std::endl;
 											  // std::cout << "MinStepLength: particle input " << "sibyll id: " << process::sibyll::ConvertToSibyll( p.GetPID() ) << std::endl;
+    cout << p.GetPID() << " --> " << process::sibyll::ConvertToSibyllRaw( p.GetPID() ) << endl;
+    
     int kBeam   = 1;
 
     /* 
diff --git a/Processes/Sibyll/ParticleConversion.h b/Processes/Sibyll/ParticleConversion.h
index 3347220a7..54a3b71da 100644
--- a/Processes/Sibyll/ParticleConversion.h
+++ b/Processes/Sibyll/ParticleConversion.h
@@ -38,6 +38,10 @@ namespace corsika::process::sibyll {
     return sibyll2corsika[static_cast<SibyllCodeIntType>(pCode) - minSibyll];
   }
 
+  int ConvertToSibyllRaw(corsika::particles::Code pCode){
+    return  (int)static_cast<corsika::process::sibyll::SibyllCodeIntType>( corsika::process::sibyll::ConvertToSibyll( pCode ) );
+  }
+  
 } // namespace corsika::process::sibyll
 
 #endif
diff --git a/Processes/Sibyll/testSibyll.cc b/Processes/Sibyll/testSibyll.cc
index 48420c263..7e8049524 100644
--- a/Processes/Sibyll/testSibyll.cc
+++ b/Processes/Sibyll/testSibyll.cc
@@ -29,6 +29,8 @@ TEST_CASE("Sibyll", "[processes]") {
   SECTION("Corsika -> Sibyll") {
     REQUIRE(process::sibyll::ConvertToSibyll(corsika::particles::Electron::GetCode()) ==
             process::sibyll::Code::Electron);
+    REQUIRE(process::sibyll::ConvertToSibyllRaw(corsika::particles::Proton::GetCode()) ==
+            13 );
   }
 
   SECTION("handledBySibyll") {
-- 
GitLab