herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
Herwig::CellGridSampler Class Reference

CellGridSampler samples XCombs bins using CellGrids. More...

#include <CellGridSampler.h>

Inheritance diagram for Herwig::CellGridSampler:

Public Member Functions

Ptr< CellGridSampler >::ptr cloneMe () const
 Clone this object.
 
virtual double generate ()
 Generate the next point; store the point in lastPoint() and its weight using select(); if noMaxInfo is true, do not throw NewMaximum or UpdateCrossSections exceptions.
 
virtual void initialize (bool progress)
 Initialize this bin sampler. More...
 
virtual void finalize (bool)
 Finalize this sampler.
 
virtual void adapt ()
 Adapt.
 
virtual bool existsGrid () const
 Return true, if grid data exists for this sampler.
 
virtual void saveGrid () const
 Save grid data.
 
const vector< int > & pre_adaption_splits () const
 The splittings for each dimension befor adaption.
 
Standard constructors and destructors.
 CellGridSampler ()
 The default constructor.
 
virtual ~CellGridSampler ()
 The destructor.
 
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from Herwig::BinSampler
Ptr< BinSampler >::ptr cloneMe () const
 Clone this object.
 
double evaluate (vector< double > p, bool remap=true)
 Evaluate the cross section.
 
double bias () const
 Return the bias with which this sampler is selected. More...
 
void bias (double b)
 Set the bias with which this sampler is selected.
 
void eventHandler (tStdEHPtr eh)
 Set the event handler.
 
tStdEHPtr eventHandler () const
 Return the event handler.
 
void sampler (Ptr< GeneralSampler >::tptr)
 Set the containing sampler.
 
Ptr< GeneralSampler >::tptr sampler () const
 Get the containing sampler.
 
int bin () const
 Return the bin.
 
void bin (int b)
 Set the bin.
 
string process () const
 Return a string describing the process handled by this sampler.
 
string shortprocess () const
 Return a short string describing the process handled by this sampler.
 
string id () const
 Return a string identifying the process handled by this sampler.
 
const vector< double > & lastPoint () const
 Return the last generated point.
 
vector< double > & lastPoint ()
 Access the last generated point.
 
double referenceWeight () const
 Return the reference weight to be used.
 
void referenceWeight (double w)
 Set the reference weight to be used.
 
virtual bool canUnweight () const
 Return true, if this sampler can provide unweighted events; if the proposal density is not an overestimate, weights larger than one can be generated, the handling of these points being subject to the GeneralSampler class.
 
virtual bool adaptsOnTheFly () const
 Return true, if this sampler adapts on the fly while generating events. More...
 
virtual bool compensating () const
 If this sampler features a compensation algorithm, return true if more events need to be generated to finish the compensation.
 
bool weighted () const
 Return true, if weighted events should be generated.
 
void doWeighted (bool yes=true)
 Indicate that weighted events should be generated.
 
void fillRemappers (bool progress)
 Fill and finalize the remappers present.
 
void saveRemappers () const
 Write remappers to grid file.
 
void saveIntegrationData () const
 Write integration data to grid files.
 
void readIntegrationData ()
 Read integration data from grid files.
 
void setupRemappers (bool progress)
 Read remappers from grid file.
 
void runIteration (unsigned long n, bool progress)
 Run a single iteration of n points, optionally printing a progress bar to cout. More...
 
bool initialized () const
 Return true, if this sampler has already been initialized.
 
void isInitialized ()
 Indicate that this sampler has already been initialized.
 
bool integrated () const
 Return true, if integration has already been performed.
 
bool remappersFilled () const
 Return true, if remappers have been set up.
 
bool hasGrids () const
 Return true, if this sampler has already read grid data.
 
void didReadGrids ()
 Indicate that this sampler has already read grid data.
 
virtual CrossSection integratedXSec () const
 Return the total integrated cross section determined from the Monte Carlo sampling so far.
 
virtual CrossSection integratedXSecErr () const
 Return the error on the total integrated cross section determined from the Monte Carlo sampling so far.
 
int dimension () const
 Return the dimension.
 
unsigned long initialPoints () const
 Return the number of points to be used for initial integration.
 
void initialPoints (unsigned long n)
 Set the number of points to be used for initial integration.
 
size_t nIterations () const
 Return the number of iterations to be considered for initialization.
 
void nIterations (size_t n)
 Set the number of iterations to be considered for initialization.
 
void enhancementFactor (double f)
 Set the factor to enhance the number of points for the next iteration.
 
double enhancementFactor () const
 Return the factor to enhance the number of points for the next iteration.
 
string randomNumberString () const
 Return the folder for the random number plots.
 
double kappa () const
 In the AlmostUnweighted mode we do not need to unweight the events to the reference weight. More...
 
 BinSampler ()
 The default constructor.
 
virtual ~BinSampler ()
 The destructor.
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from Herwig::MultiIterationStatistics
void nextIteration ()
 Indicate the start of a new iteration.
 
const vector< GeneralStatistics > & iterations () const
 Return the iterations done so far.
 
vector< GeneralStatistics > & iterations ()
 Access the iterations done so far.
 
virtual double chi2 () const
 Return the last calculated chi^2.
 
virtual double averageWeight (bool useAll=false) const
 Return the average weight.
 
virtual double averageAbsWeight (bool useAll=false) const
 Return the average absolute weight.
 
virtual double averageWeightVariance (bool useAll=false) const
 Return the variance of the average weight.
 
virtual double averageAbsWeightVariance (bool useAll=false) const
 Return the variance of the average absolute weight.
 
unsigned int minIterationPoints () const
 Return the minimum number of events per iteration to take this iteration into account when calculating the total cross section.
 
void minIterationPoints (unsigned int n)
 Set the minimum number of events per iteration to take this iteration into account when calculating the total cross section.
 
bool useAllIterations () const
 Return true if integrals should be combined from all iterations.
 
void doUseAllIterations (bool yes=true)
 Indicate that integrals should be combined from all iterations.
 
void fromXML (const XML::Element &)
 Fill statistics data from an XML element.
 
XML::Element toXML () const
 Return an XML element for the data of this statistics.
 
 MultiIterationStatistics ()
 The default constructor.
 
virtual ~MultiIterationStatistics ()
 The destructor.
 
void put (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void get (PersistentIStream &is)
 Function used to read in object persistently. More...
 
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently. More...
 
- Public Member Functions inherited from ThePEG::Interfaced
virtual bool defaultInit ()
 
PPtr getParticle (PID) const
 
PDPtr getParticleData (PID) const
 
bool used () const
 
void useMe () const
 
tEGPtr generator () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
PPtr getParticle (PID) const
 
PDPtr getParticleData (PID) const
 
bool used () const
 
void useMe () const
 
tEGPtr generator () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::InterfacedBase
string fullName () const
 
string name () const
 
string path () const
 
string comment () const
 
void setup (istream &is)
 
virtual void debugme () const
 
void update ()
 
void init ()
 
virtual bool preInitialize () const
 
void initrun ()
 
void finish ()
 
void touch ()
 
void reset ()
 
void clear ()
 
InitState state () const
 
bool locked () const
 
bool touched () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
void update ()
 
void init ()
 
virtual bool preInitialize () const
 
void initrun ()
 
void finish ()
 
void touch ()
 
void reset ()
 
void clear ()
 
InitState state () const
 
bool locked () const
 
bool touched () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
- Public Member Functions inherited from ThePEG::Base
void debug () const
 
- Public Member Functions inherited from ThePEG::Pointer::ReferenceCounted
CounterType referenceCount () const
 
- Public Member Functions inherited from ThePEG::Named
 Named (const string &newName=string())
 
 Named (const Named &)=default
 
const string & name () const
 
bool operator== (const Named &other) const
 
bool operator< (const Named &other) const
 
- Public Member Functions inherited from Herwig::GeneralStatistics
void reset ()
 Reset these statistics.
 
double lastWeight () const
 Return the last weight encountered.
 
double maxWeight () const
 Return the maximum absolute weight.
 
double minWeight () const
 Return the minimum absolute weight.
 
void maxWeight (double w)
 Set the maximum absolute weight.
 
void minWeight (double w)
 Set the minimum absolute weight.
 
double sumWeights () const
 Return the sum of weights.
 
double sumSquaredWeights () const
 Return the sum of squared weights.
 
double sumAbsWeights () const
 Return the sum of absolute weights.
 
unsigned long selectedPoints () const
 Return the number of selected points.
 
unsigned long acceptedPoints () const
 Return the nnumber of accepted points.
 
unsigned long nanPoints () const
 Return the number of points where a nan or inf weight has been encountered.
 
unsigned long allPoints () const
 Return the number of all points.
 
virtual double averageWeight () const
 Return the average weight.
 
virtual double averageAbsWeight () const
 Return the average absolute weight.
 
double weightVariance () const
 Return the variance of weights.
 
double absWeightVariance () const
 Return the variance of absolute weights.
 
virtual double averageWeightVariance () const
 Return the variance of the average weight.
 
virtual double averageAbsWeightVariance () const
 Return the variance of the average absolute weight.
 
virtual void select (double weight, bool doIntegral=true)
 Select an event.
 
virtual void accept ()
 Accept an event.
 
virtual void reject ()
 Reject an event.
 
void fromXML (const XML::Element &)
 Fill statistics data from an XML element.
 
XML::Element toXML () const
 Return an XML element for the data of this statistics.
 
 GeneralStatistics ()
 The default constructor.
 
virtual ~GeneralStatistics ()
 The destructor.
 
void put (PersistentOStream &os) const
 Function used to write out object persistently. More...
 
void get (PersistentIStream &is)
 Function used to read in object persistently. More...
 

Static Public Member Functions

static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- Static Public Member Functions inherited from Herwig::BinSampler
static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- Static Public Member Functions inherited from Herwig::MultiIterationStatistics
static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- Static Public Member Functions inherited from ThePEG::Interfaced
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::InterfacedBase
static void Init ()
 
- Static Public Member Functions inherited from ThePEG::Base
static void Init ()
 

Protected Member Functions

Clone Methods.
virtual IBPtr clone () const
 Make a simple clone of this object. More...
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane. More...
 
Clone Methods.
Clone Methods.
- Protected Member Functions inherited from ThePEG::Interfaced
void reporeg (IBPtr object, string name) const
 
bool setDefaultReference (PtrT &ptr, string classname, string objectname)
 
 Interfaced (const string &newName)
 
 Interfaced (const Interfaced &i)
 
void setGenerator (tEGPtr generator)
 
- Protected Member Functions inherited from ThePEG::InterfacedBase
 InterfacedBase (string newName)
 
 InterfacedBase (const InterfacedBase &i)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinit ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
virtual void readSetup (istream &is)
 
virtual void doupdate ()
 
virtual void doinit ()
 
virtual void doinitrun ()
 
virtual void dofinish ()
 
virtual IVector getReferences ()
 
virtual void rebind (const TranslationMap &)
 
- Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
- Protected Member Functions inherited from ThePEG::Named
const Namedoperator= (const Named &other)
 
const string & name (const string &newName)
 

Private Member Functions

CellGridSampleroperator= (const CellGridSampler &)=delete
 The assignment operator is private and must never be called. More...
 
- Private Member Functions inherited from ExSample::SimpleCellGrid
 SimpleCellGrid ()
 Default constructor.
 
 SimpleCellGrid (const std::vector< double > &newLowerLeft, const std::vector< double > &newUpperRight, bool keepWeightInformation=true, double newWeight=0.0)
 Construct given boundaries and a weight.
 
virtual CellGridmakeInstance () const
 Produce a new instance of a cell grid.
 
virtual CellGridmakeInstance (const std::vector< double > &newLowerLeft, const std::vector< double > &newUpperRight, double newWeight=0.0) const
 Produce a new instance of a cell grid.
 
virtual void split (std::size_t newSplitDimension, double newSplitCoordinate)
 Split this cell grid in the given dimension and coordinate, if it is a leaf.
 
virtual void splitter (size_t dim, int rat)
 
const SimpleCellGridfirstChild () const
 Return the first child.
 
SimpleCellGridfirstChild ()
 Access the first child.
 
const SimpleCellGridsecondChild () const
 Return the second child.
 
SimpleCellGridsecondChild ()
 Access the second child.
 
const std::vector< std::pair< Counter, Counter > > & weightInformation () const
 Return weight information for adaption steps.
 
std::vector< std::pair< Counter, Counter > > & weightInformation ()
 Access weight information for adaption steps.
 
virtual void updateWeightInformation (const std::vector< double > &p, double w)
 Update the weight information for the given point.
 
void adjustReferenceWeight (double w)
 Adjust the reference weight.
 
double getReferenceWeight () const
 Return the reference weight.
 
virtual void adapt (double gain, double epsilon, std::set< SimpleCellGrid *> &newCells)
 Perform a default adaption step, splitting along the dimension which shows up the largest difference in average weights; if this exceeds gain, perform the split.
 
virtual void setWeights ()
 Update the weights of the cells from information accumulated so far.
 
template<class RndGenerator >
void sampleFlatPoint (std::vector< double > &p, RndGenerator &rnd) const
 Sample a point flat in this cell.
 
template<class RndGenerator >
void sampleFlatPoint (std::vector< double > &p, const std::vector< bool > &parameterFlags, RndGenerator &rnd) const
 Sample a point flat in this cell, keeping parameters fixed.
 
template<class RndGenerator , class Function >
void explore (std::size_t nPoints, RndGenerator &rnd, Function &f, std::set< SimpleCellGrid *> &newCells, std::ostream &warn)
 Explore the cell grid, given a number of points to be sampled in each cell; the weights of the cell will contain the maximum weight encountered. More...
 
template<class RndGenerator >
SimpleCellGridselectCell (RndGenerator &rnd)
 Select a cell.
 
template<class RndGenerator , class Function >
double sample (RndGenerator &rnd, Function &f, std::vector< double > &p, bool unweight, bool adjustReference)
 Sample a point and return its weight.
 
template<class RndGenerator , class Function >
std::pair< double, double > generate (RndGenerator &rnd, Function &f, std::vector< double > &p)
 Sample a point and return its weight.
 
template<class RndGenerator , class Function >
std::pair< double, double > generate (RndGenerator &rnd, Function &f, std::vector< double > &p, const std::vector< bool > &parameterFlags)
 Sample a point and return its weight.
 
virtual void fromXML (const XML::Element &)
 Fill CellGrid data from an XML element.
 
virtual XML::Element toXML () const
 Return an XML element for the data of this CellGrid.
 
- Private Member Functions inherited from ExSample::CellGrid
 CellGrid ()
 Default constructor.
 
 CellGrid (const std::vector< double > &newLowerLeft, const std::vector< double > &newUpperRight, double newWeight=0.0)
 Construct given boundaries and a weight.
 
virtual ~CellGrid ()
 The destructor.
 
void boundaries (const std::vector< double > &newLowerLeft, const std::vector< double > &newUpperRight)
 Set the boundaries.
 
const std::vector< double > & lowerLeft () const
 Return the lower left corner of the cell grid.
 
const std::vector< double > & upperRight () const
 Return the upper right corner of the cell grid.
 
const std::vector< bool > & upperBoundInclusive () const
 Flag in which dimension this cell is upper bound inclusive.
 
double volume (const std::vector< double > &lowerLeft, const std::vector< double > &upperRight) const
 Calculate a volume given upper and lower bound.
 
bool isLeaf () const
 Return true, if this is a leaf in the tree.
 
std::size_t depth () const
 Return the depth of this grid.
 
std::size_t size () const
 Return the number of nodes contained in this grid.
 
std::pair< std::size_t, double > splitPoint () const
 Return the dimension and coordinate along which the first split of this grid occurs.
 
const CellGridfirstChild () const
 Return the first child.
 
CellGridfirstChild ()
 Access the first child.
 
const CellGridsecondChild () const
 Return the second child.
 
CellGridsecondChild ()
 Access the second child.
 
void splitCoordinates (std::size_t, std::set< double > &) const
 Fill split coordinates along a given dimension.
 
bool active () const
 Return true, if this grid is active with respect to the last parameter point passed.
 
double volume () const
 Return the volume relevant for the last parameter point set.
 
double integral () const
 Return the integral relevant for the last parameter point set.
 
double weight () const
 Return the weight.
 
void weight (double w)
 Set the weight.
 
void updateIntegral ()
 Update the integrals.
 
void minimumSelection (double p=0.1)
 Ensure a minimum cell selection probability.
 
bool contains (const std::vector< double > &point, const std::vector< bool > &parameterFlags) const
 Return true, if this grid contains the given parameter point.
 
double nonParametricVolume (const std::vector< double > &point, const std::vector< bool > &parameterFlags) const
 Get the volume relevant for the dimensions not considered parameters.
 
void updateIntegral (const std::vector< double > &point, const std::vector< bool > &parameterFlags, std::vector< bool >::iterator hashPosition)
 Set a parameter point and flag which dimensions are considered parameters. More...
 
double projectInterval (const std::pair< double, double > &interval, std::size_t dimension) const
 Return the projection to the given interval and dimension, provided the interval is not overlapping with more than one cell in the given dimension. More...
 
std::map< std::pair< double, double >, double > project (std::pair< double, double > interval, std::size_t dimension) const
 Return the projection to the given interval and dimension.
 
template<class RndGenerator >
void randomGrid (RndGenerator &rnd, std::size_t maxDepth, bool forceSplit=true)
 Generate a random grid of given maximum depth.
 
void dumpToC (std::ostream &os, const std::string &name) const
 Write out C code corresponding to the cell grid function.
 
void dumpPartToC (std::ostream &os, std::string prefix="") const
 Write out C code corresponding to the cell grid function.
 

Private Attributes

size_t theExplorationPoints
 The number of points used to explore a cell.
 
size_t theExplorationSteps
 The number of exploration steps.
 
double theGain
 The adaption threshold.
 
double theEpsilon
 The adaption threshold.
 
double theMinimumSelection
 The minimum probability for cell selection.
 
vector< int > the_pre_adaption_splits
 The splittings for each dimension befor adaption.
 
int theLuminositySplits
 The number of splits to put into parton luminiosity degrees of freedom.
 
int theChannelSplits
 The number of splits to put into channel degrees of freedom.
 
bool theAllChannelSplits
 Perform splits for all channels.
 
bool theUnweightCells
 Perform unweighting in cells.
 

Additional Inherited Members

- Public Types inherited from Herwig::BinSampler
typedef pair< string, size_t > RandomNumberIndex
 
- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- Public Attributes inherited from Herwig::BinSampler
map< RandomNumberIndex, pair< RandomNumberHistogram, double > > RandomNumberHistograms
 
- Public Attributes inherited from ThePEG::InterfacedBase
 initializing
 
 uninitialized
 
 initialized
 
 runready
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 
static void registerRepository (IBPtr, string newName)
 

Detailed Description

CellGridSampler samples XCombs bins using CellGrids.

Author
Simon Platzer
See also
The interfaces defined for CellGridSampler.

Definition at line 33 of file CellGridSampler.h.

Member Function Documentation

◆ clone()

virtual IBPtr Herwig::CellGridSampler::clone ( ) const
protectedvirtual

Make a simple clone of this object.

Returns
a pointer to the new object.

Reimplemented from Herwig::BinSampler.

◆ fullclone()

virtual IBPtr Herwig::CellGridSampler::fullclone ( ) const
protectedvirtual

Make a clone of this object, possibly modifying the cloned object to make it sane.

Returns
a pointer to the new object.

Reimplemented from Herwig::BinSampler.

◆ Init()

static void Herwig::CellGridSampler::Init ( )
static

The standard Init function used to initialize the interfaces.

Called exactly once for each class by the class description system before the main function starts or when this class is dynamically loaded.

◆ initialize()

virtual void Herwig::CellGridSampler::initialize ( bool  progress)
virtual

Initialize this bin sampler.

This default version calls runIteration.

Reimplemented from Herwig::BinSampler.

◆ operator=()

CellGridSampler& Herwig::CellGridSampler::operator= ( const CellGridSampler )
privatedelete

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ persistentInput()

void Herwig::CellGridSampler::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters
isthe persistent input stream read from.
versionthe version number of the object when written.

◆ persistentOutput()

void Herwig::CellGridSampler::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

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