ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4HadronCrossSections.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4HadronCrossSections.hh
1 //
2 // ********************************************************************
3 // * License and Disclaimer *
4 // * *
5 // * The Geant4 software is copyright of the Copyright Holders of *
6 // * the Geant4 Collaboration. It is provided under the terms and *
7 // * conditions of the Geant4 Software License, included in the file *
8 // * LICENSE and available at http://cern.ch/geant4/license . These *
9 // * include a list of copyright holders. *
10 // * *
11 // * Neither the authors of this software system, nor their employing *
12 // * institutes,nor the agencies providing financial support for this *
13 // * work make any representation or warranty, express or implied, *
14 // * regarding this software system or assume any liability for its *
15 // * use. Please see the license in the file LICENSE and URL above *
16 // * for the full disclaimer and the limitation of liability. *
17 // * *
18 // * This code implementation is the result of the scientific and *
19 // * technical work of the GEANT4 collaboration. *
20 // * By using, copying, modifying or distributing the software (or *
21 // * any work based on the software) you agree to acknowledge its *
22 // * use in resulting scientific publications, and indicate your *
23 // * acceptance of all terms of the Geant4 Software license. *
24 // ********************************************************************
25 //
26 //
27 // GEANT4 Hadron physics class -- header file
28 // F.W. Jones, TRIUMF, 03-DEC-96
29 //
30 // This class encapsulates cross section data and interpolations
31 // from the Geant3/Gheisha routine GHESIG.
32 // For further comments see G4HadronCrossSections.cc.
33 //
34 // Note: this is implemented as a SINGLETON class
35 //
36 // 27-MAR-97 FWJ: first version for Alpha release
37 // 14-APR-97 FWJ: class name changed from G4LCrossSectionData
38 // to G4HadronicCrossSections
39 // 14-APR-98 FWJ: rewritten as class G4HadronCrossSections
40 // and adapted to G4CrossSectionDataSet/DataStore class design.
41 // 26-JUN-98 FWJ: added elastic/inelastic caching to improve performance.
42 // 06-NOV-98 FWJ: added first-order correction for low-energy
43 // inelastic cross sections
44 //
45 
46 
47 #ifndef G4HadronCrossSections_h
48 #define G4HadronCrossSections_h 1
49 
50 #include "globals.hh"
51 #include "G4DynamicParticle.hh"
53 
54 enum { TSIZE=41, NPARTS=35, NELAB=17, NCNLW=15, NFISS=21 };
55 
56 class G4Pow;
57 
59 {
61 
62  public:
63 
65 
67 
68  G4bool IsApplicable(const G4DynamicParticle* aParticle);
69 
71  G4int /*ZZ*/, G4int /*AA*/);
72 
74  G4int /*ZZ*/, G4int /*AA*/);
75 
77 
79  G4int /*AA*/);
80 
82 
84 
85  private:
86 
88 
90 
92  G4int /*ZZ*/, G4int /*AA*/);
93 
95 
97 
105 
107 
109 
110  // The following arrays are declared static to allow the use of initializers.
111  // They are initialized in G4HadronCrossSections.cc, thus providing some
112  // data hiding.
113 
114  static const G4float plab[TSIZE];
115  static const G4float csel[NPARTS][TSIZE];
116  static const G4float csin[NPARTS][TSIZE];
117 
118  static const G4float cspiel[3][TSIZE];
119  static const G4float cspiin[3][TSIZE];
120 
121  static const G4float cspnel[3][TSIZE];
122  static const G4float cspnin[3][TSIZE];
123 
124  static const G4float elab[NELAB];
126 
127  static const G4float cscap[100];
128 
129  static const G4float ekfiss[NFISS], csfiss[4][NFISS];
130 
131  static const G4float alpha[NPARTS], alphac[TSIZE];
132 
133  static const G4float partel[35], partin[35];
134  static const G4int icorr[35], intrc[35];
135 
136  static const G4float csa[4];
137  static const G4int ipart2[7];
138 };
139 #endif
140