6161
6262# find min and max scatter bins in the SimSET file
6363min_scatter_bin_num=` ${PRINTHEADER} ${simset_file} | grep " Binning: min number of scatters" | awk ' { print $6 }' `
64+
65+ echo " Min scatter bin number: $min_scatter_bin_num "
66+
6467max_scatter_bin_num=` ${PRINTHEADER} ${simset_file} | grep " Binning: max number of scatters" | awk ' { print $6 }' `
6568
69+ echo " Max scatter bin number: $max_scatter_bin_num "
70+
71+ en1_bin_num=` ${PRINTHEADER} ${simset_file} | grep " Binning: number of Eenergy(1) bins" | awk ' { print $6 }' `
72+
73+ echo " Energy(1) bin number: $en1_bin_num "
74+
75+ en2_bin_num=` ${PRINTHEADER} ${simset_file} | grep " Binning: number of Energy(2) bins" | awk ' { print $6 }' `
76+
77+ echo " Energy(2) bin number: $en2_bin_num "
78+
79+
80+ echo " DEBUG: All energy-related lines:"
81+ ${PRINTHEADER} ${simset_file} | grep -i " energy"
82+
83+
6684# find scatter_parameter (maybe called scatter_randoms_parameter in the future)
6785scatter_parameter=` ${PRINTHEADER} ${simset_file} | grep " Binning: scatter.*parameter" | awk ' { print $4 }' `
6886
@@ -83,23 +101,34 @@ all_scatter_bin_nums=`count $min_scatter_bin_num $max_scatter_bin_num`
83101
84102echo Executing ${conv_cmdline}
85103
104+ for en1 in ` count 0 $(( $en1_bin_num - 1 )) ` ;
105+ do for en2 in ` count 0 $(( $en2_bin_num - 1 )) ` ; do
106+ en_bin_num=$(( ${en2_bin_num} * $en1 + $en2 ))
107+ en_dataset=$(( ${en_bin_num} * ${num_scatter_bins} ))
108+ en_name=__${en1} _${en2}
109+ echo " extracting energy bin $en_bin_num , dataset ${en_dataset} , corresponding to $en1 , $en2 "
110+
86111case $scatter_parameter in
87112
88113 0)
89- eval ${conv_cmdline} 0 total
114+ eval ${conv_cmdline} 0 total${en_name}
90115 ;;
91116
92117 1|6)
93118 if [ $min_scatter_bin_num == 0 ]; then
94- eval ${conv_cmdline} 0 noscatter
119+ dataset=$(( ${en_dataset} + 0 ))
120+ eval ${conv_cmdline} ${dataset} noscatter${en_name}
95121 if [ $max_scatter_bin_num -ge 1 ]; then
96- eval ${conv_cmdline} 1 scatter
122+ dataset=$(( ${en_dataset} + 1 ))
123+ eval ${conv_cmdline} ${dataset} scatter${en_name}
97124 if [ $scatter_parameter == 6 ]; then
98- eval ${conv_cmdline} 2 randoms
125+ dataset=$(( ${en_dataset} + 2 ))
126+ eval ${conv_cmdline} ${dataset} randoms${en_name}
99127 fi
100128 else
101129 if [ $scatter_parameter == 6 ]; then
102- eval ${conv_cmdline} 1 randoms
130+ dataset=$(( ${en_dataset} + 1 ))
131+ eval ${conv_cmdline} ${dataset} randoms${en_name}
103132 fi
104133 fi
105134 fi
@@ -113,8 +142,9 @@ case $scatter_parameter in
113142 do
114143 scatter_bin_num=$(( ${num_scatter_bins} * $i + $j ))
115144 echo extracting scatter bin $scatter_bin_num
116- echo ${conv_cmdline} ${scatter_bin_num} blue${i} _pink${j} ;
117- eval ${conv_cmdline} ${scatter_bin_num} blue${i} _pink${j} ;
145+ dataset=$(( ${en_dataset} + ${scatter_bin_num} ))
146+ echo ${conv_cmdline} ${dataset} blue${i} _pink${j}${en_name} ;
147+ eval ${conv_cmdline} ${dataset} blue${i} _pink${j}${en_name} ;
118148 done
119149 done
120150
@@ -131,7 +161,7 @@ case $scatter_parameter in
131161 do for j in $all_scatter_bin_nums
132162 do
133163 k=$(( $i + $j ))
134- current=blue${i} _pink${j} .hs
164+ current=blue${i} _pink${j}${en_name} .hs
135165 if [ $k -eq 0 ]; then all_trues=" $all_trues $current " ; fi
136166 if [ $k -eq 1 ]; then all_singles=" $all_singles $current " ; fi
137167 if [ $k -eq 2 ]; then if [ $i -eq 1 ]; then all_singles12=" $all_singles12 $current " ; fi ; fi ;
@@ -142,15 +172,15 @@ case $scatter_parameter in
142172 done
143173
144174 # TODO we currently pipe all output to /dev/null because there's a lot of stuff because blocksizes do not work
145- stir_math -s --add trues $all_trues >& /dev/null
146- stir_math -s --add singles $all_singles >& /dev/null
175+ stir_math -s --add trues${en_name} $all_trues >& /dev/null
176+ stir_math -s --add singles${en_name} $all_singles >& /dev/null
147177 if [ ! -z " $all_singles12 " ]; then
148- stir_math -s --add doubles11 $all_singles12 >& /dev/null
178+ stir_math -s --add doubles11${en_name} $all_singles12 >& /dev/null
149179 fi
150180 if [ ! -z " $all_doubles1 " ]; then
151- stir_math -s --add doubles20 $all_doubles1 $all_doubles2 >& /dev/null
181+ stir_math -s --add doubles20${en_name} $all_doubles1 $all_doubles2 >& /dev/null
152182 fi
153- stir_math -s --add multiples $all_multiples >& /dev/null
183+ stir_math -s --add multiples${en_name} $all_multiples >& /dev/null
154184
155185 rm -f blue* s
156186
@@ -169,12 +199,13 @@ case $scatter_parameter in
169199 do
170200 echo extracting scatter bin $scatter_bin_num
171201 idx=$(( scatter_bin_num - min_scatter_bin_num))
172- echo ${conv_cmdline} ${idx} scatter${scatter_bin_num} ;
173- eval ${conv_cmdline} ${idx} scatter${scatter_bin_num} ;
202+ dataset=$(( ${en_dataset} + ${idx} ))
203+ echo ${conv_cmdline} ${dataset} scatter${scatter_bin_num}${en_name} ;
204+ eval ${conv_cmdline} ${dataset} scatter${scatter_bin_num}${en_name} ;
174205 done
175206 if [ $scatter_parameter == 10 -o $scatter_parameter == 9 ]; then
176- echo ${conv_cmdline} $(( max_scatter_bin_num - min_scatter_bin_num + 1 )) randoms
177- eval ${conv_cmdline} $(( max_scatter_bin_num - min_scatter_bin_num + 1 )) randoms
207+ dataset= $(( ${en_dataset} + max_scatter_bin_num - min_scatter_bin_num + 1 ))
208+ echo ${conv_cmdline} ${dataset} randoms${en_name}
178209 fi
179210 ;;
180211
@@ -184,3 +215,6 @@ case $scatter_parameter in
184215 ;;
185216
186217esac
218+
219+ done
220+ done
0 commit comments