Herwig 7.3.0
|
MatchboxRambo implements RAMBO phase space generation. More...
#include <MatchboxRambo.h>
Classes | |
struct | ReshuffleEquation |
The function object defining the equation to be solved. More... | |
Public Member Functions | |
MatchboxRambo () | |
The default constructor. | |
virtual void | setXComb (tStdXCombPtr) |
Prepare a phase space generator for the given xcomb object. | |
virtual double | generateTwoToNKinematics (const double *, vector< Lorentz5Momentum > &momenta) |
Generate a phase space point and return its weight. | |
virtual int | nDimPhasespace (int nFinal) const |
Return the number of random numbers required to produce a given multiplicity final state. | |
Public Member Functions inherited from Herwig::MatchboxPhasespace | |
MatchboxPhasespace () | |
The default constructor. | |
virtual void | setXComb (tStdXCombPtr xc) |
Set the XComb object steering the Born matrix element this class represents virtual corrections to. | |
Ptr< MatchboxFactory >::tcptr | factory () const |
Return the factory object. | |
Ptr< ProcessData >::tptr | processData () const |
Return the process data object. | |
virtual double | generateKinematics (const double *r, vector< Lorentz5Momentum > &momenta) |
Generate a phase space point and return its weight. | |
virtual double | generateTwoToNKinematics (const double *, vector< Lorentz5Momentum > &momenta)=0 |
Generate a phase space point and return its weight. | |
virtual double | generateTwoToOneKinematics (const double *, vector< Lorentz5Momentum > &momenta) |
Generate a 2 -> 1 phase space point and return its weight. | |
virtual int | nDim (const cPDVector &) const |
Return the number of random numbers required to produce a given multiplicity final state. | |
virtual int | nDimPhasespace (int nFinal) const =0 |
Return the number of random numbers required to produce a given multiplicity final state. | |
virtual bool | haveX1X2 () const |
Return true, if this phasespace generator will generate incoming partons itself. | |
virtual bool | wantCMS () const |
Return true, if this phase space generator expects the incoming partons in their center-of-mass system. | |
bool | useMassGenerators () const |
True, if mass generators should be used instead of fixed masses. | |
virtual Selector< MEBase::DiagramIndex > | selectDiagrams (const MEBase::DiagramVector &) const |
Fill a diagram selector for the last phase space point. | |
pair< double, Lorentz5Momentum > | timeLikeWeight (const Tree2toNDiagram &diag, int branch, double flatCut) const |
Return the momentum and weight appropriate to the given timelike branch of the diagram. | |
double | spaceLikeWeight (const Tree2toNDiagram &diag, const Lorentz5Momentum &incoming, int branch, double flatCut) const |
Return the weight appropriate to the given spacelike branch of the diagram. | |
double | diagramWeight (const Tree2toNDiagram &diag) const |
Return the weight appropriate to the given diagram. | |
void | fillDiagramWeights (double flatCut=0.0) |
Fill the diagram weights. | |
void | clearDiagramWeights () |
Clear the diagram weights. | |
Ptr< MatchboxPhasespace >::ptr | cloneMe () const |
Clone this phase space generator. | |
virtual void | cloneDependencies (const std::string &prefix="") |
Clone the dependencies, using a given prefix. | |
virtual bool | isInvertible () const |
Return true, if this phase space generator is invertible. | |
virtual double | invertKinematics (const vector< Lorentz5Momentum > &momenta, double *r) const |
Invert the given phase space point to the random numbers which would have generated it. | |
virtual double | invertTwoToNKinematics (const vector< Lorentz5Momentum > &, double *) const |
Invert the given phase space point to the random numbers which would have generated it. | |
virtual double | invertTwoToOneKinematics (const vector< Lorentz5Momentum > &, double *) const |
Invert the given 2 -> 1 phase space point to the random numbers which would have generated it. | |
void | singularLimit (size_t i, size_t j) |
Limit phasespace generation to a given collinear or soft limit. | |
const pair< size_t, size_t > & | lastSingularIndices () const |
Return the last matched singular limit. | |
bool | matchConstraints (const vector< Lorentz5Momentum > &momenta) |
Return true, if constraints on phasespace generation have been met. | |
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. | |
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 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 |
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 |
Public Member Functions inherited from ThePEG::LastXCombInfo< StandardXComb > | |
const XC & | lastXComb () const |
const XC & | lastXComb () const |
tXCPtr | lastXCombPtr () const |
tXCPtr | lastXCombPtr () const |
const XC & | lastHeadXComb () const |
const XC & | lastHeadXComb () const |
tXCPtr | lastHeadXCombPtr () const |
tXCPtr | lastHeadXCombPtr () const |
const EventHandler & | lastEventHandler () const |
const EventHandler & | lastEventHandler () const |
tPExtrPtr | lastExtractor () const |
tPExtrPtr | lastExtractor () const |
PDFT | pdf (tcPPtr parton) const |
PDFT | pdf (tcPPtr parton) const |
const Cuts & | lastCuts () const |
const Cuts & | lastCuts () const |
tCutsPtr | lastCutsPtr () const |
tCutsPtr | lastCutsPtr () const |
const PPair & | lastParticles () const |
const PPair & | lastParticles () const |
Energy2 | lastS () const |
Energy2 | lastS () const |
const PPair & | lastPartons () const |
const PPair & | lastPartons () const |
Energy2 | lastSHat () const |
Energy2 | lastSHat () const |
double | lastTau () const |
double | lastTau () const |
double | lastY () const |
double | lastY () const |
double | lastP1 () const |
double | lastP1 () const |
double | lastP2 () const |
double | lastP2 () const |
double | lastL1 () const |
double | lastL1 () const |
double | lastL2 () const |
double | lastL2 () const |
double | lastX1 () const |
double | lastX1 () const |
double | lastX2 () const |
double | lastX2 () const |
double | lastE1 () const |
double | lastE1 () const |
double | lastE2 () const |
double | lastE2 () const |
double | lastFL1L2 () const |
double | lastFL1L2 () const |
Energy2 | lastScale () const |
double | lastAlphaS () const |
double | lastAlphaEM () const |
const vector< Lorentz5Momentum > & | meMomenta () const |
double | lastME2 () const |
double | lastPreweight () const |
double | jacobian () const |
CrossSection | lastMECrossSection () const |
double | lastMEPDFWeight () const |
double | lastMECouplings () const |
tSubProPtr | subProcess () const |
const cPDVector & | mePartonData () const |
Public Member Functions inherited from Herwig::LastMatchboxXCombInfo | |
LastMatchboxXCombInfo () | |
Default constructor. | |
MatchboxXCombData * | lastMatchboxXComb () const |
Return a pointer to the last selected XComb. | |
MatchboxXCombData * | lastHeadMatchboxXComb () const |
If the last selected XComb object belongs to a group of XComb's return a pointer to the head XComb object for this group. | |
const vector< int > & | crossingMap () const |
The crossing information as filled by the last call to fillCrossingMap() | |
const map< size_t, size_t > & | amplitudeToColourMap () const |
The colour crossing information as filled by the last call to fillCrossingMap() | |
const map< size_t, size_t > & | colourToAmplitudeMap () const |
The colour crossing information as filled by the last call to fillCrossingMap() | |
double | crossingSign () const |
The crossing sign as filled by the last call to fillCrossingMap() | |
Energy2 | lastRenormalizationScale () const |
The last renormalization scale. | |
const cPDVector & | amplitudePartonData () const |
The amplitude parton data. | |
const vector< Lorentz5Momentum > & | amplitudeMomenta () const |
The crossed momenta. | |
bool | calculateTreeAmplitudes () const |
True, if the the tree level amplitudes need to be calculated. | |
const map< vector< int >, CVector > & | lastAmplitudes () const |
The amplitude values which have been contributing to the last call of prepareAmplitudes. | |
const map< vector< int >, CVector > & | lastLargeNAmplitudes () const |
The leading N amplitude values which have been contributing to the last call of prepareAmplitudes. | |
bool | calculateOneLoopAmplitudes () const |
True, if the the one-loop amplitudes need to be calculated. | |
const map< vector< int >, CVector > & | lastOneLoopAmplitudes () const |
The one-loop amplitude values which have been contributing to the last call of prepareAmplitudes. | |
bool | calculateTreeME2 () const |
True, if the tree-level matrix element squared needs to be calculated. | |
double | lastTreeME2 () const |
The last tree-level matrix element squared. | |
bool | calculateLargeNME2 () const |
True, if the tree-level matrix element squared needs to be calculated. | |
double | lastLargeNME2 () const |
The last tree-level matrix element squared. | |
bool | calculateOneLoopInterference () const |
True, if the one-loop/tree-level interference. | |
double | lastOneLoopInterference () const |
The last one-loop/tree-level interference. | |
bool | calculateOneLoopPoles () const |
True, if the one-loop/tree-level interference. | |
pair< double, double > | lastOneLoopPoles () const |
The last one-loop/tree-level interference. | |
bool | calculateColourCorrelator (const pair< int, int > &ij) const |
True, if the indexed colour correlated matrix element needs to be calculated. | |
double | lastColourCorrelator (const pair< int, int > &ij) const |
The colour correlated matrix element. | |
bool | calculateLargeNColourCorrelator (const pair< int, int > &ij) const |
True, if the indexed large-N colour correlated matrix element needs to be calculated. | |
double | lastLargeNColourCorrelator (const pair< int, int > &ij) const |
The large-N colour correlated matrix element. | |
bool | calculateColourSpinCorrelator (const pair< int, int > &ij) const |
True, if the indexed colour/spin correlated matrix element needs to be calculated. | |
Complex | lastColourSpinCorrelator (const pair< int, int > &ij) const |
The colour/spin correlated matrix element. | |
bool | calculateSpinCorrelator (const pair< int, int > &ij) const |
True, if the indexed spin correlated matrix element needs to be calculated. | |
Complex | lastSpinCorrelator (const pair< int, int > &ij) const |
The spin correlated matrix element. | |
unsigned int | nLight () const |
Return the number of light flavours to be considered for this process. | |
vector< long > | nLightJetVec () const |
Return the vector that contains the PDG ids of the light flavours, which are contained in the jet particle group. | |
vector< long > | nHeavyJetVec () const |
Return the vector that contains the PDG ids of the heavy flavours, which are contained in the jet particle group. | |
vector< long > | nLightProtonVec () const |
Return the vector that contains the PDG ids of the light flavours, which are contained in the proton particle group. | |
size_t | colourBasisDim () const |
Get the dimensionality of the colour basis for this process. | |
int | nDimPhasespace () const |
Return the number of degrees of freedom required by the phase space generator. | |
int | nDimAmplitude () const |
Return the number of degrees of freedom required by the amplitude. | |
int | nDimInsertions () const |
Return the number of degrees of freedom required by the insertion operators. | |
const vector< double > & | amplitudeRandomNumbers () const |
Get the additional random numbers required by the amplitude. | |
const vector< double > & | insertionRandomNumbers () const |
Get the additional random numbers required by the insertion operator. | |
const map< int, double > & | diagramWeights () const |
Return the diagram weights indexed by diagram id. | |
const set< pair< size_t, size_t > > & | singularLimits () const |
Return the singular limits. | |
const set< pair< size_t, size_t > >::const_iterator & | lastSingularLimit () const |
Return the last matched singular limit. | |
Ptr< StandardModel >::tcptr | hwStandardModel () const |
Get the Herwig StandardModel object. | |
double | symmetryFactor () const |
Return the symmetry factor. | |
const vector< int > & | olpId () const |
Return the OLP process id. | |
double * | olpMomenta () const |
Return the olp momentum vector. | |
void | fillOLPMomenta (const vector< Lorentz5Momentum > &mm, const cPDVector &mePartonData, const map< long, Energy > &reshuffleMap) const |
Fill the olp momentum vector. | |
Clone Methods. | |
bool | needToReshuffle |
Whether or not we need to reshuffle. | |
bool | theMakeReferenceSample |
True, if a reference sample of phasespace points should be generated. | |
map< cPDVector, ofstream * > | referenceSamples |
Map processes to streams for reference samples. | |
ofstream * | referenceSample |
The stream to fill for the reference sample. | |
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. | |
MatchboxRambo & | operator= (const MatchboxRambo &)=delete |
The assignment operator is private and must never be called. | |
void | dumpReference (const vector< Lorentz5Momentum > &, double) const |
Write the generated point to the reference sample. | |
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 |
Public Types inherited from ThePEG::LastXCombInfo< StandardXComb > | |
typedef ThePEG::Ptr< XC >::pointer | XCPtr |
typedef ThePEG::Ptr< XC >::const_pointer | cXCPtr |
typedef ThePEG::Ptr< XC >::transient_pointer | tXCPtr |
typedef ThePEG::Ptr< XC >::transient_const_pointer | tcXCPtr |
Static Public Member Functions inherited from Herwig::MatchboxPhasespace | |
static void | Init () |
The standard Init function used to initialize the interfaces. | |
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 Herwig::MatchboxPhasespace | |
void | setCoupling (long a, long b, long c, double coupling, bool includeCrossings=true) |
Set a coupling for the given vertex; the convention is that all legs are outgoing, and all possible crossings will be taken care of. | |
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 &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
Protected Member Functions inherited from ThePEG::Named | |
const Named & | operator= (const Named &other) |
const string & | name (const string &newName) |
Protected Member Functions inherited from Herwig::LastMatchboxXCombInfo | |
vector< int > & | crossingMap () |
The crossing information as filled by the last call to fillCrossingMap() | |
map< size_t, size_t > & | amplitudeToColourMap () |
The colour crossing information as filled by the last call to fillCrossingMap() | |
map< size_t, size_t > & | colourToAmplitudeMap () |
The colour crossing information as filled by the last call to fillCrossingMap() | |
void | crossingSign (double c) |
The crossing sign as filled by the last call to fillCrossingMap() | |
void | lastRenormalizationScale (Energy2 lrs) |
The last renormalization scale. | |
cPDVector & | amplitudePartonData () |
The amplitude parton data. | |
vector< Lorentz5Momentum > & | amplitudeMomenta () |
The crossed momenta. | |
void | haveTreeAmplitudes (bool f=true) |
True, if the the tree level amplitudes need to be calculated. | |
map< vector< int >, CVector > & | lastAmplitudes () |
The amplitude values which have been contributing to the last call of prepareAmplitudes. | |
map< vector< int >, CVector > & | lastLargeNAmplitudes () |
The leading N amplitude values which have been contributing to the last call of prepareAmplitudes. | |
void | haveOneLoopAmplitudes (bool f=true) |
True, if the the one-loop amplitudes need to be calculated. | |
map< vector< int >, CVector > & | lastOneLoopAmplitudes () |
The one-loop amplitude values which have been contributing to the last call of prepareAmplitudes. | |
void | lastTreeME2 (double v) const |
The last tree-level matrix element squared. | |
void | lastLargeNME2 (double v) const |
The last tree-level matrix element squared. | |
void | lastOneLoopInterference (double v) const |
The last one-loop/tree-level interference. | |
void | lastOneLoopPoles (pair< double, double > v) const |
The last one-loop/tree-level interference. | |
void | lastColourCorrelator (const pair< int, int > &ij, double v) const |
The colour correlated matrix element. | |
void | lastLargeNColourCorrelator (const pair< int, int > &ij, double v) const |
The large-N colour correlated matrix element. | |
void | lastColourSpinCorrelator (const pair< int, int > &ij, Complex v) const |
The colour/spin correlated matrix element. | |
void | lastSpinCorrelator (const pair< int, int > &ij, Complex v) const |
The spin correlated matrix element. | |
void | nLight (unsigned int n) |
Set the number of light flavours to be considered for this process. | |
void | nLightJetVec (int n) |
Set the elements of the vector that contains the PDG ids of the light flavours, which are contained in the jet particle group. | |
void | nHeavyJetVec (int n) |
Set the elements of the vector that contains the PDG ids of the heavy flavours, which are contained in the jet particle group. | |
void | nLightProtonVec (int n) |
Set the elements of the vector that contains the PDG ids of the light flavours, which are contained in the proton particle group. | |
void | colourBasisDim (size_t d) |
Set the dimensionality of the colour basis for this process. | |
void | nDimPhasespace (int d) |
Set the number of degrees of freedom required by the phase space generator. | |
void | nDimAmplitude (int d) |
Set the number of degrees of freedom required by the amplitude. | |
void | nDimInsertions (int d) |
Set the number of degrees of freedom required by the insertion operators. | |
vector< double > & | amplitudeRandomNumbers () |
Access the additional random numbers required by the amplitude. | |
vector< double > & | insertionRandomNumbers () |
Access the additional random numbers required by the insertion operator. | |
map< int, double > & | diagramWeights () |
Access the diagram weights indexed by diagram id. | |
set< pair< size_t, size_t > > & | singularLimits () |
Access the singular limits. | |
set< pair< size_t, size_t > >::const_iterator & | lastSingularLimit () |
Access the last matched singular limit. | |
void | hwStandardModel (Ptr< StandardModel >::tcptr sm) |
Set the Herwig StandardModel object. | |
void | symmetryFactor (double f) const |
Set the symmetry factor. | |
void | olpId (int pType, int id) |
Set the OLP process id. | |
void | lastMatchboxXComb (tStdXCombPtr xc) |
Set the XComb pointer cast to MatchboxXComb. | |
Static Protected Member Functions inherited from ThePEG::Interfaced | |
static void | registerRepository (IBPtr) |
static void | registerRepository (IBPtr, string newName) |
Protected Attributes inherited from ThePEG::LastXCombInfo< StandardXComb > | |
XCPtr | theLastXComb |
Protected Attributes inherited from Herwig::LastMatchboxXCombInfo | |
MatchboxXCombData * | theLastMatchboxXComb |
The XComb pointer cast to MatchboxXComb. | |
MatchboxXCombData * | theLastHeadMatchboxXComb |
The head XComb pointer cast to MatchboxXComb. | |
MatchboxRambo implements RAMBO phase space generation.
Definition at line 28 of file MatchboxRambo.h.
|
protectedvirtual |
Make a simple clone of this object.
Implements ThePEG::InterfacedBase.
|
protectedvirtual |
Make a clone of this object, possibly modifying the cloned object to make it sane.
Reimplemented from ThePEG::InterfacedBase.
|
virtual |
Generate a phase space point and return its weight.
Implements Herwig::MatchboxPhasespace.
|
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.
|
inlinevirtual |
Return the number of random numbers required to produce a given multiplicity final state.
Implements Herwig::MatchboxPhasespace.
Definition at line 54 of file MatchboxRambo.h.
|
privatedelete |
The assignment operator is private and must never be called.
In fact, it should not even be implemented.
void Herwig::MatchboxRambo::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::MatchboxRambo::persistentOutput | ( | PersistentOStream & | os | ) | const |
Function used to write out object persistently.
os | the persistent output stream written to. |
|
virtual |
Prepare a phase space generator for the given xcomb object.
Reimplemented from Herwig::MatchboxPhasespace.
|
private |
Whether or not we need to reshuffle.
Definition at line 153 of file MatchboxRambo.h.
|
private |
The stream to fill for the reference sample.
Definition at line 169 of file MatchboxRambo.h.
|
private |
Map processes to streams for reference samples.
Definition at line 164 of file MatchboxRambo.h.
|
private |
True, if a reference sample of phasespace points should be generated.
Definition at line 159 of file MatchboxRambo.h.