Herwig 7 is hosted by Hepforge, IPPP Durham
Herwig  7.1.0
Herwig::DipoleEventRecord Class Reference

The DipoleEventRecord class is used internally by the dipole shower. More...

#include <DipoleEventRecord.h>

Inheritance diagram for Herwig::DipoleEventRecord:

Classes

struct  getMomentum
 

Public Member Functions

 DipoleEventRecord ()
 The default constructor.
 
 ~DipoleEventRecord ()
 The default destructor just cleans up.
 
PListhard ()
 Return any non-coloured outgoing particles in the current subprocess.
 
const PListhard () const
 Return any non-coloured outgoing particles in the current subprocess.
 
const Lorentz5Momentum & pX () const
 Return the momentum of the hard system.
 
void transform (const SpinOneLorentzRotation &rot)
 Transform all intermediate, hard and outgoing partciles using the given transformation.
 
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.
 
DipoleChaincurrentChain ()
 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, PVectortmpsplit (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, PVectortmpsplit (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, PVectortmpupdate (DipoleSplittingInfo &dsplit)
 As update, but not touching the acctual event record.
 
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, bool dipoles=true)
 Prepare the event record for the given subprocess.
 
void slimprepare (tSubProPtr subpro, tStdXCombPtr xc, const pair< PDF, PDF > &pdf, tPPair beam, 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 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)
 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.
 
void findChains (const PList &ordered, 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 StandardXCombxcomb () const
 Return the XComb describing the hard process.
 
PPairincoming ()
 Return the incoming partons at the current stage of the evolution.
 
const PPairincoming () const
 Return the incoming partons at the current stage of the evolution.
 
PListoutgoing ()
 Return the outgoing partons at the current stage of the evolution.
 
const PListoutgoing () const
 Return the outgoing partons at the current stage of the evolution.
 
PListintermediates ()
 Return the intermediate particles at the current stage of the evolution.
 
const PListintermediates () 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, PPtrtheOriginals
 Map originals to copies.
 
list< DipoleChaintheChains
 The dipole chains currently showered.
 
list< DipoleChaintheDoneChains
 The dipole chains which ceased evolving.
 
map< PPtr, PerturbativeProcessPtr > theDecays
 Storage of the particles which need to be decayed.
 
PerturbativeProcessPtr theCurrentDecay
 

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 > &copy)
 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 &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 
 ReferenceCounted (const ReferenceCounted &)
 
ReferenceCountedoperator= (const ReferenceCounted &)
 

Detailed Description

The DipoleEventRecord class is used internally by the dipole shower.

Author
Simon Platzer, Stephen Webster

Definition at line 129 of file DipoleEventRecord.h.

Member Function Documentation

◆ fillFromDecays()

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.

◆ findChains()

void Herwig::DipoleEventRecord::findChains ( const PList ordered,
const bool  decay = false 
)

Find the chains to be showered.

The decay bool avoids mixing up decaying particles in hard and decay processes

◆ inDipoles()

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.

◆ prepareDecay()

bool Herwig::DipoleEventRecord::prepareDecay ( PerturbativeProcessPtr  decayProc)

Prepare the event record for the showering of a decay.

Return false if the decay does not need to be showered.

◆ separateDecay()

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.

◆ split() [1/2]

void Herwig::DipoleEventRecord::split ( list< Dipole >::iterator  dip,
DipoleSplittingInfo dsplit,
pair< list< Dipole >::iterator, list< Dipole >::iterator > &  childIterators,
DipoleChain *&  firstChain,
DipoleChain *&  secondChain 
)
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 248 of file DipoleEventRecord.h.

◆ split() [2/2]

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.

◆ updateDecays()

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


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