Electron Attachment Rates for Impurities in LAr

Launch dialog box to request the parent directory for all required I/O

$DataDirectory=SystemDialogInput["Directory",WindowTitle->"Select directory containing data"];
If[$DataDirectory===$Canceled,Print["You must supply a directory: STOPPING HERE!"];FrontEndExecute[FrontEndToken["EvaluatorAbort"]],pathPrefix=StringTake[$DataDirectory,StringPosition[$DataDirectory,"/"][[3,1]]];
Print["Data will be read from subdirectories of ",pathPrefix]];
path="/CET Work/LAr Properties/Transport/Electron Attachment/";

Prologue

Needs["LArProperties`"]

Needs["ErrorBarPlots`"]
Needs["ErrorBarLogPlots`"]

Useful Functions and Definitions

planckConst=6.62607004 (10^(-34));
planckConstReduced=planckConst/(2 π);
boltzmannConstant=1.38064852×(10^(−23)); (* Boltzmann constant in J/K *)
boltzmannConstantEV=8.6173303 (10^(-5)); (* Boltzmann constant in eV/K *)
speedOfLight=299792458.;
electronCharge=1.60217662 (10^(-19));
electronMass=9.10938356 (10^(-31));
fineStructureConstant=0.0072973525664;
permittivityOfVacuum=8.854187817 (10^(-12)); (* permittivity of vacuum in SI *)
AvogadroNumber=6.022140857 (10^23);

ρLiq[T_]:=DensityLAr[T];
ρLiqMole[T_]:=With[{AtomicWeightAr=AtWtAr},DensityLAr[T]/AtomicWeightAr];(* moles/(cm^3) *)
ρGas[T_]:=DensityGAr[T];
ρGasMole[T_]:=With[{AtomicWeightAr=AtWtAr},DensityGAr[T]/AtomicWeightAr];(* moles/(cm^3) *)

Unprotect[fDXF];
Clear[fDXF];
fDXF[x_,mark_]:=Select[mark,#<x&][[-1]];
ClearAttributes[fDXF,Listable];
Protect[fDXF];

Remove[setScale];
setScale[v_]:=Module[{},
xOrigin=v[[1,1,1]];
xIntercept=(v[[1,2,1]]+v[[2,2,1]])/2;
xSlope=(v[[3,1,1]]-v[[1,1,1]])/((v[[3,2,1]]+v[[4,2,1]])/2-xIntercept);
yOrigin=v[[1,1,2]];
yIntercept=(v[[1,2,2]]+v[[3,2,2]])/2;
ySlope=(v[[2,1,2]]-v[[1,1,2]])/((v[[2,2,2]]+v[[4,2,2]])/2-yIntercept);
StandardDeviation/@Transpose[(reScale[#[[2]]]&/@v)-v[[All,1]]]
]/;Dimensions[v]=={4,2,2};
setScale[v_]:=Module[{},
xOrigin=v[[1,1,1]];
xIntercept=(v[[1,2,1]]+v[[2,2,1]])/2;
xSlope=(v[[3,1,1]]-v[[1,1,1]])/(v[[3,2,1]]-xIntercept);
yOrigin=v[[1,1,2]];
yIntercept=(v[[1,2,2]]+v[[3,2,2]])/2;
ySlope=(v[[2,1,2]]-v[[1,1,2]])/(v[[2,2,2]]-yIntercept);
StandardDeviation/@Transpose[(reScale[#[[2]]]&/@v)-v[[All,1]]]
]/;Dimensions[v]=={3,2,2};
reScale[{xRaw_,yRaw_}]:=Module[{},
{xOrigin+xSlope×(xRaw-xIntercept),yOrigin+ySlope×(yRaw-yIntercept)}
];

Unprotect[GetDXFDataAndErrors];
GetDXFDataAndErrors[file_,axisValues_]:=Module[{data,mark1,mark2,mark3,mark4,last,ends,begins,v,errors,values},
data=Import[file];
mark1=Position[data,x_/;x==="AcDbSpline"][[All,1]];
mark2=Drop[Position[data,x_/;x==="SPLINE"][[All,1]],1];
mark3=Position[data,x_/;x==="ENDSEC"][[All,1]];
mark4=Position[data,x_/;x===40][[All,1]];
last=Select[mark3,#>mark2[[-1]]&][[1]];
ends=Append[mark2,last]-2;
begins=Drop[Append[mark1,last],1];
begins=fDXF[#,mark4]&/@begins+2;
data=MapThread[DeleteDuplicates[Partition[Flatten[data[[#1;;#2]]],6][[All,{2,4}]]]&,{begins,ends}];
v=MapThread[{#1,#2}&,{axisValues,data[[1]]}];
Print["Standard deviations in scaling are ",setScale[v]," in the x & y coordinates"];
If[Length[data]≤2,Print["No errorbars found; values only are returned"];
Return[reScale/@data[[2]]]];
ends=(reScale/@data[[2]])[[All,2]];
errors=Abs[ends[[Range[1,Length[ends],2]]]-ends[[Range[2,Length[ends],2]]]]/2;
values=reScale/@data[[3]];
If[Length[values]===Length[errors],Print[Length[values]," values found"];
data=MapThread[{#1[[1]],PlusMinus[#1[[2]],#2]}&,{values,errors}],Print["Number of values (",Length[values]") does not match number of error bars (",Length[errors],")"];values]
];
Protect[GetDXFDataAndErrors];

Unprotect[regionLocate,extractString,getCommentBox,getTextBlock];
regionLocate[data_,char_String]:={1,-1}+#&/@Partition[Flatten[Position[data,x_List/;Length[x]>0∧Head[x[[1]]]===String∧StringLength[x[[1]]]≥4∧StringTake[x[[1]],4]===StringPadRight[s=StringTake[char,1],4,s]]],2];
extractString[data_,key_]:=StringJoin[Riffle[#," "]]&/@Map[If[NumericQ[#],ToString[#],#]&,Select[data,If[Length[#]>0,#[[1]]===key]&],2];
getCommentBox[data_]:=Map[StringJoin[Riffle[#," "]]&,Map[If[NumberQ[#],ToString[#],#]&,Map[Flatten,Map[Select[#,Length[#]>0&]&,Map[data[[Span[#]]]&,regionLocate[data,"*"]]]],2]];
getTextBlock[data_,region_List]:=Map[StringJoin[Riffle[#," "]]&,Map[If[NumberQ[#],ToString[#],#]&,Map[Flatten,Map[Select[#,Length[#]>0&]&,Map[data[[Span[Sequence@@#]]]&,region]]],2]];
Protect[regionLocate,extractString,getCommentBox,getTextBlock];

Unprotect[CombineErrors,ffMap];
Clear[CombineErrors,ffMap];
ffMap[n_]:=ToExpression["x"<>ToString[n]];
CombineErrors::var="Warning: not all non-numeric quantities (`1`) in the function are spacified as variables.";
CombineErrors::dim="The dimensions of the correlation matrix must be `1` by `1` to match the length of the variables list.";
CombineErrors::usage="CombineErrors[f,var,cor] gives the variance (square of uncertainty) in f[var] resulting from uncertainties in the varialbles 'var', that are correlated as specified by the matrix 'cor'.";
CombineErrors[f_,v_List,corr_?MatrixQ]:=Module[{l,d,vs,s,fun,a,Σ,J,result},
If[(l=Length[v])=!=(d=Dimensions[corr])[[1]]∨l=!=d[[2]],Message[CombineErrors::dim,l];Return[$Failed]];
If[Head[f]===Function,
vs=f[[Sequence@@#]]&/@Position[f,Slot[_]];
s=vs/.Slot->ff;
fun=f/.MapThread[Rule,{vs,s}],
s=Select[Flatten[Apply[List,f,{0,∞}]],!NumericQ[#]&];
fun=f
];
s=DeleteDuplicates[s];
If[!And@@(MemberQ[s,#]&/@v),Message[CombineErrors::var,s]];
a=ToExpression["δ"<>ToString[#]]&/@v;
Σ=corr Outer[Times,a,a];
J=( (∂_(#))fun)&/@v;
result={a,Expand[J.Σ.J]};
If[Head[f]===Function,result/.Function->Identity,result]
];
CombineErrors[f_,v_List]:=Module[{c},
c=IdentityMatrix[Length[v]];
CombineErrors[f,v,c]
];
CombineErrors[f_]:=Module[{vs,s,fun,v,c},
If[Head[f]===Function,
vs=f[[Sequence@@#]]&/@Position[f,Slot[_]];
s=vs/.Slot->ff;
fun=f/.MapThread[Rule,{vs,s}],
s=Select[Flatten[Apply[List,f,{0,∞}]],!NumericQ[#]&];
fun=f
];
s=DeleteDuplicates[s];
c=IdentityMatrix[Length[s]];
CombineErrors[fun,s,c]
];
Protect[CombineErrors,ffMap];

Unprotect[getChannel]; (* this function extracts all exit channels for a specified entrance channel species from the LxCat database *) 
getChannel[dataset_List,species_String]:=Module[{channelNo,str,start,stop,region},
channelNo=Select[dataset,#[[1]]===species&][[All,2]];
str=Select[dataset,#[[1]]===species&][[All,3]];
start=(StringPosition[#,"PROCESS: "][[1,2]]+1)&/@str;
stop=(StringPosition[#,", Attach"][[1,1]]-1)&/@str;
region=Transpose[{start,stop}];
MapThread[{#1,StringTake[#2,#3]}&,{channelNo,str,region}]
];
Protect[getChannel];

Construct a Pade approximant

This constructs the rational polynomial (Subscript[[n/m], f]) (x) that ”best” approximates f(x).

Pade[n_,m_,x_]:=With[{numer=Sum[ToExpression["a"<>ToString[i]] (x^i),{i,0,n}],denom=1+Sum[ToExpression["b"<>ToString[i]] (x^i),{i,1,m}]},numer/denom];
paramPade[n_,m_]:=Join[Table[ToExpression["a"<>ToString[i]],{i,0,n}],Table[ToExpression["b"<>ToString[i]],{i,1,m}]];

Define the confidence interval in units of σ

Clear[σ,n];
norm=Simplify[Integrate[Exp[-(x^2)/2/(σ^2)],{x,-∞,∞}],σ>0];
nσConfidence=Simplify[Integrate[Exp[-(x^2)/2/(σ^2)],{x,-n σ,n σ}]/norm,σ>0];
Unprotect[Confidence];
Confidence[n_]:=N[Erf[n/(Sqrt[2])]];
Protect[Confidence];
Print["Confidence of the value being inside the ±n σ interval is ",nσConfidence];
Print[TableForm[Table[{n,Confidence[n],1.0-Confidence[n]},{n,1,6}],TableHeadings->{None,{"n","Confidence","1-Confidence"}}]];

Data of Biller, et al.

Data from Biller, et al. for (Subscript[O, 2]): inverse attenuation length vs. added concentration

The data

Biller et al., NIM A276 (1989) 144 in Figure 3 give inverse attenuation lengths as a function of added oxygen concentration for five electric fields.  Figure 4 shows the same data replotted as attenuation length vs. field for three of the five concentrations.

Extract data for (Subscript[O, 2]) from graphs of λ vs. E (electric field)

fileList={"Biller O2 Attachment Data 1ppb.dat","Biller O2 Attachment Data 3ppb.dat","Biller O2 Attachment Data 5ppb.dat"};
yMaxList={88,64,52};
yMin=0;
{xMin,xMax}={0,4};
xList={1,3,5};
dataO2vE={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{xMin,yMin},{xMin,yMax},{xMax,yMin},{xMax,yMax}};
data=GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
Print[TableForm[data]];
w=data[[All,2]][[All,2]];
fit=LinearModelFit[{#[[1]],#[[2,1]]}&/@data,x,x,Weights->(w^(-2)),ConfidenceLevel->Confidence[1]];
Print[fit["ParameterConfidenceIntervalTable"]];
AppendTo[dataO2vE,Prepend[#,xList[[i]]]&/@data];
p1=ErrorListPlot[{{#[[1]],#[[2]][[1]]},ErrorBar[#[[2]][[2]]]}&/@data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin-0.1,xMax+0.1},{yMin-0.1,yMax}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","MFP (cm)","Electron Attenuation Coefficient vs. Field",""}),AspectRatio->1.2];
pFit=Plot[fit[x],{x,0,10},PlotStyle->{Thickness[0.005],Red}];
χ2=Plus@@(((fit["FitResiduals"]/w))^2)/(Length[data]-2);
Print["(χ^2) = ",χ2];
loc={3,20};
{dx,dy}={0.6,4};
labels=Graphics[{EdgeForm[{Thick,Black}],FaceForm[White],Rectangle[loc-{dx,dy},loc+{dx,dy},RoundingRadius-> 1 {0.1,1.5}],Text["(χ^2) = "<>ToString[NumberForm[χ2,2]],loc,BaseStyle->{FontSize->14,FontFamily->"Helvetica",Italic}]}];
Print[Show[p1,pFit,labels]];
];

Extract data for (Subscript[O, 2]) from graphs of (λ^(-1)) vs. X (concentration)

fileList={"Biller O2 Attachment Data 500V.dat","Biller O2 Attachment Data 1000V.dat","Biller O2 Attachment Data 1500V.dat","Biller O2 Attachment Data 2000V.dat","Biller O2 Attachment Data 3000V.dat"};
yMaxList={0.15,0.11,0.10,0.10,0.09};
eFieldList={500,1000,1500,2000,3000};
dataSetvField={#[[1]],Round[#[[2]],0.1],#[[3]]}&/@Flatten[dataO2vE,1];
resultsO2vX={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{0,0},{0,yMax},{8,0},{8,yMax}};
data=GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
data=SortBy[Join[{Round[#[[1]],0.1],#[[2]]}&/@data,{#[[1]],PlusMinus[1/#[[3,1]],#[[3,2]]/((#[[3,1]])^2)]}&/@Select[dataSetvField,#[[2]]==eFieldList[[i]]/1000&]],1];
Print[TableForm[data]];
w=data[[All,2]][[All,2]];
fit=LinearModelFit[{#[[1]],#[[2,1]]}&/@data,x,x,Weights->(w^(-2)),ConfidenceLevel->Confidence[1]];
Print[fit["ParameterConfidenceIntervalTable"]];
AppendTo[resultsO2vX,{eFieldList[[i]],MapThread[PlusMinus[#1,#2]&,{fit["BestFitParameters"],fit["ParameterErrors"]}],fit["EstimatedVariance"]}];p1=ErrorListPlot[{{#[[1]],#[[2]][[1]]},ErrorBar[#[[2]][[2]]]}&/@data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{-0.1,8.1},{0,yMax}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Added (Subscript[O, 2]) (ppb)","(MFP^(-1)) ((cm^(-1)))","Electron Attenuation Coefficient vs. (Subscript[O, 2]) Concentration",""}),AspectRatio->1.2];
pFit=Plot[fit[x],{x,0,10},PlotStyle->{Thickness[0.005],Red}];
χ2=Plus@@(((fit["FitResiduals"]/w))^2)/(Length[data]-2);
Print["(χ^2) = ",χ2];
loc={6,0.02};
{dx,dy}={1.2,0.006};
labels=Graphics[{EdgeForm[{Thick,Black}],FaceForm[White],Rectangle[loc-{dx,dy},loc+{dx,dy},RoundingRadius-> 2 {0.1,0.0015}],Text["(χ^2) = "<>ToString[NumberForm[χ2,2]],loc,BaseStyle->{FontSize->14,FontFamily->"Helvetica",Italic}]}];
Print[Show[p1,pFit,labels]];
];

Data from Biller, et al. for (Subscript[N, 2]): inverse attenuation length vs. added concentration

The data

Biller et al., NIM A276 (1989) 144 in Figure 3 give inverse attenuation lengths as a function of added nitrogen concentration and electric field.

But see the earlier paper 
A.S. Barabash, A.A. Golubev, O.V. Kazachenko and B.M. Ovchinnikov, Investigation of Electronic Conductivity of Liquid Argon - Nitrogen Mixtures, NIM A234 (1985) 451.
who claim to see no attachment to (Subscript[N, 2]).  Biller cites this as ref 21.  We accept Biller’s results, and assume that Barabash were wrong to attribute attachment to impurities in their nitrogn.

Extract data for (Subscript[N, 2]) from graphs of λ vs. E (electric field)

fileList={"Biller N2 Attachment Data 1500ppb.dat","Biller N2 Attachment Data 3400ppb.dat","Biller N2 Attachment Data 5400ppb.dat"};
yMaxList={80,60,48};
yMin=0;
{xMin,xMax}={0,4};
xList={1500,3400,5400};
dataN2vE={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{xMin,yMin},{xMin,yMax},{xMax,yMin},{xMax,yMax}};
data=GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
Print[TableForm[data]];
w=data[[All,2]][[All,2]];
fit=LinearModelFit[{#[[1]],#[[2,1]]}&/@data,x,x,Weights->(w^(-2)),ConfidenceLevel->Confidence[1]];
Print[fit["ParameterConfidenceIntervalTable"]];
AppendTo[dataN2vE,Prepend[#,xList[[i]]]&/@data];
p1=ErrorListPlot[{{#[[1]],#[[2]][[1]]},ErrorBar[#[[2]][[2]]]}&/@data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin-0.1,xMax+0.1},{yMin-0.1,yMax}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","MFP (cm)","Electron Attenuation Coefficient vs. Field",""}),AspectRatio->1.2];
pFit=Plot[fit[x],{x,0,10},PlotStyle->{Thickness[0.005],Red}];
χ2=Plus@@(((fit["FitResiduals"]/w))^2)/(Length[data]-2);
Print["(χ^2) = ",χ2];
loc={3,20};
{dx,dy}={0.6,4};
labels=Graphics[{EdgeForm[{Thick,Black}],FaceForm[White],Rectangle[loc-{dx,dy},loc+{dx,dy},RoundingRadius-> 1 {0.1,1.5}],Text["(χ^2) = "<>ToString[NumberForm[χ2,2]],loc,BaseStyle->{FontSize->14,FontFamily->"Helvetica",Italic}]}];
Print[Show[p1,pFit,labels]];
];

Extract data for (Subscript[N, 2]) from graphs of (λ^(-1)) vs. X (concentration)

fileList={"Biller N2 Attachment Data 500V.dat","Biller N2 Attachment Data 1000V.dat","Biller N2 Attachment Data 1500V.dat","Biller N2 Attachment Data 2000V.dat","Biller N2 Attachment Data 3000V.dat"};
yMaxList={0.24,0.16,0.13,0.11,0.10};
eFieldList={500,1000,1500,2000,3000};
dataSetvField={#[[1]],Round[#[[2]],0.1],#[[3]]}&/@Flatten[dataN2vE,1];
resultsN2vX={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{0,0},{0,yMax},{8,0},{8,yMax}};
data=GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
data=SortBy[Join[{(10^3) Round[#[[1]],0.1],#[[2]]}&/@data,{#[[1]],PlusMinus[1/#[[3,1]],#[[3,2]]/((#[[3,1]])^2)]}&/@Select[dataSetvField,#[[2]]==eFieldList[[i]]/1000&]],1];
Print[TableForm[data]];
w=data[[All,2]][[All,2]];
fit=LinearModelFit[{#[[1]],#[[2,1]]}&/@data,x,x,Weights->(w^(-2)),ConfidenceLevel->Confidence[1]];
Print[fit["BestFit"]];
Print[fit["ParameterConfidenceIntervalTable"]];
AppendTo[resultsN2vX,{eFieldList[[i]],MapThread[PlusMinus[#1,#2]&,{fit["BestFitParameters"],fit["ParameterErrors"]}],fit["EstimatedVariance"]}];p1=ErrorListPlot[{{#[[1]],#[[2]][[1]]},ErrorBar[#[[2]][[2]]]}&/@data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{-10,8010},{0,yMax}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Added (Subscript[O, 2]) (ppb)","(MFP^(-1)) ((cm^(-1)))","Electron Attenuation Coefficient vs. (Subscript[O, 2]) Concentration",""}),AspectRatio->1.2];
pFit=Plot[fit[x],{x,0,9000},PlotStyle->{Thickness[0.005],Red}];
χ2=Plus@@(((fit["FitResiduals"]/w))^2)/(Length[data]-2);
Print["(χ^2) = ",χ2];
loc={6000,0.02};
{dx,dy}={1200,0.009};
labels=Graphics[{EdgeForm[{Thick,Black}],FaceForm[White],Rectangle[loc-{dx,dy},loc+{dx,dy},RoundingRadius-> 2 {100,0.0015}],Text["(χ^2) = "<>ToString[NumberForm[χ2,{2,1}]],loc,BaseStyle->{FontSize->14,FontFamily->"Helvetica",Italic}]}];
Print[Show[p1,pFit,labels]];
];

Convert Biller MFP values (λ) to attachment coefficients (kA)

(Subscript[λ, A,i])=(Subscript[v, D])×(Subscript[τ, S])=((Subscript[v, D])/((Subscript[k, A,i])×(Subscript[n, i])))

Clear[λ,a,b,A,i,v,τ,S,k,x];
Solve[(Subscript[v, D])τ==((Subscript[v, D])/(k x)),k][[1]]
Solve[λ==((Subscript[v, D])/(k x)),k][[1]]

soln=Simplify[Solve[Eliminate[{λ==((Subscript[v, D])/(k x)),(λ^(-1))==a+b x},λ]],{k>0,x>0}][[1]]

If a is zero then

Simplify[soln/.a->0,{k>0,x>0}]

?DriftVelocityElectronLAr

Note that x in in ppb and drift velocity is in km/s, hence the factors of (10^9) and (10^5) respectively to convert to mole/mole and cm/s
We assume that the error in kA is only due to the error in the attenuation length, λ, neglecting errors in concentration and drift velocity.  Biller quotes concentration errors of 5 to10%.  The error in the drift velocity is probably negligible, but this should be verified.

t=tNBPAr;
kAO2Biller={#[[1]]/1000.,PlusMinus@@(List@@#[[2,2]]×DriftVelocityElectronLAr[#[[1]]/1000.,t]×(10^9)×(10^5))}&/@resultsO2vX;
kAN2Biller={#[[1]]/1000.,PlusMinus@@(List@@#[[2,2]]×DriftVelocityElectronLAr[#[[1]]/1000.,t]×(10^9)×(10^5))}&/@resultsN2vX;
Print[Style["Biller data for (Subscript[CO, 2])\n",FontFamily->"Helvetica",16],TableForm[kAO2Biller,TableHeadings->{None,{"E (kV/cm)","\tkA ± 1σ ((s^(-1)))"}}]];
Print[Style["Biller data for (Subscript[N, 2])\n",FontFamily->"Helvetica",16],TableForm[kAN2Biller,TableHeadings->{None,{"E (kV/cm)","\tkA ± 1σ ((s^(-1)))"}}]];

kAO2BillerOld={{0.5`,2.7762413081939985`*^12±1.3410446924092296`*^11},{1.`,2.3460872747419736`*^12±1.3507216107067606`*^11},{1.5`,2.008270548113447`*^12±1.0562098560091728`*^11},{2.`,1.6296522398871675`*^12±8.0755401385077`*^10},{3.`,1.255565380587944`*^12±6.7448922986535835`*^10}};

colorMap[set_]:=Which[set==="O2Biller",Red,set==="N2Biller",Orange,True,Black];pO2Biller=ErrorListLogPlot[{{#[[1]],#[[2,1]]},ErrorBar[#[[2,2]]]}&/@kAO2Biller,Joined->False,PlotRange->{{0,4},{(10^9),5 (10^12)}},PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["O2Biller"]}];
pN2Biller=ErrorListLogPlot[{{#[[1]],#[[2,1]]},ErrorBar[#[[2,2]]]}&/@kAN2Biller,Joined->False,PlotRange->{{0,4},{(10^9),5 (10^12)}},PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["N2Biller"]}];
Print[Show[pN2Biller,pO2Biller,Frame->True,FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->18,FontWeight->"Plain"]&)/@{"Electric Field (kV/cm)","Rate Constant ((s^(-1)))","Electron Attachment Rate Constants in Ar",""},AspectRatio->1.2,ImageSize->550,BaseStyle->{16,FontFamily->"Helvetica"}]];

Biller, et al. empirical parameterization of attachment rate for (Subscript[N, 2])

They parameterize their data in the following form (attenuation length in cm, E in kV/cm, nitrogen concentration in ppb) :

λA=((1.5×(10^5)  E)/((1+E) cPPB ))

The attenuation length is related to the mean attachment time and rate constant by

λA=vDrift×τA=(vDrift/(kA×nS))

with nS the impurity molar concentration, given above.  The rate constant is then (with the drift velocity in cm/sec and the density in gm/cm) given by this expression:

kA=((v[T]×(10^5))/(1.5×(10^5) eDrift/(1+eDrift) 2.503×(10^(-8)) ρL[T]))

Which is encapsulated in this function :

kNitrogen[eDrift_]:=((2.66347 ×(10^7)(1+eDrift) DriftVelocityElectronLAr[eDrift,tNBPAr])/(eDrift×ρLiq[tNBPAr]));

eF=0.5;
Print["For kNitrogen at E = ",eF," kV/cm, the attachment rate is ",kNitrogen[eF]," (s^(-1))"];

Data of Bakale, et al. for (Subscript[O, 2]), (Subscript[N, 2])O, and (Subscript[SF, 6]) from graphs of kA vs. E (electric field)

These are data taken from from Bakale, et al. for (Subscript[O, 2]), (Subscript[N, 2])O, and (Subscript[SF, 6])

These are the points for (Subscript[O, 2]), (Subscript[N, 2])O, and (Subscript[SF, 6]) takern  from Figure 2 of G. Bakale, U Sowada, and W.F. Schmidt, Effect of an electric field on electron attachment to (Subscript[SF, 6]), (Subscript[N, 2])O, and (Subscript[O, 2]), J. Phys. Chem. 80 (1976) 2556. link here
Data are {E, kA} in units of {V/cm, (M^(-1))(s^(-1))} where M stands for molarity

Convert Molarity to mole fraction (=(10^9) ppb)

Molarity[T_,xPPB_]:=xPPB×(10^(-9))×1000 ×ρLiqMole[T];
xPPB[T_,Molarity_]:=Molarity×(1/((10^(-9))×1000 ×ρLiqMole[T]));
convertMtoX=Molarity[tNBPAr,(10^9)];

xPPB[tNBP,Molarity[tNBP,1.0]]
convertMtoX

Condition to make slope of Pade approximant zero at x = 0

{n,m}={1,4};
fPade=Pade[n,m,#]&;
parameters=paramPade[n,m]
fPade[x]
constr=Solve[(((∂_x)fPade[x])/.x->0)==0,a0][[1]]
fPade[x]/.constr

Read, scale, fit, and plot data

fileList={"Bakale Attachment for O2.dat","Bakale Attachment for N2O.dat","Bakale Attachment for SF6.dat"};
yMaxList={15,15,15};
yMin=10;
{xMin,xMax}={1,5};
xList={"O2","N2O","SF6"};
resultsBakale={};
plotsBakale={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{xMin,yMin},{xMin,yMax},{xMax,yMin},{xMax,yMax}};
dataRaw={#[[1]],#[[2]]+Log[10,convertMtoX]}&/@GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
data={(10^(#[[1]])),(10^(#[[2]]))}&/@dataRaw;
Print[TableForm[data]];
p1=ListLogLogPlot[data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{(10^(xMin-0.1)),(10^(xMax+0.1))},{(10^(yMin-1.1)),(10^(yMax+Log[10,convertMtoX]))}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","kA ((s^(-1)))","Electron Attachment Rate vs. Field",""}),AspectRatio->1.2];
{n,m}={1,3};
fPade=Pade[n,m,#]&;
constr=Solve[(((∂_x)fPade[x])/.x->0)==0,a0][[1]];
parameters=Drop[paramPade[n,m],1];
Print["Pade approximant is ",fPade[x]/.constr];
err=(Sqrt[0.003385486044390969`]);
weight=ConstantArray[(err^(-2)),Length[dataRaw]];
fitPade=NonlinearModelFit[dataRaw,fPade[x]/.constr,parameters,x,Weights->weight];
pFit=LogLogPlot[Power[10,fitPade["BestFit"]/.x->Log[10,y]],{y,(10^xMin),(10^xMax)},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Red}];
bands=fitPade["MeanPredictionBands",ConfidenceLevel->0.9545]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pBands=LogLogPlot[Power[10,bands/.x->Log[10,y]],{y,(10^xMin),(10^xMax)},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.003],Lighter[Red]}];
params=fitPade["BestFitParameters"];
Print["Parameters are ",params];
labels=parameters;
Print["Fitted Parameters\n",TableForm[MapThread[Prepend[#1,#2]&,{fitPade["ParameterTableEntries"][[All,1;;2]],labels}],TableHeadings->{None,{"Parameter","Value","Error"}}]];
Print["ANOVA Table\n",fitPade["ANOVATable"]];
Print["\n",Grid[Transpose[{#,fitPade[#]}&[{"AdjustedRSquared","AIC","BIC","RSquared"}]],Alignment->Left]];
Print["Covariance Matrix\n",TableForm[fitPade["CorrelationMatrix"],TableHeadings->{labels,labels}]];
Print["(χ^2) = ",Plus@@(weight ((fitPade["FitResiduals"])^2))/(Length[dataRaw]-Length[parameters])];
Print[p=Show[p1,pFit,pBands]];
AppendTo[resultsBakale,{xList[[i]],data,fitPade["BestFit"],bands}];
];

Data of Bettini, et al.

Extract data for (Subscript[O, 2]) and (Subscript[CO, 2]) from graphs of kA vs. E (electric field)

The data

This is lifetime data taken from Figure 12 in A. Bettini, et al., A study of the factors affecting the lifetime in ultra-pure liquid argon, NIM A305 (1991) 171.
The data is electron lifetime (μs) vs. electric field (V/cm) at a single concentration for each impurity.

Read, scale, fit, and plot data

fileList={"Bettini Attachment O2.dat","Bettini Attachment CO2.dat"};
yMaxList={160,160};
yMin=0;
{xMin,xMax}={0,1000};
xList={{"O2",3.5 (10^(-9))},{"CO2",40.0 (10^(-9))}};
resultsBettini={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{xMin,yMin},{xMin,yMax},{xMax,yMin},{xMax,yMax}};
data=GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
Print[TableForm[data]];
w=data[[All,2]][[All,2]];
fit=LinearModelFit[{#[[1]],#[[2,1]]}&/@data,x,x,Weights->(w^(-2)),ConfidenceLevel->Confidence[1]];
Print[fit["ParameterConfidenceIntervalTable"]];
AppendTo[resultsBettini,{xList[[i]],data}];
p1=ErrorListPlot[{{#[[1]],#[[2]][[1]]},ErrorBar[#[[2]][[2]]]}&/@data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin-0.1,xMax+0.1},{yMin-0.1,yMax}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","Lifetime (μs)","Electron Lifetime vs. Field",""}),AspectRatio->1.2];
p2=Plot[fit[x],{x,0,10},PlotStyle->{Thickness[0.005],Red}];
Print[Show[p1,p2]];
];

Convert lifetimes and concentrations to attachment rates

Clear[n,τ];
CombineErrors[1/(n τ)]

δnOvern=0.07;
kAO2Bettini={Round[#[[1]]/1000,0.1],PlusMinus[((((n=resultsBettini[[1,1,2]])×(τ=#[[2,1]]×(10^(-6)))))^(-1)),((((((#[[2,2]]×(10^(-6))/(n (τ^2))))^2)+(((δnOvern/(n τ)))^2)))^(1/2))]}&/@resultsBettini[[1,2]];
kACO2Bettini={Round[#[[1]]/1000,0.1],PlusMinus[((((n=resultsBettini[[2,1,2]])×(τ=#[[2,1]]×(10^(-6)))))^(-1)),((((((#[[2,2]]×(10^(-6))/(n (τ^2))))^2)+(((δnOvern/(n τ)))^2)))^(1/2))]}&/@resultsBettini[[2,2]];
Print[Style["Bettini data for (Subscript[O, 2])\n",FontFamily->"Helvetica",16],TableForm[kAO2Bettini,TableHeadings->{None,{"E (kV/cm)","\tkA ± 1σ ((s^(-1)))"}}]];
Print[Style["Bettini data for (Subscript[CO, 2])\n",FontFamily->"Helvetica",16],TableForm[kACO2Bettini,TableHeadings->{None,{"E (kV/cm)","\tkA ± 1σ ((s^(-1)))"}}]];

Data for (Subscript[O, 2]) from Hofmann, et al.

Extract data for (Subscript[O, 2]) from graph in paper by Hofmann, et al.

The data

Here is data from W. Hofmann, et al., Production and transport of conduction electrons in a liquid argon ionization chamber, NIM 135 (1976) 151.

The measured mean free path vs. the reciprocal of concentration is given in Figure 4, in units of cm vs. (ppm^(-1)).
The product of measured mean free path and concentration vs. field is given in Figure 5, in units of cm ppm vs. kV/cm.
We extract the data, with error bars, from figure 5.

Read, scale, fit, and plot data

fileList={"Hofmann O2 Attachment Data v E.dat"};
yMaxList={4};
yMin=0;
{xMin,xMax}={0,30};
xList={"O2"};
resultsHofmann={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{xMin,yMin},{xMin,yMax},{xMax,yMin},{xMax,yMax}};
data=GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
Print[TableForm[data,TableHeadings->{None,{"E (kV/cm)","MFP (cm ppm)"}}]];
w=data[[All,2]][[All,2]];
fit=LinearModelFit[{#[[1]],#[[2,1]]}&/@data,x,x,Weights->(w^(-2)),ConfidenceLevel->Confidence[1]];
Print[fit["ParameterConfidenceIntervalTable"]];
AppendTo[resultsHofmann,{xList[[i]],data}];
p1=ErrorListPlot[{{#[[1]],#[[2]][[1]]},ErrorBar[#[[2]][[2]]]}&/@data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin-0.1,xMax+0.1},{yMin-0.1,yMax+0.5}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","λ x (cm ppm)","MFP times Concentration vs. Field",""}),AspectRatio->1.2];
p2=Plot[fit[x],{x,0,xMax},PlotStyle->{Thickness[0.005],Red}];
Print[Show[p1,p2]];
];

Convert Hofmann MFP times concentration values (λ x) to attachment coefficients (kA)

Note that x is in ppm and drift velocity is in km/s, hence the factors of (10^6) and (10^5) respectively to convert to mole/mole and cm/s.
The error in the drift velocity is probably negligible, but this should be verified.

t=tNBPAr;
kAO2Hofmann={#[[1]],PlusMinus@@(DriftVelocityElectronLAr[#[[1]],t]×(10^5)×(10^6)×{((#[[2,1]])^(-1)),#[[2,2]]×((#[[2,1]])^(-2))})}&/@resultsHofmann[[1,2]];
Print[Style["Hofmann data for (Subscript[O, 2])\n",FontFamily->"Helvetica",16],TableForm[kAO2Hofmann,TableHeadings->{None,{"E (kV/cm)","\tkA ± 1σ ((s^(-1)))"}}]];

Data for (Subscript[O, 2]) from Adams, et al.

Extract data for (Subscript[O, 2]) from graph in paper of Adams, et al.

The data

Here is data from M. Adams, et al., A purity monitoring system for liquid argon calorimeters, NIM A545 (2005) 613.
The measured mean attachment coefficient vs. the temperature is given in Figure 2, in units of (ppm^(-1)) ((μs)^(-1)) vs. oC.
We extract the data, with error bars, from figure 2.

Read, scale, fit, and plot data

tRef=tNBPAr;
fileList={"Adams O2 Attachment Data 2200V.dat","Adams O2 Attachment Data 2400V.dat","Adams O2 Attachment Data 4400V.dat","Adams O2 Attachment Data 4800V.dat","Adams O2 Attachment Data 6200V.dat"};
yMaxList={1.4,1.4,1.4,1.4,1.4};
yMin=0.4;
{xMin,xMax}={-185,-181};
xList={2.2,2.4,4.4,4.8,6.2}; (* this is the E field *)
resultsAdams={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{xMin,yMin},{xMin,yMax},{xMax,yMin},{xMax,yMax}};
data=GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
Print[TableForm[data]];
w=data[[All,2]][[All,2]];
fit=LinearModelFit[{#[[1]],#[[2,1]]}&/@data,x,x,Weights->(w^(-2)),ConfidenceLevel->Confidence[1]];
Print[fit["ParameterConfidenceIntervalTable"]];
AppendTo[resultsAdams,{xList[[i]],PlusMinus[fit[tRef-273.15]×(10^12),data[[1,2,2]]×(10^12)]}];
p1=ErrorListPlot[{{#[[1]],#[[2]][[1]]},ErrorBar[#[[2]][[2]]]}&/@data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin-0.1,xMax+0.1},{yMin-0.1,yMax+0.5}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"T ((()^o)C)","(Subscript[k, A]) ((ppm^(-1)) ((μs)^(-1)))","Attachment Rate vs. Temperature",""}),AspectRatio->1.2];
p2=Plot[fit[x],{x,xMin,xMax},PlotStyle->{Thickness[0.005],Red}];
Print[Show[p1,p2]];
];

Compute attachment rates vs. field

kAO2Adams=resultsAdams;
Print[Style["Adams data for (Subscript[O, 2])\n",FontFamily->"Helvetica",16],TableForm[kAO2Adams,TableHeadings->{None,{"E (kV/cm)","\tkA ± 1σ ((s^(-1)))"}}]];

Data for (Subscript[H, 2])O from Andrews, et al. and Carls, et al.

Data of Andrews, et al.

The Data (two sets, one field each)

The data for (Subscript[H, 2])O is taken from 
R. Andrews, W. Jaskierny, H. Joestlein, C.Kendziora, S. Pordes  and, T. Tope , A system to test the effect of materials on electron drift lifetime in liquid argon and the effect of water, NIM A608 (2009) 251.
(see also microBooNE docDB 429-v1).  This paper reports the  only (Subscript[H, 2])O concentration in the gas, and states (with no supporting evidence) that the Henry's law constant for water in LAr is (((0.002))^(-1))=500.   This is an unreasonably large value, in comparison to other species with high triple point temperatures and very low vapor pressures at 90K.   There is also presumably some (Subscript[O, 2]) present, but this is not quantified.

Here is the relevant text from this paper:

	In order to further investigate the effect of water, a moisture analyzer [12] with a 2 ppb detection limit and a 1 ppb resolution was acquired to monitor the water concentration in the MTS cryostat. The argon vapor was monitored for moisture content because the moisture analyzer was not sensitive to concentrations in the liquid. For example, when using the sintered metal return and operating the internal ﬁlter, we estimate the water concentration in the liquid is ~1/500 of that in the vapor. The sintered metal leaves only 1/10 of the impurities in the condensate; this ratio is further reduced by the internal filter, which filters liquid 50 times faster than the condenser adds liquid.
...
	In general, none of the materials affected the drift lifetime when immersed in the liquid. When in the warmer regions of the vapor space, however, most materials produced an increase in the water concentration in the argon vapor, e.g. as shown in Fig. 8. It was noted that the water concentration was correlated with the electron drift lifetime in a way similar to that observed when the cryostat and airlock volumes were connected. The product of the drift lifetime and the water concentration was a constant, (Drift Lifetime in ms x H2O Concentration in ppb) ~ 17, independent of material. The actual increase in water concentration did depend on the material and on its preparation before insertion. As an example, after evacuation in the airlock for a few days prior to testing, PC board  materials had little effect on the water concentration in the argon vapor and hence little effect on the drift lifetime as shown in Fig. 9.  These observations suggest that water may be the only signiﬁcant contaminant introduced by materials.
...
	We have built a system (the MTS) to test materials for use in a large liquid argon TPC. We have tested a number of materials commonly used in detector construction and found that when inserted into the liquid argon they have very little effect on the electron drift lifetime. This is  encouraging for the construction of liquid argon-based detectors. We have observed a direct relation between the water concentration in the vapor above the liquid argon   and   the   electron drift lifetime of the form (Drift Lifetime x Water Concentration) = Constant. The water concentration in the vapor space can be affected by introducing materials into the vapor space and we ﬁnd that the constant in the expression above is independent of material. This leads us to conclude that the major contaminant in our system is water. We have not directly measured water concentrations in the liquid but we infer from measurements of the water concentration in the vapor space that concentrations of water at the level of 10 parts per trillion affect the drift lifetime, and that the concentration of water in the liquid effectively limits the electron drift lifetime.  
	We have demonstrated—something we did not intend—that a system design with a condenser returning condensate directly into the bulk liquid is not viable if there are warm surfaces open to the argon vapor. While we have achieved drift lifetimes of more than 10 ms with an open system the lifetimes we have achieved with our closed system using the return path mechanism do not exceed 8 ms. With an open system, any water released from warm metal surfaces or from warm materials in the vapor space does not enter the liquid argon. The operation of our condenser, however, very effectively introduces the water-contaminated argon vapor into the liquid of the cryostat. We ﬁnd that exposing the condensate to a large cold metal surface before entry to the bulk liquid removes most of the water from the condensate, and  allows our system to function effectively for testing materials.

The electric field for this data

D. Findlay, et al., Work at FNAL to achieve long electron drift lifetime in liquid argon, FERMILAB - TM - 2385 - E, retrieved from https://www.osti.gov/biblio/903416-FjP3GJ/

EminAndrews=0.010;
EmaxAndrews=0.240;
EAndrews=(EminAndrews+EmaxAndrews)/2;
EAndrews=EminAndrews;

Read, scale, fit, and plot data

fileList={"Andrews H2O MTS Set 1 Conc.dat","Andrews H2O MTS Set 1 Lifetime.dat","Andrews H2O MTS Set 2 Conc.dat","Andrews H2O MTS Set 2 Lifetime.dat"};
yMaxList={15,15,10,10};
yMin=0;
{xMin,xMax}={0,1};
xList={"Set 1 Conc","Set 1 Lifetime","Set 2 Conc","Set 2 Lifetime"};
resultsAndrews={};
plotsBakale={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{xMin,yMin},{xMin,yMax},{xMax,yMin},{xMax,yMax}};
data=GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
Print[TableForm[data]];
p1=ListPlot[data,Frame->True,Joined->True,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{0,1},{0,yMaxList[[i]]}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Time (au)","Conc. or Lifetime","Data of Andrews, et al.",""}),AspectRatio->1.2];
Print[p=Show[p1]];
AppendTo[resultsAndrews,{xList[[i]],data}];
];

Compute Attachment Rate for these two data sets

kHxx=1.47; (* we need to know kHxx since the measurements for O2 concentration were made for the ghas, NOT the liquid *)
kHxx=1; (* we need to know kHxx since the measurements for O2 concentration were made for the ghas, NOT the liquid *)
set1=kHxx×(10^12) (((Times@@resultsAndrews[[1;;2]][[All,2,All,2]]))^(-1));
kAH2OAndrews1={EAndrews,PlusMinus[Mean[set1],StandardDeviation[set1]]};
Print["The attachment rate for set #1 is ",kAH2OAndrews1];
set2=kHxx×(10^12) (((Times@@resultsAndrews[[3;;4]][[All,2,All,2]]))^(-1));
kAH2OAndrews2={EAndrews,PlusMinus[Mean[set2],StandardDeviation[set2]]};
Print["The attachment rate for set #2 is ",kAH2OAndrews2];
kAH2OAndrews={{EAndrews,PlusMinus[Mean[Join[set1,set2]],StandardDeviation[Join[set1,set2]]]}};
Print["The mean of the two points is ",kAH2OAndrews];

Data from operation of MicroBooNE detector, from B. Carls and M. Zuckerbrot

The data

Ben Carls and Mike Zuckerbrot, Purification Plot Technote 1, MicroBooNE docDB 4823, 4 October 27, 2015
MicroBooNE data on initial purification, data taken from 8/10/2015 to 8/19/2015, estimated from graphs in technote docDB 4823 dated 10/4/2015
Measured ~8ms lifetime at 2.1 ppb H20, with < 100ppt O2
See also the public note in MicroBooNE docDB4928-v16, which is essentially the same.

The electric field for this data

MicroBooNE has two of the three purity monitors inside the cryostat and one monitor inside of an inline vessel downstream of the liquid argon filters.  The two inside the cryostat monitors are of differing lengths and therefore offer different electron drift distances . A short purity monitor sits near the bottom of the cryostat and has a total drift distance of 19 cm . The other monitor inside of the cryostat has a total drift distance of 50 cm and will henceforth be referred to as the long purity monitor .

?DriftVelocityElectronLAr

tD=2.82; (* drift time in ms, from caption of Fig 5 *)
lD=50; (* drift distance in ms, for the long purity monitor *)
vD=(lD×(10^(-5)))/(tD (10^(-3))) (* drift velocity in km/s *);ECarls=f/.FindRoot[DriftVelocityElectronLAr[f,89]==vD,{f,0.1}];
Print["The field deduced from the reported drift time (",tD," ms) for Carls and ZuckerBrot is ",NumberForm[ECarls,{5,2}]," kV/cm"];

Read, scale and plot data

fileList={"MicroBooNE Charge Attenuation.dat","MicroBooNE Calibration.dat"};
yMaxList={1,1};
yMin=0;
{xMin,xMax}={12,26};
xList={"Charge Ratio","Lifetime Markers"};
resultsMicroBooNEQ={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{xMin,yMin},{xMin,yMax},{xMax,yMin},{xMax,yMax}};
data=GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
Print[TableForm[data]];
p1=ListPlot[data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin,xMax},{yMin,yMaxList[[i]]}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Time (days)","Charge Ratio ((Subscript[Q, A])/(Subscript[Q, C]))","Data MicroBooNE",""}),AspectRatio->1.2];
Print[p=Show[p1]];
AppendTo[resultsMicroBooNEQ,{xList[[i]],data}];
];

fileList={"MicroBooNE H2O Measurement Old.dat"};
yMaxList={2};
yMin=-2;
{xMin,xMax}={0,20};
xList={"H2O"};
resultsMicroBooNEH2O={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{xMin,yMin},{xMin,yMax},{xMax,yMin},{xMax,yMax}};
dataRaw={#[[1]],#[[2]]}&/@GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
data={#[[1]],(10^(#[[2]]))}&/@dataRaw;
Print[TableForm[data]];
p1=ListLogPlot[data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin,xMax},{(10^yMin),(10^yMax)}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Time (days)","(Subscript[H, 2])O Concentration (ppb)","Data MicroBooNE",""}),AspectRatio->1.2];
Print[p=Show[p1]];
AppendTo[resultsMicroBooNEH2O,{xList[[i]],data}];
];

Compute Attachment Rate for this data set

cal=Transpose[{{3,6,9},resultsMicroBooNEQ[[2,2,All,2]]}];
τD=-#[[1]] Log[#[[2]]]&/@cal;
τD=PlusMinus[Mean[τD],StandardDeviation[τD]]
Lifetime=Interpolation[{#[[1]],-τD[[1]]/Log[#[[2]]]}&/@resultsMicroBooNEQ[[1,2]],InterpolationOrder->1];
Print[Plot[Lifetime[x],{x,13.15,25.94},Frame->True,GridLines->Automatic,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Time (days)","Lifetime (ms)","Lifetime from MicroBooNE Data",""}),ImageSize->500]];

LifetimeCorr[x_]:=(((((Lifetime[x])^(-1))-(10^(-3))×kAO2[0.270]×1 (10^(-12))))^(-1))
Print[Plot[LifetimeCorr[x],{x,13.15,25.94},Frame->True,GridLines->Automatic,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Time (days)","Lifetime (ms)","MicroBooNE Data",""}),ImageSize->500]];

concH2O=Interpolation[resultsMicroBooNEH2O[[1,2]],InterpolationOrder->1];
Print[Plot[concH2O[x],{x,13.1,20},Frame->True,GridLines->Automatic,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Time (days)","(Subscript[H, 2])O Concentration (ppb)","MicroBooNE Data",""}),ImageSize->500]]

set3A=Table[{x,kHxx×(10^12) (((concH2O[x]×Lifetime[x]))^(-1))},{x,12.8328,20.0,.1}];
p1=ListPlot[set3A,Joined->True,Frame->True,GridLines->Automatic,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Time (days)","Attachment Rate ((s^(-1)))","MicroBooNE Data",""}),ImageSize->500];
set3B=Table[{x,kHxx×(10^12) (((concH2O[x]×Lifetime[x]))^(-1))},{x,15.5,20.0,.1}];
p2=ListPlot[set3B,Joined->True,Frame->True,PlotStyle->{Thickness[0.008],Red}];
Print[Show[p1,p2]];

Combine all three data sets for (Subscript[O, 2])

kAH2OCarlsAll={{ECarls,Around[Mean[set3A[[All,2]]],StandardDeviation[set3A[[All,2]]]]}};
Print["The attachment rate for all data of Carls, et al. is ",kAH2OCarlsAll];
kAH2OCarls={{ECarls,Around[Mean[set3B[[All,2]]],StandardDeviation[set3B[[All,2]]]]}};
Print["The attachment rate for Carls, et al. data after 15.5 hr is ",kAH2OCarls];
kAH2OAndrewsCarls={(((EAndrews×ECarls))^(1/2)),Around[Mean[Join[set1,set2,set3[[All,2]]]],StandardDeviation[Join[set1,set2,set3[[All,2]]]]]};
Print["The attachment rate for all three data sets is ",kAH2OAndrewsCarls];

1/0.04

Attachment to gas (Subscript[H, 2])O at room temperature

R.W.Crompton, J.A.Rees, and R L.Jory, The Diffusion and Attachment of Electrons in Water Vapour, Aust J Phys 18 (1965) 541.

AtWtH2O=18.01528;
ρH2OMass=9.8601×(10^(-7)) (* density of H20 at 293 and 1 torr in g (cm^(-3)) *)
ρH2OMole=ρH2OMass/AtWtH2O (* density of H20 at 293 and 1 torr in mole (cm^(-3)) *)
nH2O=AvogadroNumber×ρH2OMole (* density of H20 at 293 and 1 torr in atoms (cm^(-3)) (torr^(-1)) *)
EoverNpeak=35 (nH2O^(-1))

ρLArMass=DensityLAr[90] (* density of LAr in g (cm^(-3)) *)
ρLArMole=ρLArMass/AtWtAr (* density of LAr in mole (cm^(-3)) *)
nLAr=AvogadroNumber×ρLArMole (* density of LAr in atoms (cm^(-3)) *)
EoverNpeakInLAr=EoverNpeak×nLAr/1000 (* field at peak of attachment in LAr, kV/cm *)

αAoverNH2O=1/nH2O (* α/N of H2O *)
αAoverNH2OinLAr=αAoverNH2O×nLAr
vD=DriftVelocityElectronLAr[EoverNpeakInLAr,90]×(10^(-5))
αAoverNH2OinLAr/vD

?DriftVelocityElectronLAr

J.E .Parr and J.L. Moruzzi, Electron attachment in water vapour and ammonia, J.Phys.D : Appl.Phys. 5 (1972) 514

EoverNmin=39.4×(10^(-17));
EoverNpeakInLAr=EoverNmin×nLAr/1000 (* field at lowest field in LAr, kV/cm *)

αAoverNH2O=1. (10^(-19)) (* α/N of H2O *)
αAoverNH2OinLAr=αAoverNH2O×nLAr
vD=DriftVelocityElectronLAr[EoverNpeakInLAr,90]×(10^(-5))
αAoverNH2OinLAr/vD

Fit All Data with Consistent set of Pade Approximants

(Subscript[SF, 6]) Data

padeSF6

padeSF6["BestFit"]/.x->0

PadeCoefs

Clear[a1,a2,a3,a4,b1,b2,b3,b4];
PadeCoefs={};
scale=(10^(-16));
data={#[[1]]/1000,#[[2]]×scale}&/@Select[resultsBakale,#[[1]]==="SF6"&][[1,2]];
{xMin,xMax}={0.0010,100};
p1=ListLogLogPlot[data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin,xMax},All},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","kA ((s^(-1)))","Electron Attachment Rate vs. Field",""}),AspectRatio->1.2];
{n,m}={3,4};
fPade=Pade[n,m,#]&;
constr=Solve[(((∂_x)fPade[x])/.x->0)==0,a0][[1]];
parameters=Drop[paramPade[n,m],1];
Print["Pade approximant is ",fPade[x]/.constr];
err=(Sqrt[0.003385486044390969`]);
weight=ConstantArray[(err^(-2)),Length[data]];
fitPade=NonlinearModelFit[data,fPade[x]/.constr,parameters,x,Weights->weight];
pFit=LogLogPlot[fitPade["BestFit"],{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Red}];
bands=fitPade["MeanPredictionBands",ConfidenceLevel->0.6827]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pBands=LogLogPlot[bands,{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.003],Lighter[Red]}}];
params=fitPade["BestFitParameters"];
Print["Parameters are ",params];
labels=parameters;
Print["Fitted Parameters\n",TableForm[MapThread[Prepend[#1,#2]&,{fitPade["ParameterTableEntries"][[All,1;;2]],labels}],TableHeadings->{None,{"Parameter","Value","Error"}}]];
Print["ANOVA Table\n",fitPade["ANOVATable"]];
Print["\n",Grid[Transpose[{#,fitPade[#]}&[{"AdjustedRSquared","AIC","BIC","RSquared"}]],Alignment->Left]];
Print["Covariance Matrix\n",TableForm[fitPade["CorrelationMatrix"],TableHeadings->{labels,labels}]];
Print["(χ^2) = ",Plus@@(weight ((fitPade["FitResiduals"])^2))/(Length[dataRaw]-Length[parameters])];
Print[p=Show[p1,pFit,pBands]];
AppendTo[PadeCoefs,Join[{"(Subscript[SF, 6])",scale},If[NumericQ[#],#,0]&/@({a1,a2,a3,a4,b1,b2,b3,b4}/.params)]];
padeSF6=fitPade;

(Subscript[N, 2])O Data

scale=(10^(-14));
data={#[[1]]/1000,#[[2]]×scale}&/@Select[resultsBakale,#[[1]]==="N2O"&][[1,2]];
{xMin,xMax}={0.0010,200};
p1=ListLogLogPlot[data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin,xMax},All},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","kA ((s^(-1)))","Electron Attachment Rate vs. Field",""}),AspectRatio->1.2];
{n,m}={4,2}; (* {4,2} seems best overall; {3,2} and {5,2} both are OK *)
fPade=Pade[n,m,#]&;
constr=Solve[(((∂_x)fPade[x])/.x->0)==0,a0][[1]];
parameters=Drop[paramPade[n,m],1];
Print["Pade approximant is ",fPade[x]/.constr];
err=(Sqrt[0.003385486044390969`]);
weight=((data[[All,2]])^(-2));
fitPade=NonlinearModelFit[data,fPade[x]/.constr,parameters,x,Weights->weight];
pFit=LogLogPlot[fitPade["BestFit"],{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Red}];
bands=fitPade["MeanPredictionBands",ConfidenceLevel->0.9545]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pBands=LogLogPlot[bands,{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.003],Lighter[Red]}}];
params=fitPade["BestFitParameters"];
Print["Parameters are ",params];
labels=parameters;
Print["Fitted Parameters\n",TableForm[MapThread[Prepend[#1,#2]&,{fitPade["ParameterTableEntries"][[All,1;;2]],labels}],TableHeadings->{None,{"Parameter","Value","Error"}}]];
Print["ANOVA Table\n",fitPade["ANOVATable"]];
Print["\n",Grid[Transpose[{#,fitPade[#]}&[{"AdjustedRSquared","AIC","BIC","RSquared"}]],Alignment->Left]];
Print["Covariance Matrix\n",TableForm[fitPade["CorrelationMatrix"],TableHeadings->{labels,labels}]];
Print["(χ^2) = ",Plus@@(weight ((fitPade["FitResiduals"])^2))/(Length[dataRaw]-Length[parameters])];
Print[p=Show[p1,pFit,pBands]];
AppendTo[PadeCoefs,Join[{"(Subscript[N, 2])O",scale},If[NumericQ[#],#,0]&/@({a1,a2,a3,a4,b1,b2,b3,b4}/.params)]];
padeN2O=fitPade;

(Subscript[O, 2]) Data

scale=(10^(-11));
data1={#[[1]]/1000,{1,0.07}×#[[2]]×scale}&/@Select[resultsBakale,#[[1]]==="O2"&][[1,2]];
data2={#[[1]],(List@@#[[2]])×(10^(-11))}&/@kAO2Bettini;
data3={#[[1]],(List@@#[[2]])×(10^(-11))}&/@kAO2Biller;
data4={#[[1]],(List@@#[[2]])×(10^(-11))}&/@kAO2Hofmann;
data5={#[[1]],(List@@#[[2]])×(10^(-11))}&/@kAO2Adams;
combine=Join[data1,data2,data3,data4,data5];
data=(Flatten/@combine)[[All,{1,2}]];
weight=ConstantArray[1,Length[data]];
weight=(((Flatten/@combine)[[All,3]])^(-2));

{xMin,xMax}={0.010,105};
p1=ListLogLogPlot[data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin,xMax},All},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","kA ((s^(-1)))","Electron Attachment Rate vs. Field",""}),AspectRatio->1.2];
{n,m}={4,3}; (* with weights = (err^(-2)), {4,2} seems best overall; {6,2} has wiggles, everything else has poles *)
{n,m}={2,2}; (* with unit weights, {2,2} seems best overall; {2,3}, {4,2} are OK *)
{n,m}={2,2}; (* with weights = (err^(-1)), {2,2} is best overall *)
fPade=Pade[n,m,#]&;
constr=Solve[(((∂_x)fPade[x])/.x->0)==0,a0][[1]];
parameters=Drop[paramPade[n,m],1];
Print["Pade approximant is ",fPade[x]/.constr];
Print["Number of data points is ",Length[data]];
fitPade=NonlinearModelFit[data,fPade[x]/.constr,parameters,x,Weights->weight];
pFit=LogLogPlot[fitPade["BestFit"],{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Red}];
bands=fitPade["MeanPredictionBands",ConfidenceLevel->0.9545]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pBands=LogLogPlot[bands,{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.003],Lighter[Red]}}];
params=fitPade["BestFitParameters"];
Print["Parameters are ",params];
labels=parameters;
Print["Fitted Parameters\n",TableForm[MapThread[Prepend[#1,#2]&,{fitPade["ParameterTableEntries"][[All,1;;2]],labels}],TableHeadings->{None,{"Parameter","Value","Error"}}]];
Print["ANOVA Table\n",fitPade["ANOVATable"]];
Print["\n",Grid[Transpose[{#,fitPade[#]}&[{"AdjustedRSquared","AIC","BIC","RSquared"}]],Alignment->Left]];
Print["Covariance Matrix\n",TableForm[fitPade["CorrelationMatrix"],TableHeadings->{labels,labels}]];
Print["(χ^2) = ",Plus@@(weight ((fitPade["FitResiduals"])^2))/(Length[dataRaw]-Length[parameters])];
Print[p=Show[p1,pFit,pBands]];
AppendTo[PadeCoefs,Join[{"(Subscript[O, 2])",scale},If[NumericQ[#],#,0]&/@({a1,a2,a3,a4,b1,b2,b3,b4}/.params)]];
padeO2=fitPade;

Weight = (err^(-2))

Weight = (err^(-1))

Unit weights

(Subscript[O, 2]) Data, revisited

scale=(10^(-11));
data1={#[[1]]/1000,Around[1,0.05]×#[[2]]×scale}&/@Select[resultsBakale,#[[1]]==="O2"&][[1,2]];
data2={#[[1]],(#[[2]]/.PlusMinus->Around)×scale}&/@kAO2Bettini;
data3={#[[1]],(#[[2]]/.PlusMinus->Around)×scale}&/@kAO2Biller;
data4={#[[1]],(#[[2]]/.PlusMinus->Around)×scale}&/@kAO2Hofmann;
data5={#[[1]],(#[[2]]/.PlusMinus->Around)×scale}&/@kAO2Adams;
combine={data1,data2,data3,data4,data5};
data={#[[1]],#[[2]]["Value"]}&/@(Flatten/@Join[data1,data2,data3,data4,data5]);
weight=(((#[[2]]["Value"]&/@(Flatten/@Join[data1,data2,data3,data4,data5])))^(-2));
{xMin,xMax}={0.010,105};

p1=ListLogLogPlot[combine,Frame->True,Joined->False,PlotStyle->{{Thickness[0.003],PointSize[0.02],Black}},PlotRange->{{xMin,xMax},All},GridLines->Automatic,BaseStyle->{"Helvetica",20},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->20,FontWeight->"Plain"]&/@{"E Field (kV/cm)","kA ((s^(-1)))","Electron Attachment Rate vs. Field",""}),AspectRatio->1.2,ImageSize->550];
{n,m}={2,2}; (* with unit weights, {2,2} seems best overall; {2,3}, {4,2} are OK *)
{n,m}={2,2}; (* with weights = (err^(-1)), {2,2} is best overall *)
{n,m}={2,3}; (* with weights = (err^(-2)), {4,3} seems best overall;  everything else has poles *)
fPade=Pade[n,m,#]&;
constr=Solve[(((∂_x)fPade[x])/.x->0)==0,a0][[1]];
parameters=Drop[paramPade[n,m],1]
Print["Pade approximant is ",fPade[x]/.constr];
Print["Number of data points is ",Length[data]];
fitPade=NonlinearModelFit[data,fPade[x]/.constr,parameters,x,Weights->weight];
xMax=35;
pFit=LogLogPlot[fitPade["BestFit"],{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Red}];
bands=fitPade["MeanPredictionBands",ConfidenceLevel->0.9545]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pBands=LogLogPlot[bands,{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.003],Lighter[Red]}}];
params=fitPade["BestFitParameters"];
Print["Parameters are ",params];
labels=parameters;
Print["Fitted Parameters\n",TableForm[MapThread[Prepend[#1,#2]&,{fitPade["ParameterTableEntries"][[All,1;;2]],labels}],TableHeadings->{None,{"Parameter","Value","Error"}}]];
Print["ANOVA Table\n",fitPade["ANOVATable"]];
Print["\n",Grid[Transpose[{#,fitPade[#]}&[{"AdjustedRSquared","AIC","BIC","RSquared"}]],Alignment->Left]];
Print["Covariance Matrix\n",TableForm[fitPade["CorrelationMatrix"],TableHeadings->{labels,labels}]];
Print["(χ^2) = ",Plus@@(weight ((fitPade["FitResiduals"])^2))/(Length[data]-Length[parameters])];
Print[p=Show[p1,pFit,pBands]];
AppendTo[PadeCoefs,Join[{"(Subscript[O, 2])",scale},If[NumericQ[#],#,0]&/@({a1,a2,a3,a4,b1,b2,b3,b4}/.params)]];
padeO2=fitPade;

Print[bands[[2,2]]];

(Subscript[CO, 2]) Data

scale=(10^(-11));
rawdata=Flatten/@({#[[1]],(List@@#[[2]])×(10^(-11))}&/@kACO2Bettini);
data=rawdata[[All,{1,2}]];
weight=((rawdata[[All,3]])^(-1));
weight=ConstantArray[1,Length[data]];

{xMin,xMax}={0.0010,200};
p1=ListLogLogPlot[data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin,xMax},All},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","kA ((s^(-1)))","Electron Attachment Rate vs. Field",""}),AspectRatio->1.2];
{n,m}={4,3}; (* with weights = (err^(-2)), {4,2} seems best overall; {6,2} has wiggles, everything else has poles *)
{n,m}={2,2}; (* with unit weights, {2,2} seems best overall; {2,3}, {4,2} are OK *)
{n,m}={2,2}; (* with weights = (err^(-1)), {2,2} is best overall *)
fPade=Pade[n,m,#]&;
constr=Solve[(((∂_x)fPade[x])/.x->0)==0,a0][[1]];
parameters=Drop[paramPade[n,m],1];
Print["Pade approximant is ",fPade[x]/.constr];
fitPade=NonlinearModelFit[data,fPade[x]/.constr,parameters,x,Weights->weight];
pFit=LogLogPlot[fitPade["BestFit"],{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Red}];
bands=fitPade["MeanPredictionBands",ConfidenceLevel->0.9973]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pBands=LogLogPlot[bands,{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.003],Lighter[Red]}}];
params=fitPade["BestFitParameters"];
Print["Parameters are ",params];
labels=parameters;
Print["Fitted Parameters\n",TableForm[MapThread[Prepend[#1,#2]&,{fitPade["ParameterTableEntries"][[All,1;;2]],labels}],TableHeadings->{None,{"Parameter","Value","Error"}}]];
Print["ANOVA Table\n",fitPade["ANOVATable"]];
Print["\n",Grid[Transpose[{#,fitPade[#]}&[{"AdjustedRSquared","AIC","BIC","RSquared"}]],Alignment->Left]];
Print["Covariance Matrix\n",TableForm[fitPade["CorrelationMatrix"],TableHeadings->{labels,labels}]];
Print["(χ^2) = ",Plus@@(weight ((fitPade["FitResiduals"])^2))/(Length[dataRaw]-Length[parameters])];
Print[p=Show[p1,pFit,pBands]];
AppendTo[PadeCoefs,Join[{"(Subscript[CO, 2])",scale},If[NumericQ[#],#,0]&/@({a1,a2,a3,a4,b1,b2,b3,b4}/.params)]];
padeCO2=fitPade;

(Subscript[N, 2]) Data

scale=(10^(-10));
rawdata=Flatten/@({#[[1]],(List@@#[[2]])×scale}&/@kAN2Biller);
data=rawdata[[All,{1,2}]];
weight=((rawdata[[All,3]])^(-2));
weight=ConstantArray[1,Length[data]];

{xMin,xMax}={0.0010,200};
p1=ListLogLogPlot[data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin,xMax},{0.01,10}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","kA ((s^(-1)))","Electron Attachment Rate vs. Field",""}),AspectRatio->1.2];
{n,m}={4,3}; (* with weights = (err^(-2)), {4,2} seems best overall; {6,2} has wiggles, everything else has poles *)
{n,m}={2,2}; (* with unit weights, {2,2} seems best overall; {2,3}, {4,2} are OK *)
{n,m}={2,2}; (* with weights = (err^(-1)), {2,2} is best overall *)
fPade=Pade[n,m,#]&;
constr=Solve[(((∂_x)fPade[x])/.x->0)==0,a0][[1]];
parameters=Drop[paramPade[n,m],1];
Print["Pade approximant is ",fPade[x]/.constr];
fitPade=NonlinearModelFit[data,fPade[x]/.constr,parameters,x,Weights->weight];
pFit=LogLogPlot[fitPade["BestFit"],{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Red}];
bands=fitPade["MeanPredictionBands",ConfidenceLevel->0.9999]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pBands=LogLogPlot[bands,{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.003],Lighter[Red]}}];
params=fitPade["BestFitParameters"];
Print["Parameters are ",params];
labels=parameters;
Print["Fitted Parameters\n",TableForm[MapThread[Prepend[#1,#2]&,{fitPade["ParameterTableEntries"][[All,1;;2]],labels}],TableHeadings->{None,{"Parameter","Value","Error"}}]];
Print["ANOVA Table\n",fitPade["ANOVATable"]];
Print["\n",Grid[Transpose[{#,fitPade[#]}&[{"AdjustedRSquared","AIC","BIC","RSquared"}]],Alignment->Left]];
Print["Covariance Matrix\n",TableForm[fitPade["CorrelationMatrix"],TableHeadings->{labels,labels}]];
Print["(χ^2) = ",Plus@@(weight ((fitPade["FitResiduals"])^2))/(Length[dataRaw]-Length[parameters])];
Print[p=Show[p1,pFit,pBands]];
AppendTo[PadeCoefs,Join[{"(Subscript[N, 2])",scale},If[NumericQ[#],#,0]&/@({a1,a2,a3,a4,b1,b2,b3,b4}/.params)]];
padeN2=fitPade;

Define functions to evaluate attachment rate constant for each species

kASF6=(10^16) (padeSF6["BestFit"]/.x->#)&;
kASF6ErrorBand=(10^16) (padeSF6["MeanPredictionBands",ConfidenceLevel->0.9545]/.x->#)&;
kAN2O=(10^14)(padeN2O["BestFit"]/.x->#)&;
kAN2OErrorBand=(10^14) (padeN2O["MeanPredictionBands",ConfidenceLevel->0.9545]/.x->#)&;
kAO2=(10^11)(padeO2["BestFit"]/.x->#)&;
kAO2ErrorBand=(10^11) (padeO2["MeanPredictionBands",ConfidenceLevel->0.9545]/.x->#)&;
kACO2=(10^11)(padeCO2["BestFit"]/.x->#)&;
kAN2=(10^10)(padeN2["BestFit"]/.x->#)&;
kAZeroFieldTable=Transpose[{{"(Subscript[SF, 6])","(Subscript[N, 2])O","(Subscript[O, 2])","(Subscript[CO, 2])","(Subscript[N, 2])"},{kASF6[0],kAN2O[0],kAO2[0],kACO2[0],kAN2[0]}}];

Print[TableForm[{#[[1]],ScientificForm[1./#[[2]]],Sequence@@#[[3;;-1]]}&/@PadeCoefs,TableHeadings->{None,{"Molecule","scale",a1,a2,a3,a4,b1,b2,b3,b4}}]];

New values for (Subscript[O, 2])

Old values for (Subscript[O, 2])

Plot All Attachment Rate Constants as a Function of Field

Select units for concentration : either mole fraction, ppb, or molarity

units="Molarity";
units="PPB";
units="MoleFraction";
Which[units==="Molarity",uc=((Molarity[T,(10^9)])^(-1));yLabel="Rate Constant ((M^(-1))(s^(-1)))",
units==="PPB",uc:=(10^(-9));yLabel="Rate Constant ((PPB^(-1)) (s^(-1)))",
True,uc=1;yLabel="Rate Constant ((s^(-1)))"];
colorMap[set_]:=Which[set==="O2Biller",Red,set==="N2Biller",Orange,set==="O2Bettini",Darker[Yellow],set==="CO2Bettini",Darker[Green],set==="O2Bakale",Blue,set==="N2OBakale",Lighter[Magenta],set==="SF6Bakale",Brown,set==="O2Hofmann",Darker[Magenta],set==="O2Hofmann",Darker[Orange],set==="O2Adams",Cyan,True,Black];
{plotErrors,plotData,plotLines}={ErrorListLogPlot,ListLogPlot,LogPlot};
{plotErrors,plotData,plotLines}={ErrorListLogLogPlot,ListLogLogPlot,LogLogPlot};
yTicksMajor=Table[{v=1. (10^(Floor[n+Log[10,uc]])),ScientificForm[v,NumberFormat->((10^(#3))&)],{0.011,0}},{n,5,18,1.}];
yTicksMinor=Flatten[Table[{v=m×(10^(Floor[n+Log[10,uc]])),"",{0.006,0}},{n,5,18,1},{m,0.2,0.9,0.1}],1];
yTicks=Join[yTicksMajor,yTicksMinor];
xRange={xMin,xMax}={0.008,120};

set=Select[resultsBakale,#[[1]]==="SF6"&][[1]];
pSF6Bakale=plotData[{#[[1]]/1000,uc×#[[2]]}&/@set[[2]],Joined->False,PlotRange->{xRange,{(10^(Ceiling[8+Log[10,uc]])),(10^(Floor[17+Log[10,uc]]))}},Frame->True,FrameTicks->{{yTicks,Automatic},{Automatic,Automatic}},PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["SF6Bakale"]}];
pSF6FitBakale=plotLines[kASF6[x],{x,xMin,100},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Black}];
pSF6BandsBakale=plotLines[Evaluate[kASF6ErrorBand[x]],{x,xMin,100},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.003],GrayLevel[0.5]}}];
set=Select[resultsBakale,#[[1]]==="N2O"&][[1]];
pN2OBakale=plotData[{#[[1]]/1000,uc×#[[2]]}&/@set[[2]],Joined->False,PlotRange->All,PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["N2OBakale"]}];
pN2OFitBakale=plotLines[kAN2O[x],{x,xMin,100},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Black}];
pN2OBandsBakale=plotLines[Evaluate[kAN2OErrorBand[x]],{x,xMin,100},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.003],GrayLevel[0.5]}];
set=Select[resultsBakale,#[[1]]==="O2"&][[1]];
pO2Bakale=plotData[{#[[1]]/1000,uc×#[[2]]}&/@set[[2]],Joined->False,PlotRange->All,PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["O2Bakale"]}];
pO2Biller=plotErrors[{{#[[1]],uc×#[[2,1]]},ErrorBar[uc×#[[2,2]]]}&/@kAO2Biller,Joined->False,PlotRange->All,PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["O2Biller"]}];
pN2Biller=plotErrors[{{#[[1]],uc×#[[2,1]]},ErrorBar[uc×#[[2,2]]]}&/@kAN2Biller,Joined->False,PlotRange->All,PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["N2Biller"]}];
pO2Bettini=plotErrors[{{#[[1]],uc×#[[2,1]]},ErrorBar[uc×#[[2,2]]]}&/@kAO2Bettini,Joined->False,PlotRange->All,PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["O2Bettini"]}];
pCO2Bettini=plotErrors[{{#[[1]],uc×#[[2,1]]},ErrorBar[uc×#[[2,2]]]}&/@kACO2Bettini,Joined->False,PlotRange->All,PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["CO2Bettini"]}];
pO2Hofmann=plotErrors[{{#[[1]],uc×#[[2,1]]},ErrorBar[uc×#[[2,2]]]}&/@kAO2Hofmann,Joined->False,PlotRange->All,PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["O2Hofmann"]}];
pO2Adams=plotErrors[{{#[[1]],uc×#[[2,1]]},ErrorBar[uc×#[[2,2]]]}&/@kAO2Adams,Joined->False,PlotRange->All,PlotStyle->{Thickness[0.005],PointSize[0.02],colorMap["O2Adams"]}];
pH2OAndrews=plotErrors[{{#[[1]],1.0 #[[2,1]]},ErrorBar[3.0 #[[2,2]]]}&/@kAH2OAndrews,Joined->False,PlotRange->All,PlotStyle->{Thickness[0.01],PointSize[0.02],colorMap["H2OAndrews"]}];
pH2OAndrews500=plotErrors[{{#[[1]],500 #[[2,1]]},ErrorBar[500 #[[2,2]]]}&/@kAH2OAndrews,Joined->False,PlotRange->All,PlotStyle->{Thickness[0.01],PointSize[0.02],colorMap["H2OAndrews"]}];
kAH2OAndrews500=({#[[1]],Around[500 #[[2,1]],{0.999999 500 #[[2,1]],500 #[[2,2]]}]}&/@kAH2OAndrews);
kAH2OAndrews500=({#[[1]],Around[500 #[[2,1]],500 #[[2,2]]]}&/@kAH2OAndrews);
pH2OAndrews500=ListLogLogPlot[kAH2OAndrews500,Joined->False,IntervalMarkers->"Fences",PlotRange->{{0.005,0.5},{1 (10^9),2 (10^11)}},PlotStyle->{Thickness[0.004],PointSize[0.02],colorMap["H2OAndrews"]}];
pH2OCarls=plotErrors[{{#[[1]],#[[2,1]]},ErrorBar[#[[2,2]]]}&/@kAH2OCarls,Joined->False,PlotRange->All,PlotStyle->{Thickness[0.001],PointSize[0.02],colorMap["H2OAndrews"]}];
kAH2OCarlsErr=({#[[1]],Around[#[[2,1]],{0.9999 #[[2,1]],#[[2,2]]}]}&/@kAH2OCarls);
kAH2OCarlsErr=({#[[1]],Around[#[[2,1]],#[[2,2]]]}&/@kAH2OCarls);
pH2OCarls=ListLogLogPlot[kAH2OCarlsErr,Joined->False,IntervalMarkers->"Fences",PlotRange->{{0.005,0.5},{1 (10^9),2 (10^11)}},PlotStyle->{Thickness[0.0025],PointSize[0.02],colorMap["H2OAndrews"]}];
kAH2OCarls500=({#[[1]],Around[500 #[[2,1]],{0.999999 500 #[[2,1]],500 #[[2,2]]}]}&/@kAH2OCarls);
kAH2OCarls500=({#[[1]],Around[500 #[[2,1]],500 #[[2,2]]]}&/@kAH2OCarls);
pH2OCarls500=ListLogLogPlot[kAH2OCarls500,Joined->False,IntervalMarkers->"Fences",PlotRange->{{0.005,0.5},{1 (10^9),2 (10^11)}},PlotStyle->{Thickness[0.004],PointSize[0.02],colorMap["H2OAndrews"]}];
pO2Fit=plotLines[(10^11) uc×padeO2["BestFit"],{x,xMin,50},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Black}];
bands=padeO2["MeanPredictionBands",ConfidenceLevel->0.9999]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pO2Bands=plotLines[(10^11) uc×bands,{x,xMin,22},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.003],GrayLevel[0.5]}];
pN2Fit=plotLines[(10^10) uc×padeN2["BestFit"],{x,xMin,5},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Black}];
bands=padeN2["MeanPredictionBands",ConfidenceLevel->0.5]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pN2Bands=plotLines[(10^10) uc×bands,{x,xMin,5},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.003],GrayLevel[0.5]}];
pCO2Fit=plotLines[(10^11) uc×padeCO2["BestFit"],{x,xMin,1.5},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Black}];
bands=padeCO2["MeanPredictionBands",ConfidenceLevel->0.99999]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pCO2Bands=plotLines[(10^11) uc×bands,{x,xMin,1.5},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.003],GrayLevel[0.5]}];
a={#[[1]]+#[[2]],#[[1]]-#[[2]]}&/@{List@@(kAH2OAndrews[[1,2]])};
b={#[[1]]+#[[2]],#[[1]]-#[[2]]}&/@{List@@(kAH2OCarls[[1,2]])};
{kminH2O,kmaxH2O}={Min[Flatten[Join[a,b]]],Max[Flatten[Join[a,b]]]};
{kminH2O,kmaxH2O}=Reverse[Flatten[a]];
{EminH2O,EmaxH2O}={0.02,0.5};
H2OBox=Graphics[{FaceForm[Directive[White,Opacity[0]]],EdgeForm[Directive[GrayLevel[0.67],Thickness[0.004]]],Rectangle[Log[{EminAndrews,kminH2O}],Log[{EmaxAndrews,kmaxH2O}]]}];

Generate the figure for attachment rate vs. field for "common" impurities

boxsize={dx,dy}={0.7,0.52};
locSF6={Log[z=0.3],Log[kASF6[z]×uc/3]};
locN2O={Log[z=4],Log[kAN2O[z]×uc×3.5]};
locH2O={Log[0.025],Log[kAH2OCarls[[1,2,1]]×uc×0.4]};
locO2={Log[z=9],Log[kAO2[z]×uc×5]};
locCO2={Log[z=0.1],Log[kACO2[z]×uc/0.4]};
locN2={Log[z=2],Log[kAN2[z]×uc×3]};
{colorSF6,colorN2O,colorH2O,colorO2,colorCO2,colorN2}={colorMap["SF6Bakale"],colorMap["N2OBakale"],GrayLevel[0.5],Cyan,colorMap["CO2Bettini"],colorMap["N2Biller"]};
useOpacity=0.2;
{useRange,thk,aspect}={{All,{4×(10^7)×uc,4×(10^14)×uc}},0.008,1.2};
{useRange,thk,aspect}={{{0.05,5.0},{4×(10^7)×uc,5×(10^14)×uc}},0.008,1.1};
{useRange,thk,aspect}={{{0.05,5.0},{4×(10^7)×uc,5×(10^16)×uc}},0.008,1.5};
cornerRadius=0.015;
labelsRate=Graphics[{EdgeForm[{Thick,Black}],
FaceForm[{colorSF6,Opacity[useOpacity]}],Rectangle[locSF6-boxsize,locSF6+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[SF, 6])",locSF6,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorH2O,Opacity[useOpacity]}],Rectangle[locH2O-boxsize,locH2O+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["Water",locH2O,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorN2O,Opacity[useOpacity]}],Rectangle[locN2O-boxsize,locN2O+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[N, 2])O",locN2O,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorO2,Opacity[useOpacity]}],Rectangle[locO2-boxsize,locO2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[O, 2])",locO2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorCO2,Opacity[useOpacity]}],Rectangle[locCO2-boxsize,locCO2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[CO, 2])",locCO2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorN2,Opacity[useOpacity]}],Rectangle[locN2-boxsize,locN2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[N, 2])",locN2,BaseStyle->{Large,FontFamily->"Times",Italic}]}];
locHxx500={Log[0.08],Log[9.5 (10^13)×uc]};
locHxx1={Log[0.08],Log[2 (10^10)×uc]};
boxsize={1.5,0.4};
Print[Show[pSF6Bakale,pN2OBakale,pSF6FitBakale,pSF6BandsBakale,pN2OFitBakale,pN2OBandsBakale,pO2Fit,pO2Bands,pCO2Fit,pN2Fit,pO2Bakale,pO2Biller,pO2Bettini,pO2Hofmann,pO2Adams,pCO2Bettini,pH2OAndrews/.Black->GrayLevel[0.55],pH2OCarls,pN2Biller,labelsRate,Frame->True,GridLines->{None,None},FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->18,FontWeight->"Plain"]&)/@{"Electric Field (kV/cm)",yLabel,"Electron Attachment Rate Constants in LAr",""},AspectRatio->aspect,ImageSize->550,BaseStyle->{16,FontFamily->"Helvetica"}]];

kAH2OAndrews

(((10. 100))^(1/2))
0.04 %
(10+100)/2

ppmPerDay=0.78/0.21 1.7 (10^(-9)) (10^6)60 60 24/780  (* ppm increase per day *)

(10^3)/(3.5 (10^9) ppmPerDay (10^(-6)))

(10^3)/(10 3.5 (10^9) ppmPerDay (10^(-6)))

27/ppmPerDay

ptSize={PointSize[_]->PointSize[0.016]};
Print[Show[pSF6Bakale/.ptSize,pN2OBakale/.ptSize,pSF6FitBakale,pN2OFitBakale,pO2Fit,pCO2Fit,pN2Fit,pO2Bakale/.ptSize,pO2Biller/.ptSize,pO2Bettini/.ptSize,pO2Hofmann/.ptSize,pO2Adams/.ptSize,pCO2Bettini/.ptSize,pH2OAndrews/.ptSize,pH2OCarls/.ptSize,pN2Biller/.ptSize,labelsRate,Frame->True,GridLines->{None,None},PlotRange->{All,Log[{5 (10^8),5 (10^16)}]},FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->25,FontWeight->"Plain"]&)/@{"Electric Field (kV/cm)",yLabel,"",""},AspectRatio->aspect,ImageSize->550,BaseStyle->{22,FontFamily->"Helvetica"}]];

kAH2OAndrews
kAH2OCarls
h=7.80/6.33/500;
δh=((((((0.88/6.33))^2)+(((1.48/7.80))^2)+(((100/500))^2)))^(1/2)) ;
Around[h,h δh]

Framework for Computing Attachment Rates from Attachment Cross Sections

Define functions for transverse and longitudinal diffusion energies

These functions come from fits to the transverse and longitudinal diffusion energies reported in Atrazhev, V.M. and I.V. Timoshkin, Transport of electrons in atomic liquids in high electric fields, IEEE Trans. Dielectrics and Electrical Insulation 5 (1998) 450.
x is the electric field in kV/cm

ETranLAr[x_]:=With[{p1=0.07941594417848973`,p2=0.022157079307365067`,p3=-0.0002767726775919781`,p4=2.260495855100414`*^-6,q1=0.45206832893318766`},((0.00777179788452946` +p1 x+p2 (x^2)+p3 (x^3)+p4 (x^4))/(1+q1 x))];
ELongLAr[x_]:=With[{p1=0.04191135865551128`,p2=0.03461278189439629`,p3=0.00045551011562981655`,p4=-1.2241121143700689`*^-6,q1=2.117993495074358`},((0.00777179788452946` +p1 x+p2 (x^2)+p3 (x^3)+p4 (x^4))/(1+q1 x))];

Electron energy density functions

The reaction rate is 

k=(∫_0^∞)(Sqrt[((2ℰ)/m)])×σ[ℰ]×(Subscript[ρ, E])[ℰ]dℰ

((2 )/(Sqrt[π])) (Sqrt[((2×ElectronCharge[[1]])/(ElectronMass[[1]]))])×100×(10^(-16))

(Sqrt[((2×ElectronCharge[[1]])/(ElectronMass[[1]]))])×100×(10^(-16))

The Maxwell distribution in energy is

(Subscript[ρ, E])[ℰ]=(2/(Sqrt[π])) (1/((((Subscript[k, B]) T))^(3/2))) (Sqrt[ℰ])Exp[-(ℰ/((Subscript[k, B]) T))]

For a Maxwellian energy distribution, the reaction rate is 

k=((6.69238×(10^(-9)))/(T^(3/2)))(∫_0^∞)ℰ×Exp[-ℰ/T]×σ[ℰ]dℰ  with ℰ and T in eV

PDF[MaxwellDistribution[σ],x]

Unprotect[MaxwellDistE];
MaxwellDistE[ℰ_,ϵM_]:=With[{t=2 ϵM/3},((2 )/(Sqrt[π])) (1/(t^(3/2))) (Sqrt[ℰ]) Exp[-ℰ/t]];
Protect[MaxwellDistE];
Print["The Maxwell distribution in energy is has norm = ",Simplify[(∫_0^∞)MaxwellDistE[ℰ,ϵM]\[DifferentialD]ℰ,{m>0,(Subscript[k, B])>0,ϵM>0}]];
Print["The mean energy of the Maxwell distribution = ",Simplify[(∫_0^∞)ℰ MaxwellDistE[ℰ,ϵM]\[DifferentialD]ℰ,{m>0,(Subscript[k, B])>0,ϵM>0}]];

Attachment rate constants from electron energy density functions

Consider a reaction
e + X -> (SuperMinus[Y]) (+ Z + ...)

where Z can be a photon.  Consider a closed volume so that no molecules enter of leave.  The rate of growth of the concentration of Y is proportional to the product of the concentrations of the two reactants, e and X
((Subscript[dn, Y])/dt) = (Subscript[k, e,X,Y]) (Subscript[n, e]) (Subscript[n, X])

where (Subscript[k, e,X,Y]) is the rate constant for an electron colliding with X to produce Y (plus possible other stuff).  Without the restriction to a closed volume, there would be another term in the above equation representing the net number of molecules leaving and entering the volume.  The creation of a molecule Y is accompanied by the loss of an electron:
((Subscript[dn, e])/dt) = -((Subscript[dn, Y])/dt)

so that
((Subscript[dn, e])/dt) = -(Subscript[k, e,X,Y]) (Subscript[n, e]) (Subscript[n, X])

The fractional rate of change of electrons is
((dLog((Subscript[n, e])))/dt) = (1/(Subscript[n, e]))((Subscript[dn, e])/dt) = -(Subscript[k, e,X,Y]) (Subscript[n, X])

If the units of concentration are c, then the rate constant has units (c^(-1)) (s^(-1)).

The reaction rate for a electron and a molecule X moving toward each other at a speed v to produce a product Y is proportional to the cross section (Subscript[σ, e,X,Y])(v)
((Subscript[dn, e])/dt) = -v (Subscript[σ, e,X,Y])(v) v (Subscript[n, e]) (Subscript[n, X])

so that for a given speed
(Subscript[k, e,X,Y]) = v (Subscript[σ, e,X,Y])(v)

If v and σ are in MKS units (m (s^(-1)) and (m^2) respectively), the concentration is expressed in molecule/(m^3).  This will be the case from here on.  For a probability density distribution of speeds (Subscript[ρ, V])(v) (which is normalized to give unit probability for all speeds), the total rate to produce Y is the average over all speeds
(Subscript[k, e,X,Y]) = (∫_0^∞)v×(Subscript[σ, e,X,Y])(v)×(Subscript[ρ, V])(v)dv

Note that the total rate of loss of electrons is the sum of the loss rates over all final channels Y:
(Subscript[k, e,X]) =  (∑_Y)(Subscript[k, e,X,Y]) = (∫_0^∞)v×(∑_Y)(Subscript[σ, e,X,Y])(v)×(Subscript[ρ, V])(v)dv = (∫_0^∞)v×(Subscript[σ, e,X])(v)×(Subscript[ρ, V])(v)dv

where (Subscript[σ, e,X]) is the total reaction cross section for electron attachment to X.  Note that since ρV(v) dv is dimensionless, the units of the right hand side are (m^(-3)) (s^(-1)).  Since cross sections are generally reported as a function of energy, it is convenient to transform the expression for the rate constant into an integral  over energy.  Using ℰ = 1/2 μ (v^2) for the energy, we find
(Subscript[k, e,X]) = ((((2/μ)))^(1/2)) (∫_0^∞)(Sqrt[ℰ])(Subscript[σ, e,X])(ℰ) (Subscript[ρ, ℰ])(ℰ)dℰ 

where (Subscript[ρ, ℰ])(ℰ) = (Subscript[ρ, V])((Sqrt[2 ℰ/μ])) is the functional form of the electron energy distribution and μ is the reduced mass for the colliding electron molecule pair, which to a very good approximation is just the electron mass.

The probability distribution function for the relative speeds of two molecules in thermal equilibrium at temperature T is the Maxwell distribution
(Subscript[ρ, M])(v,T)dv = 4 π ((((μ/(2 π k T))))^(3/2))  (v^2) Exp[-μ (v^2)/(2 k T)] dv 

where k is the Boltzmann constant. For electrons, μ -> (Subscript[m, e]). Transforming the distribution in velocity to a distribution in energy, using
ℰ = 1/2 (Subscript[m, e]) (v^2) and dv = dℰ/(Sqrt[2 (Subscript[m, e]) ℰ])

gives
(Subscript[ρ, M])(ℰ,T)dℰ = ((((4/π)))^(1/2))  ((((1/(k T))))^(3/2))(e^(-(ℰ/(k T))))  (Sqrt[ℰ]) dℰ 

Therefore, for the Maxwellian electron energy distribution, the total rate constant for electron attachment to X is 
(Subscript[k, e,X]) = (1/(Sqrt[π (Subscript[m, e])])) ((((2/(k T))))^(3/2)) (∫_0^∞)(Subscript[σ, e,X])(ℰ)× ℰ×(e^(-(ℰ/(k T)))) dℰ

This has the units of (m^(-3)) (s^(-1)).

The electric field, f, is in units of kV/cm and the cross section is given in (m^2) as an interpolating function of the electron energy in eV

Attachment rates for simple power law cross sections

Simplify[((((2/kT)))^(3/2))(∫_0^∞)(ℰ^(-1))×(E^(-(ℰ/kT)))\[DifferentialD]ℰ,kT>0]
Simplify[((((2/kT)))^(3/2))(∫_0^∞)(ℰ^(-1/2))×(E^(-(ℰ/kT)))\[DifferentialD]ℰ,kT>0]
Simplify[((((2/kT)))^(3/2))(∫_0^∞)(ℰ^0)×(E^(-(ℰ/kT)))\[DifferentialD]ℰ,kT>0]
Simplify[((((2/kT)))^(3/2))(∫_0^∞)(ℰ^(1/2))×(E^(-(ℰ/kT)))\[DifferentialD]ℰ,kT>0]
Simplify[((((2/kT)))^(3/2))(∫_0^∞)(ℰ^1)×(E^(-(ℰ/kT)))\[DifferentialD]ℰ,kT>0]
Simplify[((((2/kT)))^(3/2))(∫_0^∞)(ℰ^(3/2))×(E^(-(ℰ/kT)))\[DifferentialD]ℰ,kT>0]
Simplify[((((2/kT)))^(3/2))(∫_0^∞)(ℰ^2)×(E^(-(ℰ/kT)))\[DifferentialD]ℰ,kT>0]
Simplify[((((2/kT)))^(3/2))(∫_0^∞)(ℰ^(5/2))×(E^(-(ℰ/kT)))\[DifferentialD]ℰ,kT>0]

Print[TableForm[Table[{n,z=Simplify[((((2/kT)))^(3/2))(∫_0^∞)(ℰ^(1+n))×(E^(-(ℰ/kT)))\[DifferentialD]ℰ,kT>0],Exponent[z,kT]},{n,-2,2,1/2}],TableHeadings->{None,{"n","(Subscript[k, A])","m"}}]];

NIntegrate[(ℰ^(-1))×(E^(-ℰ)),{ℰ,0,1}]

Attachment rates for simple power law cross sections with an upper energy cut-off

flin=Function[{kT,ℰm},Evaluate[Simplify[((((2/kT)))^(3/2))(∫_0^(ℰm))(ℰ^2)×(E^(-(ℰ/kT)))\[DifferentialD]ℰ]]];
fsqrt=Function[{kT,ℰm},Evaluate[Simplify[((((2/kT)))^(3/2))(∫_0^(ℰm))(ℰ^(3/2))×(E^(-(ℰ/kT)))\[DifferentialD]ℰ]]];
fconst=Function[{kT,ℰm},Evaluate[Simplify[((((2/kT)))^(3/2))(∫_0^(ℰm))(ℰ^1)×(E^(-(ℰ/kT)))\[DifferentialD]ℰ]]];
finvsqrt=Function[{kT,ℰm},Evaluate[Simplify[((((2/kT)))^(3/2))(∫_0^(ℰm))(ℰ^(1/2))×(E^(-(ℰ/kT)))\[DifferentialD]ℰ]]];
finvlin=Function[{kT,ℰm},Evaluate[Simplify[((((2/kT)))^(3/2))(∫_0^(ℰm))(ℰ^0)×(E^(-(ℰ/kT)))\[DifferentialD]ℰ]]];

ℰmax=125;
factor=0.75;
colors={Red,Orange,Darker[Green],Blue,Magenta,Black};
pσ=LogLogPlot[{If[x>ℰmax,0,x],If[x>ℰmax,0,(x^(1/2))],If[x>ℰmax,0,1],If[x>ℰmax,0,(x^(-1/2))],If[x>ℰmax,0,(x^(-1))]},{x,0.001,0.75 ℰmax},Frame->True,PlotRange->Full,PlotStyle->{{Thickness[0.008],colors[[1]]},{Thickness[0.008],colors[[2]]},{Thickness[0.008],colors[[3]]},{Thickness[0.008],colors[[4]]},{Thickness[0.008],colors[[5]]},{Thickness[0.008],colors[[6]]}}];
pk=LogLogPlot[{flin[ETranLAr[x],ℰmax],fsqrt[ETranLAr[x],ℰmax],fconst[ETranLAr[x],ℰmax],finvsqrt[ETranLAr[x],ℰmax],finvlin[ETranLAr[x],ℰmax]},{x,0.001,factor ℰmax},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.008],colors[[1]]},{Thickness[0.008],colors[[2]]},{Thickness[0.008],colors[[3]]},{Thickness[0.008],colors[[4]]},{Thickness[0.008],colors[[5]]},{Thickness[0.008],colors[[6]]}}];
ET=LogLogPlot[ETranLAr[x],{x,0.001,factor ℰmax},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.008],Black}}];
line=Graphics[{Black,Thickness[0.008],Arrowheads[Large],Arrow[{{Log[ℰmax],Log[ℰmax]},{Log[ℰmax],Log[0.001]}}]}];
labels={"σ ∝ ℰ","σ ∝ (ℰ^(1/2))","σ ∝ 1","σ ∝ (ℰ^(-1/2))","σ ∝ (ℰ^(-1))"};
labelstyle={12,Black,FontFamily->"Helvetica"};
Print[Legended[Show[pσ,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","(Subscript[σ, A])(ℰ) (∝ (m^2))","Attachment Cross Section",""}),ImageSize->600],Placed[LineLegend[Reverse[Drop[colors,-1]],Reverse[labels],LabelStyle->labelstyle,LegendFunction->"Frame",LegendLayout->"Column"],{0.60,0.78}]]];
labels={"σ ∝ ℰ ⇒ (Subscript[k, A]) ∝ (ℰ^(3/2))","σ ∝ (ℰ^(1/2)) ⇒ \!(Subscript[k, A]) ∝ ℰ","σ ∝ 1 ⇒ (Subscript[k, A]) ∝ (ℰ^(1/2))","σ ∝ (ℰ^(-1/2)) ⇒ (Subscript[k, A]) ∝ 1","σ ∝ (ℰ^(-1)) ⇒ (Subscript[k, A]) ∝ (ℰ^(-1/2))"};
Print[Legended[Show[pk,PlotRange->All,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field, E (kV/m)","(Subscript[k, A])(E) (∝ (s^(-1)))","Attachment Rate Constant",""}),ImageSize->600],Placed[LineLegend[Reverse[Drop[colors,-1]],Reverse[labels],LabelStyle->labelstyle,LegendFunction->"Frame",LegendLayout->"Column"],{0.84,0.25}]]];
Print[Show[ET,PlotRange->All,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (kV/m)","(Subscript[E, Tran]) (eV)","Transverse Electron Energy",""}),AspectRatio->0.3,ImageSize->600]];

Here are the definitions of the Maxwell distribution in speed and in energy

The normalization, mean speed and mean energy computed with the two distributions agree, as they should.

Define the distribution in speed

ρV[x_]:=Simplify[PDF[MaxwellDistribution[σ],x]/.σ->(Sqrt[kT/m]),{x>0,m>0,kT>0}];
Print["The Maxwell distribution in speed is ",Simplify[ρV[v],{v>0,m>0,kT>0}]];
norm=Simplify[Integrate[ρV[x],{x,0,∞}],{σ>0,m>0,kT>0}];
Print["It's normalization is ",norm];
vMean=FullSimplify[Integrate[x ρV[x],{x,0,∞}],{σ>0,m>0,kT>0}];
Print["The mean speed is ",vMean];
ℰMean=FullSimplify[Integrate[(m (x^2)/2) ρV[x],{x,0,∞}],{σ>0,m>0,kT>0}];
Print["The mean energy is ",ℰMean];

Convert the distribution in speed to one in energy

ρℰ[ℰ_]:=Simplify[ ρV[v] dv//.{v->((Sqrt[2ℰ/m])),dv->dℰ/(Sqrt[2 m ℰ])},{m>0,ℰ>0,kT>0}]/dℰ;
Print["The Maxwell distribution in energy is ",Simplify[ρℰ[ℰ],{ℰ>0,m>0,kT>0}]];
norm=Simplify[Integrate[ρℰ[x],{x,0,∞}],{σ>0,m>0,kT>0}];
Print["It's normalization is ",norm];
vMean=FullSimplify[Integrate[(((2 x/m))^(1/2)) ρℰ[x],{x,0,∞}],{σ>0,m>0,kT>0}];
Print["The mean speed is ",vMean];
ℰMean=FullSimplify[Integrate[x ρℰ[x],{x,0,∞}],{σ>0,m>0,kT>0}];
Print["The mean energy is ",ℰMean];

Express the rate constant using the two forms of the Maxwell distribution function (in speed and in energy)

Define functions and rules to determine rate constant expressions and their dimensionality.

Clear[f,v,dv,ρV,σ,μ,kT,ℰ,dℰ,ρℰ,m,s,kg];
units[x_]:=Map[If[NumericQ[#],1,#]&,Simplify[x/.unitRules,simpConditions],1];
unitRules={dv->m (s^(-1)),v->m (s^(-1)),dℰ->kg (m^2) (s^(-2)),ℰ->kg (m^2) (s^(-2)),kT->kg (m^2) (s^(-2)),μ->kg,σ->(m^2)};
simpConditions=Join[(#[[1]]>0)&/@unitRules,{m>0,kg>0,s>0}];

For the distribution in speed

Print["The Maxwell distribution in speed is ",Simplify[ρV[v]/.m->μ,{v>0,μ>0,kT>0}]];
vResult=FullSimplify[v σ ρV[v] dv/.m->μ,simpConditions];
Print["The rate constant is the integral of ",vResult];
Print["which, when transformed into energy, becomes the integral of ",Simplify[vResult//.{v->((Sqrt[2ℰ/μ])),dv->dℰ/(Sqrt[2 μ ℰ])},simpConditions]];
result=Simplify[vResult/.unitRules,simpConditions];
Print["In terms of numerical constants and dimensions the rate constant is ",result];
Print["which means the rate constant has dimensions of ",units[result]];

For the distribution in energy

Print["The Maxwell distribution in energy is ",Simplify[ρℰ[ℰ]/.m->μ,{ℰ>0,μ>0,kT>0}]];
ℰResult=FullSimplify[((((2/μ)))^(1/2)) (Sqrt[ℰ])σ ρℰ[ℰ] dℰ,simpConditions];
Print["The rate constant is the integral of ",ℰResult];
result=Simplify[ℰResult/.unitRules,simpConditions];
Print["In terms of numerical constants and dimensions the rate constant is ",result];
Print["which means the rate constant has dimensions of ",units[result]];

Using the Mathematica Maxwell distribution function gives the same result

The "width" parameter, σ, must be σ = 3 kT/2

ρℰ[ℰ_]:=Simplify[ MaxwellDistE[ℰ,3 kT/2],{m>0,ℰ>0,kT>0}];
Print["The Maxwell distribution in energy is ",ρℰ[ℰ]];
norm=Simplify[Integrate[ρℰ[x],{x,0,∞}],{σ>0,m>0,kT>0}];
Print["It's normalization is ",norm];
ℰMean=FullSimplify[Integrate[x ρℰ[x],{x,0,∞}],{σ>0,m>0,kT>0}];
Print["The mean energy is ",ℰMean];

We can use simple definitions of the Maxwell distribution function in velocity and energy

These definitions are identical to each other, and to the ones above

EVDFM[v_]:=4 π ((((m/(2 π kT))))^(3/2))(v^2) Exp[-m (v^2)/(2 kT)];
EEDFM[ℰ_]:=((((4/π)))^(1/2))  ((((1/kT)))^(3/2))(E^(-(ℰ/kT)))  (Sqrt[ℰ]);
ρMV[v_]:=(E^(-((m (v^2))/(2 kT)))) ((((m/kT)))^(3/2)) (Sqrt[(2/π)]) (v^2);
ρME[ℰ_]:=((2 (E^(-(ℰ/kT))) ((((1/kT)))^(3/2)) (Sqrt[ℰ]))/(Sqrt[π]));
EVDFM[v]==ρMV[v]
Simplify[EEDFM[ℰ]==ρME[ℰ],simpConditions]
(ρV[v]/.μ->m)==ρMV[v]
Simplify[ρℰ[ℰ]==ρME[ℰ],simpConditions]

Define the rate constant in terms of the Maxwell distribution function and the attachment cross section, in energy

Evaluate the constants, for various units of energy and concentration

In MKS units the attachment rate is

(Subscript[k, e,X]) = ((((2/(Subscript[m, e]))))^(1/2)) (∫_0^∞)(Sqrt[ℰ])(Subscript[σ, e,X])(ℰ) (Subscript[ρ, ℰ])(ℰ)\[DifferentialD]ℰ

Energies are in J, the electron mass is in kg, the cross section is in (m^2), and the attachment rate is in (s^(-1)) (m^3)/molecule.
For energies in eV, ℰ(J) -> e ℰ(eV) where e is the electron charge, and the attachment rate becomes

(Subscript[k, e,X]) = (((((2 e)/(Subscript[m, e]))))^(1/2)) (∫_0^∞)(Sqrt[ℰ])(Subscript[σ, e,X])(ℰ) (Subscript[ρ, ℰ])(ℰ)\[DifferentialD]ℰ

where

(((((2×electronCharge)/electronMass)))^(1/2))

Now energies are in eV, the cross section is in (m^2), and the attachment rate is in (s^(-1)) (m^3)/molecule.
To convert this to an attachment rate in (s^(-1)) (m^3)/mole multiply it by molecule/mole = Avogadro’s number = (Subscript[N, 0]).

(Subscript[k, e,X]) = (Subscript[N, 0]) (((((2 e)/(Subscript[m, e]))))^(1/2)) (∫_0^∞)(Sqrt[ℰ])(Subscript[σ, e,X])(ℰ) (Subscript[ρ, ℰ])(ℰ)\[DifferentialD]ℰ

where

AvogadroNumber(((((2×electronCharge)/electronMass)))^(1/2))

Now energies are in eV, the cross section is in (m^2), and the attachment rate is in (s^(-1)) (m^3)/mole.
To convert this to an attachment rate in (s^(-1))/(mole X/moleAr) multiply it by mole Ar/(m^3) = molar density of Ar in mole/(m^3) = (10^6) density of Ar in g/(cm^3) divided by the atomic weight of Ar.

(Subscript[k, e,X]) = (Subscript[N, 0]) (((((2 e)/(Subscript[m, e]))))^(1/2)) (((10^6) (Subscript[ρ, LAr])(T))/(Subscript[A, Ar]))(∫_0^∞)(Sqrt[ℰ])(Subscript[σ, e,X])(ℰ) (Subscript[ρ, ℰ])(ℰ)\[DifferentialD]ℰ

where (Subscript[A, Ar])  is the atomic weight of Ar (39.948) and (Subscript[ρ, LAr]) is the density of LAr in g/(cm^3).

?DensityLAr
?AtWtAr

Create a table of conversion factors between the various units of the rate constant

line={1,(Subscript[N, 0]),(10^3) (Subscript[N, 0]),(10^6)(Subscript[N, 0]) (Subscript[ρ, LAr])/(Subscript[A, Ar]),(10^(-3))(Subscript[N, 0]) (Subscript[ρ, LAr])/(Subscript[A, Ar])};
conversion={line,line/line[[2]],line/line[[3]],line/line[[4]],line/line[[5]]};
header={"(s^(-1))(m^3)((Subscript[molec, X])^(-1))","(s^(-1))(m^3)((Subscript[mole, X])^(-1))","(s^(-1))((Subscript[M, X])^(-1))","(s^(-1))((Subscript[mole, X])/(Subscript[mole, Ar]))^(-1)","(s^(-1))(ppb^(-1))"};
Print[Style["To convert a quantity in the leftmost colum to one in the top row, multiply it by the entry in the matrix",FontFamily->"Helvetica",FontSize->16,FontWeight->Bold]];
Print[Style[TableForm[conversion,TableHeadings->{header,header}],FontFamily->"Helvetica",FontSize->13]];
Print[Style["\nHere are the numeric values, assuming that the LAr is at the normal boiling point",FontFamily->"Helvetica",FontSize->16,FontWeight->Bold]];
Print[Style[TableForm[N/@conversion/.{(Subscript[N, 0])->AvogadroNumber,(Subscript[ρ, LAr])->DensityLAr[tNBPAr],(Subscript[A, Ar])->AtWtAr},TableHeadings->{header,header}],FontFamily->"Helvetica",FontSize->13]];

Define the function for the attachment rate in terms of the cross section and the EEDF

Unprotect[MaxwellDistE,EEDF,attachConstant,kFunction];
Clear[MaxwellDistE,EEDF,attachConstant,kFunction];
attachConstant=(10^3)π AvogadroNumber(((((2×electronCharge)/electronMass)))^(1/2)); (* for (Subscript[k, A]) in (s^(-1)) (Molarity^(-1)) *)
attachConstant=π AvogadroNumber(((((2×electronCharge)/electronMass)))^(1/2)) (((10^6) DensityLAr[tNBPAr])/AtWtAr); (* for (Subscript[k, A]) in (s^(-1)) mole (fraction^(-1)) *)
kFunction[f_,σ_InterpolatingFunction]:=attachConstant×NIntegrate[(Sqrt[ℰ])×EEDF[ℰ,f]×If[ℰ>σ[[1,1,1]],σ[ℰ],σ[σ[[1,1,1]]]],{ℰ,0,Max[σ[[1,1]]]},MinRecursion->4]
kFunction[f_,σ_,{ℰmin_,ℰmax_}]:=attachConstant×NIntegrate[(Sqrt[ℰ])×EEDF[ℰ,f]×σ[ℰ],{ℰ,ℰmin,ℰmax},MinRecursion->4];
MaxwellDistE[ℰ_,ϵM_]:=With[{t=2 ϵM/3},((2 )/(Sqrt[π])) (1/(t^(3/2))) (Sqrt[ℰ]) Exp[-ℰ/t]];
EEDF[ℰ_,f_]:=MaxwellDistE[ℰ,1.5 ETranLAr[f]];
Protect[MaxwellDistE,attachConstant,kFunction];

Display the Maxwell EEDF

Print["The Maxwell distribution in energy is has norm = ",Simplify[(∫_0^∞)MaxwellDistE[ℰ,ϵM]\[DifferentialD]ℰ,{ϵM>0}]];
Print["The mean energy of the Maxwell distribution = ",Simplify[(∫_0^∞)ℰ MaxwellDistE[ℰ,ϵM]\[DifferentialD]ℰ,{ϵM>0}]];
Print["The RMS energy of the Maxwell distribution = ",Simplify[((((∫_0^∞)(ℰ^2) MaxwellDistE[ℰ,ϵM]\[DifferentialD]ℰ))^(1/2)),{ϵM>0}]];
Print[TableForm[Table[{f,a= NIntegrate[ℰ×EEDF[ℰ,f],{ℰ,0,∞}],b= ((NIntegrate[(ℰ^2)×EEDF[ℰ,f],{ℰ,0,∞}])^(1/2)),b/a,c=ETranLAr[f],a/c},{f,0,10,0.5}],TableHeadings->{None, {"E (kV/cm","eMean EEDF (eV)","eRMS EEDF (eV)","eRMS/eMean","eTrans (eV)","eMean/eTrans"}}]];
p1=LogLogPlot[EEDF[x,0.01],{x,0.001,0.08},PlotStyle->{{Thickness[0.005],Blue}},Frame->True];
p2=LogLogPlot[EEDF[x,1],{x,0.006,0.7},PlotStyle->{{Thickness[0.005],Green}},Frame->True];
p3=LogLogPlot[EEDF[x,100],{x,0.1,50},PlotStyle->{{Thickness[0.005],Red}},Frame->True];
labels={"0.01 kV/cm","1 kV/cm","100 kV/cm"};
labelstyle={14,Black,FontFamily->"Helvetica"};
Print[Legended[Show[p1,p2,p3,PlotRange->All,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","f(ℰ) ((eV^(-1)))","Electron Energy Distribution Function",""}),ImageSize->500],Placed[LineLegend[{Blue,Green,Red},labels,LabelStyle->labelstyle,LegendFunction->"Frame",LegendLayout->"Column"],{0.85,0.81}]]];

Read EEDF from Bakale, et al.

fileList={"Bakale EEDF 10V per cm.dat","Bakale EEDF 100000V per cm.dat"};
yMaxList={2,2};
yMin=-2;
{xMin,xMax}={-3,1};
xList={"F=10V/cm","F=100,000V/cm"};
results={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
yMax=yMaxList[[i]];
axisValues={{xMin,yMin},{xMin,yMax},{xMax,yMin},{xMax,yMax}};
data=GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
Print[TableForm[data]];
data={(10^(#[[1]])),(10^(#[[2]]))}&/@data;
AppendTo[results,{xList[[i]],data}];
p1=ListLogLogPlot[data,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{(10^(xMin-0.1)),(10^(xMax+0.1))},{(10^(yMin-0.1)),(10^(yMax+0.1))}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","f(ℰ) ((eV^(-1)))","Electron Energy Distribution Function",""}),AspectRatio->1.2];
Print[Show[p1]];
];

Compare EEDF from Bakale, et al. to the above definition of EEDF

pEEDFBakale=ListLogLogPlot[results[[All,2]],Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{(10^(xMin-0.1)),(10^(xMax+0.1))},{(10^(yMin-0.1)),(10^(yMax+0.1))}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","f(ℰ) (μs)","Electron Energy Distribution Function",""}),AspectRatio->1.2];
p1=LogLogPlot[EEDF[x,0.01],{x,0.001,0.09},PlotStyle->{{Thickness[0.005],Blue}},Frame->True];
p2=LogLogPlot[EEDF[x,1],{x,0.006,0.3},PlotStyle->{{Thickness[0.005],Green}},Frame->True];
p3=LogLogPlot[EEDF[x,100],{x,0.1,9},PlotStyle->{{Thickness[0.005],Red}},Frame->True];
labels={"0.01 kV/cm","1 kV/cm","100 kV/cm","Bakale, et al."};
labelStyle={14,Black,FontFamily->"Helvetica"};
labelColors={Blue,Green,Red,Black};
lableMarkers={Graphics[Line[{{0,0},{1,0}}]],Graphics[Line[{{0,0},{1,0}}]],Graphics[Line[{{0,0},{1,0}}]],Graphics[Disk[]]};
Print[Legended[Show[p1,p2,p3,pEEDFBakale,PlotRange->{All,{Log[0.5 (10^(-2))],Log[2 (10^2)]}},BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","f(ℰ) ((eV^(-1)))","Electron Energy Distribution Function",""}),ImageSize->500,AspectRatio->0.8],Placed[SwatchLegend[labelColors,labels,LegendMarkers->lableMarkers,LegendMarkerSize->{20,20,20,9},LabelStyle->labelStyle,LegendFunction->"Frame",LegendLayout->"Column"],{0.81,0.78}]]];

Modify the Maxwell EEDF to best match EEDF from Bakale, et al. - we will use this as our “best” EEDF

Clear[a,b];
fitEEDF[ℰ_,f_]:=MaxwellDistE[ℰ,a ETranLAr[b f]];
f[n_,list_]:=Prepend[#,n]&/@list;
data=Flatten[MapThread[f[#1,#2]&,{{0.01,100},results[[All,2]]}],1];
myFit=NonlinearModelFit[data,fitEEDF[ℰ,f],{a,b},{f,ℰ}];
params=myFit["BestFitParameters"]
EEDF[ℰ_,f_]:=fitEEDF[ℰ,f]/.params;
p1=LogLogPlot[EEDF[x,0.01],{x,0.001,0.09},PlotStyle->{{Thickness[0.005],Blue}},Frame->True];
p2=LogLogPlot[EEDF[x,1],{x,0.006,0.3},PlotStyle->{{Thickness[0.005],Green}},Frame->True];
p3=LogLogPlot[EEDF[x,100],{x,0.1,9},PlotStyle->{{Thickness[0.005],Red}},Frame->True];
labels={"0.01 kV/cm","1 kV/cm","100 kV/cm","Bakale, et al."};
labelStyle={14,Black,FontFamily->"Helvetica"};
labelColors={Blue,Green,Red,Black};
lableMarkers={Graphics[Line[{{0,0},{1,0}}]],Graphics[Line[{{0,0},{1,0}}]],Graphics[Line[{{0,0},{1,0}}]],Graphics[Disk[]]};
Print[Legended[Show[p1,p2,p3,pEEDFBakale,PlotRange->{All,{Log[0.5 (10^(-2))],Log[2 (10^2)]}},BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","f(ℰ) ((eV^(-1)))","Electron Energy Distribution Function",""}),ImageSize->500,AspectRatio->0.8],Placed[SwatchLegend[labelColors,labels,LegendMarkers->lableMarkers,LegendMarkerSize->{20,20,20,9},LabelStyle->labelStyle,LegendFunction->"Frame",LegendLayout->"Column"],{0.81,0.78}]]];

normal[f_]:=NIntegrate[EEDF[ℰ,f],{ℰ,0,∞}];
normal[0]
normal[1]

params
EEDF[ℰ,f]

Cross section for radiative attachment - Hauser-Feshbach theory

Assuming the transmission coefficients are all maximal (1) and ignoring statistical factors, the maximum cross section is given by the de Broglie wavelength of the electron:

Clear[p,λ,ℰ,h,m,σMaxM2];
σMax=π (((λ/2/π))^2)/.λ->h /p/.p->(((2 m ℰ))^(1/2));
Print["The value of π (λ/2π)^2 is ",σMax];
σMaxRadiative=Function[ℰ,Evaluate[σMax/electronCharge/.{h->planckConst,m->electronMass}]];
Print["In units of (m^2) with ℰ in eV this evaluates to ",σMaxRadiative[ℰ]];

Read attachment cross section files obtained from plots in literature

Cross sections obtained from Christophorou, et al. papers

This data comes from L.G. Christophorou, Electron Attachment to Molecules in Dense Gases (“Quasi - Liquids”), Chemical Reviews, 76 (1976) 409.

For (Subscript[O, 2]) data see:
L.G. Christophorou, D.L. McCorkle, and V.E. Anderson, Swarm - determined electron attachment cross sections as a function of electron energy, J. Phys. B4 (1971) 1163. 
and
D.L. McCorkle, G. Christophorou, and V.E. Anderson, Low energy (≲1 eV) electron attachment to molecules at very high gas densities : (Subscript[O, 2]), J. Phys. B5 (1972) 1211.

See also cross section data for (Subscript[SF, 6]) from L. G. Christophorou, D. L. McCorkle, and J. G. Carter, Cross Sections for Electron Attachment Resonances Peaking at Subthermal Energies, Journal of Chemical Physics 54, 253 (1971).  Numbers are electron energy in eV and cross section in (cm^2) ×(10^14)

Also see D.L. McCorkles, G. Christophorou, and V.E. Anderson, Low energy (≲1 eV) electron attachment to molecules at very high gas densities : (Subscript[O, 2]), J. Phys. B5 (1972) 1211.

Read, scale, fit, and plot data

fileList={"Cross Section SF6 Christophorou.dat","Cross Section N2O Christophorou.dat","Cross Section C2HCl3 Christophorou.dat","Cross Section SO2 1000T Christophorou.dat","Cross Section SO2 3500T Christophorou.dat","Cross Section SO2 6000T Christophorou.dat","Cross Section SO2 9000T Christophorou.dat","Cross Section SO2 12500T Christophorou.dat","Christophorou Attachment O2 3 Body.dat","Christophorou Attachment O2 Dissociative.dat","Cross Section N2O Christophorou v2.dat","Christophorou Attachment SF6-SF5.dat"};
scaleTypeY={"Log","Log","Log","Lin","Lin","Lin","Lin","Lin","Log","Lin","Lin","Lin"};
yMax={-14,-14,-14,8 (10^(-18)),8 (10^(-18)),8 (10^(-18)),8 (10^(-18)),8 (10^(-18)),-30,2.3 (10^(-18)),10 (10^(-22)),60 (10^(-22))};
yMin={-19,-19,-19,0,0,0,0,0,-32,0,0,0};
scaleTypeX={"Lin","Lin","Lin","Lin","Lin","Lin","Lin","Lin","Log","Lin","Lin","Lin"};
xMax={2.7,2.7,2.7,0.2,0.3,0.3,0.4,0.4,0,10,4.3,1.5};
xMin={0,0,0,0,0,0,0,0,-2,4,0,0};
nBody={2,2,2,2,2,2,2,2,3,2,2,2};
xList={"SF6","N2O","C2HCl3","SO2 1000T","SO2 3500T","SO2 6000T","SO2 9000T","SO2 12500T","O2 3Body","O2 Dissoc","N2O Dissoc","SF6 Dissoc"};
Print[TableForm[{{"fileList",Length[fileList]},{"scaleTypeY",Length[scaleTypeY]},{"yMax",Length[yMax]},{"yMin",Length[yMin]},{"scaleTypeX",Length[scaleTypeX]},{"xMax",Length[xMax]},{"xMin",Length[xMin]},{"nBody",Length[nBody]},{"xList",Length[xList]}}]];
resultsChristophoru={};
plotsChristophoru={};
For[i=1,i≤Length[fileList],i++,
file=fileList[[i]];
Print["File is ",file];
axisValues={{xMin[[i]],yMin[[i]]},{xMin[[i]],yMax[[i]]},{xMax[[i]],yMin[[i]]},{xMax[[i]],yMax[[i]]}};
dataRaw={#[[1]],#[[2]]}&/@GetDXFDataAndErrors[pathPrefix<>path<>file,axisValues];
data={If[scaleTypeX[[i]]==="Log",(10^(#[[1]])),#[[1]]],If[scaleTypeY[[i]]==="Log",(10^(#[[2]]-4-If[nBody[[i]]==3,4,0])),#[[2]]]}&/@dataRaw;
Print["Cross sections are in (m^2)"];
Print[TableForm[data]];
p1=ListLogLogPlot[data,Joined->True,Frame->True,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->All,GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","",""}),AspectRatio->1.2];
AppendTo[plotsChristophoru,{xList[[i]],p1}];
AppendTo[resultsChristophoru,{xList[[i]],data}];
];

Print[TableForm[plotsChristophoru]];

Select[plotsChristophoru,StringTake[#[[1]],2]==="SO"&][[All,2]]

Print[Show[Select[plotsChristophoru,StringTake[#[[1]],3]==="SO2"&][[All,2]],Frame->True,PlotRange->All,GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electon Energy (eV)","σA ((m^2))","Electron Attachment Cross Section",""}),AspectRatio->1.2]];

Select[resultsChristophoru,StringTake[#[[1]],2]==="SO"&][[All,1]]

σTotal=(10^23)NIntegrate[Interpolation[#][x],{x,#[[1,1]],#[[-1,1]]}]&/@Select[resultsChristophoru,StringTake[#[[1]],2]==="SO"&][[All,2]];
DensityN2=(10^(-3)){1.4977,5.2448,8.9957,13.501,18.762}/14.; (* density of N2 from REFPROP *)
σVsDensity=Transpose[{DensityN2,σTotal}];
pData=ListLogPlot[σVsDensity,Joined->False,Frame->True];
myFit=LinearModelFit[σVsDensity,{(x^(1/2)),x,(x^(3/2))},x,IncludeConstantBasis->False]
pFit=LogPlot[myFit[x],{x,0.0001,0.035},PlotStyle->{Thickness[0.007],Red}];
Print[Show[pData,pFit,Frame->True,PlotRange->All,GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Density (g/mole)","(Subscript[σ, A . Total]) ((m^2))","Electron Attachment Total Cross Section",""}),AspectRatio->1.2]];

Cross sections obtained from the LxCat database

fileList={"Cross Section Attachment O2 LxCat.dat","Cross Section Attachment N2O LxCat.dat","Cross Section Attachment SF6 LxCat.dat","Cross Section Attachment H2O LxCat.dat","Cross Section Attachment CO2 LxCat.dat","Cross Section Attachment CO LxCat.dat","Cross Section Attachment H2 LxCat.dat"};
xList={"O2","N2O","SF6","H2O","CO2","CO","N2","H2"};
resultsLxCat={};
plotsLxCat={};
For[j=1,j≤Length[fileList],j++,
file=fileList[[j]];
Print["File is ",file];
data=Import[pathPrefix<>path<>file];
dataRegion=regionLocate[data,"-"];
dataSet=(data[[Span[Sequence@@#]]])&/@dataRegion;
dataBaseSet=extractString[data,"DATABASE:"];
setDescriptor={#-10,#-1}&/@dataRegion[[All,1]];
descriptorSet=getTextBlock[data,setDescriptor];
For[i=1,i<=Length[dataSet],i++,
Print[StringTake[descriptorSet[[i]],StringPosition[descriptorSet[[i]],"SPECIES:"][[1,1]]-1]];
Print[dataBaseSet[[i]]];
Print[descriptorSet[[i]]];
Print[TableForm[dataSet[[i]],TableHeadings->{None,{"ℰ (eV)","σA ((m^2))"}}]];
Print[p1=ListLogLogPlot[dataSet[[i]],Frame->True,Joined->True,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->All,GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","",""}),AspectRatio->1.2]];
AppendTo[resultsLxCat,{xList[[j]],i,descriptorSet[[i]],dataSet[[i]]}];
AppendTo[plotsLxCat,{xList[[j]],i,descriptorSet[[i]],p1}];
];
];

Sum over all channels to get total cross section

If there is a direct attachment process,the first data set is it; this may be given as a cross section normalized to the third body density.  The remainder of the data sets are dissociative attachment.
ρThreeBody is the density of the third body (Ar), relative to the normalization, to multiply the first data set.

threeBody=False;
ρThreeBody=If[threeBody,(10^(-3)) AvogadroNumber×ρLiqMole[tNBPAr],1];

Cross Section and Attachment Rate for (SuperMinus[e]) + (Subscript[SF, 6])

Plot the measured attachment rate in LAr

dataAttachSF6={#[[1]],#[[2]]}&/@Select[resultsBakale,#[[1]]==="SF6"&][[1,2]];
pdataAttachSF6=ListLogLogPlot[dataAttachSF6,Joined->False,Frame->True,PlotStyle->{PointSize[0.018],Black},PlotRange->All,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (V/cm)","kA ((s^(-1)))","Electron Attachment Rate Constant",""}),AspectRatio->1.2,ImageSize->450];

Display the cross sections for individual attachment channels

The cross sections as reported by Christophorou and LxCat

Clear[σLxCat,interpLxCAt]
interpLxCAt[species_String,set_List]:=Interpolation[#,InterpolationOrder->1]&/@Select[resultsLxCat,#[[1]]===species&][[set,4]];
σLxCat[x_,species_String,set_List]:=If[#[[1,1,1]]≤x≤#[[1,1,2]],#[x],0]&/@interpLxCAt[species,set];

Clear[interpChristo,σChristo]
interpChristo[species_String,set_]:=
Interpolation[#,InterpolationOrder->1]&/@Select[resultsChristophoru,StringTake[#[[1]],2]===StringTake[species,2]&][[set,2]];
σChristo[x_,species_String,set_]:=If[#[[1,1,1]]≤x≤#[[1,1,2]],#[x],0]&/@interpChristo[species,set];
σSF6LxCat=Function[x,Evaluate[σLxCat[x,"SF6",{1}][[1]]]];
σSF6ChristoRad=Function[x,Evaluate[σChristo[x,"SF6",All][[1]]]];
σSF6ChristoDissoc=Function[x,Evaluate[σChristo[x,"SF6",All][[2]]]];
pσSF6LxCat=LogLogPlot[σSF6LxCat[x],{x,0.001,18},Frame->True,PlotStyle->{{Thickness[0.008],Darker[Red]},{Thickness[0.005],Dashing[{0.02,0.03}],Black}},PlotRange->All,GridLines->None,Exclusions->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","Electron Attachment Cross Section for SF6",""}),AspectRatio->1.2];
pσMaxRad=LogLogPlot[σMaxRadiative[x],{x,0.001,18},Frame->True,PlotStyle->{{Thickness[0.005],Dashing[{0.02,0.03}],Black}},PlotRange->All,GridLines->None,Exclusions->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","Electron Attachment Cross Section for SF6",""}),AspectRatio->1.2];
pσSF6ChristoDirect=LogLogPlot[{σSF6ChristoRad[x],σSF6ChristoDissoc[x]},{x,0.001,18},Frame->True,PlotStyle->{{Thickness[0.008],Orange}},PlotRange->Full];
pσSF6ChristoDissoc=LogLogPlot[σSF6ChristoDissoc[x],{x,0.001,18},Frame->True,PlotStyle->{Thickness[0.005],Dashing[{0.02,0.02}],Orange},PlotRange->Full];
Print[Show[pσSF6LxCat,pσMaxRad,pσSF6ChristoDirect,pσSF6ChristoDissoc]];

The cross section from Christophorou summed and extended below 0.03eV by  a power law

Clear[direct,dissoc,sum,σSF6ChristoTot];
directIterp=interpChristo["SF6",All][[1]];
dissocInterp=interpChristo["SF6",All][[2]];
eMinDirect=directIterp[[1,1,1]];
eMaxDirect=directIterp[[1,1,2]];
eMinDissoc=dissocInterp[[1,1,1]];
eMaxDissoc=dissocInterp[[1,1,2]];
direct[x_]:=If[eMinDirect≤x≤eMaxDirect,directIterp[x],0];
dissoc[x_]:=If[eMinDissoc≤x≤eMaxDissoc,dissocInterp[x],0];
sum[x_]=direct[x]+dissoc[x];
σSF6ChristoTot[x_]:=With[{eMin=Max[eMinDirect,eMinDissoc]},If[x<eMin,sum[eMin](((eMin/x))^1),sum[x]]];
crossSectionData=Table[{x,σSF6ChristoTot[x]},{x,0.001,18,0.002}];
Print["The direct attachment is ",NumberForm[100 σSF6ChristoTot[x]/σMaxRadiative[x]/.x->0.01,3],"% of the maximum allowed"];
pσSF6ChristoTot=LogLogPlot[σSF6ChristoTot[x],{x,0.001,18},PlotStyle->{{Thickness[0.008],Dashing[{0.0,0.0}],Orange}},PlotRange->Full];
Print[Show[pσSF6LxCat,pσMaxRad,pσSF6ChristoTot,pσSF6ChristoDissoc,pσSF6ChristoTot,PlotRange->All]]

Cross section data for (Subscript[SF, 6]) from L. G. Christophorou, D. L. McCorkle, and J. G. Carter, Cross Sections for Electron Attachment Resonances Peaking at Subthermal
Energies, Journal of Chemical Physics 54, 253 (1971).  Numbers are electron energy in eV and cross section in (cm^2) ×(10^14)

Compute and display the attachment rate

kAttachSF6LxCat=Table[{(10^(x+3)), kFunction[(10^x),σSF6LxCat,{0.0001,15}]},{x,-2.3,1.7,1/7}];
kAttachSF6Christo=Table[{(10^(x+3)), kFunction[(10^x),σSF6ChristoTot,{0.0001,15}]},{x,-2.3,1.7,1/7}];

{aDiff,α}={0,1};
{aDiff,α}={0.15 (10^(-18)),1};
kTAttachSF6LxCat={#[[1]],(((aDiff/ETranLAr[#[[1]]/1000]+1/#[[2]]))^(-1))}&/@kAttachSF6LxCat;
kTAttachSF6Christo={#[[1]],(((aDiff/ETranLAr[#[[1]]/1000]+1/#[[2]]))^(-1))}&/@kAttachSF6Christo;
kSF6LxCat=Interpolation[{#[[1]],α #[[2]]}&/@kTAttachSF6LxCat];
kSF6Christo=Interpolation[{#[[1]],((α^(-1))) #[[2]]}&/@kTAttachSF6Christo];
pAttachSF6=LogLogPlot[{kSF6LxCat[x],kSF6Christo[x]},{x,6,50000},Frame->True,PlotStyle->{{Thickness[0.008],Dashing[{0,0}],Darker[Red]},{Thickness[0.008],Dashing[{0,0}],Orange}},PlotRange->All,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (V/cm)","(Subscript[k, A]) ((s^(-1)))","Electron Attachment Rate Constant",""}),AspectRatio->1.2,ImageSize->450];
Print[GraphicsRow[{Show[pσSF6LxCat,pσMaxRad,pσSF6ChristoTot,pσSF6ChristoDissoc,pσSF6ChristoTot,PlotRange->All],Show[pAttachSF6,pdataAttachSF6,PlotRange->All]}]];

Save  the total cross section and attachment rate

outFileName="Attachment Rate Calc SF6.dat";
strm=OpenWrite[pathPrefix<>path<>outFileName];
Write[strm,crossSectionData];
Write[strm,kTAttachSF6Christo];
Close[strm];
FileNames[pathPrefix<>path<>"Attachment Rate Calc*.dat"]

Attempt to "fit" the cross section to the rate data

Mostly for amusement - don' t use this

Define a set of basis functions for a linear LSQ fit of the attachment rate

step=1/1.3;
brackets=Table[{(10^x),(10^(x+step))},{x,-4.,1.5,step}];
bracketCentersGeom=((Apply[Times,brackets,2])^(1/2));
bracketCentersArith=Apply[Plus,brackets,2]/2;
σConstant[x_]:=(10^(-16));
fTable=Table[x,{x,-2.5,3,step}];
kAttachBasis={};
Off[NIntegrate::izero];
For[i=1,i≤Length[brackets],i++,
AppendTo[kAttachBasis,Table[{(10^(x+3)), kFunction[(10^x),σConstant,brackets[[i]]]},{x,Log[10,bracketCentersGeom]}]];
];
On[NIntegrate::izero];

Print[ListLogLogPlot[kAttachBasis,Joined->True,Frame->True,PlotRange->{All,{(10^10),(10^20)}},BaseStyle->{"Helvetica",12},FrameLabel->StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Attachment Rate ((s^(-1)))","Electric Field (V/m)"},ImageSize->600]];

matrix=kAttachBasis[[All,All,2]];
mapKtoσ=Inverse[matrix];
σCalc=Transpose[{bracketCentersGeom,bracketCentersGeom . mapKtoσ}];
ListLogLogPlot[σCalc,Joined->True,Frame->True,PlotRange->Full]

fit[50]

fTable

dataRate=dataAttachSF6;
pdataRate=pdataAttachSF6;

For[i=1,i≤Length[brackets],i++,
AppendTo[kAttachBasis,Table[{(10^(x+3)), kFunction[(10^x),σConstant,brackets[[i]]]},{x,fTable}]];
];
params=Table[ToExpression["β"<>ToString[n]],{n,1,Length[kAttachBasis]}];
paramsInitial={#,0.01}&/@params;
constr=Greater[#,0.00001]&/@params;
paramsAvg=(params+ReplacePart[RotateRight[params],1->0]+ReplacePart[RotateLeft[params],-1->0])/3;
fit=NonlinearModelFit[dataRate,{paramsAvg.(Interpolation[#1,InterpolationOrder->1][x]&/@kAttachBasis),constr},paramsInitial,x];
param=fit["BestFitParameters"]

pFit=LogLogPlot[fit[x],{x,10,1.1 10^5},PlotStyle->{Thickness[0.007],Blue}];
f[x_]:=Which[Evaluate[Sequence@@Riffle[(x<#)&/@brackets[[All,2]],σConstant[0]*If[#==0.,0.001,#]&/@param[[All,2]]]]];
pXsectnFit=LogLogPlot[f[x],{x,0.0001,50},PlotRange->All,PlotStyle->{Thickness[0.007],Blue},PlotPoints->100,MaxRecursion->10,Exclusions->None];
Print[GraphicsRow[{Show[pdataRate,pFit,pdataRate,PlotRange->All],Show[pXsectn,pXsectnFit]}]];

xxx

Previous results for SF6

Cross Section and Attachment Rate for (SuperMinus[e]) + (Subscript[H, 2])O (only from LxCat data)

Display the cross sections for individual attachment channels

getChannel[resultsLxCat,"H2O"]

Print[Style["Final state is (Subscript[H, 2])(SuperMinus[O])",FontFamily->"Helvetica",FontSize->16]];
Print[Show[Select[plotsLxCat,#[[1]]==="H2O"&][[1,4]],PlotRange->All]];
Print[Style["Final state is H + (SuperMinus[OH])",FontFamily->"Helvetica",FontSize->16]];
Print[Show[Select[plotsLxCat,#[[1]]==="H2O"&][[{2,7,10},4]],PlotRange->All]];
Print[Style["Final state is (Subscript[H, 2]) + (SuperMinus[O])",FontFamily->"Helvetica",FontSize->16]];
Print[Show[Select[plotsLxCat,#[[1]]==="H2O"&][[{3,5,8,9},4]],PlotRange->All]];
Print[Style["Final state is (SuperMinus[H]) + OH",FontFamily->"Helvetica",FontSize->16]];
Print[Show[Select[plotsLxCat,#[[1]]==="H2O"&][[{4,6},4]],PlotRange->All]];

Compute a best estimate of the total cross section for all attachment channels

Clear[σ,interp]
interp[species_String,set_List]:=Interpolation[#,InterpolationOrder->1]&/@Select[resultsLxCat,#[[1]]===species&][[set,4]];
σ[x_,species_String,set_List]:=If[#[[1,1,1]]≤x≤#[[1,1,2]],#[x],0]&/@interp[species,set];

Clear[σTotal];
direct={1};
dissoc1={2,7,10};
dissoc2={3,5,8,9};
dissoc3={4,6};
σTotal[x_]:=Mean[σ[x,"H2O",dissoc1]]+Mean[σ[x,"H2O",dissoc2]]+Mean[σ[x,"H2O",dissoc3]];
labelstyle={14,Black,FontFamily->"Helvetica"};
channelLabels={"All Dissoc"," H+(SuperMinus[OH])","H2+(SuperMinus[O])","HO+(SuperMinus[H])"};
thk=0.010;
pσH2OPartial=LogLogPlot[{σTotal[x],Mean[σ[x,"H2O",dissoc1]],Mean[σ[x,"H2O",dissoc2]],Mean[σ[x,"H2O",dissoc3]],σTotal[x]},{x,4,17.5},Frame->True,PlotStyle->{{Thickness[thk],Black},{Thickness[thk],Red},{Thickness[thk],Darker[Green]},{Thickness[thk],Brown},{Thickness[thk],Black}},GridLines->Automatic,Exclusions->None,BaseStyle->{"Helvetica",18},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->22,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","(SuperMinus[e]) + (Subscript[H, 2])O",""}),PlotLegends->LineLegend[channelLabels,LegendLabel->"Exit Channel",LabelStyle->labelstyle,LegendLayout->"Column",LegendFunction->"Frame"],AspectRatio->1.2,ImageSize->500];
Print[Show[pσH2OPartial]];

Compute and display the total attachment rate

Clear[x,xsectn];
{pwr,bp}={1.0,4.454};
ScaleH2O=21.2837/1.47;
crossSecionData=Table[{x,If[x<bp,ScaleH2O (((1/x))^pwr)×σTotal[bp],σTotal[x]]},{x,0.001,18,0.005}];
xsectn=Interpolation[crossSecionData,InterpolationOrder->1];
Print["The direct attachment is ",NumberForm[xsectn[x]/σMaxRadiative[x]/.x->0.01,3]," × the maximum allowed"];
Off[NIntegrate::ncvb];
kAttachH2OLxCat=Table[{(10^(x+3)), kFunction[(10^x),xsectn]},{x,Table[x,{x,-2.3,2,1/20}]}];
On[NIntegrate::ncvb];
aDiff=0.15 (10^(-30));
kTAttachH2OLxCat={#[[1]],(((aDiff/ETranLAr[#[[1]]/1000]+1/#[[2]]))^(-1))}&/@kAttachH2OLxCat;
kTAttachH2OEA=Interpolation[Select[kTAttachH2OLxCat,#[[2]]>(10^6)&]];
pAttachH2OEA=LogLogPlot[kTAttachH2OEA[x],{x,5,50000},Frame->True,PlotStyle->{Thickness[0.005],Black},PlotRange->All,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (V/cm)","kA ((s^(-1)))","Electron Attachment Rate Constant",""}),AspectRatio->1.2,ImageSize->450];
pXsectnEA=LogLogPlot[xsectn[x],{x,0.01,18},Frame->True,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{Full,{(10^(-26)),(10^(-19))}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","Electron Attachment Cross Section",""}),AspectRatio->1.2];
pσMaxRad=LogLogPlot[σMaxRadiative[x],{x,0.001,18},Frame->True,PlotStyle->{{Thickness[0.005],Dashing[{0.02,0.03}],Black}},PlotRange->{All,{(10^(-26)),(10^(-19))}},GridLines->None,Exclusions->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","Electron Attachment Cross Section for SF6",""}),AspectRatio->1.2];
Print["The attachment rate at 10 V/cm is ", kTAttachH2OEA[10]];
Print["The attachment rate at 500 V/cm is ", kTAttachH2OEA[500]];
Print[GraphicsRow[{Show[pXsectnEA,pσMaxRad],Show[pAttachH2OEA],ImageSize->400}]];

lowScaleH2O=1.6 4.77854×kminH2O/kTAttachH2OEA[1000 EminAndrews]/1.47;
hiScaleH2O=230 4.77854×kmaxH2O/kTAttachH2OEA[1000 EmaxAndrews]/1.47;
meanScale=(((lowScaleH2O×hiScaleH2O))^(1/2));

crossSecionData=Table[{x,If[x≤bp,lowScaleH2O (((bp/x))^pwr)×σTotal[bp],σTotal[x]]},{x,0.001,18,0.005}];
xsectn=Interpolation[crossSecionData,InterpolationOrder->1];
Off[NIntegrate::ncvb];
kAttachH2OLxCatLo=Table[{(10^(x+3)), kFunction[(10^x),xsectn]},{x,Table[x,{x,-2.3,2,1/20}]}];
kAttachH2OLxCatLo=Prepend[kAttachH2OLxCatLo,{0,kAttachH2OLxCatLo[[1,2]]}];
On[NIntegrate::ncvb];
kTAttachH2OLxCatLo={#[[1]],(((aDiff/ETranLAr[#[[1]]/1000]+1/#[[2]]))^(-1))}&/@kAttachH2OLxCatLo;
kTAttachH2OLo=Interpolation[Select[kTAttachH2OLxCatLo,#[[2]]>(10^6)&]];
pAttachH2OLo=LogLogPlot[kTAttachH2OLo[x],{x,5,50000},Frame->True,PlotStyle->{Thickness[0.005],Black},PlotRange->All,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (V/cm)","kA ((s^(-1)))","Electron Attachment Rate Constant",""}),AspectRatio->1.2,ImageSize->450];
pXsectnLo=LogLogPlot[xsectn[x],{x,0.01,18},Frame->True,PlotStyle->{{Thickness[0.005],Dashing[{0.0,0.0}],PointSize[0.02],Black}},PlotRange->{Full,{(10^(-27)),(10^(-19))}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","Electron Attachment Cross Section",""}),AspectRatio->1.2];
Print["The direct attachment is ",NumberForm[xsectn[x]/σMaxRadiative[x]/.x->0.01,3]," × the maximum allowed"];
Print["The attachment rate at ",1000 EminAndrews," V/cm is ", kTAttachH2OLo[1000 EminAndrews]];

crossSecionData=Table[{x,If[x≤bp,hiScaleH2O (((bp/x))^pwr)×σTotal[bp],σTotal[x]]},{x,0.001,18,0.005}];
xsectn=Interpolation[crossSecionData,InterpolationOrder->1];
Off[NIntegrate::ncvb];
kAttachH2OLxCatHi=Table[{(10^(x+3)), kFunction[(10^x),xsectn]},{x,Table[x,{x,-2.3,2,1/20}]}];
On[NIntegrate::ncvb];
kTAttachH2OLxCatHi={#[[1]],(((aDiff/ETranLAr[#[[1]]/1000]+1/#[[2]]))^(-1))}&/@kAttachH2OLxCatHi;
kTAttachH2OLxCatHi=Prepend[kTAttachH2OLxCatHi,{0,kTAttachH2OLxCatHi[[1,2]]}];
kTAttachH2OHi=Interpolation[Select[kTAttachH2OLxCatHi,#[[2]]>(10^6)&]];
pAttachH2OHi=LogLogPlot[kTAttachH2OHi[x],{x,5,50000},Frame->True,PlotStyle->{Thickness[0.005],Black},PlotRange->All,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (V/cm)","kA ((s^(-1)))","Electron Attachment Rate Constant",""}),AspectRatio->1.2,ImageSize->450];
pXsectnHi=LogLogPlot[xsectn[x],{x,0.01,18},Frame->True,PlotStyle->{{Thickness[0.005],Dashing[{0.0,0.0}],PointSize[0.02],Black}},PlotRange->{Full,{(10^(-27)),(10^(-19))}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","Electron Attachment Cross Section",""}),AspectRatio->1.2];
Print["The direct attachment is ",NumberForm[xsectn[x]/σMaxRadiative[x]/.x->0.01,3]," × the maximum allowed"];
Print["The attachment rate at ",1000 EmaxAndrews," V/cm is ", kTAttachH2OHi[1000 EmaxAndrews]];

crossSecionData=Table[{x,If[x≤bp,meanScale (((bp/x))^pwr)×σTotal[bp],σTotal[x]]},{x,0.001,18,0.005}];
xsectn=Interpolation[crossSecionData,InterpolationOrder->1];
Print["The direct attachment is ",NumberForm[xsectn[x]/σMaxRadiative[x]/.x->0.01,3]," × the maximum allowed"];
Off[NIntegrate::ncvb];
kAttachH2OLxCat=Table[{(10^(x+3)), kFunction[(10^x),xsectn]},{x,Table[x,{x,-2.3,2,1/20}]}];
On[NIntegrate::ncvb];
kTAttachH2OLxCat={#[[1]],(((aDiff/ETranLAr[#[[1]]/1000]+1/#[[2]]))^(-1))}&/@kAttachH2OLxCat;
kTAttachH2OMean=Interpolation[Select[kTAttachH2OLxCat,#[[2]]>(10^6)&]];
pAttachH2OMean=LogLogPlot[kTAttachH2OMean[x],{x,5,50000},Frame->True,PlotStyle->{Thickness[0.005],Black},PlotRange->All,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (V/cm)","kA ((s^(-1)))","Electron Attachment Rate Constant",""}),AspectRatio->1.2,ImageSize->450];
pXsectnMean=LogLogPlot[xsectn[x],{x,0.01,18},Frame->True,PlotStyle->{{Thickness[0.005],Dashing[{0.0,0.0}],PointSize[0.02],Black}},PlotRange->{Full,{(10^(-27)),(10^(-19))}},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","Electron Attachment Cross Section",""}),AspectRatio->1.2];
Print[GraphicsRow[{Show[pσMaxRad,pXsectnEA,pXsectnLo,pXsectnHi,ImageSize->100],Show[pAttachH2OLo,pAttachH2OHi,pAttachH2OEA,ImageSize->100]},ImageSize->1000]];

kTAttachH2OHi[x]

padeLo=Function[{x},Evaluate[PadeApproximant[kTAttachH2OLo[x],{x,100,{2,3}}]]];
padeHi=Function[{x},Evaluate[PadeApproximant[kTAttachH2OHi[x],{x,100,{2,3}}]]];
padeLo[0]
padeHi[0]

padeLo=Function[{x},Evaluate[PadeApproximant[kTAttachH2OLo[x],{x,400,{2,2}}]]]
padeHi=Function[{x},Evaluate[PadeApproximant[kTAttachH2OHi[x],{x,400,{2,2}}]]]
pAttachH2OLoPade=LogLogPlot[padeLo[x],{x,5,50000},Frame->True,PlotStyle->{Thickness[0.005],Red},PlotRange->All,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (V/cm)","kA ((s^(-1)))","Electron Attachment Rate Constant",""}),AspectRatio->1.2,ImageSize->450];
pAttachH2OHiPade=LogLogPlot[padeHi[x],{x,5,50000},Frame->True,PlotStyle->{Thickness[0.005],Red},PlotRange->All,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (V/cm)","kA ((s^(-1)))","Electron Attachment Rate Constant",""}),AspectRatio->1.2,ImageSize->450];
Print[Show[pAttachH2OLo,pAttachH2OHi,pAttachH2OEA,pAttachH2OLoPade,pAttachH2OHiPade,ImageSize->600]]

Print[padeLo[x]];
Print[padeHi[x]];

scale=(10^(-11));
data1={#[[1]]/1000,Around[1,0.05]×#[[2]]×scale}&/@Select[resultsBakale,#[[1]]==="O2"&][[1,2]];
data2={#[[1]],(#[[2]]/.PlusMinus->Around)×scale}&/@kAO2Bettini;
data3={#[[1]],(#[[2]]/.PlusMinus->Around)×scale}&/@kAO2Biller;
data4={#[[1]],(#[[2]]/.PlusMinus->Around)×scale}&/@kAO2Hofmann;
data5={#[[1]],(#[[2]]/.PlusMinus->Around)×scale}&/@kAO2Adams;
combine={data1,data2,data3,data4,data5};
data={#[[1]],#[[2]]["Value"]}&/@(Flatten/@Join[data1,data2,data3,data4,data5]);
weight=(((#[[2]]["Value"]&/@(Flatten/@Join[data1,data2,data3,data4,data5])))^(-2));
{xMin,xMax}={0.010,105};

p1=ListLogLogPlot[combine,Frame->True,Joined->False,PlotStyle->{{Thickness[0.003],PointSize[0.02],Black}},PlotRange->{{xMin,xMax},All},GridLines->Automatic,BaseStyle->{"Helvetica",20},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->20,FontWeight->"Plain"]&/@{"E Field (kV/cm)","kA ((s^(-1)))","Electron Attachment Rate vs. Field",""}),AspectRatio->1.2,ImageSize->550];
{n,m}={2,2}; (* with unit weights, {2,2} seems best overall; {2,3}, {4,2} are OK *)
{n,m}={2,2}; (* with weights = (err^(-1)), {2,2} is best overall *)
{n,m}={2,3}; (* with weights = (err^(-2)), {4,3} seems best overall;  everything else has poles *)
fPade=Pade[n,m,#]&;
constr=Solve[(((∂_x)fPade[x])/.x->0)==0,a0][[1]];
parameters=Drop[paramPade[n,m],1]
Print["Pade approximant is ",fPade[x]/.constr];
Print["Number of data points is ",Length[data]];
fitPade=NonlinearModelFit[data,fPade[x]/.constr,parameters,x,Weights->weight];
xMax=35;
pFit=LogLogPlot[fitPade["BestFit"],{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Red}];
bands=fitPade["MeanPredictionBands",ConfidenceLevel->0.9545]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pBands=LogLogPlot[bands,{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.003],Lighter[Red]}}];
params=fitPade["BestFitParameters"];
Print["Parameters are ",params];
labels=parameters;
Print["Fitted Parameters\n",TableForm[MapThread[Prepend[#1,#2]&,{fitPade["ParameterTableEntries"][[All,1;;2]],labels}],TableHeadings->{None,{"Parameter","Value","Error"}}]];
Print["ANOVA Table\n",fitPade["ANOVATable"]];
Print["\n",Grid[Transpose[{#,fitPade[#]}&[{"AdjustedRSquared","AIC","BIC","RSquared"}]],Alignment->Left]];
Print["Covariance Matrix\n",TableForm[fitPade["CorrelationMatrix"],TableHeadings->{labels,labels}]];
Print["(χ^2) = ",Plus@@(weight ((fitPade["FitResiduals"])^2))/(Length[data]-Length[parameters])];
Print[p=Show[p1,pFit,pBands]];
AppendTo[PadeCoefs,Join[{"(Subscript[O, 2])",scale},If[NumericQ[#],#,0]&/@({a1,a2,a3,a4,b1,b2,b3,b4}/.params)]];
padeO2=fitPade;

kAH2OAndrews[[1,2,1]]
kTAttachH2OHi[10]/kAH2OAndrews[[1,2,1]]
500/%
500*%

Save  the total cross section and attachment rate

outFileName="Attachment Rate Calc H2O.dat";
strm=OpenWrite[pathPrefix<>path<>outFileName];
Write[strm,crossSecionData];
Write[strm,kAttachH2OLxCat];
Close[strm];
FileNames[pathPrefix<>path<>"Attachment Rate Calc*.dat"]

Add plot of maximum radiative cross section (optical model)

pXsectn=LogLogPlot[xsectn[x],{x,0.01,18},Frame->True,PlotStyle->{{Thickness[0.005],Dashing[{0.0,0.0}],PointSize[0.02],Black}},PlotRange->{Full,{(10^(-25)),(10^(-20))}},GridLines->Automatic,BaseStyle->{"Helvetica",18},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->22,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","(Subscript[σ, A]) ((m^2))","",""}),AspectRatio->1.2];
Print[Show[pXsectn,pσMaxRad,PlotRange->{Log[{0.01,17}],Log[{(10^(-25)),(10^(-19))}]},ImageSize->550]];

Obtain  Pade approximant for calculated attachment rate

scale=(10^(-11));
dataAll={(10^(-3))×#[[1]],scale×#[[2]]}&/@kTAttachH2OLxCat;
data=dataAll[[1;;-5]];
weight=ConstantArray[1,Length[data]];
weight=(((Flatten/@data)[[All,2]])^(-1));

{xMin,xMax}={0.0010,100};
p1=ListLogLogPlot[dataAll,Frame->True,Joined->False,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->{{xMin,xMax},All},GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"E Field (kV/cm)","kA ((s^(-1)))","Electron Attachment Rate vs. Field",""}),AspectRatio->1.2];
{n,m}={4,3};
fPade=Pade[n,m,#]&;
constr=Solve[(((∂_x)fPade[x])/.x->0)==0,a0][[1]];
parameters=Drop[paramPade[n,m],1];
Print["Pade approximant is ",fPade[x]/.constr];
fitPade=NonlinearModelFit[data,fPade[x]/.constr,parameters,x,Weights->weight];
pFit=LogLogPlot[fitPade["BestFit"],{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{Thickness[0.007],Red}];
bands=fitPade["MeanPredictionBands",ConfidenceLevel->0.9545]; (* 1σ->0.6827, 2σ->0.9545, 3σ->0.9973 *)
pBands=LogLogPlot[bands,{x,xMin,xMax},Frame->True,PlotRange->All,PlotStyle->{{Thickness[0.003],Lighter[Red]}}];
params=fitPade["BestFitParameters"];
Print["Parameters are ",params];
labels=parameters;
Print["Fitted Parameters\n",TableForm[MapThread[Prepend[#1,#2]&,{fitPade["ParameterTableEntries"][[All,1;;2]],labels}],TableHeadings->{None,{"Parameter","Value","Error"}}]];
Print["ANOVA Table\n",fitPade["ANOVATable"]];
Print["\n",Grid[Transpose[{#,fitPade[#]}&[{"AdjustedRSquared","AIC","BIC","RSquared"}]],Alignment->Left]];
Print["Covariance Matrix\n",TableForm[fitPade["CorrelationMatrix"],TableHeadings->{labels,labels}]];
Print["(χ^2) = ",Plus@@(weight ((fitPade["FitResiduals"])^2))/(Length[dataRaw]-Length[parameters])];
Print[p=Show[p1,pFit,pBands]];
AppendTo[PadeCoefs,Join[{"(Subscript[O, 2])",scale},If[NumericQ[#],#,0]&/@({a1,a2,a3,a4,b1,b2,b3,b4}/.params)]];
padeO2Calc=fitPade;

Cross Section and Attachment Rate for (SuperMinus[e]) + (Subscript[N, 2])O

Display the known cross sections for individual attachment channels

Clear[interpChristo,σChristo]
interpChristo[species_String,set_]:=
Interpolation[#,InterpolationOrder->1]&/@Select[resultsChristophoru,StringTake[#[[1]],2]===StringTake[species,2]&][[set,2]];
σChristo[x_,species_String,set_]:=If[#[[1,1,1]]≤x≤#[[1,1,2]],#[x],0]&/@interpChristo[species,set];
σN2OChristo1=Function[x,Evaluate[σChristo[x,"N2O",All][[1]]]];
σN2OChristo2=Function[x,Evaluate[σChristo[x,"N2O",All][[2]]]];
pσN2O=LogLogPlot[{σN2OChristo1[x],σN2OChristo2[x]},{x,0.001,18},Frame->True,PlotStyle->{{Thickness[0.008],Red},{Thickness[0.008],Orange}},PlotRange->All,GridLines->Automatic,Exclusions->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","Electron Attachment Cross Section for N2O",""}),AspectRatio->1.2];
Print[Show[pσN2O]];

Compute a best estimate of the total cross section for all attachment channels and the attachment rate

Gaussian[x_,x0_,σ_]:=Exp[-(((x-x0))^2)/2/(σ^2)];
Simplify[Integrate[Gaussian[x,0,σ],{x,-∞,∞}],σ>0]

Gaussian[x_,x0_,σ_]:=Exp[-(((x-x0))^2)/2/(σ^2)];
dataRate=({#1[[1]],#1[[2]]}&)/@Select[resultsBakale,#1[[1]]==="N2O"&][[1,2]];
pdataRate=ListLogLogPlot[dataRate,Joined->False,Frame->True,PlotStyle->{PointSize[0.015],Red}];

{σRad,pRad}={0.5 1.3 (10^(-23)),1};
σN2ORad[x_]:=σRad (x^(-pRad));
σN2OTot[x_]:=1 σN2OChristo2[x]+σN2ORad[x]+0.5 (10^(-20)) Gaussian[x,0.25,0.08]+500 (10^(-22)) Gaussian[x,6,2];
σN2OTot[x_]:=1 σN2OChristo2[x]+σN2ORad[x]+1.2 (10^(-20)) Gaussian[x,1.05,0.4]+50 (10^(-22)) Gaussian[x,6,2];
Print["The direct attachment is ",NumberForm[100 σN2OTot[x]/σMaxRadiative[x]/.x->0.01,3],"% of the maximum allowed"];
pσN2OTot=LogLogPlot[σN2OTot[x],{x,0.001,18},Frame->True,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->Full,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","Electron Attachment Cross Section",""}),AspectRatio->1.2];
Print[Show[pσN2OTot]];
kAttachN2O=Table[{(10^(x+3)), kFunction[(10^x),σN2OTot,{0.001,12}]},{x,-2.,2,1/6}];
pkAttachN2O=ListLogLogPlot[kAttachN2O,Joined->True,Frame->True,PlotStyle->{Thickness[0.005],Black},PlotRange->All,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (V/cm)","kA ((s^(-1)))","Electron Attachment Rate Constant",""}),AspectRatio->Automatic,ImageSize->450];
Print[Show[pkAttachN2O,pdataRate,PlotRange->All]];

Compute and display the total attachment rate for a hypothetical attachment cross section to match the attachment rate data

σN2OTotal=Interpolation[{Log[#[[1]]],Log[#[[2]]/4]}&/@{{(10^(-6)),2 (10^(-21)) },{1 0.046,2 (10^(-21)) },{3 0.32,40 (10^(-21)) },{3 15,2 (10^(-21)) },{1000,0.001 (10^(-21)) }},InterpolationOrder->1];
pσN2OFit=LogLogPlot[Exp[σN2OTotal[Log[x]]],{x,0.001,10},Frame->True,PlotStyle->{{Thickness[0.005],PointSize[0.02],Black}},PlotRange->All,GridLines->Automatic,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","Electron Attachment Cross Section",""}),AspectRatio->1.2];
Print[Show[pσN2OFit]];
σN2OTotalLin=Interpolation[Table[{x, Exp[σN2OTotal[Log[x]]]},{x,(10^(-3)),10,0.01}],InterpolationOrder->1];
kAttachN2O=Table[{(10^(x+3)), kFunction[(10^x),σN2OTotalLin]},{x,-2.,2,1/3}];
pkAttachN2O=ListLogLogPlot[kAttachN2O,Joined->True,Frame->True,PlotStyle->{Thickness[0.005],Black},PlotRange->All,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field (V/cm)","kA ((s^(-1)))","Electron Attachment Rate Constant",""}),AspectRatio->Automatic,ImageSize->450];
Print[Show[pkAttachN2O,pdataRate,PlotRange->All]];

xxx

I.A. Kossyi, A.Yu. Kostinsky, A.A. Matveyev and V.P. Silakov, Kinetic scheme of the non-equilibrium discharge in nitrogen-oxygen mixtures, From Plasma Sources Sci. Technol. 1 (1992) 207.

(10^(-11)) (10^(-4)) 2.1035741737522107`*^28

The above value for attachment rate to (Subscript[NO, 2]) is similar to the value reported by Bakale, et al. for N2O at low fields, 3×(10^11) to 10×(10^11)at 300 V/cm

Cross Section and Attachment Rate for (SuperMinus[e]) + (Subscript[O, 2])

Display the cross section data for individual attachment channels

joined=False;
ptSize=0.02;
thk=0.008;
colorChristo=Red;
colorLxCat =Blue;
pRange3Body=All;
pRangeDissoc ={{4,15},All};
σO2Christo3BodyData={#[[1]],(10^(-7)) #[[2]]}&/@Select[resultsChristophoru,StringTake[#[[1]],2]===StringTake["O2",2]&][[1,2]];
pO2Christo3Body=ListLogLogPlot[{#[[1]],(10^46) #[[2]]}&/@σO2Christo3BodyData,Joined->joined,Frame->True,PlotRange->pRange3Body,PlotStyle->{{Thickness[thk],PointSize[ptSize],Dashing[{0,0}],colorChristo}},PlotRange->Full,GridLines->None,BaseStyle->{"Helvetica",18},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->22,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","(Subscript[σ, 3  body])×(10^46) ((m^5))","E",""}),AspectRatio->1.2,ImageSize->500];
σO2ChristoDissocData={#[[1]],(10^(-4)) #[[2]]}&/@Select[resultsChristophoru,StringTake[#[[1]],2]===StringTake["O2",2]&][[2,2]];
pO2ChristoDissoc=ListLogLogPlot[{#[[1]],(10^22) #[[2]]}&/@σO2ChristoDissocData,Joined->joined,Frame->True,PlotRange->pRangeDissoc,PlotStyle->{{Thickness[thk],PointSize[ptSize],Dashing[{0,0}],colorChristo}},PlotRange->Full,GridLines->None,BaseStyle->{"Helvetica",18},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->22,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","(Subscript[σ, Dissoc])×(10^22) ((m^2))","E",""}),AspectRatio->1.2,ImageSize->500];
(* Print[GraphicsRow[{pO2Christo3Body,pO2ChristoDissoc},ImageSize->900]];m *)
pRange3Body={{0.01,50},All};
pRangeDissoc ={{4,15},All};
σO2LxCat3BodyData={#[[1]],(10^(-6)) #[[2]]}&/@Select[resultsLxCat,StringTake[#[[1]],2]===StringTake["O2",2]&][[1,4]];
pO2LxCat3Body=ListLogLogPlot[{#[[1]],(10^46) #[[2]]}&/@σO2LxCat3BodyData,Joined->joined,Frame->True,PlotRange->pRange3Body,PlotStyle->{{Thickness[thk],PointSize[ptSize],Dashing[{0,0}],colorLxCat}},PlotRange->Full,GridLines->None,BaseStyle->{"Helvetica",18},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->22,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","(Subscript[σ, 3  body])×(10^46) ((m^5))","E",""}),AspectRatio->1.2,ImageSize->500];
σO2LxCatDissocData=Select[resultsLxCat,StringTake[#[[1]],2]===StringTake["O2",2]&][[2,4]];
pO2LxCatDissoc=ListLogLogPlot[{#[[1]],(10^22) #[[2]]}&/@σO2LxCatDissocData,Joined->joined,Frame->True,PlotRange->pRangeDissoc,PlotStyle->{{Thickness[thk],PointSize[ptSize],Dashing[{0,0}],colorLxCat}},PlotRange->Full,GridLines->None,BaseStyle->{"Helvetica",18},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->22,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","(Subscript[σ, Dissoc])×(10^22) ((m^2))","E",""}),AspectRatio->1.2,ImageSize->500];
(* Print[GraphicsRow[{pO2LxCat3Body,pO2LxCatDissoc},ImageSize->900]]; *)
dashingChristo=Dashing[{0.01,0.018}];
Print[GraphicsRow[{Show[pO2LxCat3Body,pO2Christo3Body/.Dashing[_]->dashingChristo,PlotRange->All],Show[pO2ChristoDissoc/.Dashing[_]->dashingChristo,pO2LxCatDissoc,PlotRange->All]},ImageSize->900]];

Obtain interpolating functions with appropriate asymptotic behavior for each channel

Clear[σO2Christo3Body,σO2ChristoDissoc,σO2LxCat3Body,σO2LxCatDissoc];
σO2Christo3Body[x_]:=Exp[Evaluate[Interpolation[{Log[#[[1]]],Log[#[[2]]]}&/@Append[Prepend[σO2Christo3BodyData,{0.001,σO2Christo3BodyData[[1,-1]]}],{100,(10^(-54))}],InterpolationOrder->1]][Log[x]]];
σO2ChristoDissoc[x_]:=Exp[Evaluate[Interpolation[{Log[#[[1]]],Log[#[[2]]]}&/@Append[Prepend[σO2ChristoDissocData,{3.66,1. (10^(-40))}],{100.,1.0 (10^(-24))}],InterpolationOrder->1]][Log[x]]];
σO2LxCat3Body[x_]:=Exp[Evaluate[Interpolation[{Log[#[[1]]],Log[#[[2]]]}&/@ReplacePart[σO2LxCat3BodyData,{1->{0.001,1. (10^(-60))},-1->{100,1. (10^(-54))}}],InterpolationOrder->1]][Log[x]]];
σO2LxCatDissoc[x_]:=Exp[Evaluate[Interpolation[{Log[#[[1]]],Log[#[[2]]]}&/@ReplacePart[σO2LxCatDissocData,1->{3.66,1. (10^(-40))}],InterpolationOrder->1]][Log[x]]];
pO2Christo3BodyInterp=LogLogPlot[(10^46) σO2Christo3Body[x],{x,0.01,100},Frame->True,PlotStyle->{{Thickness[0.008],colorChristo}},PlotRange->Full];
pO2ChristoDissocInterp=LogLogPlot[(10^22) σO2ChristoDissoc[x],{x,4.4,100},Frame->True,PlotRange->Full,PlotStyle->{{Thickness[0.008],colorChristo}},BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","",""}),AspectRatio->1.2];
pO2LxCat3BodyInterp=LogLogPlot[(10^46) σO2LxCat3Body[x],{x,0.01,100},Frame->True,PlotStyle->{{Thickness[0.008],colorLxCat}},PlotRange->Full];
pO2LxCatDissocInterp=LogLogPlot[(10^22) σO2LxCatDissoc[x],{x,4.4,100},Frame->True,PlotRange->Full,PlotStyle->{{Thickness[0.008],colorLxCat}},BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","",""}),AspectRatio->1.2];
Print[GraphicsRow[{Show[pO2LxCat3Body,pO2LxCat3BodyInterp,pO2Christo3BodyInterp,pO2Christo3Body/.Dashing[_]->dashingChristo,PlotRange->{Log[{0.01,100}],Log[{5,5 (10^(-5))}]}],Show[pO2LxCatDissoc,pO2LxCatDissocInterp,pO2ChristoDissocInterp,pO2ChristoDissoc/.Dashing[_]->dashingChristo,PlotRange->All]},ImageSize->900]];

Compute cross section for  radiative plus dissociative plus 3 body processes

TLAr=87.4;
density=(10^6)×AvogadroNumber×ρLiqMole[TLAr] (* atomic density of LAr in (m^(-3)) *);
scale3BodyLxCat=0.2 (10^(-4));
scale3BodyChristo=scale3BodyLxCat;
scaleRadiative=0.00011;

σO2ChristoTotal[x_]:=scale3BodyChristo×density×σO2Christo3Body[x]+σO2ChristoDissoc[x]+scaleRadiative×σMaxRadiative[x];
σO2LxCatTotal[x_]:=scale3BodyLxCat×density×σO2LxCat3Body[x]+σO2LxCatDissoc[x]+scaleRadiative×σMaxRadiative[x];
crossSectionData=Table[{x,σO2LxCatTotal[x]},{x,0.001,18,0.002}];
Off[InterpolatingFunction::dmval];
pσO2Tot=LogLogPlot[{σO2ChristoTotal[x],σO2LxCatTotal[x],σMaxRadiative[x]},{x,0.001,18},Frame->True,PlotStyle->{{Thickness[thk],Dashing[{0.02,0.018}],colorChristo},{Thickness[thk],Dashing[{0,0}],colorLxCat},{Thickness[0.008],Dashing[{0.03,0.02}],Black}},PlotRange->{All,{1 (10^(-24)),5 (10^(-19))}},GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electron Energy, ℰ (eV)","σA ((m^2))","",""}),AspectRatio->1.2];
On[InterpolatingFunction::dmval];
Print[Show[pσO2Tot,ImageSize->500]];

Compute and display the attachment rate for radiative plus dissociative plus 3 body processes

dataRate={#[[1]],#[[2]]}&/@Select[resultsBakale,#[[1]]==="O2"&][[1,2]];
pO2DataRate=ListLogLogPlot[dataRate,Joined->False,PlotStyle->{PointSize[0.018],Black}];

Emin=10.;
Emax=(10^5);
Off[NIntegrate::ncvb];
kAttachO2Tot=Table[{(10^(x+3)), kFunction[(10^x),σO2ChristoTotal,{0.0001,10}]},{x,Table[x,{x,Log[10,Emin/1000],Log[10,Emax/1000],1/20}]}];
kAO2TotChristo=Interpolation[kAttachO2Tot];
kAttachO2Tot=Table[{(10^(x+3)), kFunction[(10^x),σO2LxCatTotal,{0.0001,10}]},{x,Table[x,{x,Log[10,Emin/1000],Log[10,Emax/1000],1/6}]}];
kAO2TotLxCat=Interpolation[kAttachO2Tot];
On[NIntegrate::ncvb];
pAttachO2Tot=LogLogPlot[{kAO2TotChristo[x],kAO2TotLxCat[x]},{x,Emin,Emax},Frame->True,PlotStyle->{{Thickness[thk],Dashing[{0.02,0.018}],colorChristo},{Thickness[thk],Dashing[{0,0}],colorLxCat},{Thickness[0.008],Dashing[{0.03,0.02}],Black}},PlotRange->Full,GridLines->None,BaseStyle->{"Helvetica",12},FrameLabel->(StyleForm[#,FontFamily->"Helvetica",FontSize->14,FontWeight->"Plain"]&/@{"Electric Field, ℰ (V/cm)","KA ((s^(-1)) (m^3))","Electron Attachment Rate",""}),AspectRatio->1.2];
Print[GraphicsRow[{pσO2Tot,Show[pAttachO2Tot,pO2DataRate,PlotRange->All]},ImageSize->1000]];
Print[Show[pAttachO2Tot,pO2DataRate,PlotRange->All,ImageSize->500]];

Save  the total cross section and attachment rate

outFileName="Attachment Rate Calc O2.dat";
strm=OpenWrite[pathPrefix<>path<>outFileName];
Write[strm,crossSectionData];
Write[strm,kAO2TotChristo];
Close[strm];
FileNames[pathPrefix<>path<>"Attachment Rate Calc*.dat"]

Add curves for computed attachment rates to plot of data

Generate a new set of labels to avoid added curves and modify color assignments (optional)

colorMap[set_]:=Which[set==="O2Biller",Red,set==="N2Biller",Orange,set==="O2Bettini",Darker[Yellow],set==="CO2Bettini",Darker[Green],set==="O2Bakale",Blue,set==="N2OBakale",Lighter[Magenta],set==="SF6Bakale",Brown,set==="O2Hofmann",Darker[Magenta],set==="O2Hofmann",Darker[Orange],set==="O2Adams",Cyan,True,Black];
boxsize={dx,dy}={0.9,0.50};
locSF6={Log[z=0.3],Log[kASF6[z]×uc/3]};
locN2O={Log[z=2.1],Log[kAN2O[z]×uc×5]};
locH2O2={Log[0.028],Log[kAH2OCarls[[1,2,1]]×uc×8]};
locWater={Log[0.028],Log[kAH2OCarls[[1,2,1]]×uc×0.4]};
locO2={Log[z=12],Log[kAO2[z]×uc×9.5]};
locCO2={Log[z=0.4],Log[kACO2[z]×uc/3]};
locN2={Log[z=1.0],Log[kAN2[z]×uc×2.4]};
{colorSF6,colorN2O,colorH2O,colorO2,colorCO2,colorN2}=Lighter[#,0.8]&/@{colorMap["SF6Bakale"],colorMap["N2OBakale"],GrayLevel[0.5],colorMap["O2Bakale"],colorMap["CO2Bettini"],colorMap["N2Biller"]};
useOpacity=1;
{useRange,thk,aspect}={{All,{4×(10^7)×uc,4×(10^14)×uc}},0.008,1.2};
{useRange,thk,aspect}={{{0.05,5.0},{4×(10^7)×uc,5×(10^14)×uc}},0.008,1.1};
{useRange,thk,aspect}={{{0.05,5.0},{4×(10^7)×uc,5×(10^16)×uc}},0.008,1.5};
cornerRadius=0.015;
labelsRateCalc=Graphics[{EdgeForm[{Thick,Black}],
FaceForm[{colorSF6,Opacity[useOpacity]}],Rectangle[locSF6-boxsize,locSF6+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[SF, 6])",locSF6,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorH2O,Opacity[useOpacity]}],Rectangle[locH2O2-boxsize,locH2O2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["((Subscript[H, 2])O)_2",locH2O2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorH2O,Opacity[useOpacity]}],Rectangle[locH2O-boxsize,locH2O+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["Water",locWater,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorN2O,Opacity[useOpacity]}],Rectangle[locN2O-boxsize,locN2O+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[N, 2])O",locN2O,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorO2,Opacity[useOpacity]}],Rectangle[locO2-boxsize,locO2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[O, 2])",locO2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorCO2,Opacity[useOpacity]}],Rectangle[locCO2-boxsize,locCO2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[CO, 2])",locCO2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorN2,Opacity[useOpacity]}],Rectangle[locN2-boxsize,locN2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[N, 2])",locN2,BaseStyle->{Large,FontFamily->"Times",Italic}]}];
arcH2O=Graphics[{Thickness[0.003],Black,Arrowheads[{-0.03,0.03}],Arrow[BezierCurve[{Log[{1,2.2×(10^10)}],Log[{2.5,6×(10^10)}],Log[{2,2.5×(10^11)}]}]]}];
boxsize={1.5,0.4};
labelsHxx=Graphics[{EdgeForm[{Thick,Black}],
FaceForm[{colorH2O,Opacity[useOpacity]}],Rectangle[locHxx500-boxsize,locHxx500+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[H, 2])O: (Subscript[H, xx])=500",locHxx500,BaseStyle->{FontSize->18,FontFamily->"Times",Italic}],
FaceForm[{colorH2O,Opacity[useOpacity]}],Rectangle[locHxx1-{0.8,1} boxsize,locHxx1+{0.8,1} boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[H, 2])O: (Subscript[H, xx])=1",locHxx1,BaseStyle->{FontSize->18,FontFamily->"Times",Italic}]}];

Create a graph for attachment rate, showing the data, the best fit, and the rate calculated from measured cross sections

thk=0.005;
Off[InterpolatingFunction::dmval];
pSF6Calc=LogLogPlot[{kSF6LxCat[1000 x],kSF6Christo[1000x]},{x,0.005,50.},PlotStyle->{{Thickness[thk],Dashing[{0,0}],colorMap["SF6Bakale"]},{Thickness[thk],Dashing[{0.02,0.018}],colorMap["SF6Bakale"]}},PlotRange->All];
β=0.7;
pH2OCalc=LogLogPlot[{kTAttachH2OEA[1000 x],0.8 kTAttachH2OLo[1000 x],1.12 kTAttachH2OHi[1000 x]},{x,0.005,20.0},PlotStyle->{{Thickness[thk],colorMap["H2OAndrews"]},{Thickness[thk],Dashing[{0.01,0.02}],colorMap["H2OAndrews"]},{Thickness[thk],Dashing[{0.01,0.02}],colorMap["H2OAndrews"]}},Filling->{2->{{3},GrayLevel[0.2,0.05]}},PlotRange->All];
pO2Calc=LogLogPlot[{kAO2TotLxCat[1000 x],kAO2TotChristo[1000 x]},{x,0.005,50.0},PlotStyle->{{Thickness[thk],Dashing[{}],colorMap["O2Bakale"]},{Thickness[thk],Dashing[{0.02,0.018}],colorMap["O2Bakale"]}},PlotRange->Full];
pN2OCalc=ListLogLogPlot[{#[[1]]/1000,#[[2]]}&/@kAttachN2O,Joined->True,PlotStyle->{Thickness[thk],colorMap["N2OBakale"]},PlotRange->All];
On[InterpolatingFunction::dmval];

dk=0.88;
ptSize={PointSize[_]->PointSize[0.016]};
pH2OCalc=LogLogPlot[{1.7 kTAttachH2OEA[1000 x],0.87 kTAttachH2OLo[1000 x]},{x,0.005,20.0},PlotStyle->{{Thickness[thk],Dashing[{0.01,0.02}],colorMap["H2OAndrews"]},{Thickness[thk],colorMap["H2OAndrews"]},{Thickness[thk],Dashing[{0.01,0.02}],colorMap["H2OAndrews"]}},Filling->{1->{{2},GrayLevel[0.2,0.05]}},PlotRange->All];
Print[Show[pSF6Bakale/.ptSize,pSF6Calc,pO2Calc,pH2OCalc,pN2OCalc,pSF6FitBakale/.Black->GrayLevel[dk],pN2OFitBakale/.Black->GrayLevel[dk],pO2Fit/.Black->GrayLevel[dk],pCO2Fit/.Black->GrayLevel[dk],pN2Fit/.Black->GrayLevel[dk],pSF6Bakale/.ptSize,pN2OBakale/.ptSize,pO2Bakale/.ptSize,pO2Biller/.ptSize,pO2Bettini/.ptSize,pO2Hofmann/.ptSize,pO2Adams/.ptSize,pCO2Bettini/.ptSize,pH2OAndrews/.ptSize/.Black->GrayLevel[0.55],pH2OCarls/.ptSize,pN2Biller/.ptSize,labelsRateCalc,Frame->True,GridLines->{None,None},PlotRange->{All,Log[{5 (10^8),5 (10^16)}]},FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->25,FontWeight->"Plain"]&)/@{"Electric Field (kV/cm)",yLabel,"Electron Attachment in LAr",""},AspectRatio->aspect,ImageSize->550,BaseStyle->{22,FontFamily->"Helvetica"}]];

pH2OCalc=LogLogPlot[{1.7 kTAttachH2OEA[1000 x],kTAttachH2OLo[1000 x]},{x,0.005,20.0},PlotStyle->{{Thickness[thk],Dashing[{0.01,0.02}],colorMap["H2OAndrews"]},{Thickness[thk],colorMap["H2OAndrews"]},{Thickness[thk],Dashing[{0.01,0.02}],colorMap["H2OAndrews"]}},Filling->{1->{{2},GrayLevel[0.2,0.05]}},PlotRange->All];
Print[Show[pSF6Bakale/.ptSize,pSF6Calc,pO2Calc,pH2OCalc,pN2OCalc,pSF6FitBakale/.Black->GrayLevel[dk],pN2OFitBakale/.Black->GrayLevel[dk],pO2Fit/.Black->GrayLevel[dk],pCO2Fit/.Black->GrayLevel[dk],pN2Fit/.Black->GrayLevel[dk],pSF6Bakale/.ptSize,pN2OBakale/.ptSize,pO2Bakale/.ptSize,pO2Biller/.ptSize,pO2Bettini/.ptSize,pO2Hofmann/.ptSize,pO2Adams/.ptSize,pCO2Bettini/.ptSize,pH2OAndrews/.ptSize,pH2OCarls/.ptSize,pN2Biller/.ptSize,labelsRateCalc,Frame->True,GridLines->{None,None},PlotRange->{All,Log[{5 (10^8),5 (10^16)}]},FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->25,FontWeight->"Plain"]&)/@{"Electric Field (kV/cm)",yLabel,"Electron Attachment in LAr",""},AspectRatio->aspect,ImageSize->550,BaseStyle->{22,FontFamily->"Helvetica"}]];

Print[Show[pSF6Bakale/.ptSize,pSF6Calc,pO2Calc,pH2OCalc,pN2OCalc,pSF6FitBakale/.Black->GrayLevel[dk],pN2OFitBakale/.Black->GrayLevel[dk],pO2Fit/.Black->GrayLevel[dk],pCO2Fit/.Black->GrayLevel[dk],pN2Fit/.Black->GrayLevel[dk],pSF6Bakale/.ptSize,pN2OBakale/.ptSize,pO2Bakale/.ptSize,pO2Biller/.ptSize,pO2Bettini/.ptSize,pO2Hofmann/.ptSize,pO2Adams/.ptSize,pCO2Bettini/.ptSize,pN2Biller/.ptSize,labelsRateCalc,Frame->True,GridLines->{None,None},PlotRange->{All,Log[{5 (10^8),5 (10^16)}]},FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->25,FontWeight->"Plain"]&)/@{"Electric Field (kV/cm)",yLabel,"Electron Attachment in LAr",""},AspectRatio->aspect,ImageSize->550,BaseStyle->{22,FontFamily->"Helvetica"}]];

kTAttachH2OEA[1000 x]/.x->0.005
kTAttachH2OHi[1000 x]/kTAttachH2OLo[1000 x]/.x->0.005
kTAttachH2OHi[1000 kAH2OAndrewsErr[[1,1]]]/kTAttachH2OLo[1000 kAH2OCarlsErr[[1,1]]]

xxx

locCO2={Log[z=0.07],Log[kACO2[z]×uc/2]};
locH2O={Log[2],Log[kAH2OCarls[[1,2,1]]×uc×0.9]};
labelsRateCalc=Graphics[{EdgeForm[{Thick,Black}],
FaceForm[{colorSF6,Opacity[useOpacity]}],Rectangle[locSF6-boxsize,locSF6+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[SF, 6])",locSF6,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorH2O,Opacity[useOpacity]}],Rectangle[locH2O-boxsize,locH2O+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[H, 2])O",locH2O,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorN2O,Opacity[useOpacity]}],Rectangle[locN2O-boxsize,locN2O+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[N, 2])O",locN2O,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorO2,Opacity[useOpacity]}],Rectangle[locO2-boxsize,locO2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[O, 2])",locO2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorCO2,Opacity[useOpacity]}],Rectangle[locCO2-boxsize,locCO2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[CO, 2])",locCO2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorN2,Opacity[useOpacity]}],Rectangle[locN2-boxsize,locN2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[N, 2])",locN2,BaseStyle->{Large,FontFamily->"Times",Italic}]}];
pH2OCalc=LogLogPlot[kTAttachH2OEA[1000 x],{x,0.005,20.0},PlotStyle->{{Thickness[thk],colorMap["H2OAndrews"]},{Thickness[thk],Dashing[{0.01,0.02}],colorMap["H2OAndrews"]},{Thickness[thk],Dashing[{0.01,0.02}],colorMap["H2OAndrews"]}},PlotRange->All];
Print[Show[pSF6Bakale/.ptSize,pSF6Calc,pO2Calc,pH2OCalc,pN2OCalc,pSF6FitBakale/.Black->GrayLevel[dk],pN2OFitBakale/.Black->GrayLevel[dk],pO2Fit/.Black->GrayLevel[dk],pCO2Fit/.Black->GrayLevel[dk],pN2Fit/.Black->GrayLevel[dk],pSF6Bakale/.ptSize,pN2OBakale/.ptSize,pO2Bakale/.ptSize,pO2Biller/.ptSize,pO2Bettini/.ptSize,pO2Hofmann/.ptSize,pO2Adams/.ptSize,pCO2Bettini/.ptSize,pN2Biller/.ptSize,labelsRateCalc,Frame->True,GridLines->{None,None},PlotRange->{All,Log[{5 (10^8),5 (10^16)}]},FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->25,FontWeight->"Plain"]&)/@{"Electric Field (kV/cm)",yLabel,"Electron Attachment in LAr",""},AspectRatio->aspect,ImageSize->550,BaseStyle->{22,FontFamily->"Helvetica"}]];

labelsRateCalc=Graphics[{EdgeForm[{Thick,Black}],
FaceForm[{colorSF6,Opacity[useOpacity]}],Rectangle[locSF6-boxsize,locSF6+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[SF, 6])",locSF6,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorN2O,Opacity[useOpacity]}],Rectangle[locN2O-boxsize,locN2O+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[N, 2])O",locN2O,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorO2,Opacity[useOpacity]}],Rectangle[locO2-boxsize,locO2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[O, 2])",locO2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorCO2,Opacity[useOpacity]}],Rectangle[locCO2-boxsize,locCO2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[CO, 2])",locCO2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorN2,Opacity[useOpacity]}],Rectangle[locN2-boxsize,locN2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[N, 2])",locN2,BaseStyle->{Large,FontFamily->"Times",Italic}]}];
Print[Show[pSF6Bakale/.ptSize,pSF6Calc,pO2Calc,pSF6FitBakale/.Black->GrayLevel[dk],pN2OFitBakale/.Black->GrayLevel[dk],pO2Fit/.Black->GrayLevel[dk],pCO2Fit/.Black->GrayLevel[dk],pN2Fit/.Black->GrayLevel[dk],pSF6Bakale/.ptSize,pN2OBakale/.ptSize,pO2Bakale/.ptSize,pO2Biller/.ptSize,pO2Bettini/.ptSize,pO2Hofmann/.ptSize,pO2Adams/.ptSize,pCO2Bettini/.ptSize,pH2OAndrews/.ptSize,pN2Biller/.ptSize,labelsRateCalc,Frame->True,GridLines->{None,None},PlotRange->{All,Log[{5 (10^8),5 (10^16)}]},FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->25,FontWeight->"Plain"]&)/@{"Electric Field (kV/cm)",yLabel,"Electron Attachment in LAr",""},AspectRatio->aspect,ImageSize->550,BaseStyle->{22,FontFamily->"Helvetica"}]];

Compare best fit rates to those in the LArProperties.m library

They should be identical - they were on 03/08/2018, when LArProperties was updated with the attachment rates vs. E field determined in this notebook

?RateAttachLAr

uc=1;
range=All;
pSF6LArProp=plotLines[uc×RateAttachLAr[x,"SF6"],{x,xMin,100},Frame->True,FrameTicks->{{yTicks,Automatic},{Automatic,Automatic}},PlotRange->range,PlotStyle->{Thickness[0.005],Dashing[{0.02,0.018}],Black}];
pN2OLArProp=plotLines[uc×RateAttachLAr[x,"N2O"],{x,xMin,100},Frame->True,PlotRange->range,PlotStyle->{Thickness[0.005],Dashing[{0.02,0.018}],Black}];
pO2LArProp=plotLines[uc×RateAttachLAr[x,"O2"],{x,xMin,50},Frame->True,PlotRange->range,PlotStyle->{Thickness[0.005],Dashing[{0.02,0.018}],Black}];
pN2LArProp=plotLines[uc×RateAttachLAr[x,"N2"],{x,xMin,5},Frame->True,PlotRange->range,PlotStyle->{Thickness[0.005],Dashing[{0.02,0.018}],Black}];
pCO2LArProp=plotLines[uc×RateAttachLAr[x,"CO2"],{x,xMin,1.5},Frame->True,PlotRange->range,PlotStyle->{Thickness[0.005],Dashing[{0.02,0.018}],Black}];
pH2OLArProp=LogLogPlot[uc×RateAttachLAr[x,"H2O"],{x,xMin,10.0},PlotStyle->{Thickness[0.005],Dashing[{0.02,0.018}],Black},PlotRange->range];
Print[Show[pSF6Bakale/.ptSize,pSF6Calc,pO2Calc,pH2OCalc,pSF6FitBakale/.Black->GrayLevel[dk],pN2OFitBakale/.Black->GrayLevel[dk],pO2Fit/.Black->GrayLevel[dk],pCO2Fit/.Black->GrayLevel[dk],pN2Fit/.Black->GrayLevel[dk],pSF6Bakale/.ptSize,pN2OBakale/.ptSize,pO2Bakale/.ptSize,pO2Biller/.ptSize,pO2Bettini/.ptSize,pO2Hofmann/.ptSize,pO2Adams/.ptSize,pCO2Bettini/.ptSize,pH2OAndrews/.ptSize,pH2OCarls/.ptSize,pN2Biller/.ptSize,pSF6LArProp,pN2OLArProp,pO2LArProp,pN2LArProp,pCO2LArProp,pH2OLArProp,labelsRateCalc,Frame->True,GridLines->{None,None},PlotRange->{All,Log[{5 (10^8),5 (10^16)}]},FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->25,FontWeight->"Plain"]&)/@{"Electric Field (kV/cm)",yLabel,"",""},AspectRatio->aspect,ImageSize->550,BaseStyle->{22,FontFamily->"Helvetica"}]];

Generate a graph of attachment coefficient vs. field

?DriftVelocityElectronLAr

vD[ℰ_]:=(10^3) DriftVelocityElectronLAr[ℰ,87.4];
yLabel="Attachment Coefficient ((m^(-1)))";
yTicksMajor=Table[{v=1. (10^(Floor[n+Log[10,uc]])),ScientificForm[v,NumberFormat->((10^(#3))&)],{0.011,0}},{n,5,18,1.}];
yTicksMinor=Flatten[Table[{v=m×(10^(Floor[n+Log[10,uc]])),"",{0.006,0}},{n,5,18,1},{m,0.2,0.9,0.1}],1];
yTicks=Join[yTicksMajor,yTicksMinor];
{thk,aspect}={0.008,1.5};
xRange={xMin,xMax}={0.008,120};
range={All,{5 (10^5),5 (10^14)}};
pSF6FitBakaleCoef=plotLines[kASF6[x]/vD[x],{x,xMin,100},Frame->True,FrameTicks->{{yTicks,Automatic},{Automatic,Automatic}},PlotRange->range,PlotStyle->{Thickness[0.007],Black}];
pN2OFitBakaleCoef=plotLines[kAN2O[x]/vD[x],{x,xMin,100},Frame->True,PlotRange->range,PlotStyle->{Thickness[thk],Black}];
pO2FitCoef=plotLines[kAO2[x]/vD[x],{x,xMin,50},Frame->True,PlotRange->range,PlotStyle->{Thickness[thk],Black}];
pN2FitCoef=plotLines[kAN2[x]/vD[x],{x,xMin,5},Frame->True,PlotRange->range,PlotStyle->{Thickness[thk],Black}];
pCO2FitCoef=plotLines[kACO2[x]/vD[x],{x,xMin,1.5},Frame->True,PlotRange->range,PlotStyle->{Thickness[thk],Black}];
pH2OCalcCoef=LogLogPlot[kTAttachH2O[1000 x]/vD[x],{x,xMin,10.0},PlotStyle->{Thickness[thk],Black},PlotRange->range];

boxsize={dx,dy}={0.5,0.52};
locSF6={Log[z=0.3],Log[kASF6[z]/vD[z]×uc/3]};
locN2O={Log[z=4],Log[kAN2O[z]/vD[z]×uc×2.5]};
locH2O={Log[0.8],Log[kAH2OAndrewsCarls[[1,2,1]]/vD[z]×uc×0.42]};
locO2={Log[z=2],Log[kAO2[z]/vD[z]×uc×3.5]};
locCO2={Log[z=0.03],Log[kACO2[z]/vD[z]×uc/3.5]};
locN2={Log[z=2],Log[kAN2[z]/vD[z]×uc×3]};
{colorSF6,colorN2O,colorH2O,colorO2,colorCO2,colorN2}={colorMap["SF6Bakale"],colorMap["N2OBakale"],GrayLevel[0.5],Cyan,colorMap["CO2Bettini"],colorMap["N2Biller"]};
useOpacity=0.2;
cornerRadius=0.015;
labelsCoef=Graphics[{EdgeForm[{Thick,Black}],
FaceForm[{colorSF6,Opacity[useOpacity]}],Rectangle[locSF6-boxsize,locSF6+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[SF, 6])",locSF6,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorH2O,Opacity[useOpacity]}],Rectangle[locH2O-boxsize,locH2O+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[H, 2])O",locH2O,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorN2O,Opacity[useOpacity]}],Rectangle[locN2O-boxsize,locN2O+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[N, 2])O",locN2O,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorO2,Opacity[useOpacity]}],Rectangle[locO2-boxsize,locO2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[O, 2])",locO2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorCO2,Opacity[useOpacity]}],Rectangle[locCO2-boxsize,locCO2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[CO, 2])",locCO2,BaseStyle->{Large,FontFamily->"Times",Italic}],
FaceForm[{colorN2,Opacity[useOpacity]}],Rectangle[locN2-boxsize,locN2+boxsize,RoundingRadius->Scaled[cornerRadius{1,1/aspect}]],Text["(Subscript[N, 2])",locN2,BaseStyle->{Large,FontFamily->"Times",Italic}]}];
Print[Show[pSF6FitBakaleCoef,pN2OFitBakaleCoef,pO2FitCoef,pCO2FitCoef,pN2FitCoef,pH2OCalcCoef,labelsCoef,Frame->True,GridLines->{None,None},PlotRange->{range[[1]],Log[range[[2]]]},FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->18,FontWeight->"Plain"]&)/@{"Electric Field (kV/cm)",yLabel,"Electron Attachment Coefficients in LAr",""},AspectRatio->aspect,ImageSize->550,BaseStyle->{16,FontFamily->"Helvetica"}]];

Create a Table of Mean Drift Times and Distances

fREF=0.5; (* reference field in kV/cm *)
cREF=1.0; (* reference impurity concentration in ppb *)
tREF=tNBPAr; (* reference temperature in K *)
unitConvert[T_]:=MolarityInAr[T,(10^9)];
attachmentTable={};
species={"O2","H2O","N2","CO2","N2O","SF6"};
Off[NumberForm::sigz];
For[n=1,n≤Length[species],n++,
s=species[[n]];
Print["For "<>s<>" the mean free path at ",fREF," kV/cm, ",tREF," K, and ",cREF," ppb is ",NumberForm[mp=1000×DriftVelocityElectronLAr[fREF,tREF]/(RateAttachLAr[fREF,s]×MolarityInAr[tREF,cREF]),2]," meter and the mean lifetime is " NumberForm[mt=1000/(RateAttachLAr[fREF,s]×MolarityInAr[tREF,cREF]),2]," ms"];
AppendTo[attachmentTable,{s,NumberForm[(10^(-12))×RateAttachLAr[fREF,s]×unitConvert[tREF],2],NumberForm[mt,2],NumberForm[mp,2]}];
];
size=24;
Print[Style["Electron attachment to impurities in LAr at 500V/cm and 87.3K",FontFamily->"Helvetica",FontSize->size]];
Print[Style["(Subscript[k, ATTACH]) is the electron attachment rate\nMLT is the mean lifetime\nMFP ia the mean drift distance\nC is the impurity concentration",FontFamily->"Helvetica",FontSize->size]];

Off[NumberForm::reqsigz];Print[Style[TableForm[attachmentTable,TableHeadings->{None,{"Species","(Subscript[k, ATTACH])\n(10^12)(s^(-1))","MLT×C\nms×ppb","MFP×C\nm×ppb"}}],FontFamily->"Helvetica",FontSize->size]];
On[NumberForm::reqsigz];
Print["For (Subscript[H, 2])O the mean lifetime at ",fREF," kV/cm, ",tREF," K, and ",cSat=400," ppb (the estimated saturation limit) is ",NumberForm[1000/(RateAttachLAr[fREF,"H2O"]×MolarityInAr[tREF,cSat]),2]," ms: this is the estimated minimum lifetime that can be observed due to water alone."];On[NumberForm::sigz];

Test the “CombineErrors” function

Clear[n,τ,kA,cor];
?CombineErrors
kA[n_,τ_]:=(((n τ))^(-1));
cor=Table[Which[i==j,1,i>j,(Subscript[ρ, j,i]),True,(Subscript[ρ, i,j])],{i,1,Length[v]},{j,1,Length[v]}];
cor//MatrixForm
CombineErrors[kA[n,τ],{n,τ},cor]
%/.(Subscript[ρ, 1,2])->-1
%%/.(Subscript[ρ, 1,2])->0

cor=IdentityMatrix[Length[v]];
cor//MatrixForm
CombineErrors[kA[n,τ],{n,τ},cor]

Clear[x,y,a,b,f,g,h];
f[x_,y_]:=Cos[x ]Exp[y]/(x+y);
g=Cos[#1 ]Exp[#2]/(#1+#2)&;
h=Cos[x ]Exp[y]/(x+y);

?CombineErrors
Simplify[CombineErrors[f[x,y]]]
Simplify[CombineErrors[f[x,y],{x,y}]]
Simplify[CombineErrors[g]]
Simplify[CombineErrors[g,{x,y}]]
pure=Simplify[CombineErrors[g,{x1,x2}]]
Simplify[CombineErrors[h]]
expr=Simplify[CombineErrors[h,{x,y}]]
expr==Simplify[pure/.{x1->x,x2->y,δx1->δx,δx2->δy}]

Table of electron affinities and dissociation energies

For a table of electron affinities of atomic and molecular species see
Jonathan C.Rienstra - Kiracofe, Gregory S.Tschumper, and Henry F.Schaefer III, Atomic and Molecular Electron Affinities : Photoelectron Experiments and Theoretical Computations, Chem. Rev. 102 (2002) 231-282. DOI: 10.1021/cr990044u

These paragraphs are quoted from page 235 of that paper.

While every atom and molecule has an IP, they need not have an EA.There is a large class of anions which are not bound species.  Many common molecules such as N2, H2O, and C6H6 do not form stable anions.  In the gas phase (Subscript[H, 2])(SuperMinus[O]) decays to (Subscript[H, 2])O plus a free electron and (Subscript[C, 6])(SuperMinus[(Subscript[H, 6])]) is not stable with respect to benzene and (SuperMinus[e]).  The carbon dioxide anion is metastable
for roughly 100 μs before it disintegrates : CO2 -> CO2 + (SuperMinus[e]).  Generally, radicals, such as OH, (Subscript[CH, 3]), or (Subscript[CH, 2])=CH, bind an electron into their "half-filled molecular orbital" and form stable anions.  In contrast, many closed - shell species, such as N(Subscript[2, 2]), (Subscript[H, 2])O, or (Subscript[C, 6])(Subscript[H, 6]), have filled valences and do not bind an electron.

In the gas phase “temporary” negative ions, such as (SuperMinus[(Subscript[N, 2])]), (Subscript[H, 2])(SuperMinus[O]), and (Subscript[C, 6])(SuperMinus[(Subscript[H, 6])]), can be studied by resonant electron scattering((.)^(48,49))  Several of these temporary negative ions are of great practical importance; an electrical discharge generates the (SuperMinus[(Subscript[N, 2])]) ion, which drives (Subscript[CO, 2]) lasers.  The scattering resonances are “negative” electron affinities because the potential curves of the ion and neutral in Figure 1 are inverted.  The anion curve is above that of the neutral species.  Useful reviews of the spectroscopy of temporary negative ions have been written((.)^(50,51)) Jordan and Burrow’s review has a complete report of electron transmission spectroscopic resonances for all molecules through 1986.  It is possible to obtain theoretical predictions of negative electron affinities.  At a first approximation, a negative VAE often corresponds to the resonant electron scattering energy.

Although they have no formal, positive electron affinity, water and benzene will bind an electron in (clusters^(52-54)) or in solution((.)^55)  The naphthalene anion is stabilized by a single water molecule((.)^56)   However, for simplicity in this review we focus on the EA of single molecules.  Other molecules without an EA may be stabilized by other means; for example,  (Subscript[C, 6])(SuperMinus[(Subscript[H, 6])]) has a beautiful EPR spectrum in cryogenic matrices((.)^57) In condensed phases, solvent molecules help stabilize binding of the electron to the host molecule by a wonderful set of dipole and multipole couplings((.)^58) Such stabilisations are also not discussed here.

For dissociation energies of diatomic molecules, see G.R. Somayajulu, Dissociation Energies of Diatomic Molecules, J. Chem. Phys. 33 (1960) 1541. https://doi.org/10.1063/1.1731440

For the reaction (SuperMinus[e]) + AB -> A + (SuperMinus[B])
(Subscript[E, Pair]) = (Subscript[E, Dissociation]) + (Subscript[E, Electron Affinity B])

For the reaction (SuperMinus[e]) + AB -> (SuperPlus[A]) + (SuperMinus[B]) + (SuperMinus[e])
(Subscript[E, Ion Pair]) = (Subscript[E, Dissociation]) +  (Subscript[E, Ionization A]) + (Subscript[E, Electron Affinity B])

kJPerMoleToeV=1/96.485;
electronAffinity={
{"H",0.7542,"n/a",1},
{"N",-0.07,"n/a",1},
{"O",1.461,"n/a",1},
{"F",3.401,"n/a",1},
{"Cl",3.613,"n/a",1},
{"(Subscript[H, 2])",-2.5,432.0,1},
{"(Subscript[N, 2])",-1.6,941.7,1},
{"(Subscript[O, 2])",0.451,493.6,2},
{"(Subscript[F, 2])",3.01,154.8,2},
{"(Subscript[Cl, 2])",2.38,239.7,1},
{"NH",0.22,338.9,1},
{"OH",1.828,423.8,1},
{"NO",0.026,732.64,1},
{"CO",-1.8,1071.9,1},
{"SO",1.125,517.1,1},
{"(Subscript[NH, 2])",0,408.4,1},
{"(Subscript[H, 2])O",0,493.7," "},
{"((Subscript[H, 2])O)_2",0.03,493.7," "},
{"(Subscript[N, 2])O",0.22,-82.05+493.6/2,2},
{"(Subscript[NO, 2])",2.273," ",1},
{"(Subscript[CO, 2])",-0.6,525.9,1},
{"(Subscript[NH, 3])",0,450.1,2},
{"(Subscript[O, 3])",2.103," ",2},
{"(Subscript[SO, 2])",1.107,547.3,2},
{"(Subscript[SF, 3])",3.07," ",1},
{"(Subscript[SF, 4])",2.35," ",1},
{"(Subscript[SF, 5])",3.66," ",1},
{"(Subscript[SF, 6])",1.07,326,1}
};
Print[Style[TableForm[{#[[1]],#[[2]],If[NumericQ[#[[3]]],NumberForm[kJPerMoleToeV #[[3]],{3,2}],#[[3]]],#[[4]]}&/@electronAffinity,TableHeadings->{None, {"Soecies","(Subscript[e, A])(eV)","(Subscript[e, Diss, Mol])(eV)","Ref"}}],FontFamily->"Hel;vetica",FontSize->14]];
Print[Style[TableForm[SortBy[{#[[1]],#[[2]],If[NumericQ[#[[3]]],NumberForm[kJPerMoleToeV #[[3]],{3,2}],#[[3]]]}&/@electronAffinity,-#[[2]]&],TableHeadings->{None, {"Species","(Subscript[ΔE, A])(eV)","(Subscript[ΔE, Diss, Mol])(eV)"}}],FontFamily->"Hel;vetica",FontSize->14]];

Some thresholds for dissociative attachment reactions (eV)

(Subscript[SF, 6]) -> F + (SuperMinus[(Subscript[SF, 5])]) threshold

3.38-3.66

(Subscript[O, 2]) -> O + (SuperMinus[O]) threshold

5.12-1.46

(Subscript[N, 2])O -> (Subscript[N, 2])+ (SuperMinus[O]) threshold

(-82.05+493.6/2) kJPerMoleToeV

1.71-1.46

(Subscript[H, 2])O -> (SuperMinus[H]) + OH threshold

5.12-0.754

(Subscript[H, 2])O-> H + (SuperMinus[OH]) threshold

5.12-1.893

(Subscript[H, 2])O-> (Subscript[H, 2]) + (SuperMinus[O]) threshold

5.12+4.39-4.48-1.46

(Subscript[CO, 2])-> CO + (SuperMinus[O]) threshold

5.45-1.46

(Subscript[CO, 2])-> C + (SuperMinus[(Subscript[O, 2])]) threshold

5.45+11.10-0.448

https : // quantchem.kuleuven.be/cmms/Articles/2003/lowdin - may.pdf

attachRateList={#,RateAttachLAr[0.001,#]/RateAttachLAr[0.001,"SF6"]}&/@{"SF6","O2","N2O","H2O","CO2","N2"};
EAlist=Select[SortBy[electronAffinity,-#[[2]]&],MemberQ[{"(Subscript[SF, 6])","(Subscript[O, 2])","(Subscript[N, 2])O","((Subscript[H, 2])O)_2","(Subscript[CO, 2])","(Subscript[N, 2])"},#[[1]]]&][[All,1;;2]];
results=MapThread[{#2[[1]],#1[[2]],#2[[2]]}&,{attachRateList,EAlist}];
Print[Style[TableForm[If[#[[3]]≤0,ReplacePart[#,3->"≤0"],#]&/@results,TableHeadings->{None, {"Species","(Subscript[k, ATT])/(Subscript[k, ATT, SF6])","EA","Ratio"}}],16,FontFamily->"Helvetica"]]

δ=1.07;
γ=10.5;
results=MapThread[{#2[[1]],#1[[2]],#2[[2]],#1[[2]]/ Exp[γ (#2[[2]]-δ)]}&,{attachRateList,EAlist}];
Print[TableForm[results,TableHeadings->{None, {"Species","(Subscript[k, ATTACH])","EA","Ratio"}}]]

kB=8.617333262145×(10^(-5)); (* Boltzmann constant in eV/K *)
Tref=90;
results=MapThread[{#2[[1]],#1[[2]],#2[[2]],#1[[2]]/ Exp[-#2[[2]]/(kB Tref)]}&,{attachRateList,EAlist}];
Print[TableForm[results,TableHeadings->{None, {"Species","(Subscript[k, ATTACH])","EA","Ratio"}}]]

RateAttachLAr[0.0,"SF6"]

yTicksMajor=Table[{v=1. (10^(Floor[n+Log[10,uc]])),ScientificForm[v,NumberFormat->((10^(#3))&)],{0.011,0}},{n,5,18,1.}];
yTicksMinor=Flatten[Table[{v=m×(10^(Floor[n+Log[10,uc]])),"",{0.006,0}},{n,5,18,1},{m,0.2,0.9,0.1}],1];
yTicks=Join[yTicksMajor,yTicksMinor];

attachRateList={#,RateAttachLAr[0,#]}&/@{"SF6","O2","N2O","H2O","CO2","N2"};
EAlist=Select[SortBy[electronAffinity,-#[[2]]&],MemberQ[{"(Subscript[SF, 6])","(Subscript[O, 2])","(Subscript[N, 2])O","((Subscript[H, 2])O)_2","(Subscript[CO, 2])","(Subscript[N, 2])"},#[[1]]]&][[All,1;;2]];
results=MapThread[{#2[[1]],#1[[2]],#2[[2]]}&,{attachRateList,EAlist}];
data=Reverse/@Drop[results,{4}][[All,{2,3}]];
logData={#[[1]],Log[#[[2]]]}&/@data;
line=Interpolation[logData,InterpolationOrder->1];
kAH2OEst=line[0.03];
results=ReplacePart[MapThread[{#2[[1]],#1[[2]],#2[[2]]}&,{attachRateList,EAlist}],{{4,1}->"water",{4,2}->Style[Exp[kAH2OEst],FontColor->Hue[0,0.4,0.9]]}];
Print[Style[TableForm[{#[[1]],NumberForm[#[[2]],{3,2}],NumberForm[#[[3]],2]}&/@results,TableHeadings->{None, {"Species","(Subscript[k, ATT])[0] ((s^(-1)))","EA (eV)","Ratio"}}],16,FontFamily->"Helvetica"]];
markers=Graphics[{Black,Thickness[0.004],Circle[{0.03,kAH2OEst},{0.05,0.01 kAH2OEst}],GrayLevel[0.7],Dashing[{0.025,0.015}],Line[{{0.03,Log[(10^8)]},{0.03,kAH2OEst},{-1.7,kAH2OEst}}]}];
WSFunction[x_,x0_,w_]:=1-(((1+(((x0-x))^2)/(w^2)))^(-1));
myFit=NonlinearModelFit[logData,a WSFunction[x,x0,w]+b,{a,{b,22.5},{x0,0},{w,1}},{x}];
params=myFit["BestFitParameters"]
pFit=LogPlot[Exp[myFit["BestFit"]],{x,-2.0,1.23}];
plot=ListLogPlot[data,Frame->True,Joined->True,Mesh->All,GridLines->{Automatic,yTicksMajor[[5;;12,2,1]]},PlotRange->{{-1.7,1.2},All},FrameTicks->{{yTicks,Automatic},{Automatic,Automatic}},PlotStyle->{Thickness[0.006],PointSize[0.02],Black},FrameLabel->(Style[#1,FontFamily->"Helvetica",FontSize->18,FontWeight->"Plain"]&)/@{"Electron Affinity (eV)","Zero Field Attachment Rate ((s^(-1)))"},AspectRatio->1.2,ImageSize->550,BaseStyle->{16,FontFamily->"Helvetica"}];
Print[Show[plot,markers]];

dataToFit=MapThread[{#2[[2]],Log[#1[[2]]]}&,{attachRateList,EAlist}]
WSFunction[x_,x0_,w_]:=1-(((1+(((x0-x))^2)/(w^2)))^(-1));
Clear[a,b,x0,w];
myFit=NonlinearModelFit[dataToFit,a WSFunction[x,x0,w]+b,{a,{b,22.5},{x0,0},{w,1}},{x}]
params=myFit["BestFitParameters"]
p1=ListPlot[dataToFit,Frame->True];
p2=Plot[a WSFunction[x,x0,w]+b/.params,{x,-1.7,1.2},Frame->True];
Print[Show[p2,p1]];