00001 // checknullbatches.hh 00002 // 00003 // Check for and eliminate batches with essentially zero intensity 00004 // (ie from blank images): this is surprisingly difficult 00005 // 00006 // Control parameters from input or default: 00007 // ResoFraction fraction of maximum resolution to use (ie low reso only) 00008 // NullNegativeReject proportion of negative reflections above which to reject 00009 // 00010 // Algorithm: (far from perfect) 00011 // For each batch accumulate Sum(I), Sum(I/sigI), N(I<0), N, for low resolution 00012 // reflections only (within ResoFraction of maximum resolution) 00013 // hence Zf(batch) = fraction of negatives 00014 // Split batches into 1->4 parts at least 10 batches/part 00015 // For each part, get <Zf>, SD(Zf) over batches in the part 00016 // Discard the part with the largest SD(Zf) (unless only one part), average the rest 00017 // to get <Zf>, SD(Zf) 00018 // Set Zf acceptance level = Max(NullNegativeReject, <Zf> + 4 SD(Zf) ) 00019 // ie this may increase limit if most images are very weak 00020 // 00021 00022 // 00023 00024 #ifndef CHECKNULLBATCHES_HEADER 00025 #define CHECKNULLBATCHES_HEADER 00026 00027 #include "hkl_unmerge.hh" 00028 #include "Output.hh" 00029 00030 namespace scala { 00031 int CheckNullBatches(hkl_unmerge_list& hkl_list, 00032 const file_select& file_sel, 00033 phaser_io::Output& output); 00034 } 00035 00036 #endif 00037
1.6.3