27                             const std::vector<HistAxis>& axes,
 
   28                             const std::vector<double>& cut_pos,
 
   29                             std::vector<Spectrum>& sigs,
 
   30                             std::vector<Spectrum>& bkgs);
 
   53                         const std::vector<HistAxis>& axes,
 
   54                         std::vector<double>& cut_pos);
 
   61                     const std::vector<HistAxis>& axes,
 
   62                     std::vector<double>& cut_pos);
 
void OptimizeCuts(const std::string &wildcard, double pot, const Cut &sigcut, const Cut &presel, const std::vector< HistAxis > &axes, std::vector< double > &cut_pos)
Repeatedly invoke OptimizeOneCut until the FOM increase becomes small. 
void MakeNMinusOneSpectra(SpectrumLoader &loader, const Cut &sigcut, const Cut &presel, const std::vector< HistAxis > &axes, const std::vector< double > &cut_pos, std::vector< Spectrum > &sigs, std::vector< Spectrum > &bkgs)
Make a series of spectra leaving out one cut in turn. 
process_name opflashCryoW ana
double FindOptimumCut(TH1 *hsig, TH1 *hbkg, double &best_fom)
Search for optimum cut position given signal and background histograms. 
_Cut< caf::SRSliceProxy > Cut
double OptimizeOneCut(const std::string &wildcard, double pot, const Cut &sigcut, const Cut &presel, const std::vector< HistAxis > &axes, std::vector< double > &cut_pos)
Scan all cuts and update the one giving the largest FOM gain.