CORSIKA8  0.0.0
The framework to simulate particle cascades for astroparticle physics
CONEX_f.hpp
1 /*
2  * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
3  *
4  * This software is distributed under the terms of the GNU General Public
5  * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
6  * the license.
7  */
8 
9 #pragma once
10 
11 //----------------------------------------------
12 // C++ interface for the CONEX fortran code
13 //----------------------------------------------
14 // wrapper
15 
16 #include <conexConfig.h>
17 #include <conexHEModels.h>
18 #include <array>
19 
20 namespace conex {
21 
22  // the CORSIKA 8 random number interface
23 
31  extern float rndm_interface();
32 
41  extern double double_rndm_interface();
42 
43  extern "C" {}
44 
45  // the CONEX fortran interface
46 
47  extern "C" {
48  extern struct { std::array<double, 16> dptl; } cxoptl_;
49 
50  void cegs4_(int&, int&);
51 
52  void initconex_(int&, int*, int&, int&,
53 #ifdef CONEX_EXTENSIONS
54  int&,
55 #endif
56  const char*, int);
57  void conexrun_(int& ipart, double& energy, double& theta, double& phi,
58  double& injectionHeight, double& dimpact, int ioseed[3]);
59  void conexcascade_();
60  void hadroncascade_(int&, int&, int&, int&);
61  void solvemomentequations_(int&);
62  void show_(int& iqi, double& ei, double& xmi, double& ymi, double& zmi, double& dmi,
63  double& xi, double& yi, double& zi, double& tmi, double& ui, double& vi,
64  double& wi, int& iri, double& wti, int& latchi);
65 
66  int get_number_of_depth_bins_();
67 
68  void get_shower_data_(const int&, const int&, const int&, float&, float&, float&,
69  float&, float&);
70  void get_shower_edep_(const int&, const int&, float&, float&);
71  void get_shower_muon_(const int&, const int&, float&, float&);
72  void get_shower_gamma_(const int&, const int&, float&);
73  void get_shower_electron_(const int&, const int&, float&);
74  void get_shower_hadron_(const int&, const int&, float&);
75  }
76 
77 } // namespace conex