11 #ifndef Pythia8_PhaseSpace_H 12 #define Pythia8_PhaseSpace_H 14 #include "Pythia8/Basics.h" 15 #include "Pythia8/BeamParticle.h" 16 #include "Pythia8/Info.h" 17 #include "Pythia8/LesHouches.h" 18 #include "Pythia8/MultipartonInteractions.h" 19 #include "Pythia8/ParticleData.h" 20 #include "Pythia8/PartonDistributions.h" 21 #include "Pythia8/PhysicsBase.h" 22 #include "Pythia8/PythiaStdlib.h" 23 #include "Pythia8/SigmaProcess.h" 24 #include "Pythia8/SigmaTotal.h" 25 #include "Pythia8/Settings.h" 26 #include "Pythia8/StandardModel.h" 27 #include "Pythia8/UserHooks.h" 28 #include "Pythia8/GammaKinematics.h" 50 void init(
bool isFirst, SigmaProcessPtr sigmaProcessPtrIn);
54 idB = beamBPtr->
id(); mA = beamAPtr->m(); mB = beamBPtr->m();
58 void newECM(
double eCMin) {eCM = eCMin; s = eCM * eCM;}
69 virtual bool trialKin(
bool inEvent =
true,
bool repeatSame =
false) = 0;
80 double sigmaMax()
const {
return sigmaMx;}
81 double biasSelectionWeight()
const {
return biasWt;}
83 void setSigmaMax(
double sigmaMaxIn) {sigmaMx = sigmaMaxIn;}
87 sigmaMx = sigmaNw;
return sigmaMx;}
93 Vec4 p(
int i)
const {
return pH[i];}
94 double m(
int i)
const {
return mH[i];}
100 double ecm()
const {
return eCM;}
101 double x1()
const {
return x1H;}
102 double x2()
const {
return x2H;}
103 double sHat()
const {
return sH;}
104 double tHat()
const {
return tH;}
105 double uHat()
const {
return uH;}
106 double pTHat()
const {
return pTH;}
107 double thetaHat()
const {
return theta;}
108 double phiHat()
const {
return phi;}
109 double runBW3()
const {
return runBW3H;}
110 double runBW4()
const {
return runBW4H;}
111 double runBW5()
const {
return runBW5H;}
119 virtual void rescaleMomenta(
double){}
133 increaseMaximum(), hasQ2Min(), gmZmodeGlobal(), mHatGlobalMin(),
134 mHatGlobalMax(), pTHatGlobalMin(), pTHatGlobalMax(), Q2GlobalMin(),
135 pTHatMinDiverge(), minWidthBreitWigners(), minWidthNarrowBW(),
idA(),
136 idB(), idAold(), idBold(), idAgm(), idBgm(), mA(), mB(), eCM(), s(),
137 sigmaMxGm(), hasLeptonBeamA(), hasLeptonBeamB(), hasOneLeptonBeam(),
138 hasTwoLeptonBeams(), hasPointGammaA(), hasPointGammaB(),
139 hasOnePointParticle(), hasTwoPointParticles(), hasGamma(), hasVMD(),
140 newSigmaMx(), canModifySigma(), canBiasSelection(), canBias2Sel(),
141 gmZmode(), bias2SelPow(), bias2SelRef(), wtBW(), sigmaNw(),
142 sigmaMx(), sigmaPos(), sigmaNeg(), biasWt(),
mHatMin(), mHatMax(),
143 sHatMin(), sHatMax(), pTHatMin(), pTHatMax(), pT2HatMin(), pT2HatMax(),
144 x1H(), x2H(), m3(), m4(), m5(), s3(), s4(), s5(), mHat(), sH(), tH(), uH(),
145 pAbs(), p2Abs(), pTH(), theta(), phi(), betaZ(), mH(),
idResA(), idResB(),
146 mResA(), mResB(), GammaResA(), GammaResB(), tauResA(), tauResB(),
148 hasPosZ(), tau(), y(), z(), tauMin(), tauMax(), yMax(), zMin(), zMax(),
149 ratio34(), unity34(), zNeg(), zPos(), wtTau(), wtY(), wtZ(), wt3Body(),
150 runBW3H(), runBW4H(), runBW5H(), intTau0(), intTau1(), intTau2(),
151 intTau3(), intTau4(), intTau5(), intTau6(), intY0(), intY12(), intY34(),
152 intY56(), mTchan1(), sTchan1(), mTchan2(), sTchan2(), frac3Flat(),
153 frac3Pow1(), frac3Pow2(), zNegMin(), zNegMax(), zPosMin(), zPosMax(),
154 nTau(), nY(), nZ(), tauCoef(), yCoef(), zCoef(), tauCoefSum(), yCoefSum(),
155 zCoefSum(),
useBW(), useNarrowBW(), idMass(), mPeak(), sPeak(), mWidth(),
156 mMin(), mMax(), mw(), wmRat(), mLower(), mUpper(), sLower(), sUpper(),
157 fracFlatS(), fracFlatM(), fracInv(), fracInv2(), atanLower(), atanUpper(),
158 intBW(), intFlatS(), intFlatM(), intInv(), intInv2() {}
165 LEPTONXMAX, LEPTONXLOGMIN, LEPTONXLOGMAX, LEPTONTAUMIN,
179 increaseMaximum, hasQ2Min;
181 double mHatGlobalMin, mHatGlobalMax, pTHatGlobalMin, pTHatGlobalMax,
182 Q2GlobalMin, pTHatMinDiverge, minWidthBreitWigners, minWidthNarrowBW;
185 int idA, idB, idAold, idBold, idAgm, idBgm;
186 double mA, mB, eCM, s, sigmaMxGm;
187 bool hasLeptonBeamA, hasLeptonBeamB, hasOneLeptonBeam, hasTwoLeptonBeams,
188 hasPointGammaA, hasPointGammaB, hasOnePointParticle,
189 hasTwoPointParticles, hasGamma, hasVMD;
192 bool newSigmaMx, canModifySigma, canBiasSelection, canBias2Sel;
194 double bias2SelPow, bias2SelRef, wtBW, sigmaNw, sigmaMx, sigmaPos,
198 double mHatMin, mHatMax, sHatMin, sHatMax, pTHatMin, pTHatMax,
199 pT2HatMin, pT2HatMax;
202 double x1H, x2H, m3, m4, m5, s3, s4, s5, mHat, sH, tH, uH, pAbs, p2Abs,
203 pTH, theta, phi, betaZ;
217 bool trialKin123(
bool is2,
bool is3,
bool inEvent =
true);
221 double mResA, mResB, GammaResA, GammaResB, tauResA, tauResB, widResA,
227 double tau, y, z, tauMin, tauMax, yMax, zMin, zMax, ratio34, unity34,
228 zNeg, zPos, wtTau, wtY, wtZ, wt3Body, runBW3H, runBW4H, runBW5H,
229 intTau0, intTau1, intTau2, intTau3, intTau4, intTau5, intTau6,
230 intY0, intY12, intY34, intY56, mTchan1, sTchan1, mTchan2, sTchan2,
231 frac3Flat, frac3Pow1, frac3Pow2, zNegMin, zNegMax, zPosMin, zPosMax;
232 Vec4 p3cm, p4cm, p5cm;
236 double tauCoef[8], yCoef[8], zCoef[8], tauCoefSum[8], yCoefSum[8],
245 void selectTau(
int iTau,
double tauVal,
bool is2);
246 void selectY(
int iY,
double yVal);
247 void selectZ(
int iZ,
double zVal);
251 void solveSys(
int n,
int bin[8],
double vec[8],
double mat[8][8],
257 double mPeak[6], sPeak[6], mWidth[6], mMin[6], mMax[6], mw[6], wmRat[6],
258 mLower[6], mUpper[6], sLower[6], sUpper[6], fracFlatS[6],
259 fracFlatM[6], fracInv[6], fracInv2[6], atanLower[6], atanUpper[6],
260 intBW[6], intFlatS[6], intFlatM[6], intInv[6], intInv2[6];
272 pair<double,double>
tRange(
double sIn,
double s1In,
double s2In,
273 double s3In,
double s4In) {
274 double lambda12 =
pow2( sIn - s1In - s2In) - 4. * s1In * s2In;
275 double lambda34 =
pow2( sIn - s3In - s4In) - 4. * s3In * s4In;
276 if (lambda12 < 0. || lambda34 < 0.)
return make_pair( 0., 0.);
277 double tLow = -0.5 * (sIn - (s1In + s2In + s3In + s4In) + (s1In - s2In)
278 * (s3In - s4In) / sIn +
sqrtpos(lambda12 * lambda34) / sIn);
279 double tUpp = ( (s3In - s1In) * (s4In - s2In) + (s1In + s4In - s2In - s3In)
280 * (s1In * s4In - s2In * s3In) / sIn ) / tLow;
281 return make_pair( tLow, tUpp); }
282 bool tInRange(
double tIn,
double sIn,
double s1In,
double s2In,
283 double s3In,
double s4In) {
284 pair<double, double> tRng =
tRange( sIn, s1In, s2In, s3In, s4In);
285 return (tIn > tRng.first && tIn < tRng.second); }
311 virtual bool trialKin(
bool inEvent =
true,
bool =
false) {wtBW = 1.;
340 virtual bool trialKin(
bool inEvent =
true,
bool =
false) {
341 if (!trialMasses())
return false;
349 virtual void rescaleMomenta (
double sHatNew);
366 bool constrainedM3M4();
367 bool constrainedM3();
368 bool constrainedM4();
382 lambda12S(), lambda12(), lambda34(), tempA(), tempB(), tempC(),
383 tLow(), tUpp(), bSlope1(), bSlope2(), sigRef1(), sigRef2(),
384 sigRef(), sigNorm1(), sigNorm2(), sigNorm3(), sigNormSum(), rel2() {}
388 virtual bool trialKin(
bool inEvent =
true,
bool =
false);
397 static const int NTRY;
398 static const double BNARROW, BWIDE, WIDEFRAC, TOFFSET;
401 bool isOneExp, useCoulomb;
402 double s1, s2, alphaEM0, lambda12S, lambda12, lambda34, tempA, tempB, tempC,
403 tLow, tUpp, bSlope1, bSlope2, sigRef1, sigRef2, sigRef,
404 sigNorm1, sigNorm2, sigNorm3, sigNormSum, rel2;
418 : isDiffA(isDiffAin), isDiffB(isDiffBin), splitxit(), m3ElDiff(),
419 m4ElDiff(), s1(), s2(), xiMin(), xiMax(), xiNow(), sigNow(), sigMax(),
420 sigMaxNow(), lambda12(), lambda34(), bNow(), tempA(), tempB(), tempC(),
421 tLow(), tUpp(), tWeight(), fWid1(), fWid2(), fWid3(), fWid4(), fbWid1(),
422 fbWid2(), fbWid3(), fbWid4(), fbWid1234() {isSD = !isDiffA || !isDiffB;}
426 virtual bool trialKin(
bool inEvent =
true,
bool =
false);
435 static const int NTRY;
436 static const double BWID1, BWID2, BWID3, BWID4, FWID1SD, FWID2SD, FWID3SD,
437 FWID4SD, FWID1DD, FWID2DD, FWID3DD, FWID4DD, MAXFUDGESD,
438 MAXFUDGEDD, MAXFUDGET, DIFFMASSMARGIN, SPROTON;
441 bool isDiffA, isDiffB, isSD, splitxit;
447 double m3ElDiff, m4ElDiff, s1, s2, xiMin, xiMax, xiNow, sigNow, sigMax,
448 sigMaxNow, lambda12, lambda34, bNow, tempA, tempB, tempC,
449 tLow, tUpp, tWeight, fWid1, fWid2, fWid3, fWid4, fbWid1, fbWid2,
450 fbWid3, fbWid4, fbWid1234;
465 s5min(), sigNow(), sigMax(), sigMaxNow(), xiMin(), xi1(), xi2(), fWid1(),
466 fWid2(), fWid3(), fbWid1(), fbWid2(), fbWid3(), fbWid123() {}
470 virtual bool trialKin(
bool inEvent =
true,
bool =
false);
479 static const int NTRY;
480 static const double BWID1, BWID2, BWID3, BWID4, FWID1, FWID2, FWID3,
481 MAXFUDGECD, MAXFUDGET, DIFFMASSMARGIN;
487 double s1, s2, m5min, s5min, sigNow, sigMax, sigMaxNow, xiMin, xi1, xi2,
488 fWid1, fWid2, fWid3, fbWid1, fbWid2, fbWid3, fbWid123;
489 Vec4 p1, p2, p3, p4, p5;
507 virtual bool trialKin(
bool ,
bool =
false);
532 virtual bool trialKin(
bool inEvent =
true,
bool =
false) {
533 if (!trialMasses())
return false;
542 static const int NITERNR;
564 RsepMin(), R2sepMin(), hasBaryonBeams(), pT3Min(), pT3Max(), pT5Min(),
565 pT5Max(), y3Max(), y4Max(), y5Max(), pT3(), pT4(), pT5(), phi3(), phi4(),
566 phi5(), y3(), y4(), y5(), dphi() {}
572 virtual bool trialKin(
bool inEvent =
true,
bool =
false);
580 double pTHat3Min, pTHat3Max, pTHat5Min, pTHat5Max, RsepMin, R2sepMin;
584 double pT3Min, pT3Max, pT5Min, pT5Max, y3Max, y4Max, y5Max,
585 pT3, pT4, pT5, phi3, phi4, phi5, y3, y4, y5, dphi;
600 xMaxAbsSum(), xSecSgnSum(), sigmaSgn() {}
606 virtual bool trialKin(
bool ,
bool repeatSame =
false);
617 static const double CONVERTPB2MB;
620 int strategy, stratAbs, nProc, idProcSave;
621 double xMaxAbsSum, xSecSgnSum, sigmaSgn;
623 vector<double> xMaxAbsProc;
654 double genPoint(
double eCM,
int nOut,vector<Vec4>& pOut);
659 double genPoint(
double eCM,vector<double> mIn,vector<Vec4>& pOut);
void decayKinematicsStep(Event &process, int iRes)
Reselect decay products momenta isotropically in phase space.
Definition: PhaseSpace.cc:295
A derived class with 2 -> 2 kinematics set up for diffractive scattering.
Definition: PhaseSpace.h:412
constexpr double pow2(const double &x)
Powers of small integers - for balance speed/code clarity.
Definition: PythiaStdlib.h:182
virtual double weightGammaPDFApprox()
Calculate the weight for over-estimated cross section.
Definition: PhaseSpace.h:122
Vec4 p(int i) const
Give back constructed four-vectors and known masses.
Definition: PhaseSpace.h:93
static const double SAMEMASS
Special optimization treatment when two resonances at almost same mass.
Definition: PhaseSpace.h:162
void decayKinematics(Event &process)
Allow for nonisotropic decays when ME's available.
Definition: PhaseSpace.cc:237
static const double EXTRABWWTMAX
When using Breit-Wigners in 2 -> 2 raise maximum weight estimate.
Definition: PhaseSpace.h:162
static const double SAFETYMARGIN
Maximum cross section increase, just in case true maximum not found.
Definition: PhaseSpace.h:162
virtual bool trialKin(bool inEvent=true, bool=false)
Construct the trial kinematics.
Definition: PhaseSpace.h:340
PhaseSpace2to2tauyz()
Constructor.
Definition: PhaseSpace.h:333
A derived class for Les Houches events.
Definition: PhaseSpace.h:594
bool useBW[6]
Properties specific to resonance mass selection in 2 -> 2 and 2 -> 3.
Definition: PhaseSpace.h:255
double ecm() const
Give back other event properties.
Definition: PhaseSpace.h:100
bool select3Body()
Definition: PhaseSpace.cc:1539
Definition: PhysicsBase.h:27
Definition: PhaseSpace.h:495
void setupMass1(int iM)
Setup mass selection for one resonance at a time. Split in two parts.
Definition: PhaseSpace.cc:1744
void trialMass(int iM)
Do mass selection and find the associated weight.
Definition: PhaseSpace.cc:1839
bool limitTau(bool is2, bool is3)
Calculate kinematical limits for 2 -> 1/2/3.
Definition: PhaseSpace.cc:1139
The Event class holds all info on the generated event.
Definition: Event.h:453
A derived class with 2 -> 1 kinematics set up in tau, y.
Definition: PhaseSpace.h:299
PhaseSpace2to3tauycyl()
Constructor.
Definition: PhaseSpace.h:525
static const int NTRY3BODY
Number of three-body trials in phase space optimization.
Definition: PhaseSpace.h:161
A derived class with 2 -> 2 kinematics set up for elastic scattering.
Definition: PhaseSpace.h:376
static const double SHATMINZ
Safety to avoid division with unreasonably small value for z selection.
Definition: PhaseSpace.h:162
static const double LEPTONXMIN
Definition: PhaseSpace.h:162
double sigmaMaxSwitch()
New value for switched beam identity or energy (for SoftQCD processes).
Definition: PhaseSpace.h:86
virtual bool setupSampling()
Optimize subsequent kinematics selection.
Definition: PhaseSpace.h:336
bool newSigmaMx
Cross section information.
Definition: PhaseSpace.h:192
virtual bool setupSampling()
Optimize subsequent kinematics selection.
Definition: PhaseSpace.h:307
virtual bool trialKin(bool inEvent=true, bool=false)
Construct the trial kinematics.
Definition: PhaseSpace.h:311
Rndm * rndmPtr
Pointer to the random number generator.
Definition: PhysicsBase.h:93
void setupMass2(int iM, double distToThresh)
Setup mass selection for one resonance at a time - part 2.
Definition: PhaseSpace.cc:1788
virtual double sigmaSumSigned() const
For Les Houches with negative event weight needs.
Definition: PhaseSpace.h:90
bool limitZ()
Find range of allowed z = cos(theta) values.
Definition: PhaseSpace.cc:1193
virtual bool isResolved() const
Inform whether beam particles are resolved in partons or scatter directly.
Definition: PhaseSpace.h:114
void newECM(double eCMin)
Update the CM energy of the event.
Definition: PhaseSpace.h:58
static const double THRESHOLDSIZE
Size of Breit-Wigner threshold region, for mass selection biasing.
Definition: PhaseSpace.h:162
virtual bool setupSampling()
Optimize subsequent kinematics selection.
Definition: PhaseSpace.h:528
virtual void setGammaKinPtr(GammaKinematics *gammaKinPtrIn)
Set the GammaKinematics pointer needed for soft photoproduction.
Definition: PhaseSpace.h:125
GammaKinematics * gammaKinPtr
Pointer to object that samples photon kinematics from leptons.
Definition: PhaseSpace.h:175
static const double MRESMINABS
Do not allow resonance to have mass below 2 m_e.
Definition: PhaseSpace.h:162
void init(bool isFirst, SigmaProcessPtr sigmaProcessPtrIn)
Perform simple initialization and store pointers.
Definition: PhaseSpace.cc:88
virtual bool finalKin()
Definition: PhaseSpace.h:508
PhaseSpace2to3yyycyl()
Constructor.
Definition: PhaseSpace.h:563
virtual bool isResolved() const
Are beam particles resolved in partons or scatter directly?
Definition: PhaseSpace.h:392
static const double SAMESIGMA
Two cross sections with a small relative error are assumed same.
Definition: PhaseSpace.h:162
static const double WTCORRECTION[11]
Definition: PhaseSpace.h:162
Rambo(Rndm *rndmPtrIn)
Initializing constructor.
Definition: PhaseSpace.h:644
PhaseSpaceLHA()
Constructor.
Definition: PhaseSpace.h:599
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.
Definition: PhaseSpace.cc:1667
virtual bool finalKin()
Set scale, alpha_s and alpha_em if not done.
Definition: PhaseSpace.h:609
Definition: PhaseSpace.h:459
int idResA
Presence and properties of any s-channel resonances.
Definition: PhaseSpace.h:220
bool useMirrorWeight
Kinematics properties specific to 2 -> 1/2/3.
Definition: PhaseSpace.h:226
int idA
Information on incoming beams.
Definition: PhaseSpace.h:185
virtual bool trialKin(bool inEvent=true, bool repeatSame=false)=0
virtual ~Rambo()
Destructor.
Definition: PhaseSpace.h:647
int nTau
Coefficients for optimized selection in 2 -> 1/2/3.
Definition: PhaseSpace.h:235
virtual ~PhaseSpace()
Destructor.
Definition: PhaseSpace.h:47
double weightMass(int iM)
Definition: PhaseSpace.cc:1883
PhaseSpace2to2diffractive(bool isDiffAin=false, bool isDiffBin=false)
Constructor.
Definition: PhaseSpace.h:417
static const int NMAXTRY
Constants: could only be changed in the code itself.
Definition: PhaseSpace.h:161
bool setupSampling123(bool is2, bool is3)
Determine how phase space should be sampled.
Definition: PhaseSpace.cc:498
PhaseSpace()
Constructor.
Definition: PhaseSpace.h:131
static const double EVENFRAC
Fraction of total weight that is shared evenly between all shapes.
Definition: PhaseSpace.h:162
PhaseSpace2to3diffractive()
Constructor.
Definition: PhaseSpace.h:464
Rambo flat phase-space generator.
Definition: PhaseSpace.h:636
void selectTau(int iTau, double tauVal, bool is2)
Select kinematical variable between defined limits for 2 -> 1/2/3.
Definition: PhaseSpace.cc:1241
void setP(int i, Vec4 pNew)
Reset the four-momentum.
Definition: PhaseSpace.h:97
int id() const
Member functions for output.
Definition: BeamParticle.h:195
LHAupPtr lhaUpPtr
Pointer to LHAup for generating external events.
Definition: PhaseSpace.h:172
PhaseSpace2to2elastic()
Constructor.
Definition: PhaseSpace.h:381
void selectY(int iY, double yVal)
Select y according to a choice of shapes.
Definition: PhaseSpace.cc:1338
PhaseSpace2to2nondiffractive()
Constructor.
Definition: PhaseSpace.h:503
static const double YRANGEMARGIN
Minimal rapidity range for allowed open range (in 2 -> 3).
Definition: PhaseSpace.h:162
static const double TINY
Small number to avoid division by zero.
Definition: PhaseSpace.h:162
Class to sample the virtuality and transverse momentum of emitted photons.
Definition: GammaKinematics.h:23
virtual double sigmaSumSigned() const
For Les Houches with negative event weight needs.
Definition: PhaseSpace.h:612
pair< double, double > tRange(double sIn, double s1In, double s2In, double s3In, double s4In)
Definition: PhaseSpace.h:272
virtual void rescaleSigma(double)
Definition: PhaseSpace.h:118
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
static const double PT2RATMINZ
Regularization for small pT2min in z = cos(theta) selection.
Definition: PhaseSpace.h:162
virtual bool isResolved() const
Are beam particles resolved in partons or scatter directly?
Definition: PhaseSpace.h:430
void setup3Body()
Much common code for normal 2 -> 1, 2 -> 2 and 2 -> 3 cases:
Definition: PhaseSpace.cc:474
Definition: PhaseSpace.h:520
bool limitY()
Find range of allowed y values.
Definition: PhaseSpace.cc:1170
virtual bool isResolved() const
Are beam particles resolved in partons or scatter directly?
Definition: PhaseSpace.h:474
Definition: PhaseSpace.h:42
void setLHAPtr(LHAupPtr lhaUpPtrIn)
Store or replace Les Houches pointer.
Definition: PhaseSpace.h:61
bool useBreitWigners
Initialization data, normally only set once.
Definition: PhaseSpace.h:178
static const double THRESHOLDSTEP
Step size in optimal-mass search, for mass selection biasing.
Definition: PhaseSpace.h:162
double mHatMin
Process-specific kinematics properties, almost always available.
Definition: PhaseSpace.h:198
virtual bool trialKin(bool inEvent=true, bool=false)
Construct the trial kinematics.
Definition: PhaseSpace.h:532
double x1H
Event-specific kinematics properties, almost always available.
Definition: PhaseSpace.h:202
static const double MASSMARGIN
Minimum phase space left when kinematics constraints are combined.
Definition: PhaseSpace.h:162
void updateBeamIDs()
Switch to new beam particle identities; for similar hadrons only.
Definition: PhaseSpace.h:53
bool trialKin123(bool is2, bool is3, bool inEvent=true)
Select a trial kinematics phase space point.
Definition: PhaseSpace.cc:993
static const double WIDTHMARGIN
Do not include resonances peaked too far outside allowed mass region.
Definition: PhaseSpace.h:162
double sigmaNow() const
Give back current or maximum cross section, or set latter.
Definition: PhaseSpace.h:79
virtual bool finalKin()=0
Rambo()
Deafult constructor.
Definition: PhaseSpace.h:641
SigmaProcessPtr sigmaProcessPtr
Pointer to cross section.
Definition: PhaseSpace.h:169
PhaseSpace2to1tauy()
Constructor.
Definition: PhaseSpace.h:304
void selectZ(int iZ, double zVal)
Definition: PhaseSpace.cc:1417
double sqrtpos(const double &x)
Avoid problem with negative square root argument (from roundoff).
Definition: PythiaStdlib.h:191
void initPtr(Rndm *rndmPtrIn)
Initialize pointers.
Definition: PhaseSpace.h:650
A derived class with 2 -> 2 kinematics set up in tau, y, z = cos(theta).
Definition: PhaseSpace.h:328
virtual bool setupSampling()=0
bool finalize()
Save the accepted values for further use.
Definition: GammaKinematics.cc:319
Definition: PhaseSpace.h:558