File indexing completed on 2025-01-18 10:06:24
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef Pythia8_GammaKinematics_H
0009 #define Pythia8_GammaKinematics_H
0010
0011 #include "Pythia8/Basics.h"
0012 #include "Pythia8/BeamParticle.h"
0013 #include "Pythia8/Info.h"
0014 #include "Pythia8/PhysicsBase.h"
0015 #include "Pythia8/Settings.h"
0016
0017 namespace Pythia8 {
0018
0019
0020
0021
0022
0023 class GammaKinematics : public PhysicsBase {
0024
0025 public:
0026
0027
0028 GammaKinematics() : Q2maxGamma(), Wmin(), Wmax(), eCM(), sCM(), m2BeamA(),
0029 m2BeamB(), Q2min1(), Q2min2(), xGamma1(), xGamma2(), Q2gamma1(),
0030 Q2gamma2(), phi1(), phi2(), kT1(), kT2(), kz1(), kz2(), mGmGm(), m2GmGm(),
0031 theta1(), theta2(), theta1Max(), theta2Max(), eCM2A(), eCM2B(), sHatNew(),
0032 kT(), kz(), phi(), theta(), xGammaMax1(), xGammaMax2(), m2eA(), m2eB(),
0033 alphaEM(), log2xMinA(), log2xMinB(), log2xMaxA(), log2xMaxB(),
0034 sigmaEstimate(), wt(), gammaMode(), subInA(), subInB(), hasGammaA(),
0035 hasGammaB(), sampleQ2(), gammaA(), gammaB(),
0036 hasApproxFluxA(), hasApproxFluxB(), sHatScaled() {}
0037
0038
0039 bool init();
0040
0041
0042 bool sampleKTgamma(bool nonDiff = false);
0043 bool deriveKin(double xGamma, double Q2gamma, double m2beam, double eCM2);
0044 bool finalize();
0045 bool trialKinSoftPhaseSpaceSampling();
0046 double fluxWeight();
0047 double setupSoftPhaseSpaceSampling(double sigmaMax);
0048
0049
0050 double calcNewSHat( double sHatOld);
0051
0052
0053 double getQ2gamma1() const {return Q2gamma1;}
0054 double getQ2gamma2() const {return Q2gamma2;}
0055 double getPhi1() const {return phi1;}
0056 double getPhi2() const {return phi2;}
0057 double getKT1() const {return kT1;}
0058 double getKT2() const {return kT2;}
0059 double eCMsub() const {return mGmGm;}
0060 double weight() const {return wt;}
0061 int idInA() const {return subInA;}
0062 int idInB() const {return subInB;}
0063 bool hasNewSHat() const {return sHatScaled;}
0064
0065 private:
0066
0067
0068 double Q2maxGamma, Wmin, Wmax, eCM, sCM, m2BeamA, m2BeamB, Q2min1, Q2min2,
0069 xGamma1, xGamma2, Q2gamma1, Q2gamma2, phi1, phi2, kT1, kT2, kz1, kz2,
0070 mGmGm, m2GmGm, theta1, theta2, theta1Max, theta2Max, eCM2A, eCM2B,
0071 sHatNew, kT, kz, phi, theta, xGammaMax1, xGammaMax2, m2eA, m2eB,
0072 alphaEM, log2xMinA, log2xMinB, log2xMaxA, log2xMaxB, sigmaEstimate,
0073 wt;
0074
0075
0076 int gammaMode, subInA, subInB;
0077
0078
0079 bool hasGammaA, hasGammaB, sampleQ2, gammaA, gammaB,
0080 hasApproxFluxA, hasApproxFluxB, sHatScaled;
0081
0082 };
0083
0084
0085
0086 }
0087
0088 #endif