73 if(1 == numberOfElements)
return (*theElementVector)[0];
78 for ( i=0; i < numberOfElements; i++ ) {
80 Z = (*theElementVector)[i]->GetZ();
83 if( (9.0 == Z) || (17.0 == Z) || (35.0 == Z) || (53.0 == Z) || (85.0 == Z) ) {
84 sum += 0.66 * Z * theAtomicNumberDensity[i] ;
87 }
else if( 8.0 == Z ) {
88 sum += 0.56 * Z * theAtomicNumberDensity[i] ;
92 sum += Z * theAtomicNumberDensity[i] ;
103 Z = (*theElementVector)[i]->GetZ();
106 if( (9.0 == Z) || (17.0 == Z) || (35.0 == Z) || (53.0 == Z) || (85.0 == Z) ) {
107 sum += 0.66 * Z * theAtomicNumberDensity[i] ;
110 }
else if( 8.0 == Z ) {
111 sum += 0.56 * Z * theAtomicNumberDensity[i] ;
115 sum += Z * theAtomicNumberDensity[i] ;
117 }
while ( (sum < random) && (i < numberOfElements - 1) );
119 return (*theElementVector)[i];
130 1.,1.98,2.95,3.89,4.8,5.72,6.61,7.49,8.32,9.12,9.95,10.69,11.48,12.22,
131 12.91,13.64,14.24,14.89,15.53,16.15,16.75,17.38,18.04,18.49,
132 19.06,19.59,20.1,20.66,21.12,21.61,22.02,22.43,22.84,23.24,
133 23.65,24.06,24.47,24.85,25.23,25.61,25.99,26.37,26.69,27.,
134 27.32,27.63,27.95,28.2,28.42,28.64,28.79,29.03,29.27,29.51,
135 29.75,29.99,30.2,30.36,30.53,30.69,30.85,31.01,31.18,31.34,
136 31.48,31.62,31.76,31.9,32.05,32.19,32.33,32.47,32.61,32.76,
137 32.94,33.11,33.29,33.46,33.64,33.81,34.21,34.18,34.,34.1,
138 34.21,34.31,34.42,34.52,34.63,34.73,34.84,34.94,35.04,35.15,
139 35.25,35.36,35.46,35.57,35.67,35.78 };
145 const size_t ListZE = 66;
146 static G4int ListZExp[ListZE] = {1,
147 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
148 13, 14, 15, 16, 17, 18, 19, 20, 22, 23,
149 24, 25, 26, 27, 28, 31, 32, 33, 34, 37,
150 38, 39, 40, 41, 42, 45, 46, 47, 48, 49,
151 50, 51, 52, 53, 55, 56, 57, 58, 59, 60,
152 62, 64, 65, 67, 72, 73, 74, 80, 81, 82,
155 static G4double ListCaptureVel[ListZE] = {0.000725,
156 0.0057, 0.010, 0.0258, 0.0371, 0.0644,
157 0.0974, 0.144, 0.250, 0.386, 0.479,
158 0.700, 0.849, 1.119, 1.338, 1.40,
159 1.30, 1.98, 2.45, 2.60, 3.19,
160 3.29, 3.91, 4.41, 4.96, 5.74,
161 5.68, 5.53, 6.06, 5.69, 6.89,
162 7.25, 7.89, 8.59, 10.40, 9.22,
163 10.01, 10.00, 10.88, 10.62, 11.37,
164 10.68, 10.49, 9.06, 11.20, 10.98,
165 10.18, 10.71, 11.44, 13.45, 12.32,
166 12.22, 12.09, 12.73, 12.95, 13.03,
167 12.86, 13.13, 13.39, 12.74, 13.78,
168 13.02, 13.26, 13.10, 14.00, 14.70};
189 xmu = zeff2 * 2.663e-5;
192 lambda = t1 * zeff2 * zeff2 * (r2 * r2) * (1.0 - (1.0 - xmu) * .75704) *
193 (a2ze * b0a + 1.0 - (a2ze - 1.0) * b0b -
194 (2.0 * (A - Z) + std::abs(a2ze - 1.) ) * b0c / (A * 4.) );
197 for (
unsigned int j = 0; j < ListZE; j++) {
198 if( ListZExp[j] == i + 1) {
199 lambda = ListCaptureVel[j] / microsecond;
216 G4double x = Z*fine_structure_const;
217 lambda -= 2.5 * x * x;
218 if( 0.5 > lambda ) { lambda = 0.5; }
220 return lambda * 0.445164 / microsecond;
std::vector< G4Element * > G4ElementVector
const G4ElementVector * GetElementVector() const
size_t GetNumberOfElements() const
const G4double * GetAtomicNumDensityVector() const
G4Element * GetElement(const G4Material *aMaterial)
G4double GetMuonDecayRate(G4double Z, G4double A)
G4double GetMuonCaptureRate(G4double Z, G4double A)