Page 1 of 1

saffron not handling orientation selection correctly

Posted: Wed Jul 05, 2017 3:36 pm
by dgagnon
Saffron does not appear to be handling orientation selection correctly for Mims ENDOR. Attached is a self contained script with axial A tensors for viewing the difference in output from salt and saffron. Running saffron with variable Euler angles does not produce a significant difference either.

Re: saffron not handling orientation selection correctly

Posted: Wed Jul 12, 2017 8:18 am
by Stefan Stoll
Thanks for the minimal example, we are looking into this.

Re: saffron not handling orientation selection correctly

Posted: Wed Jul 12, 2017 10:33 am
by Stefan Stoll
This discrepancy is due to the tau blindspots in Mims ENDOR as simulated by saffron, which are not included in the salt simulation. You can see this by setting tau to a very small value (1 ns or less), which removes all blind spots except the central one. If you set tau to a very large value (10 microseconds say) and you have enough spectral points, you will see that the Mims ENDOR spectrum approaches the salt spectrum. Any remaining small differences are due to the fact that one is a CW simulation and the other is a pulse simulation.

Here is a simple script you can use to explore this:

Code: Select all

clear
B0 = 1215.8; % mT
mw = 34.087; % GHz
tau = 10;

Exp.mwFreq = mw;
Exp.Range = [6.5 9.5]; % MHz
Exp.nPoints = 1000;
Exp.ExciteWidth = 30;
Exp.Field = B0;

Sys.g = [2.008, 2.003, 2.003];
Sys.lw = 0.08;
Sys = nucspinadd(Sys,'2H',[1.2 1.2 0.2],[0 0 0]*pi/180);
Sys.lwEndor = 0.05;

Opt.ProductRule = 1;
Opt.nKnots = 91;

% Mims ENDOR spectrum, saffron
Exp_ = Exp;
Exp_.Sequence = 'MimsENDOR';
Exp_.tau = tau;
[freqs,ysaff] = saffron(Sys,Exp_,Opt);
ysaff = ysaff/max(ysaff);

% CW ENDOR spectrum, salt
[freqs,ysalt] = salt(Sys,Exp_,Opt);
ysalt = ysalt/max(ysalt);

% Frequency-domain EPR spectrum
FSExp.mwRange = [33.9 34.3];
FSExp.Field = B0;
FSExp.Harmonic = 0;
FSOpt.Output = 'summed';
[xfs,yfs] = pepper(Sys,FSExp,FSOpt);
yfs = yfs/max(yfs);

% plotting
clf
subplot(2,1,2)
plot(freqs,ysalt,'color','b')
hold on
plot(freqs,ysaff,'color','r')
line([1 1]*larmorfrq('2H',B0), ylim);
legend('salt','saffron');
legend boxoff
xlabel('frequency (MHz)');

subplot(2,1,1);
plot(xfs,yfs)
line([1 1]*Exp.mwFreq,ylim,'Color','k');
xlabel('frequency (GHz)');