# 1 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test"
;hoesyph_motor_jump (IZ 11_04_2019)
;avance-version (12/01/11)
;2D heteronuclear NOE
;phase sensitive
;
;C. Yu & G. Levy, J. Am. Chem. Soc. 106, 6533 (1984)
;
;$CLASS=HighRes
;$DIM=2D
;$TYPE=
;$SUBTYPE=
;$COMMENT=


# 1 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/Avance.incl" 1
;Avance3.incl
;   for AV III
;
;avance-version (13/06/17)
;
;$CLASS=HighRes Incl
;$COMMENT=


# 169 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/Avance.incl"
;$Id: Avance3.incl,v 1.9.8.3 2013/08/30 09:44:49 ber Exp $
# 21 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test" 2

# 1 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/motor.incl" 1
;dont put "\n\" after end of #define, put everywhere TAB except of #define
	define delay TTL \n	define delay realwait \n	define delay tau1 \n	define delay tau2 \n	define delay tau3 \n	define delay wait \n	define delay distance \n	define delay distance0 \n	define delay distance2 \n	define delay distance1 \n	define delay distance3 \n	define delay acc \n	define delay v0 \n	define delay vmax \n	define delay v \n	define delay updown \n	define delay vend \n	define delay vmid \n	define loopcounter ttt1 \n	define loopcounter ttt2 \n	define loopcounter ttt3 \n	"TTL=5u" \n	"distance=cnst1" \n	"acc=cnst2" \n	"v0=cnst3" \n	"vmax=cnst4" \n	"v=v0" \n	"updown=(vmax*vmax-v0*v0)/(2*acc)" \n	"cnst5=(2*sqrt(distance/acc+v0*v0/(acc*acc))-2*v0/acc)*exp(-distance+2*updown-abs(distance-2*updown))+((vmax-v0)*(vmax-v0)/(acc*vmax)+distance/vmax)*exp(distance-2*updown-abs(distance-2*updown))" \n	"cnst6=(distance-2*updown)/abs(distance-2*updown)"	
# 32 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/motor.incl"

# 22 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test" 2

# 1 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/Delay.incl" 1
;Delay.incl  -  include file for commonly used delays
;
;version (13/08/07)
;
;$CLASS=HighRes Incl
;$COMMENT=

# 9 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/Delay.incl"
;general delays

define delay DELTA
define delay DELTA1
define delay DELTA2
define delay DELTA3
define delay DELTA4
define delay DELTA5
define delay DELTA6
define delay DELTA7
define delay DELTA8
define delay DELTA9
define delay DELTA10
define delay DELTA11
define delay DELTA12
define delay DELTA13
define delay DELTA14
define delay DELTA15
define delay DELTA16

define delay TAU
define delay TAU1
define delay TAU2
define delay TAU3
define delay TAU4
define delay TAU5
define delay TAU6
define delay TAU7
define delay TAU8
define delay TAU9
# 40 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/Delay.incl"
define delay INCR1
define delay INCR2
define delay INCR3
define delay INCR4
define delay INCR5
define delay INCR6


;delays for centering pulses
# 50 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/Delay.incl"
define delay CEN_HN1
define delay CEN_HN2
define delay CEN_HN3
define delay CEN_HC1
define delay CEN_HC2
define delay CEN_HC3
define delay CEN_HC4
define delay CEN_HP1
define delay CEN_HP2
define delay CEN_CN1
define delay CEN_CN2
define delay CEN_CN3
define delay CEN_CN4
define delay CEN_CP1
define delay CEN_CP2


;loop counters
# 69 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/Delay.incl"
define loopcounter COUNTER
define loopcounter SCALEF
define loopcounter FACTOR1
define loopcounter FACTOR2
define loopcounter FACTOR3
define loopcounter FACTOR4
define loopcounter FACTOR5
define loopcounter FACTOR6


# 80 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/Delay.incl"
;$Id: Delay.incl,v 1.13.8.2 2013/08/30 09:44:49 ber Exp $
# 23 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test" 2


;hoesy pulses START
"p2=p1*2"
"p4=p3*2"
"d12=20u"
# 30 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test"
"d0=3u"

"in0=inf1/2"

"DELTA=d0*2+p2"
;hoesy pulses END
# 37 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test"
;motor pulses START
"d28=d8-2*cnst5-d22-20u"
;motor pulses END

# 1 "mc_line 41 file C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test exp. def. part of mc cmd. before ze"
define delay MCWRK
define delay MCREST
define delay d0orig
"d0orig=d0"
define loopcounter t1loop
"t1loop=0"
define loopcounter ph1loop
"ph1loop=0"
define loopcounter ST1CNT
"ST1CNT = td1 / 2"
"MCREST = 20m - 20m"
"MCWRK = 0.142857*20m"

    dccorr
# 41 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test"
1 ze
# 1 "mc_line 41 file C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test exp. def. of mc cmd. after ze"
      "d0=d0orig + t1loop * in0 "
      "phval1 = (ph1loop % 4) * 90"
      MCWRK ip1 + phval1
      "phval5 = (ph1loop % 4) * 90"
      MCWRK ip5 + phval5
# 42 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test"
	
	if "distance>7700"
	{
	autosuspend
	}
# 1 "mc_line 47 file C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test exp. start label for mc cmd."
2 MCWRK  * 3 do:f2
LBLF1, MCWRK  * 3
LBLST1, MCWRK 
  MCREST
# 48 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test"
	d1 setnmr3^0
	
	;######### start to check Does sample at zero position?
	if trignl1 goto 3 
	100m
	autosuspend 
3 d12 pl2:f2
	0.1s setnmr3|0
  (p3 ph1):f2
  ; DELTA
  ;(p4 ph5):f2
  d0
  p2 ph3
  d0 setnmr3|14
  (p3 ph2):f2 

  ;d8 pl12:f2
;###################################
;%%%%%%%  START of MOTION %%%%%%%%%%
;###################################
\n	"tau1=0" \n	"tau2=0" \n	"tau3=0" \n	"wait=0"								;#####
300u setnmr3^21												;#####
if "distance > (2*updown)" 		;#####
{;start trapezia profile			;#####
	"ttt1=updown"								;#####
	"ttt3=updown"								;#####
  "ttt2=distance-ttt1-ttt3"		;#####
trap_up1, ;up									;#####
			"wait=1.0/v"						;#####
			\n	TTL setnmr3|20 \n	TTL setnmr3^20 \n	"realwait=wait-TTL-TTL" \n	realwait							;#####
			"tau1=tau1+1.0/v"				;#####
			"v=v0+acc*tau1"					;#####
lo to trap_up1 times ttt1			;#####
			"wait=1.0/vmax"					;#####
trap_const1, ;plato						;#####
		\n	TTL setnmr3|20 \n	TTL setnmr3^20 \n	"realwait=wait-TTL-TTL" \n	realwait								;#####
lo to trap_const1 times ttt2	;#####
trap_down1, ;down							;#####
			"wait=1.0/v"						;#####
	    \n	TTL setnmr3|20 \n	TTL setnmr3^20 \n	"realwait=wait-TTL-TTL" \n	realwait							;#####
     	"tau3=tau3+1.0/v"				;#####
			"v=vmax-acc*tau3"				;#####
lo to trap_down1 times ttt3		;#####
};end trapezia profile				;#####
else 													;#####
{;start triangle profile			;#####
	"ttt1=distance/2.0"					;#####
triangl_up1, ;up							;#####
			"wait=1.0/v"						;#####
			\n	TTL setnmr3|20 \n	TTL setnmr3^20 \n	"realwait=wait-TTL-TTL" \n	realwait							;#####
			"tau1=tau1+1.0/v"				;#####
			"v=v0+acc*tau1"					;#####
lo to triangl_up1 times ttt1	;#####
	"vmid=v"										;#####
triangl_down1, ;down					;#####
			"wait=1.0/v"						;#####
	    \n	TTL setnmr3|20 \n	TTL setnmr3^20 \n	"realwait=wait-TTL-TTL" \n	realwait							;#####
     	"tau3=tau3+1.0/v"				;#####
			"v=vmid-acc*tau3" 			;#####
lo to triangl_down1 times ttt1;#####
} ;end triangle profile				;#####
;###################################
;%%%%%%%%%  END of MOTION %%%%%%%%%%
;###################################
10u setnmr3^14
d28 pl12:f2
10u setnmr3|14
;###################################
;%%%%%%%  START of MOTION %%%%%%%%%%
;###################################
\n	"tau1=0" \n	"tau2=0" \n	"tau3=0" \n	"wait=0"								;#####
300u setnmr3|21											;#####
if "distance > (2*updown)" 		;#####
{;start trapezia profile			;#####
	"ttt1=updown"								;#####
	"ttt3=updown"								;#####
  "ttt2=distance-ttt1-ttt3"		;#####
trap_up2, ;up									;#####
			"wait=1.0/v"						;#####
			\n	TTL setnmr3|20 \n	TTL setnmr3^20 \n	"realwait=wait-TTL-TTL" \n	realwait							;#####
			"tau1=tau1+1.0/v"				;#####
			"v=v0+acc*tau1"					;#####
lo to trap_up2 times ttt1			;#####
			"wait=1.0/vmax"					;#####
trap_const2, ;plato						;#####
		\n	TTL setnmr3|20 \n	TTL setnmr3^20 \n	"realwait=wait-TTL-TTL" \n	realwait								;#####
lo to trap_const2 times ttt2	;#####
trap_down2, ;down							;#####
			"wait=1.0/v"						;#####
	    \n	TTL setnmr3|20 \n	TTL setnmr3^20 \n	"realwait=wait-TTL-TTL" \n	realwait							;#####
     	"tau3=tau3+1.0/v"				;#####
			"v=vmax-acc*tau3"				;#####
lo to trap_down2 times ttt3		;#####
};end trapezia profile				;#####
else 													;#####
{;start triangle profile			;#####
	"ttt1=distance/2.0"					;#####
triangl_up2, ;up							;#####
			"wait=1.0/v"						;#####
			\n	TTL setnmr3|20 \n	TTL setnmr3^20 \n	"realwait=wait-TTL-TTL" \n	realwait							;#####
			"tau1=tau1+1.0/v"				;#####
			"v=v0+acc*tau1"					;#####
lo to triangl_up2 times ttt1	;#####
	"vmid=v"										;#####
triangl_down2, ;down					;#####
			"wait=1.0/v"						;#####
	    \n	TTL setnmr3|20 \n	TTL setnmr3^20 \n	"realwait=wait-TTL-TTL" \n	realwait							;#####
     	"tau3=tau3+1.0/v"				;#####
			"v=vmid-acc*tau3" 			;#####
lo to triangl_down2 times ttt1;#####
} ;end triangle profile				;#####
;###################################
;%%%%%%%%%  END of MOTION %%%%%%%%%%
;###################################
  d22 setnmr3^14 ;setnmr3^0;waiting time after arrival (10ms-200ms)
# 164 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test"
  p1 ph4
  go=2 ph31 cpd2:f2
  ;d1 do:f2 mc #0 to 2 F1PH(calph(ph1, +90) & calph(ph5, +90), caldel(d0, +in0))
# 1 "mc_line 167 file C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test exp. mc cmd. in line"
  MCWRK  do:f2 wr #0 if #0 zd 

  "ph1loop+=1"
      "d0=d0orig + t1loop * in0 "
      "phval1 = (ph1loop % 4) * 90"
      MCWRK ip1 + phval1
      "phval5 = (ph1loop % 4) * 90"
      MCWRK ip5 + phval5
  lo to LBLF1 times 2
  MCWRK 

  "t1loop+=1"
      "d0=d0orig + t1loop * in0 "
      "phval1 = (ph1loop % 4) * 90"
      MCWRK ip1 + phval1
      "phval5 = (ph1loop % 4) * 90"
      MCWRK ip5 + phval5
  lo to LBLST1 times ST1CNT
  MCWRK 
  "t1loop=0"
  "ph1loop=0"
  MCWRK
# 168 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test"
;10m setnmr3^0
10s
exit


ph1=0
ph2=0 2
ph3=0 0 2 2
ph4=0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3
ph5=1
ph31=0 2 0 2 1 3 1 3 2 0 2 0 3 1 3 1
# 181 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test"
;pl1 : f1 channel - power level for pulse (default)
;pl2 : f2 channel - power level for pulse (default)
;pl12: f2 channel - power level for CPD/BB decoupling
;p1 : f1 channel -  90 degree high power pulse
;p2 : f1 channel - 180 degree high power pulse
;p3 : f2 channel -  90 degree high power pulse
;p4 : f2 channel - 180 degree high power pulse
;d0 : incremented delay (2D)                         [3 usec]
;d1 : relaxation delay; 1-5 * T1
;d8 : mixing time
;d12: delay for power switching                      [20 usec]
;d22: delay after shuttling   												[100-200 ms]
;v9: random variation of +/- v9 %
;inf1: 1/SW(H) = 2 * DW(H)
;in0: 1/(2 * SW(H)) = DW(H)
;nd0: 2
;ns: 8 * n
;ds: 16
;td1: number of experiments
;FnMODE: States-TPPI, TPPI, States or QSEQ
;cpd2: decoupling according to sequence defined by cpdprg2
;pcpd2: f2 channel - 90 degree pulse for decoupling sequence


# 206 "C:/Bruker/TS32pl7/exp/stan/nmr/lists/pp/user/hoesyph_motor_jump_test"
;$Id: hoesyph,v 1.7.8.1 2012/01/31 17:56:30 ber Exp $
