PYTHIA  8.312
Public Member Functions | List of all members
BeamParticle Class Reference

#include <BeamParticle.h>

Inheritance diagram for BeamParticle:
PhysicsBase

Public Member Functions

 BeamParticle ()
 Constructor.
 
void init (int idIn, double pzIn, double eIn, double mIn, PDFPtr pdfInPtr, PDFPtr pdfHardInPtr, bool isUnresolvedIn, StringFlav *flavSelPtrIn)
 Initialize data on a beam particle and save pointers. More...
 
void initID (int idIn)
 Initialize only the id.
 
void initPDFPtr (PDFPtr pdfInPtr, PDFPtr pdfHardInPtr)
 Initialize only the two pdf pointers.
 
void initUnres (PDFPtr pdfUnresInPtr)
 Initialize additional PDF pointer for unresolved beam. More...
 
void initSwitchID (const vector< PDFPtr > &pdfSavePtrsIn)
 Initialize array of PDFs for switching between them.
 
void newValenceContent ()
 For mesons like pi0 valence content varies from event to event. More...
 
void setValenceContent (int idq1, int idq2=0, int idq3=0)
 
void setBeamID (int idIn, int iPDFin=-1)
 Switch to new beam particle identity; for similar hadrons only.
 
void newPzE (double pzIn, double eIn)
 Set new pZ and E, but keep the rest the same.
 
void newM (double mIn)
 Set new mass. Used with photons when virtuality is sampled.
 
int id () const
 Member functions for output.
 
int idVMD () const
 
Vec4 p () const
 
double px () const
 
double py () const
 
double pz () const
 
double e () const
 
double m () const
 
double mVMD () const
 
double scaleVMD () const
 
bool isLepton () const
 
bool isUnresolved () const
 
bool isHadron () const
 As hadrons here we only count those we know how to handle remnants for.
 
bool isMeson () const
 
bool isBaryon () const
 
bool isGamma () const
 
bool hasResGamma () const
 
bool hasVMDstate () const
 
double xMax (int iSkip=-1)
 Maximum x remaining after previous MPI and ISR, plus safety margin. More...
 
double xfHard (int idIn, double x, double Q2)
 Special hard-process parton distributions (can agree with standard ones).
 
double xfMax (int idIn, double x, double Q2)
 Overestimate for PDFs. Same as normal except photons inside leptons.
 
double xfFlux (int idIn, double x, double Q2)
 Accurate and approximated photon flux and PDFs.
 
double xfApprox (int idIn, double x, double Q2)
 
double xfGamma (int idIn, double x, double Q2)
 
double xfSame (int idIn, double x, double Q2)
 
double xf (int idIn, double x, double Q2)
 Standard parton distributions.
 
double xfVal (int idIn, double x, double Q2)
 Ditto, split into valence and sea parts (where gluon counts as sea).
 
double xfSea (int idIn, double x, double Q2)
 
double xfMPI (int idIn, double x, double Q2, xfModPrepData &xfData)
 
double xfMPI (int idIn, double x, double Q2)
 
double xfISR (int indexMPI, int idIn, double x, double Q2, xfModPrepData &xfData)
 
double xfISR (int indexMPI, int idIn, double x, double Q2)
 
bool insideBounds (double x, double Q2)
 Check whether x and Q2 values fall inside the fit bounds (LHAPDF6 only).
 
double alphaS (double Q2)
 Access the running alpha_s of a PDF set (LHAPDF6 only).
 
double mQuarkPDF (int idIn)
 Return quark masses used in the PDF fit (LHAPDF6 only).
 
int nMembers ()
 Return number of members in PDF family (LHAPDF6 only).
 
void calcPDFEnvelope (int idNow, double xNow, double Q2Now, int valSea)
 Calculate envelope of PDF predictions.
 
void calcPDFEnvelope (pair< int, int > idNows, pair< double, double > xNows, double Q2Now, int valSea)
 
PDF::PDFEnvelope getPDFEnvelope ()
 
int pickValSeaComp ()
 Decide whether chosen quark is valence, sea or companion. More...
 
void initBeamKind ()
 Initialize kind of incoming beam particle. More...
 
ResolvedPartonoperator[] (int i)
 Overload index operator to access a resolved parton from the list.
 
const ResolvedPartonoperator[] (int i) const
 
int size () const
 Total number of partons extracted from beam, and initiators only.
 
int sizeInit () const
 
void clear ()
 Clear list of resolved partons.
 
void resetGamma ()
 Reset variables related to photon beam.
 
void resetGammaInLepton ()
 Reset variables related to photon beam inside a lepton.
 
int append (int iPos, int idIn, double x, int companion=-1)
 Add a resolved parton to list.
 
void popBack ()
 Remove the last particle from the beam. Reset companion code if needed.
 
void list () const
 Print extracted parton list; for debug mainly. More...
 
int nValenceKinds () const
 How many different flavours, and how many quarks of given flavour.
 
int nValence (int idIn) const
 
bool isUnresolvedLepton ()
 Test whether a lepton is to be considered as unresolved. More...
 
bool remnantFlavours (Event &event, bool isDIS=false)
 Add extra remnant flavours to make valence and sea come out right. More...
 
bool remnantColours (Event &event, vector< int > &colFrom, vector< int > &colTo)
 Correlate all initiators and remnants to make a colour singlet. More...
 
double xRemnant (int i)
 Pick unrescaled x of remnant parton (valence or sea). More...
 
bool hasJunction () const
 Tell whether a junction has been resolved, and its junction colours.
 
int junctionCol (int i) const
 
void junctionCol (int i, int col)
 
bool pickGluon (double mDiff)
 For a diffractive system, decide whether to kick out gluon or quark. More...
 
int pickValence ()
 Pick a valence quark at random, and provide the remaining flavour. More...
 
int pickRemnant () const
 
double zShare (double mDiff, double m1, double m2)
 Share lightcone momentum between two remnants in a diffractive system. More...
 
double pxShare () const
 
double pyShare () const
 
bool remnantFlavoursNew (Event &event)
 Add extra remnant flavours to make valence and sea come out right. More...
 
void findColSetup (Event &event)
 Find the colour setup of the removed partons from the scatterings. More...
 
void setInitialCol (Event &event)
 Set initial colours. More...
 
void updateCol (vector< pair< int, int > > colourChanges)
 Update colours. More...
 
vector< pair< int, int > > getColUpdates ()
 
bool gammaInitiatorIsVal (int iResolved, int id, double x, double Q2)
 Set valence content for photon beams and position of first valence quark. More...
 
bool gammaInitiatorIsVal (int iResolved, double Q2)
 Check whether parton iResolved with given Q^2 is a valence quark.
 
int getGammaValFlavour ()
 
int gammaValSeaComp (int iResolved)
 Return the type of the hard parton from a photon beam. More...
 
void posVal (int iPosValIn)
 
void gamVal (int iGamValIn)
 
int gamVal ()
 
void resolvedGamma (bool isResolved)
 Set and get the state (resolved and/or unresolved) of photon beam.
 
bool resolvedGamma () const
 
void setGammaMode (int gammaModeIn)
 Set the photon mode (none (0), resolved (1), unresolved (2)) of the beam. More...
 
int getGammaMode () const
 
bool isResolvedUnresolved () const
 
void initGammaInBeam ()
 
bool gammaInBeam () const
 
void setVMDstate (bool isVMDIn, int idIn, double mIn, double scaleIn, bool reassignState=false)
 Set state of VMD inside gamma.
 
void pT2gamma2qqbar (double pT2in)
 Store the pT2 value of gamma->qqbar splitting.
 
double pT2gamma2qqbar ()
 
void pTMPI (double pTminMPIin)
 Store the pT value for the latest MPI.
 
bool roomFor1Remnant (double eCM)
 Check whether room for beam remnants. More...
 
bool roomFor1Remnant (int id1, double x1, double eCM)
 Check whether room for a one remnant system. More...
 
bool roomFor2Remnants (int id1, double x1, double eCM)
 Check whether room for two remnants in the event. More...
 
bool roomForRemnants (BeamParticle beamOther)
 Check whether room for two remnants in the event. This used by MPI. More...
 
double remnantMass (int idIn)
 Evaluate the remnant mass with initiator idIn. More...
 
double gammaPDFxDependence (int flavour, double x)
 Functions to approximate pdfs for ISR.
 
double gammaPDFRefScale (int flavour)
 
double xIntegratedPDFs (double Q2)
 
void xGammaPDF ()
 Save the x_gamma value after latest PDF call or set it later if ND.
 
void xGamma (double xGmIn)
 
void Q2Gamma (double Q2GmIn)
 
void newGammaKTPhi (double kTIn, double phiIn)
 
double xGammaMin ()
 Get the kinematic limits for photons emitted by the beam.
 
double xGammaHadr ()
 
double gammaFluxIntApprox ()
 
bool hasApproxGammaFlux ()
 Do photon flux use an approximation for sampling.
 
double xGamma () const
 Get the kinematics related photons form lepton beams.
 
double Q2Gamma () const
 
double gammaKTx () const
 
double gammaKTy () const
 
double gammaKT () const
 
double gammaPhi () const
 
void xPom (double xpom=-1.0)
 Keep track of pomeron momentum fraction.
 
double sampleXgamma (double xMinIn)
 Sample x and Q2 for emitted photons according to flux.
 
double sampleQ2gamma (double Q2min)
 
xfModPrepData xfModPrep (int iSkip, double Q2)
 Prepare data on how much x has been used, for speedup of PDF evaluation. More...
 
- 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
 
vector< bool > fvec (string key) const
 
vector< int > mvec (string key) const
 
vector< double > pvec (string key) const
 
vector< string > wvec (string key) const
 

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, HADRONLEVEL_USERVETO
}
 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 PhysicsBase
InfoinfoPtr = {}
 
SettingssettingsPtr = {}
 Pointer to the settings database.
 
ParticleDataparticleDataPtr = {}
 Pointer to the particle data table.
 
LoggerloggerPtr = {}
 Pointer to logger.
 
HadronWidthshadronWidthsPtr = {}
 Pointer to the hadron widths data table.
 
RndmrndmPtr = {}
 Pointer to the random number generator.
 
CoupSMcoupSMPtr = {}
 Pointers to SM and SUSY couplings.
 
CoupSUSYcoupSUSYPtr = {}
 
BeamSetupbeamSetupPtr = {}
 
BeamParticlebeamAPtr = {}
 
BeamParticlebeamBPtr = {}
 
BeamParticlebeamPomAPtr = {}
 
BeamParticlebeamPomBPtr = {}
 
BeamParticlebeamGamAPtr = {}
 
BeamParticlebeamGamBPtr = {}
 
BeamParticlebeamVMDAPtr = {}
 
BeamParticlebeamVMDBPtr = {}
 
PartonSystemspartonSystemsPtr = {}
 Pointer to information on subcollision parton locations.
 
SigmaTotalsigmaTotPtr = {}
 Pointers to the total/elastic/diffractive cross sections.
 
SigmaCombinedsigmaCmbPtr = {}
 
set< PhysicsBase * > subObjects
 
UserHooksPtr userHooksPtr
 

Detailed Description

This class holds info on a beam particle in the evolution of initial-state radiation and multiparton interactions.

Member Function Documentation

void findColSetup ( Event event)

Find the colour setup of the removed partons from the scatterings.


Find the colour configuration of the scattered partons and update the colour tags to match this configuration.

Reset current colour setup;

Setup colour states.

Find all possible multiplets and their degeneracies.

If particle is a quark.

Junction combination.

If particle is an anti quark.

Junction combination.

If particle is a gluon.

Junction combinations.

If the parton is not a quark or a gluon.

Pick a specific multiplet depending on colour weight and saturation. Start by calculating the sum of all weights.

Do not allow colour singlet states, since this will overlap with diffractive events described elsewhere in PYTHIA.

Choose one colour configuration.

Do not allow singlets.

Reweight according to multiplet size.

Find the whole colour flow chain.

Update scattered partons to reflect new colour configuration and store still unconnected colours and anti-colours.

If particle is a quark.

Add quark to list of colours.

Find anti colour that quark connects to and update event record.

Else must be junction:

If particle is an anti quark.

Add anti quark to list of anti colours

Find colour that anti quark connects to and update event record.

Else it has to be a junction configuration:

If particle is a gluon.

Add gluon to list of colours.

Remove colour and anti colour.

First remove colour.

Then remove anti colour.

If the gluon connects to a single end. If it is possible to both go to a colour or anti colour pick randomly.

Remove colour and add new colour.

Else remove anti colour and add new anti colour.

Junction configuratons.

Gluon anti-junction case.

Gluon junction case.

Gluon anti-junction case.

Gluon junction case.

Done updating event.

bool gammaInitiatorIsVal ( int  iResolved,
int  idInit,
double  x,
double  Q2 
)

Set valence content for photon beams and position of first valence quark.

Check whether initiator parton is a valence quark using the PDFs. Set the position of the valence quark to iGamVal.

Reset the valence quark position.

Gluon is not a valence parton. Sample content accordingly.

Set the valence content to match with the hard process to get the correct PDFs and to store the choice. Changed by sampleGammaValFlavor.

If initiator from gamma->qqbar splitting then it is a valence quark.

If Q^2 is smaller than mass of quark set to valence.

Use PDFs to decide if valence parton.

If the initiator not valence sample the flavour.

int gammaValSeaComp ( int  iResolved)

Return the type of the hard parton from a photon beam.

Default choice a sea quark.

Gluons and photons -1.

Quarks are valence partons if decided so earlier.

void init ( int  idIn,
double  pzIn,
double  eIn,
double  mIn,
PDFPtr  pdfInPtr,
PDFPtr  pdfHardInPtr,
bool  isUnresolvedIn,
StringFlav flavSelPtrIn 
)

Initialize data on a beam particle and save pointers.

Store input pointers (and one bool) for future use.

Save the usual PDF pointers as the normal ones may be overwritten with unresolved PDFs when mixing different photoproduction modes.

Maximum quark kind in allowed incoming beam hadrons.

Power of (1-x)^power/sqrt(x) for remnant valence quark distribution.

x enhancement factor for remnant heavy valence quarks (s, c, b). Repackadge input so that new index = PDG id code for quarks.

Enhancement factor of x of diquark.

Assume g(x) ~ (1-x)^power/x to constrain companion to sea quark.

Assume g(x) ~ (1-x)^power/x with a cut-off for low x.

Allow or not more than one valence quark to be kicked out.

Choose whether to form a di-quark or a junction with new colur reconnection scheme.

Allow junctions in the outgoing colour state.

For low-mass diffractive system kick out q/g = norm / mass^power.

Controls the amount of saturation in the new model.

Width of primordial kT distribution in low-mass diffractive systems.

Suppress large masses of beam remnant in low-mass diffractive systems.

Check if ISR for photon collisions is applied and set pTmin.

Store info on the incoming beam.

To be set process by process so start with false.

Initialize parameters related to photon beams.

void initBeamKind ( )

Initialize kind of incoming beam particle.

Initialize kind and valence flavour content of incoming beam. For recognized hadrons one can generate multiparton interactions. Dynamic choice of meson valence flavours in newValenceContent below.

Reset.

To be modified according to the process.

Leptons or DM beam.

Photon beam.

Pomeron or meson beam.

Baryon beam.

void initUnres ( PDFPtr  pdfUnresInPtr)

Initialize additional PDF pointer for unresolved beam.

Initialize the photon beam with additional unresolved PDF pointer.

Set the pointer and check that pointer exists.

bool isUnresolvedLepton ( )

Test whether a lepton is to be considered as unresolved.

Require record to consist of lepton with full energy plus a photon.

void list ( ) const

Print extracted parton list; for debug mainly.

Print the list of resolved partons in a beam.

Header.

Loop over list of removed partons and print it.

Also find sum of x and p values.

Print sum and endline.

void newValenceContent ( )

For mesons like pi0 valence content varies from event to event.

Dynamic choice of meson valence flavours for pi0, eta, K0S, K0L, Pomeron.

For leptons and DM, the valence content is just the beam.

An eta or eta' oscillates between d dbar, u ubar and s sbar.

Probability of getting d quark.

pi0-like and omega-like hadrons oscillate between d dbar and u ubar.

A K0S or K0L oscillates between d sbar and s dbar.

For photons a VMD content may be chosen, or the choice may be delayed.

A rho and omega oscillates between a uubar and ddbar.

A phi is an ssbar system.

COR: A J/psi is an ccbar system.

For non-VMD photons do not set valence content but treat everything like sea until the flavour is sampled after ISR.

For all other cases, there is an unambiguous quark content.

Decompose default valence content.

Shift content for meson, and determine which is the antiquark.

Flip signs for antiparticle beam.

Set content.

bool pickGluon ( double  mDiff)

For a diffractive system, decide whether to kick out gluon or quark.

Relative weight to pick a quark, assumed falling with energy.

int pickValence ( )

Pick a valence quark at random, and provide the remaining flavour.

Pick a valence quark at random. (Used for diffractive systems.)

Pick one valence quark at random (biased based on Additive Quark Model).

This valence in slot 1, the rest thereafter.

Construct diquark if baryon.

Done.

int pickValSeaComp ( )

Decide whether chosen quark is valence, sea or companion.

Decide whether a quark extracted from the beam is of valence, sea or companion kind; in the latter case also pick its companion. Assumes xfModified has already been called.

If parton already has a companion than reset code for this.

Default assignment is sea.

For gluons or photons no sense of valence or sea.

For lepton beam assume same-kind lepton inside is valence.

Decide if valence or sea quark. For photons, consider all partons as sea until valence content fixed.

If not either, loop over all possible companion quarks.

Bookkeep assignment; for sea–companion pair both ways.

Done; return code for choice (to distinguish valence/sea in Info).

bool remnantColours ( Event event,
vector< int > &  colFrom,
vector< int > &  colTo 
)

Correlate all initiators and remnants to make a colour singlet.

No colours in lepton beams so no need to do anything.

Copy initiator colour info from the event record to the beam.

Find number and position of valence quarks, of gluons, and of sea-companion pairs (counted as gluons) in the beam remnants. Skip gluons with same colour as anticolour and rescattering partons.

Pick a valence quark to which gluons are attached. Do not resolve quarks in diquark. (More sophisticated??)

This valence quark defines initial (anti)colour.

Do random stepping through gluon/(sea+companion) list.

Find matching anticolour/colour to current colour/anticolour.

Not gluon but sea+companion pair: go to other.

Collapse this colour-anticolour pair to the lowest one.

Pick up the other colour of the recent gluon and repeat.

Not gluon but sea+companion pair: go to other.

At end of gluon/(sea+companion) list.

Now begin checks, and also finding junction information. Loop through remnant partons; isolate all colours and anticolours.

Remove all matching colour-anticolour pairs.

Usually one unmatched pair left to collapse.

Store an (anti)junction when three (anti)coloured daughters.

Any other nonvanishing values indicate failure.

Store colour assignment of beam particles.

Done.

bool remnantFlavours ( Event event,
bool  isDIS = false 
)

Add extra remnant flavours to make valence and sea come out right.

Add required extra remnant flavour content. Also initial colours.

Elastically scattered beam, e.g. for coherent photon from proton.

A baryon will have a junction, unless a diquark is formed later.

Store how many hard-scattering partons were removed from beam.

Decide the valence content of photon beam here if ISR is applied.

For direct-resolved processes no need for remnants on direct side.

If ISR but no MPIs check only for the one initiator.

If remnants are constructed fix the valence content using the scale where ISR have stopped.

Set the initiator companion code after the valence content is fixed.

If ISR is applied, use the min. scale of evolution for the valence parton decision. Otherwise use the pT of latest MPI (set in scatter).

If a quark from gamma->qqbar exists, this must be the valence so set it to valence and the possible companion to other valence.

Loop through initiators starting from parton from the hardest interaction and check whether valence. When found, no need to check further.

If the chosen valence parton has a companion, set this to be the other valence parton.

No need for remnants with unresolved photon from leptons.

Find remaining valence quarks.

No valence quarks if ISR find the original beam photon.

Add remaining valence quarks to record. Partly temporary values.

If at least two valence quarks left in baryon remnant then form diquark.

If three, pick two at random to form diquark, else trivial.

Pick spin 0 or 1 according to SU(6) wave function factors.

Overwrite with diquark flavour and remove one slot. No more junction.

Find companion quarks to unmatched sea quarks.

Add companion quark to record; and bookkeep both ways.

If no other remnants found, add a gluon or photon to carry momentum. Add partons for photons only if remnants needed.

For DIS allow collapse to one colour singlet hadron.

Companion last; find parton with matching colour.

Combine to new hadron flavour.

Overwrite with hadron flavour and remove companion.

Set initiator and remnant masses.

For debug purposes: reject beams with resolved junction topology.

Pick initial colours for remnants.

Done.

bool remnantFlavoursNew ( Event event)

Add extra remnant flavours to make valence and sea come out right.


Add required extra remnant flavour content. Also initial colours.

A baryon will have a junction, unless a diquark is formed later.

Store how many hard-scattering partons were removed from beam.

Find remaining valence quarks.

Add remaining valence quarks to record. Partly temporary values.

Find companion quarks to unmatched sea quarks.

Add companion quark to record; and bookkeep both ways.

Count the number of gluons that needs to be added.

If no other remnants found, add a light q-qbar pair or a photon to carry momentum.

If at least two valence quarks left in baryon and no junction formed. First check if junction already was moved into beam.

If three, pick two at random to form junction, else trivial.

Either form di-quark or (anti-)junction.

Form antijunction.

Start by finding last colour in the out going particles.

Find matching anti-colour.

Make the antijunction.

Form Junction.

Start by finding last colour in the out going particles.

Find matching colour.

Make the junction.

Form diquark.

Pick spin 0 or 1 according to SU(6) wave function factors.

Overwrite with diquark flavour and remove one slot. No more junction.

Di-quark changes the baryon number.

Form anti-junction out of any beam remnants if needed.

Form junction out of any beam remnants if needed.

Set remaining colours first in random order.

Check if resolved has colour.

Check if resolved has anti colour.

Add all missed colours from the random assignment.

Check if resolved has colour.

Check if resolved has anti colour.

Need to end in a colour singlet.

Set initiator and remnant masses.

For debug purposes: reject beams with resolved junction topology.

Done.

double remnantMass ( int  idIn)

Evaluate the remnant mass with initiator idIn.

Approximate the remnant mass according to the initiator.

Hadrons: remove valence flavour masses from the hadron mass, add others.

Photons: For gluons, add two light partons to act as valence, otherwise add mass of companion. No remnants for unresolved photons.

bool roomFor1Remnant ( double  eCM)

Check whether room for beam remnants.

Check whether room for a one remnant system.

If no remnants for the beam return true.

Else check whether room with given kinematics.

bool roomFor1Remnant ( int  id1,
double  x1,
double  eCM 
)

Check whether room for a one remnant system.

Use u-quark mass as a lower limit for the remnant mass.

For gluons minimum requirement two light quarks. For quarks need room for one quark of same flavor.

bool roomFor2Remnants ( int  id1,
double  x1,
double  eCM 
)

Check whether room for two remnants in the event.

Use u-quark mass as a lower limit for the remnant mass.

For gluons minimum requirement two light quarks. For quarks need room for one quark of same flavor.

bool roomForRemnants ( BeamParticle  beamOther)

Check whether room for two remnants in the event. This used by MPI.

Calculate the invariant mass remaining after MPIs.

Calculate the total mass of each beam remnant.

If initiator a valence, no need for a companion remnant.

If all initiators are gluons leave room for two light quarks. In case of hadrons the mass is taken into account already in xMax().

If not enough invariant mass left for remnants reject scattering.

void setGammaMode ( int  gammaModeIn)

Set the photon mode (none (0), resolved (1), unresolved (2)) of the beam.

For hadrons mode always 0.

Save the mode of the photon beam.

Set the beam and PDF pointers to unresolved mode.

Only a photon beam can be unresolved with gammaMode == 2.

Set the beam and PDF pointers to resolved mode.

void setInitialCol ( Event event)

Set initial colours.

Set beam colours equal to those in the event record.

void setValenceContent ( int  idq1,
int  idq2 = 0,
int  idq3 = 0 
)

Insert in array.

Propagate change to PDF routine(s).

void updateCol ( vector< pair< int, int > >  colourChanges)

Update colours.

Update list of all colours in beam.

Update acols and cols.

Update resolved partons colours.

xfModPrepData xfModPrep ( int  iSkip,
double  Q2 
)

Prepare data on how much x has been used, for speedup of PDF evaluation.

Caclulate used and left x fractions in total and of a few kinds.

Initial value.

Calculate total and remaining amount of x carried by valence quarks.

Calculate how much x is left overall.

Calculate total amount of x carried by unmatched companion quarks.

Typo warning: extrafactor missing in Skands&Sjostrand article; <x> for companion refers to fraction of x left INCLUDING sea quark.

Calculate total rescaling factor and pdf for sea and gluon.

Done.

double xfMPI ( int  idIn,
double  x,
double  Q2,
xfModPrepData xfData 
)
inline

Rescaled parton distributions, as needed for MPI and ISR. For ISR also allow split valence/sea, and only return relevant part.

double xfSame ( int  idIn,
double  x,
double  Q2 
)
inline

Do not sample the x_gamma value to get correct cross section with possible second call.

double xMax ( int  iSkip = -1)

Maximum x remaining after previous MPI and ISR, plus safety margin.

Minimum requirement on remaining energy > nominal mass for hadron.

Subtract what was carried away by initiators (to date).

double xRemnant ( int  i)

Pick unrescaled x of remnant parton (valence or sea).

Pick unrescaled x values for beam remnant sharing.

Hadrons (only used for DIS) rather primitive for now (probably OK).

Calculation of x of valence quark or diquark, for latter as sum.

Resolve diquark into sum of two quarks.

Loop over (up to) two quarks; add their contributions.

Assume form (1-x)^a / sqrt(x).

Enhancement for heavier quark (motivated by equal-velocity argument).

End loop over (up to) two quarks. Possibly enhancement for diquarks.

Calculation of x of sea quark, based on companion association.

Find rescaled x value of companion.

Now use ansatz q(x; x_c) < N/(x +x_c) to pick x.

Else a gluon remnant. Rarely it is a single gluon remnant, for that case value does not matter.

double zShare ( double  mDiff,
double  m1,
double  m2 
)

Share lightcone momentum between two remnants in a diffractive system.

Share lightcone momentum between two remnants in a diffractive system. At the same time generate a relative pT for the two.

Set up as valence in normal beam so can use xRemnant code.

Begin to generate z and pT until acceptable solution.

Suppress large invariant masses of remnant system.

Done.


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