herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
Herwig::DipoleSplittingGenerator Class Reference

DipoleSplittingGenerator is used by the dipole shower to sample splittings from a given dipole splitting kernel. More...

#include <DipoleSplittingGenerator.h>

Inheritance diagram for Herwig::DipoleSplittingGenerator:

Public Member Functions

Wrap to the exsample2 interface until this is finally cleaned up.
const vector< bool > & variable_flags ()
 
size_t evolution_variable () const
 
double evolution_cutoff ()
 
const vector< double > & parameter_point () const
 
void start_presampling ()
 
void stop_presampling ()
 
size_t dimension () const
 
unsigned long presampling_points () const
 
- Public Member Functions inherited from ThePEG::HandlerBaseT< UseRandom >
double rnd () const
 
double rnd (double xu) const
 
double rnd (double xl, double xu) const
 
bool rndbool () const
 
bool rndbool (double p) const
 
bool rndbool (double p1, double p2) const
 
int rndsign (double p1, double p2, double p3) const
 
int rnd2 (double p0, double p1) const
 
int rnd3 (double p0, double p1, double p2) const
 
int rnd4 (double p0, double p1, double p2, double p3) const
 
long irnd (long xu=2) const
 
long irnd (long xl, long xu) const
 
const StandardModelBaseSM () const
 
tSMPtr standardModel () const
 
- 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
 
- Public Member Functions inherited from ThePEG::InterfacedBase
string fullName () const
 
string name () const
 
string path () const
 
string comment () const
 
void setup (istream &is)
 
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
 
virtual IBPtr fullclone () const
 
void persistentOutput (PersistentOStream &os) const
 
void persistentInput (PersistentIStream &is, int version)
 
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
 
virtual IBPtr fullclone () const
 
- Public Member Functions inherited from ThePEG::Base
void debug () const
 
virtual void debugme () 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
 

Clone Methods.

Ptr< DipoleSplittingGenerator >::ptr theOtherGenerator
 Pointer to another generator to wrap around.
 
Ptr< DipoleSplittingKernel >::ptr theSplittingKernel
 The dipole splitting kernel to sample splitting from.
 
Ptr< DipoleSplittingReweight >::ptr theSplittingReweight
 The dipole splitting reweight.
 
exsample::exponential_generator< DipoleSplittingGenerator, UseRandom > * theExponentialGenerator
 Pointer to the exponential generator.
 
DipoleSplittingInfo generatedSplitting
 The dipole splitting to be completed.
 
DipoleSplittingInfo presampledSplitting
 A backup of the dipole splitting to be completed, if this generator is presampled.
 
bool prepared
 True, if prepared to sample splittings of a given kind.
 
bool presampling
 Wether or not the kernel is currently being presampled.
 
vector< double > parameters
 The parameter point.
 
vector< bool > theFlags
 The sampling flags.
 
pair< vector< double >, vector< double > > theSupport
 The support.
 
Ptr< DipoleMCCheck >::ptr theMCCheck
 Pointer to a check histogram object.
 
bool theDoCompensate
 True, if sampler should apply compensation.
 
map< string, double > currentWeights
 The currently used weight map.
 
double theSplittingWeight
 The weight associated to the currently generated splitting.
 
double theSudakovAccuracy =0.05
 Sudakov sampling accuracy.
 
double theReferenceWeight
 Reference weight to improve convergence for subleading Nc corrections (by reducing time spent on events with very small weights)
 
bool partialUnweighting = false
 Flag for partial unweighting.
 
vector< std::tuple< Energy, double, bool > > theSplittingWeightVector
 The scale, weight and a bool for all veto steps and the accept step.
 
static ClassDescription< DipoleSplittingGeneratorinitDipoleSplittingGenerator
 The static object used to initialize the description of this class.
 
virtual IBPtr clone () const
 Make a simple clone of this object.
 
virtual IBPtr fullclone () const
 Make a clone of this object, possibly modifying the cloned object to make it sane.
 
DipoleSplittingGeneratoroperator= (const DipoleSplittingGenerator &)=delete
 The assignment operator is private and must never be called.
 

Standard constructors and destructors.

 DipoleSplittingGenerator ()
 The default constructor.
 
virtual ~DipoleSplittingGenerator ()
 The destructor.
 
Ptr< DipoleSplittingKernel >::tptr splittingKernel () const
 Return the dipole splitting kernel.
 
Ptr< DipoleSplittingReweight >::tptr splittingReweight () const
 Return the dipole splitting reweight.
 
Ptr< DipoleSplittingKinematics >::tptr splittingKinematics () const
 Return the dipole splitting kinematics.
 
void splittingKernel (Ptr< DipoleSplittingKernel >::tptr sp)
 Set the dipole splitting kernel.
 
void splittingReweight (Ptr< DipoleSplittingReweight >::tptr sp)
 Set the dipole splitting reweight.
 
void wrap (Ptr< DipoleSplittingGenerator >::ptr other)
 Make a wrapper around another generator.
 
bool wrapping () const
 Return true, if this is actually a wrapper around another splitting generator.
 
void resetVariations ()
 Reset the current variations to one.
 
void prepare (const DipoleSplittingInfo &)
 Prepare to fill the given splitting.
 
Energy generate (const DipoleSplittingInfo &, map< string, double > &variations, Energy optHardPt=ZERO, Energy optCutoff=ZERO)
 Fix parameters from the given DipoleSplittingInfo and generate the next splitting.
 
Energy generateWrapped (DipoleSplittingInfo &, map< string, double > &variations, Energy optHardPt=ZERO, Energy optCutoff=ZERO)
 Fix parameters from the fiven DipoleSplittingInfo and generate the next splitting.
 
void completeSplitting (DipoleSplittingInfo &) const
 Complete the given splitting.
 
const DipoleSplittingInfolastSplitting () const
 Return the last generated splitting.
 
double sudakov (const DipoleSplittingInfo &, Energy down)
 Sample the Sudakov in monte carlo fashion.
 
double dosudakov (const DipoleSplittingInfo &, Energy down)
 do the actiual calculation of the sudakov exponent.
 
double wrappedSudakov (DipoleSplittingInfo &split, Energy down)
 wrapper for sudakovExpansion for identical dipoles.
 
double sudakovExpansion (const DipoleSplittingInfo &, Energy down, Energy fixedScale)
 Sample the Sudakov exponent for sudakovExpansion weights.
 
double dosudakovExpansion (const DipoleSplittingInfo &, Energy down, Energy fixedScale)
 do the actual calculation for the sudakov expansion.
 
double wrappedSudakovExpansion (DipoleSplittingInfo &split, Energy down, Energy fixedScale)
 wrapper for sudakovExpansion
 
void doPartialUnweighting (double wref)
 Turn on partial unweighting and set the reference weight.
 
void debugGenerator (ostream &) const
 Print debug information on the splitting handled.
 
void debugLastEvent (ostream &) const
 Print debug information on the last generated event.
 
int nDim () const
 Return the number of random numbers needed to sample this kernel.
 
const vector< bool > & sampleFlags ()
 Flag, which variables are free variables.
 
const pair< vector< double >, vector< double > > & support ()
 Return the support of the splitting kernel.
 
const vector< double > & parameterPoint () const
 Return the parameter point associated to the splitting previously supplied through fixParameters.
 
void startPresampling ()
 Indicate that presampling of this kernel will be performed in the next calls to evaluate until stopPresampling() is called.
 
void stopPresampling ()
 Indicate that presampling of this kernel is done until startPresampling() is called.
 
unsigned long presamplingPoints () const
 Return the number of points to presample this splitting generator.
 
unsigned long maxtry () const
 Return the maximum number of trials to generate a splitting.
 
unsigned long freezeGrid () const
 Return the number of accepted points after which the grid should be frozen.
 
double detuning () const
 Return the detuning factor applied to the sampling overestimate kernel.
 
bool haveOverestimate () const
 Return true, if this splitting generator is able to deliver an overestimate to the sampled kernel.
 
double overestimate (const vector< double > &)
 Return an overestimate to the sampled kernel.
 
double invertOverestimateIntegral (double) const
 Invert the integral over the overestimate to equal the given value.
 
double evaluate (const vector< double > &)
 Evalute the splitting kernel.
 
void veto (const vector< double > &, double p, double r)
 Indicate that a veto with the given kernel value and overestimate has occured.
 
void accept (const vector< double > &, double p, double r)
 Indicate that an accept with the given kernel value and overestimate has occured.
 
double splittingWeight () const
 Return the weight associated to the currently generated splitting.
 
void doCompensate (bool yes=true)
 True, if sampler should apply compensation.
 
vector< std::tuple< Energy, double, bool > > splittingWeightVector () const
 Return the weight vector associated to the currently generated splitting.
 
void fixParameters (const DipoleSplittingInfo &, Energy optHardPt=ZERO)
 Update parameters given a splitting.
 
void doGenerate (map< string, double > &variations, Energy optCutoff=ZERO)
 With the parameters previuosly supplied through fixParameters generate the next splitting.
 

Functions used by the persistent I/O system.

void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently.
 
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently.
 
static void Init ()
 The standard Init function used to initialize the interfaces.
 

Additional Inherited Members

- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- Static Public Member Functions inherited from ThePEG::HandlerBase
static void Init ()
 
- 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 ()
 
- Public Attributes inherited from ThePEG::InterfacedBase
 initializing
 
 uninitialized
 
 initialized
 
 runready
 
- Public Attributes inherited from ThePEG::Pointer::ReferenceCounted
const unsigned long uniqueId
 
- 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
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 IBPtr clone () const=0
 
 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 &)
 
- Protected Member Functions inherited from ThePEG::Pointer::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)
 
- Static Protected Member Functions inherited from ThePEG::Interfaced
static void registerRepository (IBPtr)
 
static void registerRepository (IBPtr, string newName)
 

Detailed Description

DipoleSplittingGenerator is used by the dipole shower to sample splittings from a given dipole splitting kernel.

Author
Simon Platzer, Johannes Bellm
See also
The interfaces defined for DipoleSplittingGenerator.

Definition at line 38 of file DipoleSplittingGenerator.h.

Member Function Documentation

◆ clone()

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

Make a simple clone of this object.

Returns
a pointer to the new object.

Implements ThePEG::InterfacedBase.

◆ detuning()

double Herwig::DipoleSplittingGenerator::detuning ( ) const
inline

Return the detuning factor applied to the sampling overestimate kernel.

Definition at line 249 of file DipoleSplittingGenerator.h.

References splittingKernel().

◆ dimension()

size_t Herwig::DipoleSplittingGenerator::dimension ( ) const
inline

Definition at line 332 of file DipoleSplittingGenerator.h.

◆ doCompensate()

void Herwig::DipoleSplittingGenerator::doCompensate ( bool  yes = true)
inline

True, if sampler should apply compensation.

Definition at line 296 of file DipoleSplittingGenerator.h.

References theDoCompensate.

◆ doPartialUnweighting()

void Herwig::DipoleSplittingGenerator::doPartialUnweighting ( double  wref)
inline

Turn on partial unweighting and set the reference weight.

Definition at line 153 of file DipoleSplittingGenerator.h.

References partialUnweighting, and theReferenceWeight.

◆ evolution_cutoff()

double Herwig::DipoleSplittingGenerator::evolution_cutoff ( )
inline

Definition at line 318 of file DipoleSplittingGenerator.h.

◆ evolution_variable()

size_t Herwig::DipoleSplittingGenerator::evolution_variable ( ) const
inline

Definition at line 316 of file DipoleSplittingGenerator.h.

◆ freezeGrid()

unsigned long Herwig::DipoleSplittingGenerator::freezeGrid ( ) const
inline

Return the number of accepted points after which the grid should be frozen.

Definition at line 244 of file DipoleSplittingGenerator.h.

References splittingKernel().

◆ fullclone()

virtual IBPtr Herwig::DipoleSplittingGenerator::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 ThePEG::InterfacedBase.

◆ generate()

Energy Herwig::DipoleSplittingGenerator::generate ( const DipoleSplittingInfo ,
map< string, double > &  variations,
Energy  optHardPt = ZERO,
Energy  optCutoff = ZERO 
)

Fix parameters from the given DipoleSplittingInfo and generate the next splitting.

Return the pt selected for the next splitting.

◆ generateWrapped()

Energy Herwig::DipoleSplittingGenerator::generateWrapped ( DipoleSplittingInfo ,
map< string, double > &  variations,
Energy  optHardPt = ZERO,
Energy  optCutoff = ZERO 
)

Fix parameters from the fiven DipoleSplittingInfo and generate the next splitting.

Return the pt selected for the next splitting when called from a wrapping generator.

◆ Init()

static void Herwig::DipoleSplittingGenerator::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.

◆ lastSplitting()

const DipoleSplittingInfo & Herwig::DipoleSplittingGenerator::lastSplitting ( ) const
inline

Return the last generated splitting.

Definition at line 134 of file DipoleSplittingGenerator.h.

References generatedSplitting.

◆ maxtry()

unsigned long Herwig::DipoleSplittingGenerator::maxtry ( ) const
inline

Return the maximum number of trials to generate a splitting.

Definition at line 238 of file DipoleSplittingGenerator.h.

References splittingKernel().

◆ operator=()

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

The assignment operator is private and must never be called.

In fact, it should not even be implemented.

◆ parameter_point()

const vector< double > & Herwig::DipoleSplittingGenerator::parameter_point ( ) const
inline

Definition at line 320 of file DipoleSplittingGenerator.h.

◆ parameterPoint()

const vector< double > & Herwig::DipoleSplittingGenerator::parameterPoint ( ) const
inline

Return the parameter point associated to the splitting previously supplied through fixParameters.

Definition at line 213 of file DipoleSplittingGenerator.h.

References parameters.

◆ persistentInput()

void Herwig::DipoleSplittingGenerator::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::DipoleSplittingGenerator::persistentOutput ( PersistentOStream os) const

Function used to write out object persistently.

Parameters
osthe persistent output stream written to.

◆ presampling_points()

unsigned long Herwig::DipoleSplittingGenerator::presampling_points ( ) const
inline

Definition at line 336 of file DipoleSplittingGenerator.h.

◆ presamplingPoints()

unsigned long Herwig::DipoleSplittingGenerator::presamplingPoints ( ) const
inline

Return the number of points to presample this splitting generator.

Definition at line 232 of file DipoleSplittingGenerator.h.

References splittingKernel().

◆ splittingWeight()

double Herwig::DipoleSplittingGenerator::splittingWeight ( ) const
inline

Return the weight associated to the currently generated splitting.

Definition at line 287 of file DipoleSplittingGenerator.h.

References theOtherGenerator, theSplittingWeight, and wrapping().

◆ splittingWeightVector()

vector< std::tuple< Energy, double, bool > > Herwig::DipoleSplittingGenerator::splittingWeightVector ( ) const
inline

Return the weight vector associated to the currently generated splitting.

Definition at line 301 of file DipoleSplittingGenerator.h.

References theOtherGenerator, theSplittingWeightVector, and wrapping().

◆ start_presampling()

void Herwig::DipoleSplittingGenerator::start_presampling ( )
inline

Definition at line 324 of file DipoleSplittingGenerator.h.

◆ stop_presampling()

void Herwig::DipoleSplittingGenerator::stop_presampling ( )
inline

Definition at line 328 of file DipoleSplittingGenerator.h.

◆ support()

const pair< vector< double >, vector< double > > & Herwig::DipoleSplittingGenerator::support ( )

Return the support of the splitting kernel.

The lower bound on the first variable is assumed to correspond to the cutoff on the evolution variable.

◆ variable_flags()

const vector< bool > & Herwig::DipoleSplittingGenerator::variable_flags ( )
inline

Definition at line 312 of file DipoleSplittingGenerator.h.

◆ wrapping()

bool Herwig::DipoleSplittingGenerator::wrapping ( ) const
inline

Return true, if this is actually a wrapper around another splitting generator.

Definition at line 91 of file DipoleSplittingGenerator.h.

References theOtherGenerator.

Referenced by splittingWeight(), and splittingWeightVector().

Member Data Documentation

◆ currentWeights

map<string,double> Herwig::DipoleSplittingGenerator::currentWeights
private

The currently used weight map.

Definition at line 464 of file DipoleSplittingGenerator.h.

◆ generatedSplitting

DipoleSplittingInfo Herwig::DipoleSplittingGenerator::generatedSplitting
private

The dipole splitting to be completed.

Definition at line 416 of file DipoleSplittingGenerator.h.

Referenced by lastSplitting().

◆ initDipoleSplittingGenerator

ClassDescription<DipoleSplittingGenerator> Herwig::DipoleSplittingGenerator::initDipoleSplittingGenerator
staticprivate

The static object used to initialize the description of this class.

Indicates that this is a concrete class with persistent data.

Definition at line 501 of file DipoleSplittingGenerator.h.

◆ parameters

vector<double> Herwig::DipoleSplittingGenerator::parameters
private

The parameter point.

Definition at line 439 of file DipoleSplittingGenerator.h.

Referenced by parameterPoint().

◆ partialUnweighting

bool Herwig::DipoleSplittingGenerator::partialUnweighting = false
private

Flag for partial unweighting.

Definition at line 487 of file DipoleSplittingGenerator.h.

Referenced by doPartialUnweighting().

◆ prepared

bool Herwig::DipoleSplittingGenerator::prepared
private

True, if prepared to sample splittings of a given kind.

Definition at line 428 of file DipoleSplittingGenerator.h.

◆ presampledSplitting

DipoleSplittingInfo Herwig::DipoleSplittingGenerator::presampledSplitting
private

A backup of the dipole splitting to be completed, if this generator is presampled.

Definition at line 422 of file DipoleSplittingGenerator.h.

◆ presampling

bool Herwig::DipoleSplittingGenerator::presampling
private

Wether or not the kernel is currently being presampled.

Definition at line 434 of file DipoleSplittingGenerator.h.

◆ theDoCompensate

bool Herwig::DipoleSplittingGenerator::theDoCompensate
private

True, if sampler should apply compensation.

Definition at line 459 of file DipoleSplittingGenerator.h.

Referenced by doCompensate().

◆ theExponentialGenerator

exsample::exponential_generator<DipoleSplittingGenerator,UseRandom>* Herwig::DipoleSplittingGenerator::theExponentialGenerator
private

Pointer to the exponential generator.

Definition at line 411 of file DipoleSplittingGenerator.h.

◆ theFlags

vector<bool> Herwig::DipoleSplittingGenerator::theFlags
private

The sampling flags.

Definition at line 444 of file DipoleSplittingGenerator.h.

◆ theMCCheck

Ptr<DipoleMCCheck>::ptr Herwig::DipoleSplittingGenerator::theMCCheck
private

Pointer to a check histogram object.

Definition at line 454 of file DipoleSplittingGenerator.h.

◆ theOtherGenerator

Ptr<DipoleSplittingGenerator>::ptr Herwig::DipoleSplittingGenerator::theOtherGenerator
private

Pointer to another generator to wrap around.

Definition at line 394 of file DipoleSplittingGenerator.h.

Referenced by splittingWeight(), splittingWeightVector(), and wrapping().

◆ theReferenceWeight

double Herwig::DipoleSplittingGenerator::theReferenceWeight
private

Reference weight to improve convergence for subleading Nc corrections (by reducing time spent on events with very small weights)

Definition at line 482 of file DipoleSplittingGenerator.h.

Referenced by doPartialUnweighting().

◆ theSplittingKernel

Ptr<DipoleSplittingKernel>::ptr Herwig::DipoleSplittingGenerator::theSplittingKernel
private

The dipole splitting kernel to sample splitting from.

Definition at line 400 of file DipoleSplittingGenerator.h.

◆ theSplittingReweight

Ptr<DipoleSplittingReweight>::ptr Herwig::DipoleSplittingGenerator::theSplittingReweight
private

The dipole splitting reweight.

Definition at line 405 of file DipoleSplittingGenerator.h.

◆ theSplittingWeight

double Herwig::DipoleSplittingGenerator::theSplittingWeight
private

The weight associated to the currently generated splitting.

Definition at line 469 of file DipoleSplittingGenerator.h.

Referenced by splittingWeight().

◆ theSplittingWeightVector

vector<std::tuple<Energy,double,bool> > Herwig::DipoleSplittingGenerator::theSplittingWeightVector
private

The scale, weight and a bool for all veto steps and the accept step.

The bool is false for a veto step and true for an accept step.

Definition at line 493 of file DipoleSplittingGenerator.h.

Referenced by splittingWeightVector().

◆ theSudakovAccuracy

double Herwig::DipoleSplittingGenerator::theSudakovAccuracy =0.05
private

Sudakov sampling accuracy.

Definition at line 475 of file DipoleSplittingGenerator.h.

◆ theSupport

pair<vector<double>,vector<double> > Herwig::DipoleSplittingGenerator::theSupport
private

The support.

Definition at line 449 of file DipoleSplittingGenerator.h.


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