pulsesequence() { // Set the Maximum Dynamic Table and v-var Numbers settablenumber(10); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values double aXprep1 = getval("aXprep1"); // Define Tilted Pulses using "prep1X". double pw1Xprep1 = getval("pw1Xprep1"); double pw2Xprep1 = getval("pw2Xprep1"); double phXprep1 = getval("phXprep1"); WMPA wpmlg = getwpmlg("wpmlgX"); strncpy(wpmlg.ch,"obs",3); putCmd("chXwpmlg='obs'\n"); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = getval("pw1Xprep1") + getval("pw2Xprep1") + 2.0*wpmlg.q*wpmlg.cycles*wpmlg.pw; d.dutyoff = d1 + 4.0e-6 + 5.0e-6 + wpmlg.r1 + wpmlg.r2 + at - 2.0*wpmlg.q*wpmlg.cycles*wpmlg.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(ph1Xprep1,4,table1); settable(ph2Xprep1,4,table2); settable(phXwpmlg,4,table3); settable(phRec,4,table4); setreceiver(phRec); // Set the Small-Angle Step double obsstep = 360.0/(PSD*8192); obsstepsize(obsstep); int phfXprep1 = initphase(phXprep1, obsstep); int phXzero = initphase(0.0, obsstep); // Begin Sequence xmtrphase(phfXprep1); txphase(ph1Xprep1); obspwrf(aXprep1); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // Tilted Preparation Pulse for FSLG or PMLG "prep1X" startacq(5.0e-6); rcvroff(); delay(wpmlg.r1); rgpulse(pw1Xprep1, ph1Xprep1, 0.0, 0.0); rgpulse(pw2Xprep1, ph2Xprep1, 0.0, 0.0); xmtrphase(phXzero); delay(wpmlg.r2); // Apply WPMLG Cycles decblank(); _blank34(); _wpmlg(wpmlg, phXwpmlg); endacq(); obsunblank(); decunblank(); _unblank34(); }
void pulsesequence() { // Set the Maximum Dynamic Table and v-var Numbers settablenumber(20); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values MPSEQ dumbo = getdumbogen("dumboX","dcf1X",0,0.0,0.0,0,1); strncpy(dumbo.ch,"obs",3); putCmd("chXdumbo='obs'\n"); MPSEQ c7 = getpostc7("c7X",0,0.0,0.0,0,1); MPSEQ c7ref = getpostc7("c7X",c7.iSuper,c7.phAccum,c7.phInt,1,1); strncpy(c7.ch,"obs",3); putCmd("chXc7='obs'\n"); WMPA wdumbo = getwdumbogen("wdumboX","dcfX"); strncpy(wdumbo.ch,"obs",3); putCmd("chXwdumbo='obs'\n"); double tXzfinit = getval("tXzf"); //Define the Z-filter delay in the sequence double tXzf = tXzfinit - 5.0e-6 - wdumbo.r1; // Set Constant-time Period for d2. if (d2_index == 0) d2_init = getval("d2"); double d2_ = (ni - 1)/sw1 + d2_init; putCmd("d2acqret = %f\n",roundoff(d2_,12.5e-9)); putCmd("d2dwret = %f\n",roundoff(1.0/sw1,12.5e-9)); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = c7.t + getval("pwXtilt") + d2_ + getval("pwXtilt") + c7ref.t + getval("pwX90") + + wdumbo.q*wdumbo.cycles*wdumbo.pw; d.dutyoff = 4.0e-6 + d1 + tXzfinit + wdumbo.r2 + at - wdumbo.q*wdumbo.cycles*wdumbo.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(ph1Xc7,4,table1); settable(phXdumbo,4,table2); settable(ph2Xc7,4,table3); settable(phX90,16,table4); settable(phXwdumbo,4,table5); settable(phRec,16,table6); settable(ph1Xtilt,4,table7); settable(ph2Xtilt,4,table8); // Set the Small-Angle Prep Phase double obsstep = 360.0/(PSD*8192); obsstepsize(obsstep); int phfX90 = initphase(0.0, obsstep); //Add STATES Quadrature Phase if (phase1 == 2) initval((45.0/obsstep),v1); else initval(0.0,v1); initval((d2*c7.of[0]*360.0/obsstep),v2); initval(0.0,v3); obsstepsize(obsstep); setreceiver(phRec); // Begin Sequence xmtrphase(v1); txphase(ph1Xc7); obspwrf(getval("aXc7")); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // C7 Recoupling of 2Q coherence _mpseq(c7, ph1Xc7); // F1 Evolution With DUMBO xmtrphase(v3); if (!getval("scXdcf1")){ obspwrf(getval("aX90")); rgpulse(getval("pwXtilt"),ph1Xtilt,0.0,0.0); } obspwrf(getval("aXdumbo")); obsunblank(); _mpseqon(dumbo,phXdumbo); delay(d2); _mpseqoff(dumbo); if (!getval("scXdcf1")){ obspwrf(getval("aX90")); rgpulse(getval("pwXtilt"),ph2Xtilt,0.0,0.0); } obspwrf(getval("aX90")); obsunblank(); // C7 Transfer to 1Q Coherence xmtrphase(v2); _mpseq(c7ref, ph2Xc7); // Z-filter Delay delay(tXzf); // Detection Pulse txphase(phX90); obspwrf(getval("aX90")); startacq(5.0e-6); rcvroff(); delay(wdumbo.r1); rgpulse(getval("pwX90"), phX90, 0.0, 0.0); obsunblank(); xmtrphase(v3); delay(wdumbo.r2); // Apply WPMLG Cycles During Acqusition decblank(); _blank34(); _wdumbo(wdumbo,phXwdumbo); endacq(); obsunblank(); decunblank(); _unblank34(); }
pulsesequence() { // Set the Maximum Dynamic Table and v-var Numbers settablenumber(10); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values double aXprep = getval("aXprep"); double pwXprep = getval("pwXprep"); double phvXprep = getval("phXprep"); WMPA wsam = getwsamn("wsamX"); strncpy(wsam.ch,"obs",3); putCmd("chXwsam='obs'\n"); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = getval("pwXprep") + wsam.cycles1*wsam.cycles*wsam.pw; d.dutyoff = d1 + 4.0e-6 + 5.0e-6 + wsam.r1 + wsam.r2 + at - wsam.cycles1*wsam.cycles*wsam.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(phXprep,4,table1); settable(phXwsam,4,table2); settable(phRec,4,table3); setreceiver(phRec); // Set the Small-Angle Step double obsstep = 360.0/(PSD*8192); obsstepsize(obsstep); int phfXprep = initphase(phvXprep,obsstep); int phXzero = initphase(0.0,obsstep); // Begin Sequence xmtrphase(phfXprep); txphase(phXprep); obspwrf(aXprep); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // Standard 90-degree prepX pulse for SAM startacq(5.0e-6); rcvroff(); delay(wsam.r1); rgpulse(pwXprep, phXprep, 0.0, 0.0); xmtrphase(phXzero); delay(wsam.r2); // Apply WSAM Cycles decblank(); _blank34(); _wsamn(wsam, phXwsam); endacq(); obsunblank(); decunblank(); _unblank34(); }
void pulsesequence() { // Set the Maximum Dynamic Table Number settablenumber(10); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values WMPA xx = getxx("xxX"); strncpy(xx.ch,"obs",3); putCmd("chXxx='obs'\n"); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = getval("pwXprep") + 2.0*xx.cycles*xx.pw; d.dutyoff = d1 + 4.0e-6 + 5.0e-6 + xx.r1 + xx.r2 + at - 2.0*xx.cycles*xx.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(phXprep,4,table1); settable(phXxx,4,table2); settable(phRec,4,table3); setreceiver(phRec); // Set the Small-Angle Prep Phase double obsstep = 360.0/(PSD*8192); obsstepsize(obsstep); int phfXprep = initphase(getval("phXprep"), obsstep); int phXzero = initphase(0.0, obsstep); // Begin Sequence xmtrphase(phfXprep); txphase(phXprep); obspwrf(getval("aXprep")); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // Preparation Pulse with Initial Point startacq(5.0e-6); rcvroff(); delay(xx.r1); rgpulse(getval("pwXprep"), phXprep, 0.0, 0.0); xmtrphase(phXzero); // Apply Semi-windowless WHH4 Cycles decblank(); _blank34(); _xx(xx, phXxx); endacq(); obsunblank(); decunblank(); _unblank34(); }
void pulsesequence() { // Set the Maximum Dynamic Table Number settablenumber(10); setvvarnumber(30); // Define Variables and Objects and Get Parameter Values WMPA swwhh4 = getswwhh4("swwhh4X"); strncpy(swwhh4.ch,"obs",3); putCmd("chXswwhh4='obs'\n"); //-------------------------------------- // Copy Current Parameters to Processed //------------------------------------- putCmd("groupcopy('current','processed','acquisition')"); // Dutycycle Protection DUTY d = init_dutycycle(); d.dutyon = getval("pwXprep") + 4.0*swwhh4.cycles*swwhh4.pw; d.dutyoff = d1 + 4.0e-6 + 5.0e-6 + swwhh4.r1 + swwhh4.r2 + at - 4.0*swwhh4.cycles*swwhh4.pw; d = update_dutycycle(d); abort_dutycycle(d,10.0); // Set Phase Tables settable(phXprep,4,table3); settable(phXswwhh4,4,table4); settable(phRec,4,table5); setreceiver(phRec); // Set the Small-Angle Prep Phase double obsstep = 360.0/(PSD*8192); obsstepsize(obsstep); int phfXprep = initphase(getval("phXprep"), obsstep); int phXzero = initphase(0.0, obsstep); // Set the Realtime pwXprep adXprep settable(pw90Xprep,4,table1); settable(pw55Xprep,4,table2); int phase90 = (int) (getval("pwXprep")/0.0125e-6); int phase55 = (int) (getval("pwXprep")*54.7/(90.0*0.0125e-6)); tsmult(pw90Xprep,phase90,0); tsmult(pw55Xprep,phase55,0); getelem(pw90Xprep,ct,v1); getelem(pw55Xprep,ct,v2); add(v1,v2,pwXprep); sub(v1,v2,adXprep); // Begin Sequence xmtrphase(phfXprep); txphase(phXprep); obspwrf(getval("aXprep")); obsunblank(); decunblank(); _unblank34(); delay(d1); sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6); // Incremented Preparation Pulse startacq(5.0e-6); rcvroff(); delay(swwhh4.r1); vdelay(NSEC,adXprep); // Keep Total Time Constant xmtron(); vdelay(NSEC,pwXprep); xmtroff(); xmtrphase(phXzero); delay(swwhh4.r2); // Apply Semi-windowless WHH4 Cycles decblank(); _blank34(); _swwhh4(swwhh4, phXswwhh4); endacq(); obsunblank(); decunblank(); _unblank34(); }