8 #ifndef Pythia8_GammaKinematics_H
9 #define Pythia8_GammaKinematics_H
11 #include "Pythia8/Basics.h"
12 #include "Pythia8/BeamParticle.h"
13 #include "Pythia8/Info.h"
14 #include "Pythia8/PhysicsBase.h"
15 #include "Pythia8/Settings.h"
23 class GammaKinematics :
public PhysicsBase {
28 GammaKinematics() : Q2maxGamma(), Wmin(), Wmax(), eCM(), sCM(), m2BeamA(),
29 m2BeamB(), Q2min1(), Q2min2(), xGamma1(), xGamma2(), Q2gamma1(),
30 Q2gamma2(), phi1(), phi2(), kT1(), kT2(), kz1(), kz2(), mGmGm(), m2GmGm(),
31 theta1(), theta2(), theta1Max(), theta2Max(), eCM2A(), eCM2B(), sHatNew(),
32 kT(), kz(), phi(), theta(), xGammaMax1(), xGammaMax2(), m2eA(), m2eB(),
33 alphaEM(), log2xMinA(), log2xMinB(), log2xMaxA(), log2xMaxB(),
34 sigmaEstimate(), wt(), gammaMode(), subInA(), subInB(), hasGammaA(),
35 hasGammaB(), sampleQ2(), gammaA(), gammaB(),
36 hasApproxFluxA(), hasApproxFluxB(), sHatScaled() {}
42 bool sampleKTgamma(
bool nonDiff =
false);
43 bool deriveKin(
double xGamma,
double Q2gamma,
double m2beam,
double eCM2);
45 bool trialKinSoftPhaseSpaceSampling();
47 double setupSoftPhaseSpaceSampling(
double sigmaMax);
50 double calcNewSHat(
double sHatOld);
53 double getQ2gamma1()
const {
return Q2gamma1;}
54 double getQ2gamma2()
const {
return Q2gamma2;}
55 double getPhi1()
const {
return phi1;}
56 double getPhi2()
const {
return phi2;}
57 double getKT1()
const {
return kT1;}
58 double getKT2()
const {
return kT2;}
59 double eCMsub()
const {
return mGmGm;}
60 double weight()
const {
return wt;}
61 int idInA()
const {
return subInA;}
62 int idInB()
const {
return subInB;}
63 bool hasNewSHat()
const {
return sHatScaled;}
68 double Q2maxGamma, Wmin, Wmax, eCM, sCM, m2BeamA, m2BeamB, Q2min1, Q2min2,
69 xGamma1, xGamma2, Q2gamma1, Q2gamma2, phi1, phi2, kT1, kT2, kz1, kz2,
70 mGmGm, m2GmGm, theta1, theta2, theta1Max, theta2Max, eCM2A, eCM2B,
71 sHatNew, kT, kz, phi, theta, xGammaMax1, xGammaMax2, m2eA, m2eB,
72 alphaEM, log2xMinA, log2xMinB, log2xMaxA, log2xMaxB, sigmaEstimate,
76 int gammaMode, subInA, subInB;
79 bool hasGammaA, hasGammaB, sampleQ2, gammaA, gammaB,
80 hasApproxFluxA, hasApproxFluxB, sHatScaled;
88 #endif // Pythia8_GammaKinematics_H