ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4PiNuclearCrossSection.hh
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file G4PiNuclearCrossSection.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 #ifndef G4PiNuclearCrossSection_h
27 #define G4PiNuclearCrossSection_h
28 
30 
31 #include "globals.hh"
32 #include "G4PionMinus.hh"
33 #include "G4PionPlus.hh"
34 #include "G4PiData.hh"
35 #include "G4HadTmpUtil.hh"
36 
38 {
39  public:
40 
42  virtual ~G4PiNuclearCrossSection();
43 
44  static const char* Default_Name() {return "G4PiNuclearCrossSection";}
45 
46  virtual
48  G4int Z, const G4Material*);
49 
50  virtual
52  G4int Z, const G4Material*);
53 
54  virtual
56 
57  virtual void CrossSectionDescription(std::ostream&) const;
58 
59  inline G4double GetTotalXsc() {return fTotalXsc;};
60  inline G4double GetElasticXsc() {return fElasticXsc;};
61 
62  private:
64 
65  // add Hydrogen from PDG group.
66 
67  static const G4double e1[38];
68  static const G4double he_t[38];
69  static const G4double he_in[38];
70  static const G4double be_m_t[38];
71  static const G4double be_m_in[38];
72  static const G4double be_p_t[24];
73  static const G4double be_p_in[24];
74  static const G4double e2[39];
75  static const G4double c_m_t[39];
76  static const G4double c_m_in[39];
77  static const G4double c_p_t[24];
78  static const G4double c_p_in[24];
79  static const G4double n_m_t[39];
80  static const G4double n_m_in[39];
81  static const G4double n_p_t[27];
82  static const G4double n_p_in[27];
83  static const G4double e3[31];
84  static const G4double o_m_t[31];
85  static const G4double o_m_in[31];
86  static const G4double o_p_t[20];
87  static const G4double o_p_in[20];
88  static const G4double na_m_t[31];
89  static const G4double na_m_in[31];
90  static const G4double na_p_t[22];
91  static const G4double na_p_in[22];
92  static const G4double e3_1[31];
93  static const G4double al_m_t[31];
94  static const G4double al_m_in[31];
95  static const G4double al_p_t[21];
96  static const G4double al_p_in[21];
97  static const G4double ca_m_t[31];
98  static const G4double ca_m_in[31];
99  static const G4double ca_p_t[23];
100  static const G4double ca_p_in[23];
101 
102  static const G4double e4[32];
103  static const G4double fe_m_t[32];
104  static const G4double fe_m_in[32];
105  static const G4double fe_p_t[25];
106  static const G4double fe_p_in[25];
107  static const G4double cu_m_t[32];
108  static const G4double cu_m_in[32];
109  static const G4double cu_p_t[25];
110  static const G4double cu_p_in[25];
111  static const G4double e5[34];
112  static const G4double mo_m_t[34];
113  static const G4double mo_m_in[34];
114  static const G4double mo_p_t[27];
115  static const G4double mo_p_in[27];
116  static const G4double cd_m_t[34];
117  static const G4double cd_m_in[34];
118  static const G4double cd_p_t[28];
119  static const G4double cd_p_in[28];
120  static const G4double e6[35];
121  static const G4double sn_m_t[35];
122  static const G4double sn_m_in[35];
123  static const G4double sn_p_t[29];
124  static const G4double sn_p_in[29];
125  static const G4double w_m_t[35];
126  static const G4double w_m_in[35];
127  static const G4double w_p_t[30];
128  static const G4double w_p_in[30];
129  static const G4double e7[35];
130  static const G4double pb_m_t[35];
131  static const G4double pb_m_in[35];
132  static const G4double pb_p_t[30];
133  static const G4double pb_p_in[30];
134  static const G4double u_m_t[35];
135  static const G4double u_m_in[35];
136  static const G4double u_p_t[30];
137  static const G4double u_p_in[30];
138 
139  std::vector<G4int> theZ;
140  std::vector<G4PiData *> thePipData;
141  std::vector<G4PiData *> thePimData;
142 
143  // cross sections
144 
147 
148 };
149 
150 #endif