Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-08-06 09:24:21

0001 // -*- C++ -*-
0002 //
0003 // adaption_info.h is part of ExSample -- A Library for Sampling Sudakov-Type Distributions
0004 //
0005 // Copyright (C) 2008-2019 Simon Platzer -- simon.plaetzer@desy.de, The Herwig Collaboration
0006 //
0007 // ExSample is licenced under version 3 of the GPL, see COPYING for details.
0008 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
0009 //
0010 //
0011 #ifndef EXSAMPLE_adaption_info_h_included
0012 #define EXSAMPLE_adaption_info_h_included
0013 
0014 namespace exsample {
0015 
0016   /// \brief adaption_info is a container for parameters relevant to
0017   /// sampling and adaption.
0018   struct adaption_info {
0019 
0020     /// the default constructor
0021     adaption_info()
0022       : dimension(0), lower_left(), upper_right(),
0023     presampling_points(100000),
0024     histo_depth(2), adapt(), freeze_grid(0),
0025     maxtry(200000), efficiency_threshold(.9),
0026     gain_threshold(.1) {}
0027 
0028     /// the phasespace dimension
0029     std::size_t dimension;
0030 
0031     /// the lower left corner of the function's support
0032     std::vector<double> lower_left;
0033 
0034     /// the upper right corner of the function's support
0035     std::vector<double> upper_right;
0036 
0037     /// the number of presampling points
0038     unsigned long presampling_points;
0039 
0040     /// use 2^histo_depth bins in efficiency histograms
0041     std::size_t histo_depth;
0042 
0043     /// indicate which dimensions should be adapted
0044     std::vector<bool> adapt;
0045 
0046     /// the number of accepted events after the grid is frozen
0047     unsigned long freeze_grid;
0048 
0049     /// the maximum number of misses allowed
0050     unsigned long maxtry;
0051 
0052     /// the efficiency threshold below which splits are considered
0053     double efficiency_threshold;
0054 
0055     /// a minimum gain for splits to be performed
0056     double gain_threshold;
0057 
0058     /// put to ostream
0059     template<class OStream>
0060     void put(OStream& os) const;
0061 
0062     /// get from istream
0063     template<class IStream>
0064     void get(IStream& is);
0065 
0066   };
0067 
0068 }
0069 
0070 #include "adaption_info.icc"
0071 
0072 #endif // EXSAMPLE_adaption_info_h_included