Herwig
7.2.1
|
The DipoleEventRecord class is used internally by the dipole shower. More...
#include <DipoleEventRecord.h>
Classes | |
struct | getMomentum |
Public Member Functions | |
DipoleEventRecord () | |
The default constructor. | |
~DipoleEventRecord () | |
The default destructor just cleans up. | |
PList & | hard () |
Return any non-coloured outgoing particles in the current subprocess. | |
const PList & | hard () const |
Return any non-coloured outgoing particles in the current subprocess. | |
const Lorentz5Momentum & | pX () const |
Return the momentum of the hard system. | |
cPDVector & | particlesAfter () |
Return the particles after emission. | |
const cPDVector & | particlesAfter () const |
Return the particles after emission. | |
cPDVector & | particlesBefore () |
Return the particles before emission. | |
const cPDVector & | particlesBefore () const |
Return the particles before emission. | |
vector< Lorentz5Momentum > & | momentaAfter () |
Return the momenta after emission. | |
const vector< Lorentz5Momentum > & | momentaAfter () const |
Return the momenta after emission. | |
map< PPtr, size_t > & | particleIndices () |
Return the dictionary for the particles. | |
const map< PPtr, size_t > & | particleIndices () const |
Return the dictionary for the particles. | |
DensityOperator & | densityOperator () |
Return the density operator. | |
const DensityOperator & | densityOperator () const |
Return the density operator. | |
void | setSubleadingNc (bool doSub, size_t emissionsLimit) |
Set the subleading Nc flag and the number of emissions to calculate subleading Nc corrections for. | |
bool | getContinueSubleadingNc () const |
Get the continue subleading Nc flag. | |
void | setDensityOperatorEvolution (int scheme, Energy2 cutoff) |
Set the scheme and cutoff for the density operator evolution. | |
double | dipoleKernelForEvolution (size_t em, size_t spec, Energy2 pEmitpSpec, Energy2 pEmitpEmis, Energy2 pEmispSpec) |
Calculates the dipole kernel to use for the density operator evolution. More... | |
void | transform (const LorentzRotation &rot) |
Transform all intermediate, hard and outgoing particles using the given transformation. More... | |
const list< DipoleChain > & | chains () const |
Return the dipole chains to be showered. | |
list< DipoleChain > & | chains () |
Access the dipole chains to be showered. | |
const list< DipoleChain > & | doneChains () const |
Return the dipole chains which ceased evolving. | |
list< DipoleChain > & | doneChains () |
Access the dipole chains which ceased evolving. | |
bool | haveChain () const |
Return true, if there are chains to be showered. | |
DipoleChain & | currentChain () |
Return the current dipole chain. | |
void | popChain () |
Pop the current dipole chain. | |
void | popChain (list< DipoleChain >::iterator) |
Remove the given chain. | |
void | popChains (const list< list< DipoleChain >::iterator > &) |
Remove the given chains. | |
DipoleIndex | mergeIndex (list< Dipole >::iterator firstDipole, const pair< bool, bool > &whichFirst, list< Dipole >::iterator secondDipole, const pair< bool, bool > &whichSecond) const |
Create a merged dipole index given two independent dipoles; the first dipole is to provide the emitter. | |
SubleadingSplittingInfo | mergeSplittingInfo (list< DipoleChain >::iterator firstChain, list< Dipole >::iterator firstDipole, const pair< bool, bool > &whichFirst, list< DipoleChain >::iterator secondChain, list< Dipole >::iterator secondDipole, const pair< bool, bool > &whichSecond) const |
Create a SubleadingSplitingInfo given two independent dipoles; the first dipole is to provide the emitter. | |
void | getSubleadingSplittings (list< SubleadingSplittingInfo > &) |
Return a list of all possible subleading-N emitting pairs. | |
void | split (list< Dipole >::iterator dip, DipoleSplittingInfo &dsplit, pair< list< Dipole >::iterator, list< Dipole >::iterator > &childIterators, DipoleChain *&firstChain, DipoleChain *&secondChain) |
Split the dipole pointed to by the given iterator. More... | |
void | split (list< Dipole >::iterator dip, list< DipoleChain >::iterator ch, DipoleSplittingInfo &dsplit, pair< list< Dipole >::iterator, list< Dipole >::iterator > &childIterators, DipoleChain *&firstChain, DipoleChain *&secondChain, bool colourSpectator=true) |
Split the dipole pointed to by the given iterator in the indicated chain, indicating a splitting with a colour spectator. More... | |
pair< PVector, PVector > | tmpsplit (list< Dipole >::iterator dip, DipoleSplittingInfo &dsplit, pair< list< Dipole >::iterator, list< Dipole >::iterator > &childIterators, DipoleChain *&firstChain, DipoleChain *&secondChain) |
As split, but not touching the acctual event record. | |
pair< PVector, PVector > | tmpsplit (list< Dipole >::iterator dip, list< DipoleChain >::iterator ch, DipoleSplittingInfo &dsplit, pair< list< Dipole >::iterator, list< Dipole >::iterator > &childIterators, DipoleChain *&firstChain, DipoleChain *&secondChain, bool colourSpectator=true) |
As split, but not touching the acctual event record. | |
void | recoil (list< Dipole >::iterator dip, list< DipoleChain >::iterator ch, DipoleSplittingInfo &dsplit) |
Let the given dipole take the recoil of the indicated splitting. | |
void | splitSubleading (SubleadingSplittingInfo &dsplit, pair< list< Dipole >::iterator, list< Dipole >::iterator > &childIterators, DipoleChain *&firstChain, DipoleChain *&secondChain) |
Peform a subleading-N splitting. | |
void | update (DipoleSplittingInfo &dsplit) |
Update the particles upon insertion of the given splitting. | |
pair< PVector, PVector > | tmpupdate (DipoleSplittingInfo &dsplit) |
As update, but not touching the acctual event record. | |
void | updateInverse (DipoleSplittingInfo &dsplit) |
Inverse of update, updateInverse(update(dsplit)) would return the event record to the state if update would not have been called. | |
list< pair< list< Dipole >::iterator, list< DipoleChain >::iterator > > | inDipoles () |
Return the dipole(s) containing the incoming partons after the evolution has ended. More... | |
tPPair | fillEventRecord (StepPtr step, bool firstInteraction, bool realigned) |
Fill the given step and return incoming partons. | |
const map< PPtr, PPtr > & | prepare (tSubProPtr subpro, tStdXCombPtr xc, StepPtr step, const pair< PDF, PDF > &pdf, tPPair beam, bool firstInteraction, const set< long > &offShellPartons, bool dipoles=true) |
Prepare the event record for the given subprocess. | |
void | slimprepare (tSubProPtr subpro, tStdXCombPtr xc, const pair< PDF, PDF > &pdf, tPPair beam, const set< long > &offShellPartons, bool dipoles=true) |
Prepare the event record for the given subprocess. | |
virtual void | clear () |
Clear the event record: Give up ownership on any object involved in the evolution. | |
void | prepareChainsSubleading (const bool decay) |
Prepare the dipole chains for the eventRecord after the subleading shower. | |
void | debugLastEvent (ostream &) const |
Print event record at current state. | |
map< PPtr, PerturbativeProcessPtr > & | decays () |
Get the decays. | |
void | fillFromDecays (PerturbativeProcessPtr decayProc, vector< PPtr > &original) |
Used in DipoleEventRecord::prepare. More... | |
void | separateDecay (PerturbativeProcessPtr decayProc) |
Used in DipoleEventRecord::prepare. More... | |
Energy | decay (PPtr incoming, bool &powhegEmission) |
Decay the particle. | |
bool | prepareDecay (PerturbativeProcessPtr decayProc, const set< long > &offShellPartons) |
Prepare the event record for the showering of a decay. More... | |
void | updateDecayMom (PPtr decayParent, PerturbativeProcessPtr decayProc) |
Boost the momentum of the outgoing of the given perturbative process to the momentum of given particle. | |
void | updateDecayChainMom (PPtr decayParent, PerturbativeProcessPtr decayProc) |
Iteratively update the momenta of all particles in a decay chain, starting with the outgoing from the given parent. | |
void | updateDecays (PerturbativeProcessPtr decayProc, bool iterate=true) |
Update theDecays following the decay and/or showering of a decay particle. More... | |
PerturbativeProcessPtr | currentDecay () |
Access current decay process. | |
void | currentDecay (PerturbativeProcessPtr in) |
Set current decay process. | |
PPtr | nextDecay () |
Return the next particle to be decayed. | |
void | findChains (const PList &ordered, const set< long > &offShellpartons, const bool decay=false) |
Find the chains to be showered. More... | |
PList | colourOrdered (PPair &in, PList &out) |
Sort the coloured partons into a colour ordered ensemble. | |
Public Member Functions inherited from Herwig::ShowerEventRecord | |
tSubProPtr | subProcess () const |
Return the subprocess currently showered. | |
tStdXCombPtr | xcombPtr () const |
Return the XComb describing the hard process. | |
void | xcombPtr (tStdXCombPtr in) |
Set the XComb describing the hard process. | |
const StandardXComb & | xcomb () const |
Return the XComb describing the hard process. | |
PPair & | incoming () |
Return the incoming partons at the current stage of the evolution. | |
const PPair & | incoming () const |
Return the incoming partons at the current stage of the evolution. | |
PList & | outgoing () |
Return the outgoing partons at the current stage of the evolution. | |
const PList & | outgoing () const |
Return the outgoing partons at the current stage of the evolution. | |
PList & | intermediates () |
Return the intermediate particles at the current stage of the evolution. | |
const PList & | intermediates () const |
Return the intermediate particles at the current stage of the evolution. | |
const pair< double, double > & | fractions () const |
Return the momentum fractions. | |
pair< double, double > & | fractions () |
Return the momentum fractions. | |
const pair< PDF, PDF > & | pdfs () const |
Return the PDFs. | |
void | identifyEventType () |
Identify the type of event. | |
ShowerEventRecord () | |
The default constructor. | |
virtual | ~ShowerEventRecord () |
The destructor. | |
bool | isMCatNLOSEvent () const |
True, if Matchbox MC S-event. | |
bool | isMCatNLOHEvent () const |
True, if matchbox MC H-event. | |
bool | isPowhegSEvent () const |
True, if Matchbox MC S-event. | |
bool | isPowhegHEvent () const |
True, if matchbox MC H-event. | |
void | isMCatNLOSEvent (bool in) |
True, if Matchbox MC S-event. | |
void | isMCatNLOHEvent (bool in) |
True, if matchbox MC H-event. | |
Ptr< ShowerApproximation >::tptr | showerApproximation () |
Access to the shower approximation. | |
bool | truncatedShower () const |
True if truncated shower required. | |
void | truncatedShower (bool in) |
True if truncated shower required. | |
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 |
Private Attributes | |
Lorentz5Momentum | thePX |
The momentum of the hard system. | |
PList | theHard |
Any non-coloured outgoing particles in the current subprocess. | |
map< PPtr, PPtr > | theOriginals |
Map originals to copies. | |
list< DipoleChain > | theChains |
The dipole chains currently showered. | |
list< DipoleChain > | theDoneChains |
The dipole chains which ceased evolving. | |
cPDVector | theParticlesAfter |
Particles after the emission. | |
cPDVector | theParticlesBefore |
Particles before the emission. | |
vector< Lorentz5Momentum > | theMomentaAfter |
Momenta of the particles after emission. | |
pair< size_t, pair< size_t, size_t > > | theEmitterEmissionIndices |
Pair of the emitters index before emission and both the emitters and the emissions indices after emission, <emitter_before,<emitter_after,emission> > | |
pair< size_t, size_t > | theSpectatorIndices |
Pair of the spectators index before and after emission. | |
DensityOperator | theDensityOperator |
The density operator. | |
bool | doSubleadingNc |
Switch on or off for subleading Nc corrections. | |
bool | continueSubleadingNc |
Flag to keep track of when to stop calculating colour matrix element corrections. | |
size_t | subleadingNcEmissionsLimit |
Number of emissions to calculate subleading Nc corrections for. | |
size_t | subEmDone |
Current number of subleading emissions. | |
map< PPtr, size_t > | theParticleIndices |
Dictionary for particles before emission. | |
int | densityOperatorEvolution |
Integer used to set which method of evolving the density operator to use: 0 - Vijk is Eikonal but there is a cutoff. More... | |
Energy2 | densityOperatorCutoff |
Cutoff scale for the invariants (e.g. More... | |
map< std::tuple< size_t, size_t, size_t >, map< size_t, size_t > > | theEmissionsMap |
Dictionary for emissions, maps the three indices. More... | |
map< PPtr, PerturbativeProcessPtr > | theDecays |
The coloured partons that can be off-shell To only be filled by DipoleShowerHandler. More... | |
PerturbativeProcessPtr | theCurrentDecay |
PList | theNextDecays |
List of unstable particles, the decay to be performed and/or showered next is always at the back. More... | |
Additional Inherited Members | |
Public Types inherited from ThePEG::Pointer::ReferenceCounted | |
typedef unsigned int | CounterType |
Static Public Member Functions inherited from ThePEG::Base | |
static void | Init () |
Public Attributes inherited from ThePEG::Pointer::ReferenceCounted | |
const unsigned long | uniqueId |
Protected Member Functions inherited from Herwig::ShowerEventRecord | |
void | subProcess (tSubProPtr in) |
Set the subprocess. | |
pair< PDF, PDF > & | pdfs () |
Return the PDFs. | |
map< ColinePtr, ColinePtr > & | colourLines () |
Map of colour lines used to reset colours when inserted into the event. | |
void | colourIsolate (const vector< PPtr > &original, const vector< PPtr > ©) |
Isolate the colour of the process from the rest of the event. More... | |
void | updateColour (PPtr particle, bool recursive) |
Update the colour information of a particle prior to insertion into the event record. | |
void | mapColour (PPtr original, PPtr copy) |
Map the colours for a given particle. | |
Protected Member Functions inherited from ThePEG::Pointer::ReferenceCounted | |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
ReferenceCounted (const ReferenceCounted &) | |
ReferenceCounted & | operator= (const ReferenceCounted &) |
The DipoleEventRecord class is used internally by the dipole shower.
Definition at line 132 of file DipoleEventRecord.h.
double Herwig::DipoleEventRecord::dipoleKernelForEvolution | ( | size_t | em, |
size_t | spec, | ||
Energy2 | pEmitpSpec, | ||
Energy2 | pEmitpEmis, | ||
Energy2 | pEmispSpec | ||
) |
Calculates the dipole kernel to use for the density operator evolution.
Takes the index of the emitter and spectator, and momentum invariants.
void Herwig::DipoleEventRecord::fillFromDecays | ( | PerturbativeProcessPtr | decayProc, |
vector< PPtr > & | original | ||
) |
Used in DipoleEventRecord::prepare.
Add the outgoing particles from a perturbative process to the vector of original particles. Iterates through decay chains.
void Herwig::DipoleEventRecord::findChains | ( | const PList & | ordered, |
const set< long > & | offShellpartons, | ||
const bool | decay = false |
||
) |
Find the chains to be showered.
The decay bool avoids mixing up decaying particles in hard and decay processes
list<pair<list<Dipole>::iterator,list<DipoleChain>::iterator> > Herwig::DipoleEventRecord::inDipoles | ( | ) |
Return the dipole(s) containing the incoming partons after the evolution has ended.
Put back the chains containing these to the chains to be showered.
bool Herwig::DipoleEventRecord::prepareDecay | ( | PerturbativeProcessPtr | decayProc, |
const set< long > & | offShellPartons | ||
) |
Prepare the event record for the showering of a decay.
Return false if the decay does not need to be showered.
void Herwig::DipoleEventRecord::separateDecay | ( | PerturbativeProcessPtr | decayProc | ) |
Used in DipoleEventRecord::prepare.
Replace the particles in the given perturbative process with their copies from the map, theOriginals. Iterates through decays chains.
|
inline |
Split the dipole pointed to by the given iterator.
Return references to the affected chains, and update iterators pointing to the children in the returned chains.
Definition at line 333 of file DipoleEventRecord.h.
void Herwig::DipoleEventRecord::split | ( | list< Dipole >::iterator | dip, |
list< DipoleChain >::iterator | ch, | ||
DipoleSplittingInfo & | dsplit, | ||
pair< list< Dipole >::iterator, list< Dipole >::iterator > & | childIterators, | ||
DipoleChain *& | firstChain, | ||
DipoleChain *& | secondChain, | ||
bool | colourSpectator = true |
||
) |
Split the dipole pointed to by the given iterator in the indicated chain, indicating a splitting with a colour spectator.
Return references to the affected chains, and update iterators pointing to the children in the returned chains.
void Herwig::DipoleEventRecord::transform | ( | const LorentzRotation & | rot | ) |
Transform all intermediate, hard and outgoing particles using the given transformation.
Also update their spinInfo if applicable.
void Herwig::DipoleEventRecord::updateDecays | ( | PerturbativeProcessPtr | decayProc, |
bool | iterate = true |
||
) |
Update theDecays following the decay and/or showering of a decay particle.
With iteration switched on (true) this will update theDecays with the entire decay chain. `
|
private |
Cutoff scale for the invariants (e.g.
pEmitter*pEmission) in the Eikonal dipole kernel, Vijk.
Definition at line 673 of file DipoleEventRecord.h.
|
private |
Integer used to set which method of evolving the density operator to use: 0 - Vijk is Eikonal but there is a cutoff.
1 - Vijk is Eikonal. 2 - Vijk=1 for all i,j,k. 3 - Semi-leading Nc, Vijk=0 for all
Definition at line 667 of file DipoleEventRecord.h.
|
private |
The coloured partons that can be off-shell To only be filled by DipoleShowerHandler.
Storage of the particles which need to be decayed
Definition at line 697 of file DipoleEventRecord.h.
|
private |
Dictionary for emissions, maps the three indices.
Definition at line 683 of file DipoleEventRecord.h.
|
private |
List of unstable particles, the decay to be performed and/or showered next is always at the back.
This list is required to force the dipole shower to shower one decay chain at a time, without jumping between decay chains. Note this is not required but this is the most obvious/intuitive way to treat the decays.
Definition at line 712 of file DipoleEventRecord.h.