PYTHIA  8.311
Public Member Functions | List of all members
HardDiffraction Class Reference

#include <HardDiffraction.h>

Inheritance diagram for HardDiffraction:
PhysicsBase

Public Member Functions

 HardDiffraction ()
 Constructor and destructor.
 
void init (BeamParticle *beamAPtrIn, BeamParticle *beamBPtrIn)
 Initialise constant and the beams to be considered. More...
 
bool isDiffractive (int iBeamIn=1, int partonIn=0, double xIn=0., double Q2In=0., double xfIncIn=0.)
 Main routine to check if event is from diffractive PDF. More...
 
double getXPomeronA ()
 Get diffractive values.
 
double getXPomeronB ()
 
double getTPomeronA ()
 
double getTPomeronB ()
 
double getThetaPomeronA ()
 
double getThetaPomeronB ()
 
- 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 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
InfoinfoPtr = {}
 
SettingssettingsPtr = {}
 Pointer to the settings database.
 
ParticleDataparticleDataPtr = {}
 Pointer to the particle data table.
 
LoggerloggerPtr = {}
 Pointer to logger.
 
HadronWidthshadronWidthsPtr = {}
 Pointer to the hadron widths data table.
 
RndmrndmPtr = {}
 Pointer to the random number generator.
 
CoupSMcoupSMPtr = {}
 Pointers to SM and SUSY couplings.
 
CoupSUSYcoupSUSYPtr = {}
 
BeamSetupbeamSetupPtr = {}
 
BeamParticlebeamAPtr = {}
 
BeamParticlebeamBPtr = {}
 
BeamParticlebeamPomAPtr = {}
 
BeamParticlebeamPomBPtr = {}
 
BeamParticlebeamGamAPtr = {}
 
BeamParticlebeamGamBPtr = {}
 
BeamParticlebeamVMDAPtr = {}
 
BeamParticlebeamVMDBPtr = {}
 
PartonSystemspartonSystemsPtr = {}
 Pointer to information on subcollision parton locations.
 
SigmaTotalsigmaTotPtr = {}
 Pointers to the total/elastic/diffractive cross sections.
 
SigmaCombinedsigmaCmbPtr = {}
 
set< PhysicsBase * > subObjects
 
UserHooksPtr userHooksPtr
 

Detailed Description

HardDiffraction class. This class handles hard diffraction, together with PartonLevel.

Member Function Documentation

void init ( BeamParticle beamAPtrIn,
BeamParticle beamBPtrIn 
)

Initialise constant and the beams to be considered.

The beam pointers may differ from originally set in PhysicsBase.

Set diffraction parameters.

Read out some properties of beams to allow shorthand.

Set up Pomeron flux constants.

Calculate the integral of the flux to renormalize the gap:

Has fixed values of eps and alpha' to get normalisation correct

pomFlux == 8 => H1 functional form but with user-supplied parameters.

Initialise Pomeron values to zero.

Calculate rescaling factor for Pomeron flux in photons.

Done.

bool isDiffractive ( int  iBeamIn = 1,
int  partonIn = 0,
double  xIn = 0.,
double  Q2In = 0.,
double  xfIncIn = 0. 
)

Main routine to check if event is from diffractive PDF.

iBeam = 1 means A B -> A' + (Pom + B) -> A' X iBeam = 2 means A B -> (A + Pom) + B' -> X B'

Store incoming values.

Return false if value of inclusive PDF is zero.

Generate an xNow = x_P according to dx_P / x_P.

Find estimate of diffractive PDF based on x_P choice above. f_i(xP) = int_x^1 d(xP)/xP * xP f_{P/p}(xP) * x/xP f_{i/P}(x/xP, Q^2) = ln (1/x) < xP f_{P/p}(xP) * x/xP f_{i/P}(x/xP, Q^2) >

Warn if the estimated function exceeds the inclusive PDF.

Discard if estimate/inclusive PDF is less than random number.

Make sure there is momentum left for beam remnant. Make Pomeron massless and let mMin be the mass of the subcollision particle: if Pp then mMin = mp, if Pgamma then mMin = mrho.

Make sure that the diffractive mass is not too high.

The chosen xNow is accepted, now find t and theta.

Set the chosen diffractive values, to be able to use them later.

Done.


The documentation for this class was generated from the following files: