I have this code to find the best values for $l$, $s$ and $j$:
Clear[j,l,s,norm,maxx,maxy];
data=Import["https://pastebin.com/raw/2DG5Xes6","Table"];
g=3/2+(s(s+1)-l(l+1))/(2j*(j+1));
\[Mu]=9.274*10^-24;k=1.380*10^-23;
y=\[Mu]*g*j*x/k;
maxy=Max[data[[All,2]]];maxx=Max[data[[All,1]]];minx=Min[data[[All,1]]];
conds={Mod[l,1]==0&&Mod[j,1/2]==0,j-s==0||j-(l+s)==0||j-Abs[l-s]==0};
b[x_]=maxy*(((2j+1)/(2j))Coth[(y(2j+1))/(2j)]-(1/(2j))Coth[y/(2j)]);
fit=FindFit[data,{b[x],conds},{l,j,s},x]
$l$ is an integer and $j$ and $s$ are half-integers. One of these conditions must hold:
j-s==0||j-(l+s)==0||j-Abs[l-s]==0
I tried to fit the data using all those conditions but the result was $l=s=j=1$, which is not the best fit. I happen to know the correct parameters for this case $(l=0,s=j=3/2)$ and if I use those as the initial guesses, I do find the correct fit. Is it possible to rewrite the conditions so that Mathematica gives the best fit automatically?