141 G4double x1 = Epoint[0] + feXoffset;
142 G4double y1 = Epoint[1] + feYoffset;
143 G4double z1 = Epoint[2] + feZoffset;
147 G4double Exfraction = (x1 - Eminx) / dx1;
148 G4double Eyfraction = (y1 - Eminy) / dy1;
149 G4double Ezfraction = (z1 - Eminz) / dz1;
151 if (einvertX) { Exfraction = 1 - Exfraction;}
152 if (einvertY) { Eyfraction = 1 - Eyfraction;}
153 if (einvertZ) { Ezfraction = 1 - Ezfraction;}
157 G4double exdindex, eydindex, ezdindex;
161 G4double exlocal = ( std::modf(Exfraction*(Enx-1), &exdindex));
162 G4double eylocal = ( std::modf(Eyfraction*(Eny-1), &eydindex));
163 G4double ezlocal = ( std::modf(Ezfraction*(Enz-1), &ezdindex));
167 G4int exindex =
static_cast<G4int>(std::floor(exdindex));
168 G4int eyindex =
static_cast<G4int>(std::floor(eydindex));
169 G4int ezindex =
static_cast<G4int>(std::floor(ezdindex));
171 if ((exindex < 0) || (exindex >= Enx - 1) ||
172 (eyindex < 0) || (eyindex >= Eny - 1) ||
173 (ezindex < 0) || (ezindex >= Enz - 1))
204 xEField[exindex ][eyindex ][ezindex ] * (1-exlocal) * (1-eylocal) * (1-ezlocal) +
205 xEField[exindex ][eyindex ][ezindex+1] * (1-exlocal) * (1-eylocal) * ezlocal +
206 xEField[exindex ][eyindex+1][ezindex ] * (1-exlocal) * eylocal * (1-ezlocal) +
207 xEField[exindex ][eyindex+1][ezindex+1] * (1-exlocal) * eylocal * ezlocal +
208 xEField[exindex+1][eyindex ][ezindex ] * exlocal * (1-eylocal) * (1-ezlocal) +
209 xEField[exindex+1][eyindex ][ezindex+1] * exlocal * (1-eylocal) * ezlocal +
210 xEField[exindex+1][eyindex+1][ezindex ] * exlocal * eylocal * (1-ezlocal) +
211 xEField[exindex+1][eyindex+1][ezindex+1] * exlocal * eylocal * ezlocal ;
213 yEField[exindex ][eyindex ][ezindex ] * (1-exlocal) * (1-eylocal) * (1-ezlocal) +
214 yEField[exindex ][eyindex ][ezindex+1] * (1-exlocal) * (1-eylocal) * ezlocal +
215 yEField[exindex ][eyindex+1][ezindex ] * (1-exlocal) * eylocal * (1-ezlocal) +
216 yEField[exindex ][eyindex+1][ezindex+1] * (1-exlocal) * eylocal * ezlocal +
217 yEField[exindex+1][eyindex ][ezindex ] * exlocal * (1-eylocal) * (1-ezlocal) +
218 yEField[exindex+1][eyindex ][ezindex+1] * exlocal * (1-eylocal) * ezlocal +
219 yEField[exindex+1][eyindex+1][ezindex ] * exlocal * eylocal * (1-ezlocal) +
220 yEField[exindex+1][eyindex+1][ezindex+1] * exlocal * eylocal * ezlocal ;
222 zEField[exindex ][eyindex ][ezindex ] * (1-exlocal) * (1-eylocal) * (1-ezlocal) +
223 zEField[exindex ][eyindex ][ezindex+1] * (1-exlocal) * (1-eylocal) * ezlocal +
224 zEField[exindex ][eyindex+1][ezindex ] * (1-exlocal) * eylocal * (1-ezlocal) +
225 zEField[exindex ][eyindex+1][ezindex+1] * (1-exlocal) * eylocal * ezlocal +
226 zEField[exindex+1][eyindex ][ezindex ] * exlocal * (1-eylocal) * (1-ezlocal) +
227 zEField[exindex+1][eyindex ][ezindex+1] * exlocal * (1-eylocal) * ezlocal +
228 zEField[exindex+1][eyindex+1][ezindex ] * exlocal * eylocal * (1-ezlocal) +
229 zEField[exindex+1][eyindex+1][ezindex+1] * exlocal * eylocal * ezlocal ;