diff --git a/Processes/Sibyll/Interaction.h b/Processes/Sibyll/Interaction.h index 9f1062115b1df4d66a6a53864f1577c5c566f6fc..57236eb70a867a72fa44831d7cb223712686551c 100644 --- a/Processes/Sibyll/Interaction.h +++ b/Processes/Sibyll/Interaction.h @@ -16,10 +16,11 @@ namespace corsika::process::sibyll { class Interaction : public corsika::process::InteractionProcess<Interaction> { mutable int fCount = 0; - + mutable int fNucCount = 0; + public: Interaction() {} - ~Interaction() { std::cout << "Sibyll::Interaction n=" << fCount << std::endl; } + ~Interaction() { std::cout << "Sibyll::Interaction n=" << fCount << " Nnuc=" << fNucCount <<std::endl;} void Init() { @@ -227,7 +228,8 @@ namespace corsika::process::sibyll { // print final state int print_unit = 6; sib_list_(print_unit); - + fNucCount += get_nwounded()-1; + // delete current particle p.Delete(); diff --git a/Processes/Sibyll/sibyll2.3c.cc b/Processes/Sibyll/sibyll2.3c.cc index de48630e207e9a1831bd4ec9f34c4603333f8cfe..d77c81b78424d177f118ce39a5aa74b100783464 100644 --- a/Processes/Sibyll/sibyll2.3c.cc +++ b/Processes/Sibyll/sibyll2.3c.cc @@ -3,6 +3,8 @@ #include <corsika/random/RNGManager.h> #include <random> +int get_nwounded() { return s_chist_.nwd; } + double s_rndm_(int&) { static corsika::random::RNG& rng = corsika::random::RNGManager::GetInstance().GetRandomStream("s_rndm"); diff --git a/Processes/Sibyll/sibyll2.3c.h b/Processes/Sibyll/sibyll2.3c.h index 0a0ecc1133ce2fce469e93747368ab9224568449..e7076891fd692140755995c21ab6da6e2b4c5f47 100644 --- a/Processes/Sibyll/sibyll2.3c.h +++ b/Processes/Sibyll/sibyll2.3c.h @@ -19,6 +19,12 @@ extern struct { int np; } s_plist_; +// additional information about interactions. + // number of wounded nucleons, number of hard and soft scatterings etc. +extern struct { + int nnsof[20], nnjet[20], jdif[20], nwd, njet, nsof; +}s_chist_; + extern struct { double cbr[223 + 16 + 12 + 8]; int kdec[1338 + 6 * (16 + 12 + 8)]; @@ -85,6 +91,8 @@ void sib_sigma_hp_(const int&, const double&, double&, double&, double&, double* double s_rndm_(int&); + int get_nwounded(); + // phojet random generator setup void pho_rndin_(int&, int&, int&, int&); }