55 static const G4String pType(
"MuonicAtom");
63 G4double lifetime = 1./(lambdac+lambdad);
97 "e-",
"anti_nu_e",
"nu_mu",
100 muatom->SetDIOLifeTime(1./lambdad);
101 muatom->SetNCLifeTime(1./lambdac);
129 constexpr capRate capRates [] = {
130 { 1, 1, 0.000725, 0.000017 },
131 { 2, 3, 0.002149, 0.00017 },
132 { 2, 4, 0.000356, 0.000026 },
133 { 3, 6, 0.004647, 0.00012 },
134 { 3, 7, 0.002229, 0.00012 },
135 { 4, 9, 0.006107, 0.00019 },
136 { 5, 10, 0.02757 , 0.00063 },
137 { 5, 11, 0.02188 , 0.00064 },
138 { 6, 12, 0.03807 , 0.00031 },
139 { 6, 13, 0.03474 , 0.00034 },
140 { 7, 14, 0.06885 , 0.00057 },
141 { 8, 16, 0.10242 , 0.00059 },
142 { 8, 18, 0.0880 , 0.0015 },
143 { 9, 19, 0.22905 , 0.00099 },
144 { 10, 20, 0.2288 , 0.0045 },
145 { 11, 23, 0.3773 , 0.0014 },
146 { 12, 24, 0.4823 , 0.0013 },
147 { 13, 27, 0.6985 , 0.0012 },
148 { 14, 28, 0.8656 , 0.0015 },
149 { 15, 31, 1.1681 , 0.0026 },
150 { 16, 32, 1.3510 , 0.0029 },
151 { 17, 35, 1.800 , 0.050 },
152 { 17, 37, 1.250 , 0.050 },
153 { 18, 40, 1.2727 , 0.0650 },
154 { 19, 39, 1.8492 , 0.0050 },
155 { 20, 40, 2.5359 , 0.0070 },
156 { 21, 45, 2.711 , 0.025 },
157 { 22, 48, 2.5908 , 0.0115 },
158 { 23, 51, 3.073 , 0.022 },
159 { 24, 50, 3.825 , 0.050 },
160 { 24, 52, 3.465 , 0.026 },
161 { 24, 53, 3.297 , 0.045 },
162 { 24, 54, 3.057 , 0.042 },
163 { 25, 55, 3.900 , 0.030 },
164 { 26, 56, 4.408 , 0.022 },
165 { 27, 59, 4.945 , 0.025 },
166 { 28, 58, 6.11 , 0.10 },
167 { 28, 60, 5.56 , 0.10 },
168 { 28, 62, 4.72 , 0.10 },
169 { 29, 63, 5.691 , 0.030 },
170 { 30, 66, 5.806 , 0.031 },
171 { 31, 69, 5.700 , 0.060 },
172 { 32, 72, 5.561 , 0.031 },
173 { 33, 75, 6.094 , 0.037 },
174 { 34, 80, 5.687 , 0.030 },
175 { 35, 79, 7.223 , 0.28 },
176 { 35, 81, 7.547 , 0.48 },
177 { 37, 85, 6.89 , 0.14 },
178 { 38, 88, 6.93 , 0.12 },
179 { 39, 89, 7.89 , 0.11 },
180 { 40, 91, 8.620 , 0.053 },
181 { 41, 93, 10.38 , 0.11 },
182 { 42, 96, 9.298 , 0.063 },
183 { 45, 103, 10.010 , 0.045 },
184 { 46, 106, 10.000 , 0.070 },
185 { 47, 107, 10.869 , 0.095 },
186 { 48, 112, 10.624 , 0.094 },
187 { 49, 115, 11.38 , 0.11 },
188 { 50, 119, 10.60 , 0.11 },
189 { 51, 121, 10.40 , 0.12 },
190 { 52, 128, 9.174 , 0.074 },
191 { 53, 127, 11.276 , 0.098 },
192 { 55, 133, 10.98 , 0.25 },
193 { 56, 138, 10.112 , 0.085 },
194 { 57, 139, 10.71 , 0.10 },
195 { 58, 140, 11.501 , 0.087 },
196 { 59, 141, 13.45 , 0.13 },
197 { 60, 144, 12.35 , 0.13 },
198 { 62, 150, 12.22 , 0.17 },
199 { 64, 157, 12.00 , 0.13 },
200 { 65, 159, 12.73 , 0.13 },
201 { 66, 163, 12.29 , 0.18 },
202 { 67, 165, 12.95 , 0.13 },
203 { 68, 167, 13.04 , 0.27 },
204 { 72, 178, 13.03 , 0.21 },
205 { 73, 181, 12.86 , 0.13 },
206 { 74, 184, 12.76 , 0.16 },
207 { 79, 197, 13.35 , 0.10 },
208 { 80, 201, 12.74 , 0.18 },
209 { 81, 205, 13.85 , 0.17 },
210 { 82, 207, 13.295 , 0.071 },
211 { 83, 209, 13.238 , 0.065 },
212 { 90, 232, 12.555 , 0.049 },
213 { 92, 238, 12.592 , 0.035 },
214 { 92, 233, 14.27 , 0.15 },
215 { 92, 235, 13.470 , 0.085 },
216 { 92, 236, 13.90 , 0.40 },
217 { 93, 237, 13.58 , 0.18 },
218 { 94, 239, 13.90 , 0.20 },
219 { 94, 242, 12.86 , 0.19 }
224 size_t nCapRates =
sizeof(capRates)/
sizeof(capRates[0]);
225 for (
size_t j = 0; j < nCapRates; ++j) {
226 if( capRates[j].Z == Z && capRates[j].A == A ) {
231 if (capRates[j].Z > Z) {
break;}
249 lambda = t1 * zeff2 * zeff2 * (r2 * r2) * (1.0 - (1.0 - xmu) * .75704) *
250 (a2ze * b0a + 1.0 - (a2ze - 1.0) * b0b -
272 constexpr
size_t maxZ = 100;
275 1.00, 1.98, 2.94, 3.89, 4.81, 5.72, 6.61, 7.49, 8.32, 9.14,
276 9.95,10.69,11.48,12.22,12.90,13.64,14.24,14.89,15.53,16.15,
277 16.77,17.38,18.04,18.49,19.06,19.59,20.13,20.66,21.12,21.61,
278 22.02,22.43,22.84,23.24,23.65,24.06,24.47,24.85,25.23,25.61,
279 25.99,26.37,26.69,27.00,27.32,27.63,27.95,28.20,28.42,28.64,
280 28.79,29.03,29.27,29.51,29.75,29.99,30.22,30.36,30.53,30.69,
281 30.85,31.01,31.18,31.34,31.48,31.62,31.76,31.90,32.05,32.19,
282 32.33,32.47,32.61,32.76,32.94,33.11,33.29,33.46,33.64,33.81,
283 34.21,34.18,34.00,34.10,34.21,34.31,34.42,34.52,34.63,34.73,
284 34.84,34.94,35.05,35.16,35.25,35.36,35.46,35.57,35.67,35.78 };
315 constexpr decRate decRates [] = {
316 { 1, 0.4558514, 0.0000151 }
333 if (Z == 1) {lambda = decRates[0].dRate/
microsecond;}
339 lambda -= 2.5 * x *
x;
340 lambda *= freeMuonDecayRate;
352 constexpr
G4int ListK = 28;
353 constexpr
G4double ListZK[ListK] = {
354 1., 2., 4., 6., 8., 11., 14., 17., 18., 21., 24.,
355 26., 29., 32., 38., 40., 41., 44., 49., 53., 55.,
356 60., 65., 70., 75., 81., 85., 92.};
357 constexpr
G4double ListKEnergy[ListK] = {
358 0.00275, 0.011, 0.043, 0.098, 0.173, 0.326,
359 0.524, 0.765, 0.853, 1.146, 1.472,
360 1.708, 2.081, 2.475, 3.323, 3.627,
361 3.779, 4.237, 5.016, 5.647, 5.966,
362 6.793, 7.602, 8.421, 9.249, 10.222,
377 if(Xuser <= X[0]) Yuser = Y[0];
378 else if(Xuser >= X[N-1]) Yuser = Y[N-1];
382 if(Xuser <= X[i])
break;
385 if(Xuser == X[i]) Yuser = Y[i];
386 else Yuser = Y[i-1] + (Y[i] - Y[i-1])*(Xuser - X[i-1])/(X[i] - X[i-1]);
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
static G4double GetMuonDecayRate(G4int Z)
G4int GetPDGiIsospin() const
G4int GetAtomicNumber() const
static G4ParticleTable * GetParticleTable()
G4int GetPDGiIsospin3() const
const XML_Char const XML_Char * encoding
const G4String & GetParticleSubType() const
static G4MuonicAtom * ConstructMuonicAtom(G4String name, G4int encoding, G4Ions const *baseion)
G4int GetPDGiSpin() const
const G4String & GetParticleName() const
static G4double GetKShellEnergy(G4double A)
static constexpr double microsecond
G4double GetPDGCharge() const
G4int GetPDGiConjugation() const
G4double GetPDGMass() const
static G4double GetMuonCaptureRate(G4int Z, G4int A)
G4int GetPDGiParity() const
G4int GetBaryonNumber() const
double A(double temperature)
G4double GetPDGMagneticMoment() const
G4int GetPDGiGParity() const
G4int GetLeptonNumber() const
G4int GetAtomicMass() const
static G4double GetLinApprox(G4int N, const G4double *const X, const G4double *const Y, G4double Xuser)
static G4double GetMuonZeff(G4int Z)
void SetPDGMagneticMoment(G4double mageticMoment)
static constexpr double fine_structure_const