PYTHIA
8.303

Class to sample the virtuality and transverse momentum of emitted photons. More...
#include <GammaKinematics.h>
Public Member Functions  
GammaKinematics ()  
Constructor.  
bool  init () 
Sample the trial or final event kinematics. More...  
bool  sampleKTgamma (bool nonDiff=false) 
Sampling of the kinematics of the intermediate photon. More...  
bool  deriveKin (double xGamma, double Q2gamma, double m2beam, double eCM2) 
bool  finalize () 
Save the accepted values for further use. More...  
bool  trialKinSoftPhaseSpaceSampling () 
Sample photon kinematics for soft events. More...  
double  fluxWeight () 
Calculate weight from oversampling with approximated flux. More...  
double  setupSoftPhaseSpaceSampling (double sigmaMax) 
Set up phasespace sampling for soft events. More...  
double  calcNewSHat (double sHatOld) 
Calculate and return rescaled sHat according to the process. More...  
double  getQ2gamma1 () const 
Methods to pass along the sampled values.  
double  getQ2gamma2 () const 
double  getPhi1 () const 
double  getPhi2 () const 
double  getKT1 () const 
double  getKT2 () const 
double  eCMsub () const 
double  weight () const 
int  idInA () const 
int  idInB () const 
bool  hasNewSHat () const 
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 
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 } 
Enumerate the different status codes the event generation can have.  
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 PhysicsBase  
Info *  infoPtr = {} 
Settings *  settingsPtr = {} 
Pointer to the settings database.  
ParticleData *  particleDataPtr = {} 
Pointer to the particle data table.  
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 = {} 
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 = {} 
Pointer to the total/elastic/diffractive cross sections.  
set< PhysicsBase * >  subObjects 
UserHooksPtr  userHooksPtr 
Class to sample the virtuality and transverse momentum of emitted photons.
double calcNewSHat  (  double  sHatOld  ) 
Calculate and return rescaled sHat according to the process.
Calculates the new sHat for directdirect and directresolved processes.
Need to recalculate only if two photons.
Calculate the new sHat for directresolved system.
Otherwise no need for a new value.
bool deriveKin  (  double  xGamma, 
double  Q2gamma,  
double  m2Beam,  
double  eCM2  
) 
Sample the Q2 values and phi angles for each beam and derive kT according to sampled x_gamma. Check that sampled values within required limits.
Sample azimuthal angle from flat [0,2*pi[.
Calculate kT^2 for photon from particle with nonzero mass.
If no virtuality sampled set transverse momentum to zero.
Check that physical values for kT (very rarely fails if ever but may cause numerical issues).
Calculate the transverse and longitudinal momenta and scattering angle of the beam particle.
Done.
bool finalize  (  ) 
Save the accepted values for further use.
Propagate the sampled values for beam particles.
Set the sampled values also to Info object.
Keep old mGmGm for 2>1 processes with direct photons.
Done.
double fluxWeight  (  ) 
Calculate weight from oversampling with approximated flux.
Initially unit weight.
Calculate the weight according to accurate flux.
When no sampling of virtuality use the Q2integrated flux.
Done.
bool init  (  ) 
Sample the trial or final event kinematics.
Initialize phase space limits.
The GammaKinematics class. Generates the kinematics of emitted photons according to phase space limits.
Rejection based on theta only when beams set in CM frame.
Save the applied cuts.
Initial choice for the process type and whether to use overestimated flux for sampling.
Flag from virtuality sampling.
Check if photons from both beams or only from one beam.
Get the masses and collision energy and derive useful ratios.
Id of the beam if not a photon inside the beam.
Calculate the CMenergies of incoming beams.
Derive ratios used often.
Derive the kinematic limits.
No limits for xGamma if Q2integrated flux.
If Wmax below Wmin (negative by default) use the total invariant mass.
Done.
bool sampleKTgamma  (  bool  nonDiff = false  ) 
Sampling of the kinematics of the intermediate photon.
Sample kinematics of one or two photon beams from the original beams.
Get the sampled x_gamma values from beams.
Type of current process.
Reject already sampled x_gamma values outside kinematic bounds.
Sample virtuality for photon A.
Sample the x_gamma value if needed and check that value is valid.
Derive the accurate lower Q2 limit and sample value.
Sample the Q2 if requested, otherwise pick use the maximum value.
Reject sampled values outside limits (relevant for external flux).
Sample virtuality for photon B.
Sample the x_gamma value if needed and check that value is valid.
Derive the accurate lower Q2 limit and sample value.
Sample the Q2 if requested, otherwise pick use the maximum value.
Reject sampled values outside limits (relevant for external flux).
Derive the full photon momenta from the sampled values.
Reject kinematics if a scattering angle above cut.
Reject kinematics if a scattering angle above cut.
Invariant mass of photonphoton system.
Derive the invariant mass and check the kinematic limits.
Check if derived value within bounds set by user.
Calculate invariant mass now that the square is positive.
Invariant mass of photonhadron system.
Derive the invariant mass and check the limits. Solve the longitudinal momentum of beam particles in CM frame.
Pick the correct beam mass and photon kinematics.
Calculate the invariant mass of the photonhadron pair and check limits.
double setupSoftPhaseSpaceSampling  (  double  sigmaMax  ) 
Set up phasespace sampling for soft events.
Classification, constant and initial value.
Get the masses of beam particles and derive useful ratios.
Calculate the square of the minimum invariant mass for sampling.
Default values to be modified.
Calculate limit for x1 (if applicable) and derive useful logs.
Calculate limit for x2 (if applicable) and derive useful logs.
Derive the overestimates either with accurate or approximated fluxes.
Return the estimate.
bool trialKinSoftPhaseSpaceSampling  (  ) 
Sample photon kinematics for soft events.
Current weight.
Sample x_gamma's when using an accurate photon flux.
Save the x_gamma values to beam particles for further use.
Sample x_gamma's when using an accurate photon flux.
Save the x_gamma values to beam particles for further use.
Sample the kT of photons, special behaviour for nondiffractive events.
Save the sampled x_gamma values with overestimated fluxes.
Correct for x1 and x2 oversampling.
Calculate the weight for beam A from oversampling.
For external flux weight depends whether Q2 is sampled.
Calculate the weight for beam B from oversampling.
For external flux weight depends whether Q2 is sampled.
Correct for alpha_EM with the sampled Q2 values.
Combine weights.