Herwig 7.3.0
|
DipoleSplittingGenerator is used by the dipole shower to sample splittings from a given dipole splitting kernel. More...
#include <DipoleSplittingGenerator.h>
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 |
![]() | |
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 |
![]() | |
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 |
![]() | |
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 |
![]() | |
void | debug () const |
virtual void | debugme () const |
![]() | |
CounterType | referenceCount () const |
![]() | |
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< DipoleSplittingGenerator > | initDipoleSplittingGenerator |
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. | |
DipoleSplittingGenerator & | operator= (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 DipoleSplittingInfo & | lastSplitting () 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 | |
![]() | |
enum | InitState |
![]() | |
typedef unsigned int | CounterType |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
static void | Init () |
![]() | |
initializing | |
uninitialized | |
initialized | |
runready | |
![]() | |
const unsigned long | uniqueId |
![]() | |
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) |
![]() | |
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 &) |
![]() | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
![]() | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
![]() | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
DipoleSplittingGenerator is used by the dipole shower to sample splittings from a given dipole splitting kernel.
Definition at line 38 of file DipoleSplittingGenerator.h.
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
|
inline |
Return the detuning factor applied to the sampling overestimate kernel.
Definition at line 249 of file DipoleSplittingGenerator.h.
References splittingKernel().
|
inline |
Definition at line 332 of file DipoleSplittingGenerator.h.
|
inline |
True, if sampler should apply compensation.
Definition at line 296 of file DipoleSplittingGenerator.h.
References theDoCompensate.
|
inline |
Turn on partial unweighting and set the reference weight.
Definition at line 153 of file DipoleSplittingGenerator.h.
References partialUnweighting, and theReferenceWeight.
|
inline |
Definition at line 318 of file DipoleSplittingGenerator.h.
|
inline |
Definition at line 316 of file DipoleSplittingGenerator.h.
|
inline |
Return the number of accepted points after which the grid should be frozen.
Definition at line 244 of file DipoleSplittingGenerator.h.
References splittingKernel().
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
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.
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.
|
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.
|
inline |
Return the last generated splitting.
Definition at line 134 of file DipoleSplittingGenerator.h.
References generatedSplitting.
|
inline |
Return the maximum number of trials to generate a splitting.
Definition at line 238 of file DipoleSplittingGenerator.h.
References splittingKernel().
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
|
inline |
Definition at line 320 of file DipoleSplittingGenerator.h.
|
inline |
Return the parameter point associated to the splitting previously supplied through fixParameters.
Definition at line 213 of file DipoleSplittingGenerator.h.
References parameters.
void Herwig::DipoleSplittingGenerator::persistentInput | ( | PersistentIStream & | is, |
int | version | ||
) |
Function used to read in object persistently.
is | the persistent input stream read from. |
version | the version number of the object when written. |
void Herwig::DipoleSplittingGenerator::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
inline |
Definition at line 336 of file DipoleSplittingGenerator.h.
|
inline |
Return the number of points to presample this splitting generator.
Definition at line 232 of file DipoleSplittingGenerator.h.
References splittingKernel().
|
inline |
Return the weight associated to the currently generated splitting.
Definition at line 287 of file DipoleSplittingGenerator.h.
References theOtherGenerator, theSplittingWeight, and wrapping().
|
inline |
Return the weight vector associated to the currently generated splitting.
Definition at line 301 of file DipoleSplittingGenerator.h.
References theOtherGenerator, theSplittingWeightVector, and wrapping().
|
inline |
Definition at line 324 of file DipoleSplittingGenerator.h.
|
inline |
Definition at line 328 of file DipoleSplittingGenerator.h.
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.
|
inline |
Definition at line 312 of file DipoleSplittingGenerator.h.
|
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().
|
private |
The currently used weight map.
Definition at line 464 of file DipoleSplittingGenerator.h.
|
private |
The dipole splitting to be completed.
Definition at line 416 of file DipoleSplittingGenerator.h.
Referenced by lastSplitting().
|
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.
|
private |
The parameter point.
Definition at line 439 of file DipoleSplittingGenerator.h.
Referenced by parameterPoint().
|
private |
Flag for partial unweighting.
Definition at line 487 of file DipoleSplittingGenerator.h.
Referenced by doPartialUnweighting().
|
private |
True, if prepared to sample splittings of a given kind.
Definition at line 428 of file DipoleSplittingGenerator.h.
|
private |
A backup of the dipole splitting to be completed, if this generator is presampled.
Definition at line 422 of file DipoleSplittingGenerator.h.
|
private |
Wether or not the kernel is currently being presampled.
Definition at line 434 of file DipoleSplittingGenerator.h.
|
private |
True, if sampler should apply compensation.
Definition at line 459 of file DipoleSplittingGenerator.h.
Referenced by doCompensate().
|
private |
Pointer to the exponential generator.
Definition at line 411 of file DipoleSplittingGenerator.h.
|
private |
The sampling flags.
Definition at line 444 of file DipoleSplittingGenerator.h.
|
private |
Pointer to a check histogram object.
Definition at line 454 of file DipoleSplittingGenerator.h.
|
private |
Pointer to another generator to wrap around.
Definition at line 394 of file DipoleSplittingGenerator.h.
Referenced by splittingWeight(), splittingWeightVector(), and wrapping().
|
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().
|
private |
The dipole splitting kernel to sample splitting from.
Definition at line 400 of file DipoleSplittingGenerator.h.
|
private |
The dipole splitting reweight.
Definition at line 405 of file DipoleSplittingGenerator.h.
|
private |
The weight associated to the currently generated splitting.
Definition at line 469 of file DipoleSplittingGenerator.h.
Referenced by splittingWeight().
|
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().
|
private |
Sudakov sampling accuracy.
Definition at line 475 of file DipoleSplittingGenerator.h.
|
private |
The support.
Definition at line 449 of file DipoleSplittingGenerator.h.