herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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

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. More...
 
Energy generateWrapped (DipoleSplittingInfo &, map< string, double > &variations, Energy optHardPt=ZERO, Energy optCutoff=ZERO)
 Fix parameters from the fiven DipoleSplittingInfo and generate the next splitting. More...
 
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. More...
 
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.
 
Standard constructors and destructors.
 DipoleSplittingGenerator ()
 The default constructor.
 
virtual ~DipoleSplittingGenerator ()
 The destructor.
 
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
 
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 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 StandardModelBase & SM () 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
 
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
 

Static Public Member Functions

static void Init ()
 The standard Init function used to initialize the interfaces. More...
 
- 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 ()
 

Protected Member Functions

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.
 
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...
 
- 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

DipoleSplittingGeneratoroperator= (const DipoleSplittingGenerator &)=delete
 The assignment operator is private and must never be called. More...
 

Private Attributes

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. More...
 

Static Private Attributes

static ClassDescription< DipoleSplittingGeneratorinitDipoleSplittingGenerator
 The static object used to initialize the description of this class. More...
 

Additional Inherited Members

- Public Types inherited from ThePEG::InterfacedBase
enum  InitState
 
- Public Types inherited from ThePEG::Pointer::ReferenceCounted
typedef unsigned int CounterType
 
- 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

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.

◆ 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.

◆ 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.

◆ 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.

◆ 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.

Member Data Documentation

◆ 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.

◆ 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.


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