/* hetcal_echolek_shape_500.c This pulse sequence will allow one to perform the following experiment: Calibration of X nucleus 90 degree 'shaped pulse' on decoupler1 (channel 2) by observing the attached A nucleus. Uses two channels: 1) 1H - carrier (tof) on resonance with spin A 2) 13C - carrier (dof) on resonance with spin X Set dm= 'nnnn', dmm = 'cccc' dm2 = 'nnnn', dmm2 = 'cccc' Written by LEK BMRB Pulse Sequence Accession Number: 59 */ #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],shape[MAXSTR]; double d5,jxh,tsatpwr,dhpwr,pwx1,at; tsatpwr=getval("tsatpwr"); dhpwr=getval("dhpwr"); pwx1=getval("pwx1"); at = getval("at"); jxh=getval("jxh"); d5=0.5/jxh; getstr("fsat",fsat); getstr("shape",shape); if ( tsatpwr > 8 ) { printf("tsatpwr too large - acquisition aborted"); abort(1); } if ((dm[A] == 'y' || dm[B] == 'y' || dm[C] == 'y')) { printf("dm must be set to 'nnnn'or 'nnny'"); abort(1); } if ((dm[D] == 'y' && at > 0.1)) { printf("at is too long for decoupling"); 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); 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); rlpower(dhpwr,DODEV); status(C); rcvroff(); delay(20.0e-6); rgpulse(pw,t1,rof1,0.2e-6); /* proton pulse */ txphase(t2); delay(d5 + pwx1 + WFG_START_DELAY + WFG_STOP_DELAY); /* delay = 1 / (2J) */ /* detection period */ rgpulse(2*pw,t2,0.0,0.0); /* H 180 pulse */ decphase(zero); decshaped_pulse(shape,pwx1,zero,0.0,0.0); /* shaped pulse on channel 2 */ rlpower(dpwr,DODEV); delay(d5 - POWER_DELAY); status(D); setreceiver(t3); }