/* hetcal_echolek2_500.c This pulse sequence will allow one to perform the following experiment: Calibration of X nucleus 90 degree pulse on decoupler 2 (Channel 3) by observing the attached A nucleus. Use channels 1 and 3 of the standard three channel configuration. 1) 1H - carrier (tof) on resonance with spin A 2) 3) 15N - carrier (dof2) on resonance with spin X Set dm = 'nnnn', dmm = 'nnnn' dm2 = 'nnnn', dmm2 = 'nnnn' Written by LEK BMRB Pulse Sequence Accession Number: 60 */ #include static int phi1[2] = {0,2}, phi2[8] = {0,0,1,1,2,2,3,3}, phi3[4] = {0,2,2,0}; pulsesequence() { char fsat[MAXSTR]; double d5,jxh,tsatpwr,dhpwr2,pwx2; tsatpwr=getval("tsatpwr"); dhpwr2=getval("dhpwr2"); pwx2=getval("pwx2"); jxh=getval("jxh"); d5=0.5/jxh; getstr("fsat",fsat); /* CHECK VALIDITY OF PARAMETER SET */ if ( tsatpwr > 8 ) { printf("tsatpwr too large - acquisition aborted"); abort(1); } if ((dm2[A] == 'y' || dm2[B] == 'y' || dm2[C] == 'y')) { printf("dm2 must be set to 'nnnn'or 'nnny'"); abort(1); } if ((dm[A] == 'y' || dm[B] == 'y' || dm[C] == 'y' || dm[D] == 'y' )) { printf("dm must be set to 'nnnn'"); abort(1); } if ((dm3[A] == 'y' || dm3[B] == 'y' || dm3[C] == 'y' || dm3[D] == 'y' )) { printf("dm3 must be set to 'nnnn'"); abort(1); } /* phasetable: hetcal_echo t1= 0 2 t2= 0 0 1 1 2 2 3 3 t3= 0 2 2 0 */ settable(t1,2,phi1); settable(t2,8,phi2); settable(t3,4,phi3); /* preparation period */ status(A); /* instrument delay to turn off receiver */ rlpower(tsatpwr,TODEV); rlpower(dhpwr2,DO2DEV); delay(0.1e-03); status(B); /* recycle delay = dx+d1 */ if(fsat[0] == 'y') { txphase(zero); rgpulse(d1,zero,2.0e-6,2.0e-6); /* presat. with observe amplifier*/ } else delay(d1); rlpower(tpwr,TODEV); status(C); rcvroff(); delay(20.0e-6); rgpulse(pw,t1,rof1,0.2e-6); /* proton pulse */ delay(d5); /* delay = 1 / (2J) */ sim3pulse(2*pw,0.*pw,pwx2,t2,zero,zero,5.0e-6,5.0e-6); /* 1H and X-nucleus pulses */ rlpower(dpwr2,DO2DEV); delay(d5 - POWER_DELAY); /* detection period */ status(D); setreceiver(t3); }