# onepowderMAS-fit-rf-qcc.in # weak RF amplitude and qcc fitting from spin-3/2 central-line intensity # for a powder rotating at the magic angle, # submitted to the first- and the second-order # quadrupole interactions. spinsys { channels 23Na nuclei 23Na quadrupole 1 2 8e6 1 0 0 0 } par { proton_frequency 400e6 spin_rate 15000 variable tsw 1 sw 1.0e6/tsw np 21 crystal_file rep100 gamma_angles 3 start_operator 0.4*I1z variable rf 100000 # variable rf2 150 } proc pulseq {} { global par maxdt $par(tsw) matrix set detect elements {{2 3}} acq for {set i 1} {$i < $par(np)} {incr i} { pulse $par(tsw) $par(rf) x pulse 1.0 $par(rf2) x acq -y } } proc minuit {} { global par mn g i set i [expr $i+1] #make some nice output puts "$i. call to minuit ----------------" puts -nonewline "qcc = $mn(qcc)" puts -nonewline " " puts -nonewline "rffield = $mn(rffield)" #simulate curve set par(rf2) $mn(rffield) set f [fsimpson [list \ [list quadrupole_1_aniso $mn(qcc)]]] fsave $f $par(name)-result.fid set rms [frms $f $g -re ] puts " => rms = $rms" return $rms funload $f } proc main {} { global par mn g i set g [fload "onepowderMAS-deadtime.fid"] set i 0 #setup start paramaters to fit with minuit #mnpar name val step [min max] mnpar qcc 7e6 1e6 4e6 10e6 mnpar rffield 200 5 100 300 #tell minuit the strategy (mnminimize, mnscan, mnfix) mnminimize puts "" puts "" puts "Best Fit Parameters" puts "--------------------------------------" puts "qcc: $mn(qcc)" puts "rffield: $mn(rffield)" }