PYTHIA
8.312
|
#include <PhaseSpace.h>
Public Member Functions | |
PhaseSpace2to3diffractive () | |
Constructor. | |
virtual bool | setupSampling () |
Construct the trial or final event kinematics. More... | |
virtual bool | trialKin (bool inEvent=true, bool=false) |
virtual bool | finalKin () |
Construct the four-vector kinematics from the trial values. More... | |
virtual bool | isResolved () const |
Are beam particles resolved in partons or scatter directly? | |
Public Member Functions inherited from PhaseSpace | |
virtual | ~PhaseSpace () |
Destructor. | |
void | init (bool isFirst, SigmaProcessPtr sigmaProcessPtrIn) |
Perform simple initialization and store pointers. More... | |
void | updateBeamIDs () |
Switch to new beam particle identities; for similar hadrons only. | |
void | newECM (double eCMin) |
Update the CM energy of the event. | |
void | setLHAPtr (LHAupPtr lhaUpPtrIn) |
Store or replace Les Houches pointer. | |
void | decayKinematics (Event &process) |
Allow for nonisotropic decays when ME's available. More... | |
double | sigmaNow () const |
Give back current or maximum cross section, or set latter. | |
double | sigmaMax () const |
double | biasSelectionWeight () const |
bool | newSigmaMax () const |
void | setSigmaMax (double sigmaMaxIn) |
double | sigmaMaxSwitch () |
New value for switched beam identity or energy (for SoftQCD processes). | |
virtual double | sigmaSumSigned () const |
For Les Houches with negative event weight needs. | |
Vec4 | p (int i) const |
Give back constructed four-vectors and known masses. | |
double | m (int i) const |
void | setP (int i, Vec4 pNew) |
Reset the four-momentum. | |
double | ecm () const |
Give back other event properties. | |
double | x1 () const |
double | x2 () const |
double | sHat () const |
double | tHat () const |
double | uHat () const |
double | pTHat () const |
double | thetaHat () const |
double | phiHat () const |
double | runBW3 () const |
double | runBW4 () const |
double | runBW5 () const |
virtual void | rescaleSigma (double) |
virtual void | rescaleMomenta (double) |
virtual double | weightGammaPDFApprox () |
Calculate the weight for over-estimated cross section. | |
virtual void | setGammaKinPtr (GammaKinematics *gammaKinPtrIn) |
Set the GammaKinematics pointer needed for soft photoproduction. | |
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 PhaseSpace | |
PhaseSpace () | |
Constructor. | |
void | decayKinematicsStep (Event &process, int iRes) |
Reselect decay products momenta isotropically in phase space. More... | |
void | setup3Body () |
Much common code for normal 2 -> 1, 2 -> 2 and 2 -> 3 cases: More... | |
bool | setupSampling123 (bool is2, bool is3) |
Determine how phase space should be sampled. More... | |
bool | trialKin123 (bool is2, bool is3, bool inEvent=true) |
Select a trial kinematics phase space point. More... | |
bool | limitTau (bool is2, bool is3) |
Calculate kinematical limits for 2 -> 1/2/3. More... | |
bool | limitY () |
Find range of allowed y values. More... | |
bool | limitZ () |
Find range of allowed z = cos(theta) values. More... | |
void | selectTau (int iTau, double tauVal, bool is2) |
Select kinematical variable between defined limits for 2 -> 1/2/3. More... | |
void | selectY (int iY, double yVal) |
Select y according to a choice of shapes. More... | |
void | selectZ (int iZ, double zVal) |
bool | select3Body () |
void | solveSys (int n, int bin[8], double vec[8], double mat[8][8], double coef[8]) |
Solve equation system for better phase space coefficients in 2 -> 1/2/3. More... | |
void | setupMass1 (int iM) |
Setup mass selection for one resonance at a time. Split in two parts. More... | |
void | setupMass2 (int iM, double distToThresh) |
Setup mass selection for one resonance at a time - part 2. More... | |
void | trialMass (int iM) |
Do mass selection and find the associated weight. More... | |
double | weightMass (int iM) |
pair< double, double > | tRange (double sIn, double s1In, double s2In, double s3In, double s4In) |
bool | tInRange (double tIn, double sIn, double s1In, double s2In, double s3In, double s4In) |
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 PhaseSpace | |
SigmaProcessPtr | sigmaProcessPtr |
Pointer to cross section. | |
LHAupPtr | lhaUpPtr |
Pointer to LHAup for generating external events. | |
GammaKinematics * | gammaKinPtr |
Pointer to object that samples photon kinematics from leptons. | |
bool | useBreitWigners |
Initialization data, normally only set once. | |
bool | doEnergySpread |
bool | showSearch |
bool | showViolation |
bool | increaseMaximum |
bool | hasQ2Min |
int | gmZmodeGlobal |
double | mHatGlobalMin |
double | mHatGlobalMax |
double | pTHatGlobalMin |
double | pTHatGlobalMax |
double | Q2GlobalMin |
double | pTHatMinDiverge |
double | minWidthBreitWigners |
double | minWidthNarrowBW |
int | idA |
Information on incoming beams. | |
int | idB |
int | idAold |
int | idBold |
int | idAgm |
int | idBgm |
double | mA |
double | mB |
double | eCM |
double | s |
double | sigmaMxGm |
bool | hasLeptonBeamA |
bool | hasLeptonBeamB |
bool | hasOneLeptonBeam |
bool | hasTwoLeptonBeams |
bool | hasPointGammaA |
bool | hasPointGammaB |
bool | hasOnePointParticle |
bool | hasTwoPointParticles |
bool | hasGamma |
bool | hasVMD |
bool | newSigmaMx |
Cross section information. | |
bool | canModifySigma |
bool | canBiasSelection |
bool | canBias2Sel |
int | gmZmode |
double | bias2SelPow |
double | bias2SelRef |
double | wtBW |
double | sigmaNw |
double | sigmaMx |
double | sigmaPos |
double | sigmaNeg |
double | biasWt |
double | mHatMin |
Process-specific kinematics properties, almost always available. | |
double | mHatMax |
double | sHatMin |
double | sHatMax |
double | pTHatMin |
double | pTHatMax |
double | pT2HatMin |
double | pT2HatMax |
double | x1H |
Event-specific kinematics properties, almost always available. | |
double | x2H |
double | m3 |
double | m4 |
double | m5 |
double | s3 |
double | s4 |
double | s5 |
double | mHat |
double | sH |
double | tH |
double | uH |
double | pAbs |
double | p2Abs |
double | pTH |
double | theta |
double | phi |
double | betaZ |
Vec4 | pH [12] |
double | mH [12] |
int | idResA |
Presence and properties of any s-channel resonances. | |
int | idResB |
double | mResA |
double | mResB |
double | GammaResA |
double | GammaResB |
double | tauResA |
double | tauResB |
double | widResA |
double | widResB |
bool | sameResMass |
bool | useMirrorWeight |
Kinematics properties specific to 2 -> 1/2/3. | |
bool | hasNegZ |
bool | hasPosZ |
double | tau |
double | y |
double | z |
double | tauMin |
double | tauMax |
double | yMax |
double | zMin |
double | zMax |
double | ratio34 |
double | unity34 |
double | zNeg |
double | zPos |
double | wtTau |
double | wtY |
double | wtZ |
double | wt3Body |
double | runBW3H |
double | runBW4H |
double | runBW5H |
double | intTau0 |
double | intTau1 |
double | intTau2 |
double | intTau3 |
double | intTau4 |
double | intTau5 |
double | intTau6 |
double | intY0 |
double | intY12 |
double | intY34 |
double | intY56 |
double | mTchan1 |
double | sTchan1 |
double | mTchan2 |
double | sTchan2 |
double | frac3Flat |
double | frac3Pow1 |
double | frac3Pow2 |
double | zNegMin |
double | zNegMax |
double | zPosMin |
double | zPosMax |
Vec4 | p3cm |
Vec4 | p4cm |
Vec4 | p5cm |
int | nTau |
Coefficients for optimized selection in 2 -> 1/2/3. | |
int | nY |
int | nZ |
double | tauCoef [8] |
double | yCoef [8] |
double | zCoef [8] |
double | tauCoefSum [8] |
double | yCoefSum [8] |
double | zCoefSum [8] |
bool | useBW [6] |
Properties specific to resonance mass selection in 2 -> 2 and 2 -> 3. | |
bool | useNarrowBW [6] |
int | idMass [6] |
double | mPeak [6] |
double | sPeak [6] |
double | mWidth [6] |
double | mMin [6] |
double | mMax [6] |
double | mw [6] |
double | wmRat [6] |
double | mLower [6] |
double | mUpper [6] |
double | sLower [6] |
double | sUpper [6] |
double | fracFlatS [6] |
double | fracFlatM [6] |
double | fracInv [6] |
double | fracInv2 [6] |
double | atanLower [6] |
double | atanUpper [6] |
double | intBW [6] |
double | intFlatS [6] |
double | intFlatM [6] |
double | intInv [6] |
double | intInv2 [6] |
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 |
Static Protected Attributes inherited from PhaseSpace | |
static const int | NMAXTRY = 2 |
Constants: could only be changed in the code itself. More... | |
static const int | NTRY3BODY = 20 |
Number of three-body trials in phase space optimization. | |
static const double | SAFETYMARGIN = 1.05 |
Maximum cross section increase, just in case true maximum not found. | |
static const double | TINY = 1e-20 |
Small number to avoid division by zero. | |
static const double | EVENFRAC = 0.4 |
Fraction of total weight that is shared evenly between all shapes. | |
static const double | SAMESIGMA = 1e-6 |
Two cross sections with a small relative error are assumed same. | |
static const double | MRESMINABS = 0.001 |
Do not allow resonance to have mass below 2 m_e. | |
static const double | WIDTHMARGIN = 20. |
Do not include resonances peaked too far outside allowed mass region. | |
static const double | SAMEMASS = 0.01 |
Special optimization treatment when two resonances at almost same mass. | |
static const double | MASSMARGIN = 0.01 |
Minimum phase space left when kinematics constraints are combined. | |
static const double | EXTRABWWTMAX = 1.25 |
When using Breit-Wigners in 2 -> 2 raise maximum weight estimate. | |
static const double | THRESHOLDSIZE = 3. |
Size of Breit-Wigner threshold region, for mass selection biasing. | |
static const double | THRESHOLDSTEP = 0.2 |
Step size in optimal-mass search, for mass selection biasing. | |
static const double | YRANGEMARGIN = 1e-6 |
Minimal rapidity range for allowed open range (in 2 -> 3). | |
static const double | LEPTONXMIN = 1e-10 |
static const double | LEPTONXMAX = 1. - 1e-10 |
static const double | LEPTONXLOGMIN = log(1e-10) |
static const double | LEPTONXLOGMAX = log(1. - 1e-10) |
static const double | LEPTONTAUMIN = 2e-10 |
static const double | SHATMINZ = 1. |
Safety to avoid division with unreasonably small value for z selection. | |
static const double | PT2RATMINZ = 0.0001 |
Regularization for small pT2min in z = cos(theta) selection. | |
static const double | WTCORRECTION [11] |
A derived class with 2 -> 3 kinematics set up for central diffractive scattering.
|
virtual |
Construct the four-vector kinematics from the trial values.
Particle four-momenta and masses.
Set some further info for completeness (but Info can be for subprocess).
Store average pT of three final particles for documentation.
Done.
Implements PhaseSpace.
|
virtual |
Construct the trial or final event kinematics.
Set up for phase space sampling.
Find maximum = value of cross section.
Squared masses of particles and minimal mass of diffractive states.
Scenarios with separate handling of xi and t (currently only MBR). Step 0 = both xi and t, 1 = xi only, 2 = t only.
Find maximal cross section xi1 * xi2 * dsigma / (dxi1 dxi2 dt1 dt2) at t1 = t2 = 0 and grid in (xi1, xi2).
Combinations of t sampling parameters.
Done.
Implements PhaseSpace.
|
virtual |
Select a trial kinematics phase space point. Perform full Monte Carlo acceptance/rejection at this stage.
Allow the possibility that incoming beam particles are switched.
Allow for possibility that energy varies from event to event.
Reset cross section machinery to new conditions.
Trivial kinematics of incoming hadrons.
Temporary variables during generation.
Normally xi and t in one step, but possible to split into two.
Loop over attempts to set up xi1, xi2, t1, t2 consistently.
Select mass^2 = xi1 * xi2 * s according to dxi_1/xi_1 * dxi_2/xi_2.
Select t1, t2 according to exp(b*t), b picked among three options.
Check whether xi and t choices are consistent on each side.
Evaluate central diffractive cross section.
Maximum weight based on sampling strategy.
Check for maximum violations. Possibly break out of the loop.
End of loops over tries and steps.
Careful reconstruction of scattering angles.
Pick random phi angles. Save outgoing four-vectors.
Force wanted diffractive mass and rescale three-momenta to fix energies.
Implements PhaseSpace.