#include <G4CascadeData.hh>
Public Types | |
N02 = N2 | |
N23 = N2+N3 | |
N24 = N23+N4 | |
N25 = N24+N5 | |
N26 = N25+N6 | |
N27 = N26+N7 | |
N28 = N27+N8 | |
N29 = N28+N9 | |
N8D = N8?N8:1 | |
N9D = N9?N9:1 | |
NM = N9?8:N8?7:6 | |
NXS = N29 | |
enum | { N02 = N2, N23 = N2+N3, N24 = N23+N4, N25 = N24+N5, N26 = N25+N6, N27 = N26+N7, N28 = N27+N8, N29 = N28+N9 } |
enum | { N8D = N8?N8:1, N9D = N9?N9:1 } |
enum | { NM = N9?8:N8?7:6, NXS = N29 } |
Public Member Functions | |
const | G4int (&x2bfs)[N2][2] |
const | G4int (&x3bfs)[N3][3] |
const | G4int (&x4bfs)[N4][4] |
const | G4int (&x5bfs)[N5][5] |
const | G4int (&x6bfs)[N6][6] |
const | G4int (&x7bfs)[N7][7] |
const | G4int (&x8bfs)[N8D][8] |
const | G4int (&x9bfs)[N9D][9] |
const | G4double (&crossSections)[NXS][NE] |
const | G4double (&tot)[NE] |
G4int | maxMultiplicity () const |
void | print (std::ostream &os=G4cout) const |
void | print (G4int mult, std::ostream &os) const |
void | printXsec (const G4double(&xsec)[NE], std::ostream &os) const |
G4CascadeData (const G4int(&the2bfs)[N2][2], const G4int(&the3bfs)[N3][3], const G4int(&the4bfs)[N4][4], const G4int(&the5bfs)[N5][5], const G4int(&the6bfs)[N6][6], const G4int(&the7bfs)[N7][7], const G4double(&xsec)[NXS][NE], G4int ini, const G4String &aName="G4CascadeData") | |
G4CascadeData (const G4int(&the2bfs)[N2][2], const G4int(&the3bfs)[N3][3], const G4int(&the4bfs)[N4][4], const G4int(&the5bfs)[N5][5], const G4int(&the6bfs)[N6][6], const G4int(&the7bfs)[N7][7], const G4double(&xsec)[NXS][NE], const G4double(&theTot)[NE], G4int ini, const G4String &aName="G4CascadeData") | |
G4CascadeData (const G4int(&the2bfs)[N2][2], const G4int(&the3bfs)[N3][3], const G4int(&the4bfs)[N4][4], const G4int(&the5bfs)[N5][5], const G4int(&the6bfs)[N6][6], const G4int(&the7bfs)[N7][7], const G4int(&the8bfs)[N8D][8], const G4int(&the9bfs)[N9D][9], const G4double(&xsec)[NXS][NE], G4int ini, const G4String &aName="G4CascadeData") | |
G4CascadeData (const G4int(&the2bfs)[N2][2], const G4int(&the3bfs)[N3][3], const G4int(&the4bfs)[N4][4], const G4int(&the5bfs)[N5][5], const G4int(&the6bfs)[N6][6], const G4int(&the7bfs)[N7][7], const G4int(&the8bfs)[N8D][8], const G4int(&the9bfs)[N9D][9], const G4double(&xsec)[NXS][NE], const G4double(&theTot)[NE], G4int ini, const G4String &aName="G4CascadeData") | |
void | initialize () |
Data Fields | |
G4int | index [9] |
G4double | multiplicities [NM][NE] |
G4double | sum [NE] |
G4double | inelastic [NE] |
const G4String | name |
const G4int | initialState |
Static Public Attributes | |
static const G4int | empty8bfs [1][8] = {{0}} |
static const G4int | empty9bfs [1][9] = {{0}} |
Definition at line 53 of file G4CascadeData.hh.
anonymous enum |
anonymous enum |
anonymous enum |
G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4CascadeData | ( | const G4int & | the2bfs[N2][2], | |
const G4int & | the3bfs[N3][3], | |||
const G4int & | the4bfs[N4][4], | |||
const G4int & | the5bfs[N5][5], | |||
const G4int & | the6bfs[N6][6], | |||
const G4int & | the7bfs[N7][7], | |||
const G4double & | xsec[NXS][NE], | |||
G4int | ini, | |||
const G4String & | aName = "G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >" | |||
) | [inline] |
Definition at line 95 of file G4CascadeData.hh.
References G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialize().
00100 : x2bfs(the2bfs), x3bfs(the3bfs), x4bfs(the4bfs), x5bfs(the5bfs), 00101 x6bfs(the6bfs), x7bfs(the7bfs), x8bfs(empty8bfs), x9bfs(empty9bfs), 00102 crossSections(xsec), tot(sum), name(aName), initialState(ini) { 00103 initialize(); 00104 }
G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4CascadeData | ( | const G4int & | the2bfs[N2][2], | |
const G4int & | the3bfs[N3][3], | |||
const G4int & | the4bfs[N4][4], | |||
const G4int & | the5bfs[N5][5], | |||
const G4int & | the6bfs[N6][6], | |||
const G4int & | the7bfs[N7][7], | |||
const G4double & | xsec[NXS][NE], | |||
const G4double & | theTot[NE], | |||
G4int | ini, | |||
const G4String & | aName = "G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >" | |||
) | [inline] |
Definition at line 107 of file G4CascadeData.hh.
References G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialize().
00112 : x2bfs(the2bfs), x3bfs(the3bfs), x4bfs(the4bfs), x5bfs(the5bfs), 00113 x6bfs(the6bfs), x7bfs(the7bfs), x8bfs(empty8bfs), x9bfs(empty9bfs), 00114 crossSections(xsec), tot(theTot), name(aName), initialState(ini) { 00115 initialize(); 00116 }
G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4CascadeData | ( | const G4int & | the2bfs[N2][2], | |
const G4int & | the3bfs[N3][3], | |||
const G4int & | the4bfs[N4][4], | |||
const G4int & | the5bfs[N5][5], | |||
const G4int & | the6bfs[N6][6], | |||
const G4int & | the7bfs[N7][7], | |||
const G4int & | the8bfs[N8D][8], | |||
const G4int & | the9bfs[N9D][9], | |||
const G4double & | xsec[NXS][NE], | |||
G4int | ini, | |||
const G4String & | aName = "G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >" | |||
) | [inline] |
Definition at line 119 of file G4CascadeData.hh.
References G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialize().
00125 : x2bfs(the2bfs), x3bfs(the3bfs), x4bfs(the4bfs), x5bfs(the5bfs), 00126 x6bfs(the6bfs), x7bfs(the7bfs), x8bfs(the8bfs), x9bfs(the9bfs), 00127 crossSections(xsec), tot(sum), name(aName), initialState(ini) { 00128 initialize(); 00129 }
G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4CascadeData | ( | const G4int & | the2bfs[N2][2], | |
const G4int & | the3bfs[N3][3], | |||
const G4int & | the4bfs[N4][4], | |||
const G4int & | the5bfs[N5][5], | |||
const G4int & | the6bfs[N6][6], | |||
const G4int & | the7bfs[N7][7], | |||
const G4int & | the8bfs[N8D][8], | |||
const G4int & | the9bfs[N9D][9], | |||
const G4double & | xsec[NXS][NE], | |||
const G4double & | theTot[NE], | |||
G4int | ini, | |||
const G4String & | aName = "G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >" | |||
) | [inline] |
Definition at line 132 of file G4CascadeData.hh.
References G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialize().
00138 : x2bfs(the2bfs), x3bfs(the3bfs), x4bfs(the4bfs), x5bfs(the5bfs), 00139 x6bfs(the6bfs), x7bfs(the7bfs), x8bfs(the8bfs), x9bfs(the9bfs), 00140 crossSections(xsec), tot(theTot), name(aName), initialState(ini) { 00141 initialize(); 00142 }
const G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4double | ( | & | tot | ) |
const G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4double | ( | & | crossSections | ) |
const G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int | ( | & | x9bfs | ) |
const G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int | ( | & | x8bfs | ) |
const G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int | ( | & | x7bfs | ) |
const G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int | ( | & | x6bfs | ) |
const G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int | ( | & | x5bfs | ) |
const G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int | ( | & | x4bfs | ) |
const G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int | ( | & | x3bfs | ) |
const G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int | ( | & | x2bfs | ) |
void G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialize | ( | ) |
Definition at line 48 of file G4CascadeData.icc.
References G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int(), G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::index, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::inelastic, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialState, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::multiplicities, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::N02, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::N23, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::N24, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::N25, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::N26, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::N27, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::N28, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::N29, NE, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::NM, and G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::sum.
Referenced by G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4CascadeData().
00048 { 00049 // Initialize index offsets for cross-section array (can't do globally) 00050 index[0] = 0; index[1] = N02; index[2] = N23; index[3] = N24; 00051 index[4] = N25; index[5] = N26; index[6] = N27; index[7] = N28; 00052 index[8] = N29; 00053 00054 // Initialize multiplicity array 00055 for (G4int im = 0; im < NM; im++) { 00056 G4int start = index[im]; 00057 G4int stop = index[im+1]; 00058 for (G4int k = 0; k < NE; k++) { 00059 multiplicities[im][k] = 0.0; 00060 for (G4int i = start; i < stop; i++) { 00061 multiplicities[im][k] += crossSections[i][k]; 00062 } 00063 } 00064 } 00065 00066 // Initialize total cross section arrays 00067 for (G4int k = 0; k < NE; k++) { 00068 sum[k] = 0.0; 00069 for (G4int im = 0; im < NM; im++) { 00070 sum[k] += multiplicities[im][k]; 00071 } 00072 } 00073 00074 // Identify elastic scattering channel and subtract from inclusive 00075 G4int i2b = 0; 00076 for (i2b=index[0]; i2b<index[1]; i2b++) { 00077 if (x2bfs[i2b][0]*x2bfs[i2b][1] == initialState) break; // Found it 00078 } 00079 00080 for (G4int k = 0; k < NE; k++) { 00081 if (i2b<index[1]) inelastic[k] = tot[k] - crossSections[i2b][k]; 00082 else inelastic[k] = tot[k]; // FIXME: No elastic channel in table! 00083 } 00084 }
G4int G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::maxMultiplicity | ( | ) | const [inline] |
Definition at line 87 of file G4CascadeData.hh.
References G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::NM.
00087 { return NM+1; } // Used by G4CascadeFunctions
void G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::print | ( | G4int | mult, | |
std::ostream & | os | |||
) | const |
Definition at line 105 of file G4CascadeData.icc.
References G4endl, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int(), G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::index, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::multiplicities, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::print(), and G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::printXsec().
00105 { 00106 if (mult < 0) { // Old interface used mult == -1 for all 00107 print(os); 00108 return; 00109 } 00110 00111 G4int im = mult-2; // Convert multiplicity to array index 00112 00113 G4int start = index[im]; 00114 G4int stop = index[im+1]; 00115 os << "\n Mulitplicity " << mult << " (indices " << start << " to " 00116 << stop-1 << ") summed cross section:" << G4endl; 00117 00118 printXsec(multiplicities[im], os); 00119 00120 for (G4int i=start; i<stop; i++) { 00121 G4int ichan=i-start; 00122 os << "\n final state x" << mult << "bfs[" << ichan << "] : "; 00123 for (G4int fsi=0; fsi<mult; fsi++) { 00124 switch (mult) { 00125 case 2: os << " " << x2bfs[ichan][fsi]; break; 00126 case 3: os << " " << x3bfs[ichan][fsi]; break; 00127 case 4: os << " " << x4bfs[ichan][fsi]; break; 00128 case 5: os << " " << x5bfs[ichan][fsi]; break; 00129 case 6: os << " " << x6bfs[ichan][fsi]; break; 00130 case 7: os << " " << x7bfs[ichan][fsi]; break; 00131 case 8: os << " " << x8bfs[ichan][fsi]; break; 00132 case 9: os << " " << x9bfs[ichan][fsi]; break; 00133 default: ; 00134 } 00135 } 00136 os << " -- cross section [" << i << "]:" << G4endl; 00137 printXsec(crossSections[i], os); 00138 } 00139 }
void G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::print | ( | std::ostream & | os = G4cout |
) | const |
Definition at line 89 of file G4CascadeData.icc.
References G4endl, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::inelastic, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::name, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::NM, G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::printXsec(), and G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::sum.
Referenced by G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::print().
00089 { 00090 os << "\n " << name << " Total cross section:" << G4endl; 00091 printXsec(tot, os); 00092 os << "\n Summed cross section:" << G4endl; 00093 printXsec(sum, os); 00094 os << "\n Inelastic cross section:" << G4endl; 00095 printXsec(inelastic, os); 00096 os << "\n Individual channel cross sections" << G4endl; 00097 00098 for (int im=2; im<NM+2; im++) print(im, os); 00099 return; 00100 }
void G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::printXsec | ( | const G4double & | xsec[NE], | |
std::ostream & | os | |||
) | const |
Definition at line 144 of file G4CascadeData.icc.
References G4endl, and G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::G4int().
Referenced by G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::print().
00144 { 00145 for (G4int k=0; k<NE; k++) { 00146 os << std::setw(6) << xsec[k]; // Use sign-gap as separator 00147 if ((k+1)%12 == 0) os << G4endl; 00148 } 00149 os << G4endl; 00150 }
const G4int G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::empty8bfs = {{0}} [static] |
Definition at line 81 of file G4CascadeData.hh.
const G4int G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::empty9bfs = {{0}} [static] |
Definition at line 82 of file G4CascadeData.hh.
G4int G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::index[9] |
Definition at line 63 of file G4CascadeData.hh.
Referenced by G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialize(), and G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::print().
G4double G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::inelastic[NE] |
Definition at line 79 of file G4CascadeData.hh.
Referenced by G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialize(), and G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::print().
const G4int G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialState |
Definition at line 85 of file G4CascadeData.hh.
Referenced by G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialize().
G4double G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::multiplicities[NM][NE] |
Definition at line 64 of file G4CascadeData.hh.
Referenced by G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialize(), and G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::print().
const G4String G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::name |
Definition at line 84 of file G4CascadeData.hh.
Referenced by G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::print().
G4double G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::sum[NE] |
Definition at line 76 of file G4CascadeData.hh.
Referenced by G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::initialize(), and G4CascadeData< NE, N2, N3, N4, N5, N6, N7, N8, N9 >::print().