#!/bin/csh -f
#    sort and awk must be gnusort and gnuawk
# 

if( $#argv != 1) then
	fordpmjet  configfile
	exit
endif


rm -f  temp_data
rm -f  temp_target

set first = 0
foreach f(`awk '$1 ~/[0-9]+/ {print $3}' $1 | sort |uniq`)
#           j: pb
	set j =  `echo $f | awk '{print tolower($1)}' `
	foreach g($EPICSTOP/Data/Media/*.GLB)
#                 x : Pb.GLB
		set x = $g:t
#                 y : Pb 
		set y = $x:r 
#                 z:  pb
		set z = `echo $y | awk '{print tolower($1)}' `

	 	if ( $z == $j ) then
	   	  if( $first == 0 ) then
#                      extract header
                    set l1 = ` awk '{print; exit}' $g `
		    set l2 = ` awk 'NR==2 {print; exit}' $g `
		    set l3 = ` awk 'NR==3 {print; exit}' $g `
		    awk 'NR<=3 {print};NR>3 {exit}' $g > temp_header	
   		    set l4 = ` awk 'NR==4 {print; exit}' $g `
		    echo $l4 | awk '{for(i=2; i<=NF; ++i) {print  $i}}' > temp_target

	  	    set first = 1
                  else	
	            set k = ` awk '{print; exit}' $g `
		    if( "$l1" != "$k" ) then
			echo  $l1 
	                echo  $k of $g
	                echo  differ
	                exit  1
	            endif
	            set k = ` awk 'NR==2 {print; exit}' $g `
	            if( "$l2" != "$k") then
			echo $l2
	                echo  $k of $g
	                echo differ
	                exit 1
	            endif
	            set k = ` awk 'NR==3 {print; exit}' $g `
	            if( "$l3" != "$k" ) then
			echo $l3
	                echo $k of $g
	                echo differ
	                exit 1
                     endif
   		    set l4 = ` awk 'NR==4 {print; exit}' $g `
         	    echo $l4 | awk '{for(i=2; i<=NF; ++i){ print  $i}}' >> temp_target
              	  endif
                  awk 'BEGIN {nl=0};\
                  NR>4 && nl==0 {printf("%10d%10d%10d%10d%10d%15.5f\n", $1,$2,$3,$4,$5,$6);nl++;next}; \
                  NR>4 {print; ++nl};nl==10 {nl=0}' $g >> temp_data
		  goto ok
               endif
	end	
	echo "no Glauber data found for component media: " $f
	exit 1
ok:
end

awk 'BEGIN{nl=0}; {++nl;printf("%s %s", $0, "| "); if(nl==10) {print "";nl=0} }' temp_data  > temp_data2

#  uniq -w65   | has a potential dangour due to floating point data accuracy in field 6.
#  so we use dirty method.below

sort -n -k 1,2 -k 6,7 -k 3,4 -k 2,3 temp_data2  | \
awk 'BEGIN{for(i=1;i<=6;++i) prev[i]=-100}; {j =0;  for(i=1;i<=5;++i) { if(prev[i] != $i) j=1; prev[i]=$i};  if( (prev[6] -$6) < -0.001 ||  (prev[6] -$6) > 0.001 ) j=1;  prev[6]=$6; if(j !=0 ) print}'  \
  | awk 'BEGIN {RS="|"; ORS="\n"}; {print}'  | awk 'NF>0' > temp_data
   sort temp_target | uniq > temp_target2
 
   set ntarget = ` wc -l temp_target2 `
#   echo $l1
#   echo $l2
#   echo	"   " $l3
   awk '{print}' temp_header
   echo  $ntarget[1] | awk '{printf("%4d: ",$1)}'
   awk	'{printf("%4d",$1)}' temp_target2
   echo ""
   cat temp_data

   rm  -f temp_data temp_data2  temp_target temp_target2 temp_header


   







