herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
exsample::exponential_generator< Function, Random > Class Template Reference

The generator for sudakov-type distributions. More...

#include <exponential_generator.h>

Inheritance diagram for exsample::exponential_generator< Function, Random >:

Public Member Functions

 exponential_generator ()
 default constructor
 
void initialize ()
 initialize this generator
 
void finalize ()
 finalize this generator
 
double generate (double enhance=1.)
 generate an event, returning the sign of the weight or zero for an event below the evolution cutoff
 
double generate (double cutoff, double enhance)
 generate an event, returning the sign of the weight or zero for an event below the evolution cutoff
 
const std::vector< double > & last_point () const
 return the last sampled phase space point
 
double last_value () const
 return the last evaluated function
 
void reject ()
 indicate that the last generated point has been rejected
 
bool initialized () const
 return true, if this generator has been initialized
 
bool did_split () const
 return true, if at least one split has been performed
 
Function & function ()
 access the function
 
void function (Function *f)
 set the function
 
adaption_infosampling_parameters ()
 access the adaption_info object
 
void docompensate (bool yes=true)
 indicate, if compensation should be applied
 
void detuning (double val)
 set the detuning parameter
 
template<class OStream >
void put (OStream &os) const
 put to ostream
 
template<class IStream >
void get (IStream &is)
 get from istream
 

Private Member Functions

bool split ()
 check for and possibly split the last selected cell
 
void get_exponent ()
 get the projection of the density integrating over every variable to be sampled, except the evolution variable for the indicated parameter point. More...
 
void compensate ()
 compensate
 
std::set< std::vector< double > > parameter_points ()
 get all parameter points to build all possible sub tree hashes
 
void recursive_parameter_points (std::set< std::vector< double > > &, std::vector< double > &, size_t)
 get all parameter points to build all possible sub tree hashes
 

Private Attributes

Function * function_
 function to be sampled
 
unsigned long check_events_
 the number of events after which a cell is checked for splits
 
adaption_info adaption_info_
 the adaption info object
 
binary_tree< cellroot_cell_
 the root cell
 
rnd_generator< Random > rnd_gen_
 the random number generator to be used
 
bool did_split_
 wether a split has already been performed
 
bool initialized_
 wether this generator has been initialized
 
std::size_t evolution_variable_
 the position of the evolution variable
 
double evolution_cutoff_
 the cutoff on the evolution variable
 
std::vector< bool > sample_variables_
 flags of variables to be sampled including the evolution variable
 
std::vector< bool > sample_other_variables_
 flags of variables to be sampled excluding the evolution variable
 
std::map< std::size_t, std::vector< double > > parameter_splits_
 the splits in any parameter done so far (including the evolution variable)
 
binary_tree< cell >::iterator last_cell_
 the last selected cell
 
std::vector< double > last_point_
 the last sampled phasespace point
 
double last_value_
 the last function value
 
bit_container< parameter_hash_bits > last_parameter_bin_
 the last parameter bin id
 
std::map< bit_container< parameter_hash_bits >, linear_interpolatorexponents_
 map parameter bin ids to exponent interpolations
 
std::vector< double > last_exponent_integrand_
 the last exponent integrand
 
std::map< bit_container< parameter_hash_bits >, linear_interpolator >::iterator last_exponent_
 the last exponent
 
bool compensating_
 wether or not we are compensating
 
integral_accessor integral_accessor_
 the integral accessor to be used
 
parametric_missing_accessor missing_accessor_
 the missing events accessor to be used
 
parametric_selector parametric_selector_
 the parametric selector to be used
 
parametric_selector exponent_selector_
 the parametric selector to be used for parameter bins
 
parametric_sampling_selector< rnd_generator< Random > > parametric_sampler_
 the parametric sampler to be used
 
unsigned long attempts_
 the number of trials in the veto loo so far
 
unsigned long accepts_
 the number of accepted events so far
 
unsigned long splits_
 number of splits done
 
bool docompensate_
 true, if compensation should be applied
 
double detuning_
 a detuning factor to be applied to the overestimate
 

Detailed Description

template<class Function, class Random>
class exsample::exponential_generator< Function, Random >

The generator for sudakov-type distributions.

Definition at line 28 of file exponential_generator.h.

Member Function Documentation

◆ get_exponent()

template<class Function, class Random>
void exsample::exponential_generator< Function, Random >::get_exponent ( )
private

get the projection of the density integrating over every variable to be sampled, except the evolution variable for the indicated parameter point.

the k'th entry in last_exponent_integrand_ is the value in the evolution variable bin from evolution_splits_[k] to evolution_splits_[k+1]


The documentation for this class was generated from the following file: