Changeset 9457 for trunk/ippScripts/scripts/detrend_reject_exp.pl
- Timestamp:
- Oct 10, 2006, 8:52:00 AM (20 years ago)
- File:
-
- 1 edited
-
trunk/ippScripts/scripts/detrend_reject_exp.pl (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/ippScripts/scripts/detrend_reject_exp.pl
r9453 r9457 78 78 my @expTags; # Array of exposure IDs 79 79 my @means; # Array of means 80 my @ stdevs; # Array of stdevs80 my @variances; # Array of variances 81 81 my @meanStdevs; # Array of mean stdevs 82 82 my @accept; # Array of accept flags … … 91 91 push @expTags, $exposure->{exp_tag}; 92 92 push @means, $exposure->{bg}; 93 push @ stdevs, $exposure->{bg_stdev};94 push @meanStdevs, $exposure->{bg_mean_stdev}; 93 push @variances, ($exposure->{bg_stdev}*$exposure->{bg_stdev}); 94 push @meanStdevs, $exposure->{bg_mean_stdev}; ### XXX are we keeping this or stdev(mean)? 95 95 push @accept, $exposure->{accept}; 96 96 push @include, $exposure->{include}; … … 98 98 my $meanStats = Statistics::Descriptive::Sparse->new(); # Statistics calculator 99 99 $meanStats->add_data(@means); 100 my $ stdevStats = Statistics::Descriptive::Sparse->new(); # Statistics calculator101 $ stdevStats->add_data(@stdevs);100 my $variancestats = Statistics::Descriptive::Sparse->new(); # Statistics calculator 101 $variancestats->add_data(@variances); 102 102 my $meanStdevStats = Statistics::Descriptive::Sparse->new(); # Statistics calculator 103 103 $meanStdevStats->add_data(@meanStdevs); … … 111 111 if not exists REJECT_MEAN_STDEV->{$det_type}; 112 112 113 # rejections based on comparison with ensemble statistics 114 my $mean = $meanStats->mean(); 115 my $meanStdev = $meanStats->standard_deviation(); 116 if (not defined $meanStdev) { $meanStdev = 0; } 117 118 my $var = $variances->mean(); 119 my $varStdev = $variances->standard_deviation(); 120 113 121 # Go through again to do rejection, and update the database for each exposure 114 122 my $numChanges = 0; # Number of exposures with changed status … … 117 125 my $command = "$dettool -updateresidexp -det_id $det_id -iteration $iter -exp_tag $expTag"; # Command to run 118 126 my $reject = 0; # Reject this exposure? 119 my $not_reject = 0; # Reject this exposure? 127 120 128 if (not $accept[$i]) { 121 129 # Rejected this at an earlier stage 122 130 print "Rejecting $expTag based on earlier determination.\n"; 123 131 $reject = 1; 124 } elsif (defined REJECT_MEAN->{$det_type} and 125 defined $meanStats->standard_deviation() and 126 $meanStats->standard_deviation() > 0 and 127 ($means[$i] - $meanStats->mean()) / $meanStats->standard_deviation() > REJECT_MEAN->{$det_type}) { 128 print "Rejecting $expTag based on bad mean: " . 129 (($means[$i] - $meanStats->mean()) / $meanStats->standard_deviation()) . 130 " vs " . REJECT_MEAN->{$det_type} . "\n"; 131 $not_reject = 1; 132 } elsif (defined REJECT_STDEV->{$det_type} and 133 defined $stdevStats->standard_deviation() and 134 $stdevStats->standard_deviation() > 0 and 135 ($stdevs[$i] - $stdevStats->mean()) / $stdevStats->standard_deviation() > 136 REJECT_STDEV->{$det_type}) { 137 print "Rejecting $expTag based on bad stdev: " . 138 (($stdevs[$i] - $stdevStats->mean()) / $stdevStats->standard_deviation()) . 139 " vs " . REJECT_STDEV->{$det_type} . "\n"; 140 $not_reject = 1; 141 } elsif (defined REJECT_MEAN_STDEV->{$det_type} and 142 defined $meanStdevStats->standard_deviation() and 143 $meanStdevStats->standard_deviation() > 0 and 144 ($meanStdevs[$i] - $meanStdevStats->mean()) / $meanStdevStats->standard_deviation() > 145 REJECT_MEAN_STDEV->{$det_type}) { 146 print "Rejecting $expTag based on bad stdev: " . 147 (($meanStdevs[$i] - $meanStdevStats->mean()) / $meanStdevStats->standard_deviation()) . 148 " vs " . REJECT_MEAN_STDEV->{$det_type} . "\n"; 149 $not_reject = 1; 150 } 151 132 goto UPDATE; 133 } 134 if (REJECT_MEAN->{$det_type} && ($meanStdev > 0)) { 135 my $nSigma = abs($means[$i] - $mean) / $meanStdev; 136 if ($nSigma > REJECT_MEAN->{$det_type}) { 137 print "Rejecting $expTag based on outlier mean value: " . 138 "$means[$i] is $nSigma vs " . REJECT_MEAN->{$det_type} . "\n"; 139 $reject = 1; 140 goto UPDATE; 141 } 142 } else { 143 print "no rejection for exposure mean\n"; 144 } 145 if (defined REJECT_STDEV->{$det_type} && ($varStdev >0)) { 146 my $nSigma = abs($var[$i] - $var) / $varStdev; 147 if ($nSigma > REJECT_STDEV->{$det_type}) { 148 print "Rejecting $expTag based on outlier stdev: " . 149 sqrt($variances[$i]) " is $nSigma vs " . REJECT_STDEV->{$det_type} . "\n"; 150 $reject = 1; 151 goto UPDATE; 152 } 153 } else { 154 print "no rejection for exposure stdev\n"; 155 } 156 157 UPDATE: 152 158 if ($reject) { 153 159 $command .= ' -reject'; … … 159 165 $numChanges++; 160 166 } 161 167 162 168 unless ($no_update) { 163 169 # Update … … 182 188 # Put the result into the database 183 189 unless ($no_update) { 184 my $command = "$dettool -adddetrunsummary -det_id $det_id -iteration $iter " .185 " -bg " . $meanStats->mean() . " -bg_stdev " . $stdevStats->mean() .186 " -bg_mean_stdev " . $meanStdev Stats->mean();190 my $command = "$dettool -adddetrunsummary -det_id $det_id -iteration $iter" . 191 " -bg " . $mean . " -bg_stdev " . sqrt($var) . 192 " -bg_mean_stdev " . $meanStdev; 187 193 $command .= " -accept" if $master; 188 194
Note:
See TracChangeset
for help on using the changeset viewer.
