PYTHIA
8.312
|
#include <BeamParticle.h>
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... | |
ResolvedParton & | operator[] (int i) |
Overload index operator to access a resolved parton from the list. | |
const ResolvedParton & | operator[] (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 | |
Info * | infoPtr = {} |
Settings * | settingsPtr = {} |
Pointer to the settings database. | |
ParticleData * | particleDataPtr = {} |
Pointer to the particle data table. | |
Logger * | loggerPtr = {} |
Pointer to logger. | |
HadronWidths * | hadronWidthsPtr = {} |
Pointer to the hadron widths data table. | |
Rndm * | rndmPtr = {} |
Pointer to the random number generator. | |
CoupSM * | coupSMPtr = {} |
Pointers to SM and SUSY couplings. | |
CoupSUSY * | coupSUSYPtr = {} |
BeamSetup * | beamSetupPtr = {} |
BeamParticle * | beamAPtr = {} |
BeamParticle * | beamBPtr = {} |
BeamParticle * | beamPomAPtr = {} |
BeamParticle * | beamPomBPtr = {} |
BeamParticle * | beamGamAPtr = {} |
BeamParticle * | beamGamBPtr = {} |
BeamParticle * | beamVMDAPtr = {} |
BeamParticle * | beamVMDBPtr = {} |
PartonSystems * | partonSystemsPtr = {} |
Pointer to information on subcollision parton locations. | |
SigmaTotal * | sigmaTotPtr = {} |
Pointers to the total/elastic/diffractive cross sections. | |
SigmaCombined * | sigmaCmbPtr = {} |
set< PhysicsBase * > | subObjects |
UserHooksPtr | userHooksPtr |
This class holds info on a beam particle in the evolution of initial-state radiation and multiparton interactions.
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 | ) |
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 | ) |
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.
|
inline |
Rescaled parton distributions, as needed for MPI and ISR. For ISR also allow split valence/sea, and only return relevant part.
|
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.