Changeset 962 for trunk/source/processes/hadronic/models/cascade/cascade/src/G4CascadeXiZeroNChannel.cc
- Timestamp:
- Apr 6, 2009, 12:30:29 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/source/processes/hadronic/models/cascade/cascade/src/G4CascadeXiZeroNChannel.cc
r819 r962 27 27 #include "G4CascadeXiZeroNChannel.hh" 28 28 29 30 G4CascadeXiZeroNChannel::G4CascadeXiZeroNChannel() 31 :G4CascadeChannel() 32 { 33 G4int i, k, m; 34 G4int start, stop; 35 36 // Initialize multiplicity array 37 38 for (m = 0; m < 6; m++) { 39 start = x0nindex[m][0]; 40 stop = x0nindex[m][1]; 41 for (k = 0; k < 31; k++) { 42 x0nMultiplicities[m][k] = 0.0; 43 for (i = start; i < stop; i++) x0nMultiplicities[m][k] += x0nCrossSections[i][k]; 44 } 45 } 46 47 // Initialize total cross section array 48 49 for (k = 0; k < 31; k++) { 50 x0ntot[k] = 0.0; 51 for (m = 0; m < 6; m++) x0ntot[k] += x0nMultiplicities[m][k]; 52 } 29 namespace { 30 31 // Total cross section as a function of kinetic energy 32 G4double x0ntot[31]; 33 34 // Multiplicities as a function of kinetic energy 35 G4double x0nMultiplicities[6][31]; 36 37 const G4int x0nindex[6][2] = 38 {{0, 6}, {6,30}, {30,34}, {34,38}, {38,42}, {42,46}}; 39 40 // Outgoing particle types of a given multiplicity 41 42 const G4int x0n2bfs[6][2] = 43 {{2,29}, {1,31}, {21,21}, {21,25}, {25,25}, {23,27}}; 44 45 const G4int x0n3bfs[24][3] = 46 {{1,13,21}, {1,13,25}, {1,17,27}, {1,5,29}, {1,7,31}, {2,17,21}, 47 {2,17,25}, {2,13,23}, {2,7,29}, {2,3,31}, {7,21,21}, {7,21,25}, 48 {5,21,23}, {3,21,27}, {15,21,29},{11,21,31}, {5,23,25}, {7,23,27}, 49 {15,23,31}, {7,25,25}, {3,25,27}, {15,25,29}, {11,25,31}, {11,27,29}}; 50 51 const G4int x0n4bfs[4][4] = 52 {{1,7,13,21}, {2,7,17,21}, {1,3,5,31}, {2,3,5,29}}; 53 54 const G4int x0n5bfs[4][5] = 55 {{1,3,5,13,21}, {2,3,5,17,21}, {1,3,5,7,31}, {2,3,5,7,29}}; 56 57 const G4int x0n6bfs[4][6] = 58 {{1,3,5,7,13,21}, {2,3,5,7,17,21}, {1,3,3,5,5,31}, {2,3,3,5,5,29}}; 59 60 const G4int x0n7bfs[4][7] = 61 {{1,3,3,5,5,13,21}, {2,3,3,5,5,17,21}, {1,3,3,5,5,7,31}, {2,3,3,5,5,7,29}}; 62 63 // Cross sections for X0 n -> 2-7 body final states 64 // 65 // first index: 0-5: channels for mult = 2 66 // 6-29: channels for mult = 3 67 // 30-33: channels for mult = 4 68 // 34-37: channels for mult = 5 69 // 38-41: channels for mult = 6 70 // 42-45: channels for mult = 7 71 // 72 // second index: kinetic energy 73 // 74 const G4float x0nCrossSections[46][31] = { 75 // 76 // multiplicity 2 (6 channels) 77 // 78 // X0 n 79 {11.00,10.50,10.00, 9.50, 9.00, 8.50, 8.30, 8.00, 7.70, 7.50, 80 7.20, 4.00, 3.50, 3.00, 2.50, 2.30, 2.00, 1.70, 1.50, 1.35, 81 1.25, 1.10, 1.00, 0.90, 0.80, 0.70, 0.60, 0.55, 0.50, 0.45, 0.35}, 82 83 // X- p 84 {22.00,20.00,18.00,16.00,15.00,14.00,13.00,12.00,11.00,10.00, 85 9.00, 6.00, 5.50, 5.00, 4.50, 4.00, 3.70, 3.30, 3.00, 2.70, 86 2.50, 2.20, 2.00, 1.80, 1.60, 1.40, 1.20, 1.10, 1.00, 0.90, 0.70}, 87 88 // L L 89 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 90 0.50, 2.00, 2.30, 2.50, 2.80, 2.50, 2.20, 2.00, 1.70, 1.50, 91 1.40, 1.30, 1.20, 1.10, 1.00, 0.90, 0.80, 0.70, 0.60, 0.50, 0.30}, 92 93 // L S0 94 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 95 0.50, 2.00, 2.30, 2.50, 2.80, 2.50, 2.20, 2.00, 1.70, 1.50, 96 1.40, 1.30, 1.20, 1.10, 1.00, 0.90, 0.80, 0.70, 0.60, 0.50, 0.30}, 97 98 // S0 S0 99 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 100 0.50, 2.00, 2.30, 2.50, 2.80, 2.50, 2.20, 2.00, 1.70, 1.50, 101 1.40, 1.30, 1.20, 1.10, 1.00, 0.90, 0.80, 0.70, 0.60, 0.50, 0.30}, 102 103 // S+ S- 104 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 105 0.50, 2.00, 2.30, 2.50, 2.80, 2.50, 2.20, 2.00, 1.70, 1.50, 106 1.40, 1.30, 1.20, 1.10, 1.00, 0.90, 0.80, 0.70, 0.60, 0.50, 0.30}, 107 108 // 109 // multiplicity 3 (24 channels) 110 // 111 // p L K- 112 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 113 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60, 114 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05}, 115 116 // p S0 K- 117 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 118 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60, 119 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05}, 120 121 // p S- K0bar 122 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 123 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60, 124 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05}, 125 126 // p X0 pi- 127 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 128 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 129 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 130 131 // p X- pi0 132 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 133 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 134 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 135 136 // n L K0bar 137 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 138 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60, 139 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05}, 140 141 // n S0 K0bar 142 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 143 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60, 144 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05}, 145 146 // n S+ K- 147 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 148 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60, 149 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05}, 150 151 // n X0 pi0 152 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 153 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 154 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 155 156 // n X- pi+ 157 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 158 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 159 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 160 161 // L L pi0 162 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 163 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 164 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 165 166 // L S0 pi0 167 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 168 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 169 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 170 171 // L S+ pi- 172 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 173 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 174 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 175 176 // L S- pi+ 177 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 178 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 179 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 180 181 // L X0 K0 182 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 183 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03, 184 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02}, 185 186 // L X- K+ 187 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 188 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03, 189 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02}, 190 191 // S+ S0 pi- 192 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 193 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 194 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 195 196 // S+ S- pi0 197 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 198 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 199 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 200 201 // S+ X- K0 202 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 203 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03, 204 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02}, 205 206 // S0 S0 pi0 207 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 208 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 209 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 210 211 // S0 S- pi+ 212 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 213 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30, 214 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03}, 215 216 // S0 X0 K0 217 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 218 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03, 219 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02}, 220 221 // S0 X- K+ 222 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 223 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03, 224 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02}, 225 226 // S- X0 K+ 227 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 228 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03, 229 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02}, 230 231 // 232 // multiplicity 4 (4 channels) 233 // 234 // p L K- pi0 235 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 236 0.0, 0.0, 0.07, 0.15, 0.30, 0.35, 0.38, 0.40, 0.43, 0.45, 237 0.47, 0.50, 0.53, 0.50, 0.47, 0.43, 0.37, 0.30, 0.25, 0.20, 0.05}, 238 239 // n L K0bar pi0 240 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 241 0.0, 0.0, 0.07, 0.15, 0.30, 0.35, 0.38, 0.40, 0.43, 0.45, 242 0.47, 0.50, 0.53, 0.50, 0.47, 0.43, 0.37, 0.30, 0.25, 0.20, 0.05}, 243 244 // p X- pi+ pi- 245 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 246 0.0, 0.0, 0.03, 0.07, 0.13, 0.15, 0.17, 0.20, 0.22, 0.23, 247 0.24, 0.25, 0.26, 0.25, 0.24, 0.23, 0.22, 0.20, 0.17, 0.15, 0.05}, 248 249 // n X0 pi+ pi- 250 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 251 0.0, 0.0, 0.03, 0.07, 0.13, 0.15, 0.17, 0.20, 0.22, 0.23, 252 0.24, 0.25, 0.26, 0.25, 0.24, 0.23, 0.22, 0.20, 0.17, 0.15, 0.05}, 253 254 // 255 // multiplicity 5 (4 channels) 256 // 257 // p L K- pi+ pi- 258 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 259 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.10, 0.15, 0.17, 260 0.19, 0.21, 0.23, 0.25, 0.27, 0.27, 0.25, 0.23, 0.21, 0.19, 0.15}, 261 262 // n L K0bar pi+ pi- 263 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 264 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.10, 0.15, 0.17, 265 0.19, 0.21, 0.23, 0.25, 0.27, 0.27, 0.25, 0.23, 0.21, 0.19, 0.15}, 266 267 // p X- pi+ pi- pi0 268 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 269 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03, 0.05, 0.07, 0.08, 270 0.09, 0.10, 0.11, 0.12, 0.13, 0.13, 0.12, 0.11, 0.10, 0.09, 0.07}, 271 272 // n X0 pi+ pi- pi0 273 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 274 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03, 0.05, 0.07, 0.08, 275 0.09, 0.10, 0.11, 0.12, 0.13, 0.13, 0.12, 0.11, 0.10, 0.09, 0.07}, 276 277 // 278 // multiplicity 6 (4 channels) 279 // 280 // p L K- pi+ pi- pi0 281 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 282 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 283 0.05, 0.10, 0.15, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.22, 0.21}, 284 285 // n L K0bar pi+ pi- pi0 286 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 287 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 288 0.05, 0.10, 0.15, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.22, 0.21}, 289 290 // p X- 2pi+ 2pi- 291 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 292 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 293 0.02, 0.05, 0.07, 0.08, 0.09, 0.09, 0.10, 0.10, 0.11, 0.11, 0.10}, 294 295 // n X0 2pi+ 2pi- 296 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 297 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 298 0.02, 0.05, 0.07, 0.08, 0.09, 0.09, 0.10, 0.10, 0.11, 0.11, 0.10}, 299 300 // 301 // multiplicity 7 (4 channels) 302 // 303 // p L K- 2pi+ 2pi- 304 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 305 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0, 306 0.01, 0.01, 0.01, 0.02, 0.02, 0.03, 0.03, 0.04, 0.04, 0.05, 0.05}, 307 308 // n L K0bar 2pi+ 2pi- 309 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 310 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0, 311 0.01, 0.01, 0.01, 0.02, 0.02, 0.03, 0.03, 0.04, 0.04, 0.05, 0.05}, 312 313 // p X- 2pi+ 2pi- pi0 314 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 315 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0, 316 0.0, 0.0, 0.0, 0.01, 0.01, 0.01, 0.02, 0.02, 0.02, 0.02, 0.02}, 317 318 // n X0 2pi+ 2pi- pi0 319 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 320 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0, 321 0.0, 0.0, 0.0, 0.01, 0.01, 0.01, 0.02, 0.02, 0.02, 0.02, 0.02}}; 53 322 54 323 } 55 324 56 57 G4CascadeXiZeroNChannel::~G4CascadeXiZeroNChannel() 58 {;} 59 60 61 G4double G4CascadeXiZeroNChannel::getCrossSection(G4double ke) const 62 { 63 std::pair<G4int, G4double> epair = interpolateEnergy(ke); 64 G4int k = epair.first; 65 G4double fraction = epair.second; 66 67 return x0ntot[k] + fraction*(x0ntot[k+1] - x0ntot[k]); 325 G4CascadeXiZeroNChannelData::data_t 326 G4CascadeXiZeroNChannelData::data = { x0ntot, 327 x0nMultiplicities, 328 x0nindex, 329 x0n2bfs, 330 x0n3bfs, 331 x0n4bfs, 332 x0n5bfs, 333 x0n6bfs, 334 x0n7bfs, 335 x0nCrossSections }; 336 337 namespace { 338 struct initializer 339 { 340 initializer() { G4CascadeXiZeroNChannelData::data.initialize(); } 341 }; 342 343 initializer init; 68 344 } 69 70 71 G4int G4CascadeXiZeroNChannel::getMultiplicity(G4double ke) const72 {73 G4double multint(0.);74 std::vector<G4double> sigma;75 76 std::pair<G4int, G4double> epair = interpolateEnergy(ke);77 G4int k = epair.first;78 G4double fraction = epair.second;79 80 for(G4int m = 0; m < 6; m++) {81 multint = x0nMultiplicities[m][k]82 + fraction*(x0nMultiplicities[m][k+1] - x0nMultiplicities[m][k]);83 sigma.push_back(multint);84 }85 86 return sampleFlat(sigma);87 }88 89 90 std::vector<G4int>91 G4CascadeXiZeroNChannel::getOutgoingParticleTypes(G4int mult, G4double ke) const92 {93 G4int i;94 G4double sigint(0.);95 std::vector<G4double> sigma;96 97 std::pair<G4int, G4double> epair = interpolateEnergy(ke);98 G4int k = epair.first;99 G4double fraction = epair.second;100 101 G4int start = x0nindex[mult-2][0];102 G4int stop = x0nindex[mult-2][1];103 104 for(i = start; i < stop; i++) {105 sigint = x0nCrossSections[i][k]106 + fraction*(x0nCrossSections[i][k+1] - x0nCrossSections[i][k]);107 sigma.push_back(sigint);108 }109 110 G4int channel = sampleFlat(sigma);111 112 std::vector<G4int> kinds;113 114 if (mult == 2) {115 for(i = 0; i < mult; i++) kinds.push_back(x0n2bfs[channel][i]);116 } else if (mult == 3) {117 for(i = 0; i < mult; i++) kinds.push_back(x0n3bfs[channel][i]);118 } else if (mult == 4) {119 for(i = 0; i < mult; i++) kinds.push_back(x0n4bfs[channel][i]);120 } else if (mult == 5) {121 for(i = 0; i < mult; i++) kinds.push_back(x0n5bfs[channel][i]);122 } else if (mult == 6) {123 for(i = 0; i < mult; i++) kinds.push_back(x0n6bfs[channel][i]);124 } else if (mult == 7) {125 for(i = 0; i < mult; i++) kinds.push_back(x0n7bfs[channel][i]);126 } else {127 G4cout << " Illegal multiplicity " << G4endl;128 }129 130 return kinds;131 }132 133 // Total cross section as a function of kinetic energy134 G4double G4CascadeXiZeroNChannel::x0ntot[31];135 136 // Multiplicities as a function of kinetic energy137 G4double G4CascadeXiZeroNChannel::x0nMultiplicities[6][31];138 139 140 const G4int G4CascadeXiZeroNChannel::x0nindex[6][2] =141 {{0, 6}, {6,30}, {30,34}, {34,38}, {38,42}, {42,46}};142 143 // Outgoing particle types of a given multiplicity144 145 const G4int G4CascadeXiZeroNChannel::x0n2bfs[6][2] =146 {{2,29}, {1,31}, {21,21}, {21,25}, {25,25}, {23,27}};147 148 const G4int G4CascadeXiZeroNChannel::x0n3bfs[24][3] =149 {{1,13,21}, {1,13,25}, {1,17,27}, {1,5,29}, {1,7,31}, {2,17,21},150 {2,17,25}, {2,13,23}, {2,7,29}, {2,3,31}, {7,21,21}, {7,21,25},151 {5,21,23}, {3,21,27}, {15,21,29},{11,21,31}, {5,23,25}, {7,23,27},152 {15,23,31}, {7,25,25}, {3,25,27}, {15,25,29}, {11,25,31}, {11,27,29}};153 154 const G4int G4CascadeXiZeroNChannel::x0n4bfs[4][4] =155 {{1,7,13,21}, {2,7,17,21}, {1,3,5,31}, {2,3,5,29}};156 157 const G4int G4CascadeXiZeroNChannel::x0n5bfs[4][5] =158 {{1,3,5,13,21}, {2,3,5,17,21}, {1,3,5,7,31}, {2,3,5,7,29}};159 160 const G4int G4CascadeXiZeroNChannel::x0n6bfs[4][6] =161 {{1,3,5,7,13,21}, {2,3,5,7,17,21}, {1,3,3,5,5,31}, {2,3,3,5,5,29}};162 163 const G4int G4CascadeXiZeroNChannel::x0n7bfs[4][7] =164 {{1,3,3,5,5,13,21}, {2,3,3,5,5,17,21}, {1,3,3,5,5,7,31}, {2,3,3,5,5,7,29}};165 166 // Cross sections for X0 n -> 2-7 body final states167 //168 // first index: 0-5: channels for mult = 2169 // 6-29: channels for mult = 3170 // 30-33: channels for mult = 4171 // 34-37: channels for mult = 5172 // 38-41: channels for mult = 6173 // 42-45: channels for mult = 7174 //175 // second index: kinetic energy176 //177 const G4float G4CascadeXiZeroNChannel::x0nCrossSections[46][31] = {178 //179 // multiplicity 2 (6 channels)180 //181 // X0 n182 {11.00,10.50,10.00, 9.50, 9.00, 8.50, 8.30, 8.00, 7.70, 7.50,183 7.20, 4.00, 3.50, 3.00, 2.50, 2.30, 2.00, 1.70, 1.50, 1.35,184 1.25, 1.10, 1.00, 0.90, 0.80, 0.70, 0.60, 0.55, 0.50, 0.45, 0.35},185 186 // X- p187 {22.00,20.00,18.00,16.00,15.00,14.00,13.00,12.00,11.00,10.00,188 9.00, 6.00, 5.50, 5.00, 4.50, 4.00, 3.70, 3.30, 3.00, 2.70,189 2.50, 2.20, 2.00, 1.80, 1.60, 1.40, 1.20, 1.10, 1.00, 0.90, 0.70},190 191 // L L192 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,193 0.50, 2.00, 2.30, 2.50, 2.80, 2.50, 2.20, 2.00, 1.70, 1.50,194 1.40, 1.30, 1.20, 1.10, 1.00, 0.90, 0.80, 0.70, 0.60, 0.50, 0.30},195 196 // L S0197 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,198 0.50, 2.00, 2.30, 2.50, 2.80, 2.50, 2.20, 2.00, 1.70, 1.50,199 1.40, 1.30, 1.20, 1.10, 1.00, 0.90, 0.80, 0.70, 0.60, 0.50, 0.30},200 201 // S0 S0202 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,203 0.50, 2.00, 2.30, 2.50, 2.80, 2.50, 2.20, 2.00, 1.70, 1.50,204 1.40, 1.30, 1.20, 1.10, 1.00, 0.90, 0.80, 0.70, 0.60, 0.50, 0.30},205 206 // S+ S-207 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,208 0.50, 2.00, 2.30, 2.50, 2.80, 2.50, 2.20, 2.00, 1.70, 1.50,209 1.40, 1.30, 1.20, 1.10, 1.00, 0.90, 0.80, 0.70, 0.60, 0.50, 0.30},210 211 //212 // multiplicity 3 (24 channels)213 //214 // p L K-215 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,216 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60,217 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05},218 219 // p S0 K-220 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,221 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60,222 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05},223 224 // p S- K0bar225 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,226 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60,227 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05},228 229 // p X0 pi-230 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,231 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,232 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},233 234 // p X- pi0235 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,236 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,237 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},238 239 // n L K0bar240 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,241 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60,242 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05},243 244 // n S0 K0bar245 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,246 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60,247 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05},248 249 // n S+ K-250 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,251 0.10, 0.50, 0.60, 0.67, 0.73, 0.90, 0.90, 0.80, 0.70, 0.60,252 0.50, 0.45, 0.40, 0.35, 0.30, 0.25, 0.20, 0.15, 0.12, 0.10, 0.05},253 254 // n X0 pi0255 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,256 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,257 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},258 259 // n X- pi+260 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,261 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,262 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},263 264 // L L pi0265 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,266 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,267 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},268 269 // L S0 pi0270 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,271 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,272 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},273 274 // L S+ pi-275 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,276 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,277 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},278 279 // L S- pi+280 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,281 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,282 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},283 284 // L X0 K0285 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,286 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03,287 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02},288 289 // L X- K+290 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,291 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03,292 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02},293 294 // S+ S0 pi-295 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,296 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,297 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},298 299 // S+ S- pi0300 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,301 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,302 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},303 304 // S+ X- K0305 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,306 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03,307 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02},308 309 // S0 S0 pi0310 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,311 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,312 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},313 314 // S0 S- pi+315 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,316 0.05, 0.25, 0.27, 0.33, 0.37, 0.45, 0.45, 0.40, 0.35, 0.30,317 0.25, 0.22, 0.20, 0.18, 0.15, 0.13, 0.10, 0.08, 0.06, 0.05, 0.03},318 319 // S0 X0 K0320 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,321 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03,322 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02},323 324 // S0 X- K+325 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,326 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03,327 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02},328 329 // S- X0 K+330 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,331 0.0, 0.0, 0.0, 0.0, 0.0, 0.01, 0.01, 0.02, 0.02, 0.03,332 0.03, 0.03, 0.03, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02, 0.02},333 334 //335 // multiplicity 4 (4 channels)336 //337 // p L K- pi0338 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,339 0.0, 0.0, 0.07, 0.15, 0.30, 0.35, 0.38, 0.40, 0.43, 0.45,340 0.47, 0.50, 0.53, 0.50, 0.47, 0.43, 0.37, 0.30, 0.25, 0.20, 0.05},341 342 // n L K0bar pi0343 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,344 0.0, 0.0, 0.07, 0.15, 0.30, 0.35, 0.38, 0.40, 0.43, 0.45,345 0.47, 0.50, 0.53, 0.50, 0.47, 0.43, 0.37, 0.30, 0.25, 0.20, 0.05},346 347 // p X- pi+ pi-348 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,349 0.0, 0.0, 0.03, 0.07, 0.13, 0.15, 0.17, 0.20, 0.22, 0.23,350 0.24, 0.25, 0.26, 0.25, 0.24, 0.23, 0.22, 0.20, 0.17, 0.15, 0.05},351 352 // n X0 pi+ pi-353 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,354 0.0, 0.0, 0.03, 0.07, 0.13, 0.15, 0.17, 0.20, 0.22, 0.23,355 0.24, 0.25, 0.26, 0.25, 0.24, 0.23, 0.22, 0.20, 0.17, 0.15, 0.05},356 357 //358 // multiplicity 5 (4 channels)359 //360 // p L K- pi+ pi-361 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,362 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.10, 0.15, 0.17,363 0.19, 0.21, 0.23, 0.25, 0.27, 0.27, 0.25, 0.23, 0.21, 0.19, 0.15},364 365 // n L K0bar pi+ pi-366 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,367 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.05, 0.10, 0.15, 0.17,368 0.19, 0.21, 0.23, 0.25, 0.27, 0.27, 0.25, 0.23, 0.21, 0.19, 0.15},369 370 // p X- pi+ pi- pi0371 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,372 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03, 0.05, 0.07, 0.08,373 0.09, 0.10, 0.11, 0.12, 0.13, 0.13, 0.12, 0.11, 0.10, 0.09, 0.07},374 375 // n X0 pi+ pi- pi0376 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,377 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.03, 0.05, 0.07, 0.08,378 0.09, 0.10, 0.11, 0.12, 0.13, 0.13, 0.12, 0.11, 0.10, 0.09, 0.07},379 380 //381 // multiplicity 6 (4 channels)382 //383 // p L K- pi+ pi- pi0384 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,385 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01,386 0.05, 0.10, 0.15, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.22, 0.21},387 388 // n L K0bar pi+ pi- pi0389 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,390 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.01,391 0.05, 0.10, 0.15, 0.17, 0.18, 0.19, 0.20, 0.21, 0.22, 0.22, 0.21},392 393 // p X- 2pi+ 2pi-394 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,395 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,396 0.02, 0.05, 0.07, 0.08, 0.09, 0.09, 0.10, 0.10, 0.11, 0.11, 0.10},397 398 // n X0 2pi+ 2pi-399 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,400 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,401 0.02, 0.05, 0.07, 0.08, 0.09, 0.09, 0.10, 0.10, 0.11, 0.11, 0.10},402 403 //404 // multiplicity 7 (4 channels)405 //406 // p L K- 2pi+ 2pi-407 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,408 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0,409 0.01, 0.01, 0.01, 0.02, 0.02, 0.03, 0.03, 0.04, 0.04, 0.05, 0.05},410 411 // n L K0bar 2pi+ 2pi-412 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,413 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0,414 0.01, 0.01, 0.01, 0.02, 0.02, 0.03, 0.03, 0.04, 0.04, 0.05, 0.05},415 416 // p X- 2pi+ 2pi- pi0417 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,418 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0,419 0.0, 0.0, 0.0, 0.01, 0.01, 0.01, 0.02, 0.02, 0.02, 0.02, 0.02},420 421 // n X0 2pi+ 2pi- pi0422 { 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,423 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.00, 0.0, 0.0, 0.0,424 0.0, 0.0, 0.0, 0.01, 0.01, 0.01, 0.02, 0.02, 0.02, 0.02, 0.02}};425
Note: See TracChangeset
for help on using the changeset viewer.