8 #ifndef Pythia8_SigmaLowEnergy_H 9 #define Pythia8_SigmaLowEnergy_H 11 #include "Pythia8/HadronWidths.h" 12 #include "Pythia8/NucleonExcitations.h" 13 #include "Pythia8/PhysicsBase.h" 14 #include "Pythia8/SigmaTotal.h" 30 double sigmaTotal(
int idA,
int idB,
double eCM,
double mA,
double mB);
31 double sigmaTotal(
int idAIn,
int idBIn,
double eCMIn) {
33 return sigmaTotal(idAIn, idBIn, eCMIn, mA0, mB0); }
41 double mA,
double mB,
int proc);
42 double sigmaPartial(
int idAIn,
int idBIn,
double eCMIn,
int proc) {
44 return sigmaPartial(idAIn, idBIn, eCMIn, mA0, mB0, proc); }
49 bool sigmaPartial(
int idA,
int idB,
double eCM,
double mA,
double mB,
50 vector<int>& procsOut, vector<double>& sigmasOut);
53 int pickProcess(
int idA,
int idB,
double eCM,
double mA,
double mB);
60 bool hasExcitation(
int idAIn,
int idBIn)
const {
return (abs(idAIn) == 2212
61 || abs(idAIn) == 2112) && (abs(idBIn) == 2212 || abs(idBIn) == 2112); }
74 double mp, sp, s4p, mPi, mK,
75 sEffAQM, cEffAQM, bEffAQM, fracEtass, fracEtaPss;
81 bool useSummedResonances;
84 set<pair<int, int> > resonatingPairs;
90 bool didFlipSign, didSwapIds;
93 double sigTot, sigND, sigEl, sigXB, sigAX, sigXX, sigAnn, sigEx, sigResTot;
94 vector<pair<int, double>> sigRes;
97 void setConfig(
int idAIn,
int idBIn,
double eCMIn,
double mAIn,
double mBIn);
102 double calcRes(
int idR)
const;
108 double HPR1R2(
double p,
double r1,
double r2,
double mA,
double mB,
double s)
112 double HERAFit(
double a,
double b,
double n,
double c,
double d,
double p)
116 double nqEffAQM(
int id)
const;
117 double factorAQM()
const;
118 double totalAQM()
const;
119 double elasticAQM()
const;
125 bool hasExplicitResonances()
const;
126 double meltpoint(
int idX,
int idM)
const;
143 double sigmaTotal(
int id1,
int id2,
double eCM12,
double m1,
double m2,
147 double sigmaPartial(
int id1,
int id2,
double eCM12,
double m1,
double m2,
148 int type,
int mixLoHi = 0);
157 double eMinHigh, deltaEHigh, eMaxHigh;
163 int id1SDL = {}, id2SDL = {}, mixSDL = {};
164 double eCM12SDL = {}, sigSDL[10] = {};
Definition: LowEnergyProcess.h:28
static constexpr double TINYSIGMA
Cross sections below threshold are assumed numerically equal to zero.
Definition: SigmaLowEnergy.h:67
Definition: NucleonExcitations.h:23
Definition: PhysicsBase.h:27
Definition: SigmaLowEnergy.h:135
void updateResonances()
Update the list of internal resonances.
Definition: SigmaLowEnergy.cc:345
void init(NucleonExcitations *nucleonExcitationsPtrIn)
Initialize.
Definition: SigmaLowEnergy.cc:307
Gets cross sections for hadron-hadron collisions at low energies.
Definition: SigmaLowEnergy.h:22
double sigmaTotal(int idA, int idB, double eCM, double mA, double mB)
Get the total cross section for the specified collision.
Definition: SigmaLowEnergy.cc:370
Definition: SigmaTotal.h:294
ParticleData * particleDataPtr
Pointer to the particle data table.
Definition: PhysicsBase.h:84
bool hasExcitation(int idAIn, int idBIn) const
Definition: SigmaLowEnergy.h:60
double sigmaPartial(int idA, int idB, double eCM, double mA, double mB, int proc)
Gets the partial cross section for the specified process.
Definition: SigmaLowEnergy.cc:424
double m2(const Vec4 &v1)
The squared invariant mass of one or more four-vectors.
Definition: Basics.cc:605
Header for classes to set beam momentum and interaction vertex spread.
Definition: Analysis.h:20
int pickProcess(int idA, int idB, double eCM, double mA, double mB)
Picks a process randomly according to their partial cross sections.
Definition: SigmaLowEnergy.cc:634
int pickResonance(int idA, int idB, double eCM)
Picks a resonance according to their partial cross sections.
Definition: SigmaLowEnergy.cc:648