1120 if(efieldinput<0) efieldinput *= (-1);
1122 G4double onea=144623.235704015,
1123 oneb=850.812714257629,
1124 onec=1192.87056676815,
1125 oned=-395969.575204061,
1126 onef=-355.484170008875,
1127 oneg=-227.266219627672,
1128 oneh=223831.601257495,
1129 onei=6.1778950907965,
1130 onej=18.7831533426398,
1131 onek=-76132.6018884368;
1133 G4double twoa=17486639.7118995,
1134 twob=-113.174284723134,
1135 twoc=28.005913193763,
1136 twod=167994210.094027,
1137 twof=-6766.42962575088,
1138 twog=901.474643115395,
1139 twoh=-185240292.471665,
1140 twoi=-633.297790813084,
1141 twoj=87.1756135457949;
1143 G4double thra=10626463726.9833,
1144 thrb=224025158.134792,
1145 thrc=123254826.300172,
1146 thrd=-4563.5678061122,
1147 thrf=-1715.269592063,
1148 thrg=-694181.921834368,
1149 thrh=-50.9753281079838,
1150 thri=58.3785811395493,
1151 thrj=201512.080026704;
1152 G4double y1=0,y2=0,
f1=0,
f2=0,
f3=0,edrift=0,
1153 t1=0,t2=0,frac=0,slope=0,intercept=0;
1156 f1=onea/(1+exp(-(efieldinput-oneb)/onec))+oned/
1157 (1+exp(-(efieldinput-onef)/oneg))+
1158 oneh/(1+exp(-(efieldinput-onei)/onej))+onek;
1159 f2=twoa/(1+exp(-(efieldinput-twob)/twoc))+twod/
1160 (1+exp(-(efieldinput-twof)/twog))+
1161 twoh/(1+exp(-(efieldinput-twoi)/twoj));
1162 f3=thra*exp(-thrb*efieldinput)+thrc*exp(-(
pow(efieldinput-thrd,2))/
1164 thrg*exp(-(
pow(efieldinput-thrh,2)/(thri*thri)))+thrj;
1166 if(efieldinput<20 && efieldinput>=0) {
1167 f1=2951*efieldinput;
1168 f2=5312*efieldinput;
1169 f3=7101*efieldinput;
1172 if(tempinput<200.0 && tempinput>165.0) {
1178 if(tempinput<230.0 && tempinput>200.0) {
1184 if((tempinput>230.0 || tempinput<165.0) && !Miller) {
1185 G4cout <<
"\nWARNING: TEMPERATURE OUT OF RANGE (165-230 K)\n";
1188 if (tempinput == 165.0) edrift =
f1;
1189 else if (tempinput == 200.0) edrift =
f2;
1190 else if (tempinput == 230.0) edrift =
f3;
1192 frac=(tempinput-
t1)/(t2-
t1);
1193 slope = (y1-y2)/(
t1-t2);
1194 intercept=y1-slope*
t1;
1195 edrift=slope*tempinput+intercept;
1199 if ( efieldinput <= 40. )
1200 edrift = -0.13274+0.041082*efieldinput-0.0006886*
pow(efieldinput,2.)+
1201 5.5503e-6*
pow(efieldinput,3.);
1203 edrift = 0.060774*efieldinput/
pow(1+0.11336*
pow(efieldinput,0.5218),2.);
1204 if ( efieldinput >= 1e5 ) edrift = 2.7;
1205 if ( efieldinput >= 100 )
1206 edrift -= 0.017 * ( tempinput - 163 );
1208 edrift += 0.017 * ( tempinput - 163 );
1211 if (
Z == 18 ) edrift = 1e5 * (
1212 .097384*
pow(log10(efieldinput),3.0622)-.018614*sqrt(efieldinput) );
1213 if ( edrift < 0 ) edrift = 0.;
static constexpr double cm