PYTHIA
8.312
|
A derived class with 2 -> 2 kinematics set up for elastic scattering. More...
#include <PhaseSpace.h>
Public Member Functions | |
PhaseSpace2to2elastic () | |
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 -> 2 kinematics set up for elastic scattering.
|
virtual |
Construct the four-vector kinematics from the trial values.
Particle masses.
Use smapled vector-meson masses when relevant.
Incoming particles along beam axes.
Outgoing particles initially along beam axes.
Incoming particles along beam axes.
Outgoing particles initially along beam axes.
Then rotate them
Set some further info for completeness.
Save the sampled photon kinematics.
Done.
Implements PhaseSpace.
|
virtual |
Construct the trial or final event kinematics.
Form of phase space sampling already fixed, so no optimization. However, need to read out relevant parameters from SigmaTotal.
Flag if photon has a VMD state.
Flag if a photon inside lepton beam.
If not photoproduction, calculate the cross-section estimates directly.
Find maximum = value of cross section.
For photoproduction calculate the estimates for photon-hadron system.
Total cross section using a photon instead of the actual beam.
Zero mass for photons from lepton beam.
Use the elastic cross section for overestimate.
Save the maximum value.
Character of elastic generation.
Squared and outgoing masses of particles. Recalculated later if photon fluctuates into different vector mesons.
Determine maximum possible t range.
Upper estimate as sum of two exponentials and a Coulomb. VMD: Start with bNarrow but recalculate when VM state sampled in trialKin.
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.
Sample kinematics for gamma+gamma(hadron) sub-event and reject to account for over sampling.
Current weight.
Sample gamma kinematics.
Calculate the cross sections with invariant mass of the sub-system.
Correct for the over-estimated sigma.
Calculate the total weight and warn if unphysical weight.
Correct for over-estimated cross section and x_gamma limits.
For accepted kinematics use the sub-collision energy.
Elastically scattered photon in vector-meson state.
Sample VMD states and calculate kinematics with vector-meson mass(es).
New kinematics with sampled VM masses and possibly new energy.
Recalculate the elastic cross section with the sampled state to save bEl.
Find the b-slope for the selected VM state and derive new sigmaNorm.
Need to recalculate the cross section estimates for the given VM state.
Repeated tries until accepted.
Careful reconstruction of scattering angle.
Careful reconstruction of scattering angle.
Done.
Implements PhaseSpace.