PYTHIA
8.312
|
#include <HardDiffraction.h>
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 | |
Info * | infoPtr = {} |
Settings * | settingsPtr = {} |
Pointer to the settings database. | |
ParticleData * | particleDataPtr = {} |
Pointer to the particle data table. | |
Logger * | loggerPtr = {} |
Pointer to logger. | |
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 = {} |
BeamSetup * | beamSetupPtr = {} |
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 = {} |
Pointers to the total/elastic/diffractive cross sections. | |
SigmaCombined * | sigmaCmbPtr = {} |
set< PhysicsBase * > | subObjects |
UserHooksPtr | userHooksPtr |
HardDiffraction class. This class handles hard diffraction, together with PartonLevel.
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.