#define RM_H /bin/rm
$#define RM_H Rm
#define FIGDIR ../Fig
#define FIGSUP ./Fig2
#define BINDIR ../../Bin/MTYPE
#define XTPANELDIR ../../Xtpanel
#define FIGLIST allmiddle    /* allmmiddle */
#include <SEP.defs>

/*       dataset geometry is such that 165 + 110 + 110 ...  gives one blank */
/*       CDP and one blank trace interlaced                                 */
/*       thus we have to double d3 and half n3                              */

#define SCALE dscale=1.e-12

#define NULL head=/dev/null

#define NINECOMP xx xy xz yx yy yz zx zy zz

/* get the clip value from one component and use it for all 9 other */
#define GETCLIP(A,B) `( Clip <A pclip=B >Jjunk ; Get <Jjunk clip parform=n)`

/* make a 3x3 plot  */
#define LOC FIGSUP
#define THREEBYTHREE(A,B) vppen gridnum=3,3 LOC/A/**/xx.v LOC/A/**/xy.v LOC/A/**/xz.v LOC/A/**/yx.v LOC/A/**/yy.v LOC/A/**/yz.v LOC/A/**/zx.v LOC/A/**/zy.v LOC/A/**/zz.v >B

/* make interactive plot selection  */
#define PLOTSELECT(prefix,suffix,option)  xtpanel -var NAME prefix -var TYPE suffix  -var OPTION option  -file XTPANELDIR/compare9c.panel

#define MUTE  BINDIR/Mute vmute=3500  o1=0 o2=0 o3=0 d2=1 d2=1 d3=1 useattr=1  keyname=OFFSET 

/* those were common definitions which shoul dbe outside this Cakefile in some defs */

mute&:
	../../Bin/Mute.x <junk.H >junk2.H vmute=3500 o1=0 useattr=1 keyname=OFFSET 

/* interactive plot selection */
gather%.action&:
	PLOTSELECT(FIGSUP/gather,.v," ")

all%1middle%2.action:
	PLOTSELECT(FIGSUP/%1middle,.v," ")

all%1near%2.action:
	PLOTSELECT(FIGSUP/%1near,.v," ")

all%1far%2.action:
	PLOTSELECT(FIGSUP/%1far,.v," ")

allnorms&: [[ sub -i X normX.H NINECOMP ]]

/* Cubify all shot cubes */
allshotcubes&: [[ sub -i X shotXcube.H NINECOMP ]]

/* Cubify into cdp cubes */
allcdpcubes&: [[ sub -i X cdpXcube.H NINECOMP ]]

allnear.v: [[ sub -i X nearX.v NINECOMP ]]

FIGDIR/allmiddle.v allmiddle.v: [[ sub -i X FIGSUP/middleX.v NINECOMP ]]
	THREEBYTHREE(middle,FIGDIR/allmiddle.v)
	
FIGDIR/allmmiddle.v allmmiddle.v: [[ sub -i X FIGSUP/mmiddleX.v NINECOMP ]]
	THREEBYTHREE(mmiddle,FIGDIR/allmmiddle.v)
	
allfar.v: [[ sub -i X farX.v NINECOMP ]]

allgather.v: [[ sub -i X gatherX.v NINECOMP ]]

/* use the general rules below */

sortnew&:
	Sort < $PEMBROOK/l1xx.data.h attrfile=$PEMBROOK/l1xx.hdr.h hdrkey1=CDP-X hdrkey2=OFFSET >cdpxx attrout=hcdpxx

sortxx&: normxx.h.CO recixx.h.CO

/* raw */
gather%.H:  /* $PEMBROOK/l1%.data.h */
	Window f3=50 n3=1 <$PEMBROOK/l1%.data.h >gather%.H

near%.H:  /* $PEMBROOK/l1%.data.h */
	Window f2=98 n2=1 <$PEMBROOK/l1%.data.h >near%.H

middle%.H:  /* $PEMBROOK/l1%.data.h */
	Window f2=49 n2=1 <$PEMBROOK/l1%.data.h >middle%.H

far%.H:  /* $PEMBROOK/l1%.data.h */
	Window f2=0 n2=1 <$PEMBROOK/l1%.data.h >far%.H

/* muted */
mgather%.H:  /* $PEMBROOK/l1%.data.h */
	<$PEMBROOK/l1%.data.h  MUTE attrfile=../../Data/Pem50/l1%.hdr.h >jm.H 
	Window f3=50 n3=1 <jm.H >mgather%.H

mnear%.H:  /* $PEMBROOK/l1%.data.h */
	<$PEMBROOK/l1%.data.h  MUTE attrfile=../../Data/Pem50/l1%.hdr.h >jm.H
	Window f2=98 n2=1 <jm.H >mnear%.H

mmiddle%.H:  /* $PEMBROOK/l1%.data.h */
	<$PEMBROOK/l1%.data.h  MUTE attrfile=../../Data/Pem50/l1%.hdr.h >jm.H
	Window f2=49 n2=1 <jm.H >mmiddle%.H

mfar%.H:  /* $PEMBROOK/l1%.data.h */
	<$PEMBROOK/l1%.data.h  MUTE attrfile=../../Data/Pem50/l1%.hdr.h >jm.H
	Window f2=0 n2=1 <jm.H >mfar%.H

/* vplots , each normalized to Xx  */
FIGSUP/gather%.v: gather%.H
	WIndow j1=5 <gather%.H | Taplot clip=GETCLIP(gatherxx.H,98.) |Ta2vplot title="shot gather %" out=FIGSUP/gather%.v >/dev/null

FIGSUP/near%.v:
	Window j1=5 <near%.H | Taplot clip=GETCLIP(nearxx.H,98.) |Ta2vplot title="Near Offset %" out=FIGSUP/near%.v >/dev/null

FIGSUP/middle%.v:
	Window j1=5 <middle%.H | Taplot clip=GETCLIP(middlexx.H,98.)|Ta2vplot title="Middle Offset %" out=FIGSUP/middle%.v >/dev/null

FIGSUP/far%.v:
	Window j1=5 <far%.H | Taplot clip=GETCLIP(middlexx.H,98.)|Ta2vplot title="Far Offset %" out=FIGSUP/far%.v >/dev/null


/* mutedm, each normalized to  Xx */
FIGSUP/mgather%.v: mgather%.H
	Window j1=5 <mgather%.H | Taplot clip=GETCLIP(gatherxx.H,98.) |Ta2vplot title="shot gather %" out=FIGSUP/mgather%.v >/dev/null

FIGSUP/mnear%.v: mnear%.H
	Widnow j1=5 <mnear%.H | Taplot clip=GETCLIP(mnearxx.H,98.) |Ta2vplot title="Near Offset %" out=FIGSUP/mnear%.v >/dev/null

FIGSUP/mmiddle%.v: mmiddle%.H
	Window j1=5 <mmiddle%.H | Taplot clip=GETCLIP(mmiddlexx.H,98.)|Ta2vplot title="Middle Offset %" out=FIGSUP/mmiddle%.v >/dev/null

FIGSUP/mfar%.v: mfar%.H
	Window j1=5 <mfar%.H | Taplot clip=GETCLIP(mmiddlexx.H,98.)|Ta2vplot title="Far Offset %" out=FIGSUP/mfar%.v >/dev/null

/* some rules for generating cubes */

shotyzcube.H: /* $PEMBROOK/l1yz.data.h */ if not exist shotyzcube.H
	Cubify <$PEMBROOK/l1yz.data.h axis2=REC-X axis3=SHT-X >jshotyzcube                      attrfile=$PEMBROOK/l1yz.hdr.h   attrout=hshotyzcube.H
	Edit  dclip=1.e17 <jshotyzcube >shotyzcube.H

shot%cube.H: /* $PEMBROOK/l1%.data.h */ if not exist shot%cube.H
	Cubify <$PEMBROOK/l1%.data.h axis2=REC-X axis3=SHT-X >shot%cube.H                      attrfile=$PEMBROOK/l1%.hdr.h     attrout=hshot%cube.H

/* make a cube only of the full coverage portion */

cdp%cube.H:
	Cubify <$PEMBROOK/l1%.data.h axis2=OFFSET axis3=CDP-X >jcdp%cube.H attrfile=$PEMBROOK/l1%.hdr.h attrout=hjcdp%cube.H
	Window f2=75 n2=50  n1=750  f3=127 n3=51 <jcdp%cube.H >jjcdp%cube.H
	Scale SCALE < jjcdp%cube.H >cdp%cube.H

/*
cdp%cube.H: $PEMBROOK/l1%.data.h if not exist cdp%cube.H
	Cubify <$PEMBROOK/l1%.data.h axis2=OFFSET axis3=CDP-X >jcdp%cube.H                      attrfile=$PEMBROOK/l1%.hdr.h attrout=hjcdp%cube.H  d3=110 n3=153
	Window f3=50 n3=51 <jcdp%cube.H |Scale SCALE >cdp%cube.H
	Rm jcdp%cube.H

*/

$	Window f2=75 n2=50  n1=750  f2=127 n2=51 <jcdp%small2.H >jjcdp
$	Scale SCALE <jjcdp >cdp%cube.H
$	Rm jjcdp


mcdp%cube.H: cdp%cube.H
	BINDIR/Mute < cdp%cube.H >mcdp%cube.H vmute=3500 useattr=1 keyname=OFFSET  

/* this is for large dataset only */
#define PEMFULL /SDA/martin/PemFull/CDP/

cdp%1cubebig.NMO.%2.H : PEMFULL/%1cube.H
	NMO vel=%2 <PEMFULL%1cube.H >cdp%1cubebig.NMO.%2.H

jcdp%1cubebig.NMO.%2.B : cdp%1cubebig.NMO.%2.H
	Window f1=750 n1=500 <cdp%1cubebig.NMO.%2.H >jw
	Byte <jw gainpanel=all pclip=90 >jcdp%1cubebig.NMO.%2.B

cdp%1cubebig.NMO.%2.v: jcdp%1cubebig.NMO.%2.B
	Cubeplot  frame1=30 frame2=50 frame3=0 <jcdp%1cubebig.NMO.%2.B out=cdp%1cubebig.NMO.%2.v NULL title="%1 Time slices after NMO"

recislice%&: jcdp%cubebig.NMO.8000.B
	Window f1=30 n1=1 <jcdp%cubebig.NMO.8000.B title="% Time slices after NMO" | Ta2vplot out=recislice.%.v NULL
	
nmoreci& FIGDIR/nmoreci.v:
	vp_OverUnderAniso cdpxxcubebig.NMO.8000.v cdpyycubebig.NMO.8000.v cdpzzcubebig.NMO.8000.v  >FIGDIR/nmoreci.v
/*
	vp_SideBySideAniso cdpxxcubebig.NMO.xx.v cdpxycubebig.NMO.yx.v >j1.v
	vp_SideBySideAniso cdpyxcubebig.NMO.yx.v cdpyycubebig.NMO.yy.v >j1.v
*/




cdp%cube.NMO.8000.H: cdp%cube.H
	NMO vel=8000 <cdp%cube.H >cdp%cube.NMO.8000.H

jsubcubetNMO%1-%2-%3.H:  jsubcubeNMO%1-%2-%3.H
	Transp plane=12 <jsubcubeNMO%1-%2-%3.H >jj999
	Transp plane=23 <jj999   >jsubcubetNMO%1-%2-%3.H
	Rm jsubcubeNMO%1-%2-%3.H

/* take this out */
jsubcubeNMO%1-%2-%3.H: if exist cdp%1cube.NMO.8000.H
	Window f1=%2 n1=%3 <cdp%1cube.NMO.8000.H >jsubcubeNMO%1-%2-%3.H

nmomovie-%1-%2.H&: [[ sub -i X jsubcubetNMOX-%1-%2.H NINECOMP ]]
	Merge axis=2 jsubcubetNMOxx-%1-%2.H jsubcubetNMOxy-%1-%2.H jsubcubetNMOxz-%1-%2.H >jnX.H
	Merge axis=2 jsubcubetNMOyx-%1-%2.H jsubcubetNMOyy-%1-%2.H jsubcubetNMOyz-%1-%2.H >jnY.H
	Merge axis=2 jsubcubetNMOzx-%1-%2.H jsubcubetNMOzy-%1-%2.H jsubcubetNMOzz-%1-%2.H >jnZ.H
	Merge axis=1 jnX.H jnY.H jnZ.H > nmomovie-%1-%2.H

big8000&: 
        NMO vel=8000 </SDA/martin/PemFull/CDP/xxcube.H attrfile=/SDA/martin/PemFull/CDP/hxxcube.H >big8000.H


allcdpnmo&: [[ sub -i X cdpXcube.NMO.8000.H NINECOMP ]]

$	Window f3=25 n3=1 <cdpxxcube.H >jmidcdp.H
nmo&:   
	Window </SDA/martin/PemFull/CDP/xxcube.H f3=1 n3=1 >jmidcdp.H
	NMO vel=3500 <jmidcdp.H >jnmo.3500.H
	NMO vel=5000 <jmidcdp.H >jnmo.5000.H
	NMO vel=6500 <jmidcdp.H >jnmo.6500.H
	NMO vel=8000 <jmidcdp.H >jnmo.8000.H
	NMO vel=9500 <jmidcdp.H >jnmo.9500.H
	NMO vel=11000 <jmidcdp.H >jnmo.11000.H
	NMO vel=12500 <jmidcdp.H >jnmo.12500.H
	Merge jnmo.3500.H jnmo.5000.H jnmo.6500.H jnmo.8000.H jnmo.9500.H jnmo.11000.H jnmo.12500.H space=n >jnmo.H

/*
	Reverse which=1  <jsubcubetNMOyx-250-500.H >j2
	Window n1=25 <jsubcubetNMOxy-250-500.H >jw1
	Window n1=25 <j2                       >jw2
*/
recipnmo&:
	Window f1=0  n1=25 <jsubcubetNMOxy-250-500.H >jw1
	Window f1=25 n1=25 <jsubcubetNMOyx-250-500.H >jw2
	Merge axis=1 jw1 jw2 >jj2
	Byte pclip=90 <jj2 >jj2.B
	Ta2vplot <jj2.B >jj2.V
	

/* we derive from shot%cube.H  */
norm%.H reci%.H: shot%cube.H
	Count <shot%cube.H sxbias=55. >norm%.H recifile=reci%.H scdfile=scd%.H


$old way of  sorting into reciprocals
normyz.H reciyz.H:
$        Cubify <$PEMBROOK/l1yz.data.h axis2=REC-X axis3=SHT-X >jnormyzcube.H attrout=hnormyzcube.H
$	Edit  dclip=1.e17 <$PEMBROOK/l1yz.data.h >normyz.cube.H
$	Count <normyz.cube.H sxbias=55. >normyz.H recifile=reciyz.H scdfile=scdyz.H
$	Rm normyz.cube.H
$
$
$norm%.H reci%.H:
$$		Cubify <$PEMBROOK/l1%.data.h axis2=REC-X axis3=SHT-X >norm%.cube.H              attrfile=$PEMBROOK/l1%.hdr.h   attrout=hnorm%.cube.H
$	Count <$PEMBROOK/l1%.data.h sxbias=55. >norm%.H recifile=reci%.H scdfile=scd%.H
$$	Rm norm%.cube.H
$


clean&:
	-RM_CMD *.x *.o  a.out core junk j* *.H *.v


#include <SEP.obj.rules>
#include <SEP.prog.rules>
#include <SEP.idoc.rules>
