PYTHIA  8.303
Public Member Functions | Public Attributes | Friends | List of all members
VinciaISR Class Reference

#include <VinciaISR.h>

Inheritance diagram for VinciaISR:
SpaceShower PhysicsBase

Public Member Functions

 VinciaISR ()
 Constructor.
 
virtual ~VinciaISR ()
 Destructor.
 
void init (BeamParticle *beamAPtrIn, BeamParticle *beamBPtrIn) override
 Initialize shower. Possibility to force re-initialization by hand. More...
 
bool limitPTmax (Event &event, double Q2Fac=0., double Q2Ren=0.) override
 Possible limitation of first emission. More...
 
void prepare (int iSys, Event &event, bool limitPTmaxIn=false) override
 Prepare system for evolution; identify ME. More...
 
void update (int iSys, Event &event, bool hasWeakRad=false) override
 Update dipole list after each ISR emission. More...
 
double pTnext (Event &event, double pTbegAll, double pTendAll, int nRadIn=-1, bool doTrialIn=false) override
 Select next pT in downwards evolution. More...
 
bool branch (Event &event) override
 Perform a branching (as defined by current "winner"). More...
 
void list () const override
 Print a list of II and IF dipole-antennae.
 
bool initUncertainties () override
 
bool doRestart () const override
 
bool wasGamma2qqbar () override
 
bool getHasWeaklyRadiated () override
 Tell whether ISR has done a weak emission. Not implemented in Vincia yet.
 
int system () const override
 Tell which system was the last processed one.
 
double enhancePTmax () const override
 
void initVinciaPtrs (Colour *colourPtrIn, shared_ptr< VinciaFSR > fsrPtrIn, QEDShower *qedPtrIn, MECs *mecsPtrIn, Resolution *resolutionPtrIn, VinciaCommon *vinComPtrIn, VinciaWeights *vinWeightsPtrIn)
 Initialise pointers to Vincia objects.
 
void clearContainers ()
 Clear all containers.
 
void initAntPtr (AntennaSetISR *antSetIn)
 Initialize pointers to antenna sets.
 
bool prepared (int iSys)
 Function to tell if VinciaISR::prepare() has treated this system.
 
AntennaFunctionIXgetAnt (int iAnt)
 Wrapper function to return a specific antenna inside antenna set.
 
void printInfo (bool pluginCall=false)
 Print final statistics information. More...
 
int getRegion (double q)
 Evolution windows, phase space region boundaries.
 
double getQmin (int iRegion)
 Evolution window, phase space region boundaries.
 
int getNf (int iRegion)
 Number of active flavors.
 
double getLambda (int nFin)
 Lambda value.
 
void resetTrialGenerators (BranchElementalISR *trial)
 Add trial functions to a BranchElemental. More...
 
bool checkHeavyQuarkPhaseSpace (vector< Particle > parts, int iSyst)
 
bool heavyQuarkLeft (double qTrial)
 Method to check if heavy quark left after passing the evolution window. More...
 
bool isSysHard (int iSys)
 Function to ask if a system is hard.
 
vector< double > getMasses ()
 Return a vector of the masses.
 
int getNsys ()
 Get number of systems.
 
int getNbranch (int iSys=-1)
 Get number of branchings in a system (return -1 if no such system).
 
double getQbranch (int iSys, int iBranch)
 
double getPTphys (int iSys, int iBranch)
 
void setVerbose (int verboseIn)
 Set verbosity level.
 
bool checkAntennae (const Event &event)
 Check the antennae. More...
 
- Public Member Functions inherited from SpaceShower
 SpaceShower ()=default
 Constructor.
 
virtual ~SpaceShower ()
 Destructor.
 
void initPtrs (MergingHooksPtr mergingHooksPtrIn, PartonVertexPtr partonVertexPtrIn, WeightContainer *weightContainerPtrIn)
 
void reassignBeamPtrs (BeamParticle *beamAPtrIn, BeamParticle *beamBPtrIn, int beamOffsetIn=0)
 New beams possible for handling of hard diffraction. (Not virtual.)
 
virtual Event clustered (const Event &, int, int, int, string)
 Return clustering kinematics - as needed for merging. More...
 
virtual map< string, double > getStateVariables (const Event &, int, int, int, string)
 
virtual bool isSpacelike (const Event &, int, int, int, string)
 
virtual vector< string > getSplittingName (const Event &, int, int, int)
 
virtual double getSplittingProb (const Event &, int, int, int, string)
 
virtual bool allowedSplitting (const Event &, int, int)
 
virtual vector< int > getRecoilers (const Event &, int, int, string)
 
- Public Member Functions inherited from PhysicsBase
void initInfoPtr (Info &infoPtrIn)
 This function is called from above for physics objects used in a run. More...
 
virtual ~PhysicsBase ()
 Empty virtual destructor.
 
bool flag (string key) const
 Shorthand to read settings values.
 
int mode (string key) const
 
double parm (string key) const
 
string word (string key) const
 

Public Attributes

AlphaStrongalphaSptr
 Pointer to global AlphaStrong instance.
 
- Public Attributes inherited from SpaceShower
MergingHooksPtr mergingHooksPtr {}
 Pointer to MergingHooks object for NLO merging.
 
WeightContainerweightContainerPtr {}
 

Friends

class VinciaFSR
 Allow VinciaFSR to access private information.
 

Additional Inherited Members

- Public Types inherited from PhysicsBase
enum  Status {
  INCOMPLETE = -1, COMPLETE = 0, CONSTRUCTOR_FAILED, INIT_FAILED,
  LHEF_END, LOWENERGY_FAILED, PROCESSLEVEL_FAILED, PROCESSLEVEL_USERVETO,
  MERGING_FAILED, PARTONLEVEL_FAILED, PARTONLEVEL_USERVETO, HADRONLEVEL_FAILED,
  CHECK_FAILED, OTHER_UNPHYSICAL, HEAVYION_FAILED
}
 Enumerate the different status codes the event generation can have.
 
- Protected Member Functions inherited from PhysicsBase
 PhysicsBase ()
 Default constructor.
 
virtual void onInitInfoPtr ()
 
virtual void onBeginEvent ()
 This function is called in the very beginning of each Pythia::next call.
 
virtual void onEndEvent (Status)
 
virtual void onStat ()
 This function is called from the Pythia::stat() call.
 
void registerSubObject (PhysicsBase &pb)
 Register a sub object that should have its information in sync with this.
 
- Protected Attributes inherited from SpaceShower
int beamOffset {}
 Beam location offset in event.
 
PartonVertexPtr partonVertexPtr {}
 Pointer to assign space-time vertices during parton evolution.
 
bool doUncertainties {}
 Store uncertainty variations relevant to SpaceShower.
 
bool uVarMuSoftCorr {}
 
bool uVarMPIshowers {}
 
int nUncertaintyVariations {}
 
int nVarQCD {}
 
int uVarNflavQ {}
 
double dASmax {}
 
double cNSpTmin {}
 
double uVarpTmin2 {}
 
double overFactor {}
 
map< int, double > varG2GGmuRfac
 
map< int, double > varQ2QGmuRfac
 
map< int, double > varQ2GQmuRfac
 
map< int, double > varG2QQmuRfac
 
map< int, double > varX2XGmuRfac
 
map< int, double > varG2GGcNS
 
map< int, double > varQ2QGcNS
 
map< int, double > varQ2GQcNS
 
map< int, double > varG2QQcNS
 
map< int, double > varX2XGcNS
 
map< int, double > * varPDFplus
 
map< int, double > * varPDFminus
 
map< int, double > * varPDFmember
 
- Protected Attributes inherited from PhysicsBase
InfoinfoPtr = {}
 
SettingssettingsPtr = {}
 Pointer to the settings database.
 
ParticleDataparticleDataPtr = {}
 Pointer to the particle data table.
 
HadronWidthshadronWidthsPtr = {}
 Pointer to the hadron widths data table.
 
RndmrndmPtr = {}
 Pointer to the random number generator.
 
CoupSMcoupSMPtr = {}
 Pointers to SM and SUSY couplings.
 
CoupSUSYcoupSUSYPtr = {}
 
BeamParticlebeamAPtr = {}
 
BeamParticlebeamBPtr = {}
 
BeamParticlebeamPomAPtr = {}
 
BeamParticlebeamPomBPtr = {}
 
BeamParticlebeamGamAPtr = {}
 
BeamParticlebeamGamBPtr = {}
 
BeamParticlebeamVMDAPtr = {}
 
BeamParticlebeamVMDBPtr = {}
 
PartonSystemspartonSystemsPtr = {}
 Pointer to information on subcollision parton locations.
 
SigmaTotalsigmaTotPtr = {}
 Pointer to the total/elastic/diffractive cross sections.
 
set< PhysicsBase * > subObjects
 
UserHooksPtr userHooksPtr
 

Detailed Description

The VinciaISR class Main shower class for initial-state (II and IF) antenna showers Inherits from SpaceShower in Pythia 8 so can be used as alternative to SpaceShower. Methods that must replace ones in SpaceShower are marked with override.

Member Function Documentation

bool branch ( Event event)
overridevirtual

Perform a branching (as defined by current "winner").

Perform a branching (as defined by current "winner"). Returns true of the branching was accepted and false if rejected.

System of index of the winner and extract current QE scales..

Set to false for IF because there it was always guy 1 who did gluon splitting/conversion in the initial state.

Count up global number of attempted trials.

Recoiler, allow for both II and IF to have global recoils

Check if we have to force a splitting (to get rid of heavy quarks).

If so, try to force the splitting at the scale we'd like to.

Generate full trial kinematics (and reject if outside phase-space).

Mark this trial as "used", will need to generate a new one..

If no recoilers for this branching, e.g. local IF map, zero iRecs,

If we have a force splitting update scale information might have change to ensure kinematics can be generated.

Assign colour flow. Note, using lastColTag here, if branching accepted we tell Pythia.

Check phase-space closed for getting rid of heavy quarks.

Mark this trial as "used", will need to generate a new one.

Check if this branching is above cutoff scale (but don't say no to getting rid of a massive flavour).

Check only if we don't force a splitting.

Reject and mark as "used", will need to generate a new trial.

Veto step, decide whether to accept or reject branching, skip for forced splitting.

Mark this trial as "used", will need to generate a new one.

Put new particles into event record, store a copy of event, to be used if branching vetoed by userHooks.

Check for recoilers from II (or IF with global recoil map) branchings.

Copy recoiler change momentum.

Update event pointers if necessary.

Check if we went from polarised to unpolarised state If so, depolarise parton state. A more complete alternative here would be to create depolarised copies of all partons and then update everything, but deemed unnecessary for now.

Depolarise parton state (except the branching mothers, which will be replaced by unpolarised daughters).

Skip if not present in final state.

Skip if mother parton to be replaced by daughter.

Else depolarise.

Also make sure all daughters are depolarised as well.

Set mothers and daughters, mark original dipole partons as branched.

New initial partons inherit mothers (beam).

Gluon emission.

iNew1 a inherits mothers of A, daughters are A and j.

iNew3 b inherits mothers of B, daughters are B and j.

iNew2 j gets a and b as mothers, no daughters.

Gluon splitting or conversion in the initial state: side A.

iNew1 a inherits mothers of A, daughters are A and j.

iNew3 b inherits mothers of B, daughter is B.

iNew2 j gets a as mother, no daughters.

Gluon splitting or conversion in the initial state: side B.

iNew1 a inherits mothers of A, daughter is A.

iNew3 b inherits mothers of B, daughters are B and j.

iNew2 j gets b as mother, no daughters.

i1sav A keeps its daughters, gets a as mother.

i2sav B keeps its daughters, gets b as mother.

iNew2 j has no daughters.

Put a and b as daughters of the beam for hard process.

New initial parton inherits mothers (beam).

Gluon emission.

iNew1 a inherits mothers of A, daughters are A and j.

i2sav K gets k and j as daughters, keeps its mothers.

iNew3 k gets K as mother, no daughters.

iNew2 j gets a and K as mothers, no daughters.

Gluon splitting or conversion in the initial state

iNew1 a inherits mothers of A, daughters are A and j.

i2sav K gets k as daughter, keeps its mothers.

iNew3 k gets K as mother, no daughters.

iNew2 j gets a as mother, no daughters.

Gluon splitting in the final state

iNew1 a inherits mothers of A, daughteris A.

i2sav K gets k and j as daughters, keeps its mothers.

iNew3 k gets K as mother, no daughters.

iNew2 j gets K as mother, no daughters.

i1sav A keeps its daughters, gets a as mother.

iNew3 5 has no daughters.

iNew2 j has no daughters.

Put a as daughter of the beam for hard process.

Veto by userHooks, possibility to allow user veto of emission step.

Everything accepted.

Update list of systems.

Initial partons.

Recoilers (if any).

Update beam particles.

Update both sides.

Side A.

Redo choice of companion kind whenever new flavour.

Side B.

Redo choice of companion kind whenever new flavour.

Update only one side.

Redo choice of companion kind whenever new flavour.

Update antennae due to recoil.

No recoil outside system.

Check relevant partons for recoilers.

i1 is always initial.

Update number of gluons and quark pairs.

Update list of partons and parton numbers.

Updates of the branched antennae. The BranchElemental that winnerPtr points to is no longer needed. Update it to store new antenna, and add second new antenna if needed.

Gluon emission.

II -> we created two IF antennae. IF -> we created an IF and an FF antenna (the latter of which is up to the FSR shower to find and handle). Update old antenna to be iNew1-iNew2 antenna.

Update colour. Second parton in new antenna is a gluon; decide whether the new antenna corresponds to its colour or anticolour tag. If this was an II branching -> add the other IF antenna.

Decide whether the new antenna corresponds to the colour or anticolour tag of the newly emitted gluon. Save branchelemental.

Gluon splitting in the initial state:

Old antenna should now and add an IF antenna. Decide whether this antenna corresponds to gluon colour or anticolour.

Update old antenna to be iNew1-iNew3 antenna.

Add the other IF antenna.

Update colour, old1 is gluon, so both col and acol != 0. Save branchelemental,

Gluon conversion in the initial state.

Update branched antenna, check IS or FS quark carry ant colour.

In case this is FF ant: kick out later.

IS quark is left.

Is II or IF ant.

FS quark is left.

Update trial generators.

Find other antenna, where converted gluon took part in, replace gluon with left quark.

Can only find one ant with old gluon, as winner already updated.

Only look inside same system.

New antenna is IF.

Gluon splitting in the final state.

Keep the old antenna (iNew2 as emission and iNew1 as initial partner) which is IF, no new one created. Update colour, old2 is quark so if col2 !=0 that's antenna colour

Update trial generators.

And check the other antenna i2sav was involved: has to be IF.

Skip antennae not in same system.

Map i2sav to iNew3.

Updates of the other antennae.

Only look inside same system.

Update particles.

Update.

Check relevant partons for recoilers.

i1 is always initial.

Reset rescue counter

Sanity check: Kick out any FF antenna we might have created.

Renew trials in all other systems since pdfs changed.

Skip same system.

Reset rescue counter.

Count the number of branchings in the system.

If we are going from ME-corrected to non-ME-corrected order, renew trials.

Let Pythia know how many color tags we used.

Check momentum conservation.

Check the event after each branching.

Statistics for first 10 branchings in first 4 systems.

Reimplemented from SpaceShower.

bool checkAntennae ( const Event event)

Check the antennae.

Initialise counters for systems we haven't seen yet.

Otherwise IF.

IF with 1 = I from A.

IF with 1 = I from B.

Check number of initial antennae in each system matches the color type of incoming partons.

Count number of antenna ends expected based on colour type of incoming particles.

Count number of antennae we have.

II contribute to two ends.

bool checkHeavyQuarkPhaseSpace ( vector< Particle parts,
int  iSyst 
)

Method to check if a gluon splitting in the initial state (to get rid of heavy quarks) is still possible after the current branching.

Loop over partons to check.

Find the colour partner.

Phase space limit is below the mass.

Check for energy exceeding beam energy.

Allowed maxima.

sajmin = mass^2.

Invariant > 0.5 GeV.

bool doRestart ( ) const
inlineoverridevirtual

Flag for failure in branch(...) that will force a retry of parton level. Returns false in base class, and rescatterFail in simpleTimeShower. Not implemented in Vincia yet since we do not do rescattering.

Reimplemented from SpaceShower.

double enhancePTmax ( ) const
inlineoverridevirtual

Potential enhancement factor of pTmax scale for hardest emission. Used if limitPTmax = true.

Reimplemented from SpaceShower.

double getQbranch ( int  iSys,
int  iBranch 
)
inline

Get scale of branchings; use (0,1) for first branching in 1st system. Could be extended so (i,0) would return starting scale for system i.

bool heavyQuarkLeft ( double  qTrial)

Method to check if heavy quark left after passing the evolution window.

We are above mb.

Loop over antennae.

Safety of 2%.

Find the index of the trial generator for splitting.

Only check parton 2 if this is an II antenna.

Safety of 2%.

Find the index of the trial generator for splitting.

void init ( BeamParticle beamAPtrIn,
BeamParticle beamBPtrIn 
)
overridevirtual

Initialize shower. Possibility to force re-initialization by hand.

The VinciaISR class.

Initialize shower.

Check if already initialized.

Event counters and debugging.

Main switches.

Beam parameters.

Beam particles.

Assume all events in same run have same beam-beam energies.

Possibility to allow user veto of emission step.

Number of active quark flavours.

Mass corrections.

Global flag for helicity dependence.

Global flag for sector showers on/off.

Allow to try other IF kinematics map if selected fails.

Mass windows : specifies thresholds for each flavour.

Perturbative cutoff.

Check PDF Q2min value and issue warning if above ISR cutoff scale(s)

Set shower alphaS pointer.

AlphaS parameters.

Smallest allow scale.

Check largest numerical value of alphaS we can have.

If we want to get rid of heavy quarks we need to change the masses to the ones in the pdfs.

Check if we can get mass from beams directly (LHAPDF6 only).

If not attempt to find it.

Set x = 0.001 and check the gradient.

Update

Reset the derived scales.

Evolution windows.

Fill constant version with masses.

Fill the rest.

Trial generators.

Enhance settings.

Resize Paccept to the maximum number of elements.

Clear containers.

Statistics.

Rescue levels.

Initialize factorization scale and parameters for shower starting scale.

Initialize the ISR antenna functions.

Initialise the QED shower module if not done already.

Print VINCIA header and list of parameters, call issued by ISR since we are initialised last.

Reimplemented from SpaceShower.

bool initUncertainties ( )
inlineoverridevirtual

Initialize data members for calculation of uncertainty bands. So far purely dummy in Vincia.

Reimplemented from SpaceShower.

bool limitPTmax ( Event event,
double  Q2Fac = 0.,
double  Q2Ren = 0. 
)
overridevirtual

Possible limitation of first emission.

Method to determine if max pT limit should be imposed on first emission.

Check if limiting pT of first emission.

Always restrict SoftQCD processes.

Look if jets or photons in final state of hard system (iSys = 0).

If no QCD/QED partons detected, allow to go to phase-space maximum.

Reimplemented from SpaceShower.

void prepare ( int  iSys,
Event event,
bool  limitPTmaxIn = false 
)
overridevirtual

Prepare system for evolution; identify ME.

Prepare system of partons for evolution; identify ME.

First time prepare is called for an event.

getCounter(3) number of times a Pythia::next() call has been begun.

Last event got accepted.

getCounter(10) number of times the selection of a new hard process has been begun. = 1 if no user hooks veto, > 1 if user hooks veto.

getCounter(14) number of times the loop over parton- and hadron-level processing has begun for a hard process. = 1 if everything after user hooks veto is succesful, > 1 eg if hadron level fails.

Resetting for first time in new event.

Reset counters.

Reset the weights in new events.

Reset all vectors for the first time we are called.

Evolution windows, add factorization scale.

Sort to put factorization scale at the right place.

Fill the rest.

Statistics (zero info on qBranch scales).

Sanity check: at least two particles in system.

Check if this is a resonance-decay system; if so, let FSR deal with it.

Flag to tell FSR that ISR::prepare() has treated this system. We assume that when both ISR::prepare() and FSR::prepare() are called, the sequence is that ISR::prepare() is always called first.

We don't have a starting scale for this system yet.

After prepare we always have zero branchings.

Initialise polarisation flag (false if any parton not polarised).

Set isHardSys and isResonance flags.

Make light quarks (and initial-state partons) explicitly massless.

Update the beam pointers (incoming partons stored as 0,1 in partonSystems). Needed in case makeNewCopies = true; also ensures beamA == positive pZ.

Then see if we know how to compute MECs for this conf.

Then see if and whether we can assign helicities.

Decide if we should be doing ME corrections for next order.

Communicate with FSR.

Then see if we should colourize this conf.

Find and save all colors and anticolors.

Loop over event record. Find indices of particles with color lines.

Save to colour maps.

Cross colours for initial partons.

Now loop over colored particles to create branch elementals (=antennae).

Colour index.

i1 is the colour (or incoming anticolour) carrier. i2 is the anticolour (or incoming colour) carrier.

Exclude final-final antennae.

Check whether i1 is valence (if incoming).

Check whether i2 is valence (if incoming).

Store trial QCD antenna and add trial generators depending on type.

Count up number of gluons and quark pairs.

Half the quarks to get quark pairs.

Sanity check.

Set starting scale for this system.

Reimplemented from SpaceShower.

void printInfo ( bool  pluginCall = false)

Print final statistics information.

Weight info.

double pTnext ( Event event,
double  pTbegAll,
double  pTendAll,
int  nRadIn = -1,
bool  doTrialIn = false 
)
overridevirtual

Select next pT in downwards evolution.

Check if we are supposed to do anything.

Checks: skipped ants (q[MPI/FSR] > qISR), qEnd < all cutoffs, no ants.

Denote VINCIA scales by "q", PYTHIA ones by "pTevol".

Initialize winner scale.

Loop over antennae (in all currently existing parton systems).

Shorthand for this antenna.

Check if we are skipping this kind of antenna.

Generate new trial branchings, starting from qMax.

Lowest evolution boundary: impose hadronization scale.

Cutoff scale, depends on whether we are II or IF antenna.

No trial generators for this antenna

Loop over trial functions. Find and save max trial scale.

Pointer to trial generator for this trial.

Phase space limit can never be exceeded.

If restart scale < scale we already found continue.

Check if any phase space still open.

Verbose output.

Generate new q value/no saved trial.

Impose evolution windows.

Go through regions.

Set overestimated Z range for trial generation.

Set headroom factor (= constant multiplying trial probability).

Check for rescue mechanism in case trial gets stuck.

Multiply headroom.

Set PDFratio. If II the first is always side A. If IF check which side the initial guy is. For g->qq splittings.

For trial branchings that have multiple flavour combinations (gluon conversion) check which trial flavour was picked and store PDF ratio for that flavour.

Set color factor for trial.

Effective renormalization-scale prefactor.

Check if we should use running alphaS.

If we are close to lambdaQCD, use constant instead.

Check if we should try to get rid of c and b quarks, iRegion 2 = mc to mb, iRegion 3 = mb to mtb.

Flavours to check.

Enhancements (biased kernels).

At the trial level, all gluon splittings and conversions enhanced by max(enhanceCharm, enhanceBottom).

Sanity check for zero branching probability.

Mass treatment, use PDFs mass thresholds with constant alphaS.

Add extra headroom, should really be multiplying trial PDF ratio.

Overestimate.

alphaS for overestimate.

Generate new q value, with constant alphaS.

Trial information.

AlphaS running inside trial integral.

One-loop beta function (two-loop imposed by veto, below).

Use 3-flavour Lambda for overestimate.

Generate new q value, with alphaS running inside trial integral.

Save trial information.

AlphaS outside trial integral.

Constant alphaS.

Generate new q value, with constant alphaS.

Save trial information.

Check evolution window boundaries.

End loop over regions.

Check for rescue mechanism in case trial gets stuck.

End loop over trial generators.

Check if trial wins.

End loop over antennae.

If non-zero branching scale found: continue.

Check if qEnd < all cutoffs.

ISR is done (at least for this system), set the weights.

Check if we have a heavy quark in the initial state left.

Set scale to the corresponding mass.

Make sure we get the next branching.

Reimplemented from SpaceShower.

void resetTrialGenerators ( BranchElementalISR trial)

Add trial functions to a BranchElemental.

Reset.

Always p+ for II. Always I for IF.

Always p- for II. Always F for IF.

II antennae.

QQbar.

GG.

QG.

GQ.

IF antennae.

QQ.

Use different trial generator for valence quarks.

GG.

GQ.

QG.

GOctetOnium.

QOctetOnium.

void update ( int  iSys,
Event event,
bool  hasWeakRad = false 
)
overridevirtual

Update dipole list after each ISR emission.

Skip if the branching system has no incoming partons.

Count number of branches.

Particles in the list are already updated by FSR. Find and save all colors and anticolors.

Also count number of gluons and quark pairs.

Save to colour maps.

Switch colours for initial partons.

Count number of gluons and quark pairs.

Loop over the antennae, and look for changed ones. Start from back so that if we remove one it won't mess up loop

Only check antennae in same system.

Sanity check. We don't destroy colour lines. Antenna colour should not have disappeared.

Initial-initial antennae.

Fetch up to date i1. Check if i1 attached on colour or anticolour end of dipole.

Fetch up to date i2. Check if i1 attached on colour or anticolour end of dipole.

col because initial

Check if i1 is still the incoming particle.

Check if a QED backwards evolution.

Otherwise we dont't know about this case.

First check if i2 is still the incoming particle.

Check if a QED backwards evolution.

Otherwise we dont't know about this case.

Check if need to update.

Initial-final antennae.

Fetch up to date i1. Ceck if i1 attached on colour or anticolour end of dipole.

Fetch up to date i2.

Check if i1New is still incoming.

Check if QED backwards evolution.

Otherwise we dont't know about this case.

Check if need to update.

Recompute antenna mass.

Remove antenna either because something went wrong or QED backwards evol.

End loop over branchers.

Check leftover colour lines (dismiss any FF). Can occur e.g. if photon backwards evolves into qqbar.

Exclude final-final antennae.

Store trial QCD antenna and add trial generators depending on type.

There was an unmatched colour line.

If we are going from ME-corrected to non-ME-corrected order, renew trials.

Sanity check.

Reimplemented from SpaceShower.

bool wasGamma2qqbar ( )
inlineoverridevirtual

Flag for last ISR branching being gamma -> qqbar. Not implemented in Vincia's QED evolution yet.

Reimplemented from SpaceShower.


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