Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4INCL::CrossSectionsMultiPionsAndResonances Class Reference

Multipion and mesonic Resonances cross sections. More...

#include <G4INCLCrossSectionsMultiPionsAndResonances.hh>

Inheritance diagram for G4INCL::CrossSectionsMultiPionsAndResonances:

Public Member Functions

 CrossSectionsMultiPionsAndResonances ()
virtual G4double elastic (Particle const *const p1, Particle const *const p2)
 new elastic particle-particle cross section
virtual G4double total (Particle const *const p1, Particle const *const p2)
 new total particle-particle cross section
virtual G4double piNToxPiN (const G4int xpi, Particle const *const p1, Particle const *const p2)
 Cross section for X pion production - piN Channel (modified due to the mesonic resonances).
virtual G4double piNToEtaN (Particle const *const p1, Particle const *const p2)
 Cross sections for mesonic resonance production - piN Channel.
virtual G4double piNToOmegaN (Particle const *const p1, Particle const *const p2)
 Cross section for PiN->OmegaN.
virtual G4double piNToEtaPrimeN (Particle const *const p1, Particle const *const p2)
 Cross section for PiN->EtaPrimeN.
virtual G4double etaNToPiN (Particle const *const p1, Particle const *const p2)
 Cross sections for mesonic resonance absorption on nucleon - piN Channel.
virtual G4double omegaNToPiN (Particle const *const p1, Particle const *const p2)
 Cross section for OmegaN->PiN.
virtual G4double etaPrimeNToPiN (Particle const *const p1, Particle const *const p2)
 Cross section for EtaPrimeN->PiN.
virtual G4double etaNToPiPiN (Particle const *const p1, Particle const *const p2)
 Cross sections for mesonic resonance absorption on nucleon - pipiN Channel.
virtual G4double etaNToLK (Particle const *const p1, Particle const *const p2)
 Cross sections for eta-N --> LK/SK.
virtual G4double etaNToSK (Particle const *const p1, Particle const *const p2)
virtual G4double NNToNNEta (Particle const *const particle1, Particle const *const particle2)
 Cross section for Eta production (inclusive) - NN entrance channel.
virtual G4double NNToNNEtaExclu (Particle const *const particle1, Particle const *const particle2)
 Cross section for Eta production (exclusive) - NN entrance channel.
virtual G4double NNToNNOmega (Particle const *const particle1, Particle const *const particle2)
 Cross section for Omega production (inclusive) - NN entrance channel.
virtual G4double NNToNNOmegaExclu (Particle const *const particle1, Particle const *const particle2)
 Cross section for Omega production (exclusive) - NN entrance channel.
virtual G4double NNToxPiNN (const G4int xpi, Particle const *const p1, Particle const *const p2)
 Cross section for X pion production - NN Channel.
virtual G4double NNToNNEtaxPi (const G4int xpi, Particle const *const p1, Particle const *const p2)
 Cross section for X pion production - NNEta Channel.
virtual G4double NNToNDeltaEta (Particle const *const p1, Particle const *const p2)
 Cross section for N-Delta-Eta production - NNEta Channel.
virtual G4double NNToNNOmegaxPi (const G4int xpi, Particle const *const p1, Particle const *const p2)
 Cross section for X pion production - NNOmega Channel.
virtual G4double NNToNDeltaOmega (Particle const *const p1, Particle const *const p2)
 Cross section for N-Delta-Eta production - NNOmega Channel.
Public Member Functions inherited from G4INCL::CrossSectionsMultiPions
 CrossSectionsMultiPions ()
virtual G4double NDeltaToNN (Particle const *const p1, Particle const *const p2)
 Cross section for NDelta->NN.
virtual G4double NNToNDelta (Particle const *const p1, Particle const *const p2)
 Cross section for Delta production - NN Channel.
virtual G4double piNToDelta (Particle const *const p1, Particle const *const p2)
 Cross section for Delta production - piN Channel.
virtual G4double calculateNNAngularSlope (G4double energyCM, G4int iso)
 Calculate the slope of the NN DDXS.
virtual G4double NYelastic (Particle const *const p1, Particle const *const p2)
 elastic scattering for Nucleon-Strange Particles cross sections
virtual G4double NKbelastic (Particle const *const p1, Particle const *const p2)
virtual G4double NKelastic (Particle const *const p1, Particle const *const p2)
virtual G4double NNToNLK (Particle const *const p1, Particle const *const p2)
 Nucleon-Nucleon to Stange particles cross sections.
virtual G4double NNToNSK (Particle const *const p1, Particle const *const p2)
virtual G4double NNToNLKpi (Particle const *const p1, Particle const *const p2)
virtual G4double NNToNSKpi (Particle const *const p1, Particle const *const p2)
virtual G4double NNToNLK2pi (Particle const *const p1, Particle const *const p2)
virtual G4double NNToNSK2pi (Particle const *const p1, Particle const *const p2)
virtual G4double NNToNNKKb (Particle const *const p1, Particle const *const p2)
virtual G4double NNToMissingStrangeness (Particle const *const p1, Particle const *const p2)
virtual G4double NDeltaToNLK (Particle const *const p1, Particle const *const p2)
 Nucleon-Delta to Stange particles cross sections.
virtual G4double NDeltaToNSK (Particle const *const p1, Particle const *const p2)
virtual G4double NDeltaToDeltaLK (Particle const *const p1, Particle const *const p2)
virtual G4double NDeltaToDeltaSK (Particle const *const p1, Particle const *const p2)
virtual G4double NDeltaToNNKKb (Particle const *const p1, Particle const *const p2)
virtual G4double NpiToLK (Particle const *const p1, Particle const *const p2)
 Nucleon-Pion to Stange particles cross sections.
virtual G4double NpiToSK (Particle const *const p1, Particle const *const p2)
virtual G4double p_pimToSzKz (Particle const *const p1, Particle const *const p2)
virtual G4double p_pimToSmKp (Particle const *const p1, Particle const *const p2)
virtual G4double p_pizToSzKp (Particle const *const p1, Particle const *const p2)
virtual G4double NpiToLKpi (Particle const *const p1, Particle const *const p2)
virtual G4double NpiToSKpi (Particle const *const p1, Particle const *const p2)
virtual G4double NpiToLK2pi (Particle const *const p1, Particle const *const p2)
virtual G4double NpiToSK2pi (Particle const *const p1, Particle const *const p2)
virtual G4double NpiToNKKb (Particle const *const p1, Particle const *const p2)
virtual G4double NpiToMissingStrangeness (Particle const *const p1, Particle const *const p2)
virtual G4double NLToNS (Particle const *const p1, Particle const *const p2)
 Nucleon-Hyperon cross sections.
virtual G4double NSToNL (Particle const *const p1, Particle const *const p2)
virtual G4double NSToNS (Particle const *const p1, Particle const *const p2)
virtual G4double NKToNK (Particle const *const p1, Particle const *const p2)
 Nucleon-Kaon quasi-elastic and inelastic cross sections.
virtual G4double NKToNKpi (Particle const *const p1, Particle const *const p2)
virtual G4double NKToNK2pi (Particle const *const p1, Particle const *const p2)
virtual G4double NKbToNKb (Particle const *const p1, Particle const *const p2)
 Nucleon-antiKaon quasi-elastic and inelastic cross sections.
virtual G4double NKbToSpi (Particle const *const p1, Particle const *const p2)
virtual G4double NKbToLpi (Particle const *const p1, Particle const *const p2)
virtual G4double NKbToS2pi (Particle const *const p1, Particle const *const p2)
virtual G4double NKbToL2pi (Particle const *const p1, Particle const *const p2)
virtual G4double NKbToNKbpi (Particle const *const p1, Particle const *const p2)
virtual G4double NKbToNKb2pi (Particle const *const p1, Particle const *const p2)
virtual G4double NNbarElastic (Particle const *const p1, Particle const *const p2)
 antiparticle cross sections
virtual G4double NNbarCEX (Particle const *const p1, Particle const *const p2)
virtual G4double NNbarToLLbar (Particle const *const p1, Particle const *const p2)
virtual G4double NNbarToNNbarpi (Particle const *const p1, Particle const *const p2)
 Nucleon-AntiNucleon to Nucleon-AntiNucleon + pions cross sections.
virtual G4double NNbarToNNbar2pi (Particle const *const p1, Particle const *const p2)
virtual G4double NNbarToNNbar3pi (Particle const *const p1, Particle const *const p2)
virtual G4double NNbarToAnnihilation (Particle const *const p1, Particle const *const p2)
 Nucleon-AntiNucleon total annihilation cross sections.
Public Member Functions inherited from G4INCL::ICrossSections
 ICrossSections ()
virtual ~ICrossSections ()

Protected Member Functions

G4double piMinuspToEtaN (Particle const *const p1, Particle const *const p2)
 Internal function for pion cross sections.
G4double piMinuspToEtaN (const G4double ECM)
G4double piMinuspToOmegaN (Particle const *const p1, Particle const *const p2)
G4double piMinuspToOmegaN (const G4double ECM)
virtual G4double NNToNNEtaIso (const G4double ener, const G4int iso)
 Cross section for One (more) pion production - piN entrance channel.
virtual G4double NNToNNEtaExcluIso (const G4double ener, const G4int iso)
 Isotopic Cross section for Eta production (exclusive) - NN entrance channel.
virtual G4double NNToNNEtaOnePi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 1-pion production - NNEta channel.
virtual G4double NNToNNEtaOnePiOrDelta (Particle const *const part1, Particle const *const part2)
 Cross section for direct 1-pion production - NNEta channel.
virtual G4double NNToNNEtaTwoPi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 2-pion production - NNEta channel.
virtual G4double NNToNNEtaThreePi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 3-pion production - NNEta channel.
virtual G4double NNToNNEtaFourPi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 4-pion production - NNEta channel.
virtual G4double NNToNNOmegaIso (const G4double ener, const G4int iso)
 Isotopic Cross section for Omega production (inclusive) - NN entrance channel.
virtual G4double NNToNNOmegaExcluIso (const G4double ener, const G4int iso)
 Isotopic Cross section for Omega production (exclusive) - NN entrance channel.
virtual G4double NNToNNOmegaOnePi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 1-pion production - NNOmega channel.
virtual G4double NNToNNOmegaOnePiOrDelta (Particle const *const part1, Particle const *const part2)
 Cross section for direct 1-pion production - NNOmega channel.
virtual G4double NNToNNOmegaTwoPi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 2-pion production - NNOmega channel.
virtual G4double NNToNNOmegaThreePi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 3-pion production - NNOmega channel.
virtual G4double NNToNNOmegaFourPi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 4-pion production - NNOmega channel.
virtual G4double etaNElastic (Particle const *const p1, Particle const *const p2)
 Cross sections for mesonic resonance absorption on nucleon - elastic Channel.
virtual G4double omegaNElastic (Particle const *const p1, Particle const *const p2)
virtual G4double omegaNInelastic (Particle const *const p1, Particle const *const p2)
 Cross sections for mesonic resonance absorption on nucleon - inelastic Channel.
virtual G4double omegaNToPiPiN (Particle const *const p1, Particle const *const p2)
 Cross sections for omega-induced 2Pi emission on nucleon.
virtual G4double omegaNToLK (Particle const *const p1, Particle const *const p2)
 Cross section for OmegaN->LK/SK.
virtual G4double omegaNToSK (Particle const *const p1, Particle const *const p2)
Protected Member Functions inherited from G4INCL::CrossSectionsMultiPions
G4double NNElastic (Particle const *const part1, Particle const *const part2)
 Internal implementation of the NN elastic cross section.
G4double NNElasticFixed (const G4double s, const G4int i)
 Internal implementation of the NN elastic cross section with fixed isospin.
G4double NNTot (Particle const *const part1, Particle const *const part2)
 Internal implementation of the NN total cross section.
G4double NNTotFixed (const G4double s, const G4int i)
 Internal implementation of the NN total cross section with fixed isospin.
G4double NNInelasticIso (const G4double ener, const G4int iso)
 Internal implementation of the isospin dependent NN reaction cross section.
virtual G4double NNOnePiOrDelta (const G4double ener, const G4int iso, const G4double xsiso)
 Cross section for direct 1-pion production + delta production - NN entrance channel.
virtual G4double NNTwoPi (const G4double ener, const G4int iso, const G4double xsiso)
 Cross section for direct 2-pion production - NN entrance channel.
virtual G4double NNThreePi (const G4double ener, const G4int iso, const G4double xsiso, const G4double xs1pi, const G4double xs2pi)
 Cross section for direct 3-pion production - NN entrance channel.
virtual G4double NNOnePi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 1-pion production - NN entrance channel.
virtual G4double NNOnePiOrDelta (Particle const *const part1, Particle const *const part2)
 Cross section for direct 1-pion production - NN entrance channel.
virtual G4double NNTwoPi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 2-pion production - NN entrance channel.
virtual G4double NNThreePi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 3-pion production - NN entrance channel.
virtual G4double NNFourPi (Particle const *const part1, Particle const *const part2)
 Cross section for direct 4-pion production - NN entrance channel.
G4double spnPiPlusPHE (const G4double x)
 Internal function for pion cross sections.
G4double spnPiMinusPHE (const G4double x)
 Internal function for pion cross sections.
G4double piNIne (Particle const *const p1, Particle const *const p2)
G4double piNTot (Particle const *const p1, Particle const *const p2)
G4double piNTopiN (Particle const *const p1, Particle const *const p2)
G4double piPluspIne (Particle const *const p1, Particle const *const p2)
G4double piMinuspIne (Particle const *const p1, Particle const *const p2)
G4double piPluspOnePi (Particle const *const p1, Particle const *const p2)
G4double piMinuspOnePi (Particle const *const p1, Particle const *const p2)
G4double piPluspTwoPi (Particle const *const p1, Particle const *const p2)
G4double piMinuspTwoPi (Particle const *const p1, Particle const *const p2)
virtual G4double piNOnePi (Particle const *const p1, Particle const *const p2)
 Cross section for One (more) pion production - piN entrance channel.
virtual G4double piNTwoPi (Particle const *const p1, Particle const *const p2)
 Cross section for Two (more) pion production - piN entrance channel.

Protected Attributes

const HornerC7 s11pzHC
 Horner coefficients for s11pz.
const HornerC8 s01ppHC
 Horner coefficients for s01pp.
const HornerC4 s01pzHC
 Horner coefficients for s01pz.
const HornerC4 s11pmHC
 Horner coefficients for s11pm.
const HornerC5 s12pmHC
 Horner coefficients for s12pm.
const HornerC3 s12ppHC
 Horner coefficients for s12pp.
const HornerC4 s12zzHC
 Horner coefficients for s12zz.
const HornerC4 s02pzHC
 Horner coefficients for s02pz.
const HornerC6 s02pmHC
 Horner coefficients for s02pm.
const HornerC4 s12mzHC
 Horner coefficients for s12mz.
Protected Attributes inherited from G4INCL::CrossSectionsMultiPions
const HornerC7 s11pzHC
 Horner coefficients for s11pz.
const HornerC8 s01ppHC
 Horner coefficients for s01pp.
const HornerC4 s01pzHC
 Horner coefficients for s01pz.
const HornerC4 s11pmHC
 Horner coefficients for s11pm.
const HornerC5 s12pmHC
 Horner coefficients for s12pm.
const HornerC3 s12ppHC
 Horner coefficients for s12pp.
const HornerC4 s12zzHC
 Horner coefficients for s12zz.
const HornerC4 s02pzHC
 Horner coefficients for s02pz.
const HornerC6 s02pmHC
 Horner coefficients for s02pm.
const HornerC4 s12mzHC
 Horner coefficients for s12mz.

Static Protected Attributes

static const G4int nMaxPiNN = 4
 Maximum number of outgoing pions in NN collisions.
static const G4int nMaxPiPiN = 4
 Maximum number of outgoing pions in piN collisions.
static const G4double s11pzOOT = 0.0035761542037692665889
 One over threshold for s11pz.
static const G4double s01ppOOT = 0.003421025623481919853
 One over threshold for s01pp.
static const G4double s01pzOOT = 0.0035739814152966403123
 One over threshold for s01pz.
static const G4double s11pmOOT = 0.0034855350296270480281
 One over threshold for s11pm.
static const G4double s12pmOOT = 0.0016672224074691565119
 One over threshold for s12pm.
static const G4double s12ppOOT = 0.0016507643038726931312
 One over threshold for s12pp.
static const G4double s12zzOOT = 0.0011111111111111111111
 One over threshold for s12zz.
static const G4double s02pzOOT = 0.00125
 One over threshold for s02pz.
static const G4double s02pmOOT = 0.0016661112962345883443
 One over threshold for s02pm.
static const G4double s12mzOOT = 0.0017047391749062392793
 One over threshold for s12mz.
Static Protected Attributes inherited from G4INCL::CrossSectionsMultiPions
static const G4int nMaxPiNN = 4
 Maximum number of outgoing pions in NN collisions.
static const G4int nMaxPiPiN = 4
 Maximum number of outgoing pions in piN collisions.
static const G4double s11pzOOT = 0.0035761542037692665889
 One over threshold for s11pz.
static const G4double s01ppOOT = 0.003421025623481919853
 One over threshold for s01pp.
static const G4double s01pzOOT = 0.0035739814152966403123
 One over threshold for s01pz.
static const G4double s11pmOOT = 0.0034855350296270480281
 One over threshold for s11pm.
static const G4double s12pmOOT = 0.0016672224074691565119
 One over threshold for s12pm.
static const G4double s12ppOOT = 0.0016507643038726931312
 One over threshold for s12pp.
static const G4double s12zzOOT = 0.0011111111111111111111
 One over threshold for s12zz.
static const G4double s02pzOOT = 0.00125
 One over threshold for s02pz.
static const G4double s02pmOOT = 0.0016661112962345883443
 One over threshold for s02pm.
static const G4double s12mzOOT = 0.0017047391749062392793
 One over threshold for s12mz.

Detailed Description

Multipion and mesonic Resonances cross sections.

Definition at line 54 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Constructor & Destructor Documentation

◆ CrossSectionsMultiPionsAndResonances()

G4INCL::CrossSectionsMultiPionsAndResonances::CrossSectionsMultiPionsAndResonances ( )

Definition at line 77 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

77 :
78 s11pzHC(-2.228000000000294018,8.7560000000005723725,-0.61000000000023239325,-5.4139999999999780324,3.3338333333333348023,-0.75835000000000022049,0.060623611111111114688),
79 s01ppHC(2.0570000000126518344,-6.029000000012135826,36.768500000002462784,-45.275666666666553533,25.112666666666611953,-7.2174166666666639187,1.0478875000000000275,-0.060804365079365080846),
80 s01pzHC(0.18030000000000441851,7.8700999999999953598,-4.0548999999999990425,0.555199999999999959),
81 s11pmHC(0.20590000000000031866,3.3450999999999993936,-1.4401999999999997825,0.17076666666666664973),
82 s12pmHC(-0.77235999999999901328,4.2626599999999991117,-1.9008899999999997323,0.30192266666666663379,-0.012270833333333331986),
83 s12ppHC(-0.75724999999999975664,2.0934399999999998565,-0.3803099999999999814),
84 s12zzHC(-0.89599999999996965072,7.882999999999978632,-7.1049999999999961928,1.884333333333333089),
85 s02pzHC(-1.0579999999999967036,11.113999999999994089,-8.5259999999999990196,2.0051666666666666525),
86 s02pmHC(2.4009000000012553286,-7.7680000000013376183,20.619000000000433505,-16.429666666666723928,5.2525708333333363472,-0.58969166666666670206),
87 s12mzHC(-0.21858699999999976269,1.9148999999999999722,-0.31727500000000001065,-0.027695000000000000486)
88 {
89 }

Member Function Documentation

◆ elastic()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::elastic ( Particle const *const p1,
Particle const *const p2 )
virtual

new elastic particle-particle cross section

Reimplemented from G4INCL::CrossSectionsMultiPions.

Reimplemented in G4INCL::CrossSectionsAntiparticles, and G4INCL::CrossSectionsStrangeness.

Definition at line 118 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

118 {
119 if((p1->isNucleon()||p1->isDelta()) && (p2->isNucleon()||p2->isDelta())){
121 }
122 else if ((p1->isNucleon() && p2->isPion()) || (p2->isNucleon() && p1->isPion())){
124 }
125 else if ((p1->isNucleon() && p2->isEta()) || (p2->isNucleon() && p1->isEta())){
126 return etaNElastic(p1, p2);
127 }
128 else if ((p1->isNucleon() && p2->isOmega()) || (p2->isNucleon() && p1->isOmega())){
129 return omegaNElastic(p1, p2);
130 }
131 else {
132 return 0.0;
133 }
134 }
virtual G4double etaNElastic(Particle const *const p1, Particle const *const p2)
Cross sections for mesonic resonance absorption on nucleon - elastic Channel.
virtual G4double omegaNElastic(Particle const *const p1, Particle const *const p2)
virtual G4double elastic(Particle const *const p1, Particle const *const p2)
Elastic particle-particle cross section.

Referenced by total().

◆ etaNElastic()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::etaNElastic ( Particle const *const p1,
Particle const *const p2 )
protectedvirtual

Cross sections for mesonic resonance absorption on nucleon - elastic Channel.

Definition at line 354 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

354 {
355 //
356 // Eta-Nucleon elastic cross sections
357 //
358// assert((particle1->isNucleon() && particle2->isEta()) || (particle1->isEta() && particle2->isNucleon()));
359
360 G4double sigma=0.;
361
362 const Particle *eta;
363 const Particle *nucleon;
364
365 if (particle1->isEta()) {
366 eta = particle1;
367 nucleon = particle2;
368 }
369 else {
370 eta = particle2;
371 nucleon = particle1;
372 }
373
374 const G4double pLab = KinematicsUtils::momentumInLab(eta, nucleon);
375
376 if (pLab < 700.)
377 sigma = 3.6838e-15*std::pow(pLab,6) - 9.7815e-12*std::pow(pLab,5) + 9.7914e-9*std::pow(pLab,4) -
378 4.3222e-06*std::pow(pLab,3) + 7.9188e-04*std::pow(pLab,2) - 1.8379e-01*pLab + 84.965;
379 else if (pLab < 1400.)
380 sigma = 3.562630e-16*std::pow(pLab,6) - 2.384766e-12*std::pow(pLab,5) + 6.601312e-9*std::pow(pLab,4) -
381 9.667078e-06*std::pow(pLab,3) + 7.894845e-03*std::pow(pLab,2) - 3.409200*pLab + 609.8501;
382 else if (pLab < 2025.)
383 sigma = -1.041950E-03*pLab + 2.110529E+00;
384 else
385 sigma=0.;
386
387 if (sigma < 0.) sigma = 0.;
388 return sigma; // Parameterization from the ANL-Osaka DCC model [PRC88(2013)035209]
389 }
double G4double
Definition G4Types.hh:83
G4double momentumInLab(Particle const *const p1, Particle const *const p2)
gives the momentum in the lab frame of two particles.
G4bool nucleon(G4int ityp)

Referenced by G4INCL::CrossSectionsAntiparticles::elastic(), elastic(), and G4INCL::CrossSectionsStrangeness::elastic().

◆ etaNToLK()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::etaNToLK ( Particle const *const p1,
Particle const *const p2 )
virtual

Cross sections for eta-N --> LK/SK.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Reimplemented in G4INCL::CrossSectionsStrangeness.

Definition at line 339 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

339 {
340 //
341 // Eta-Nucleon producing K Lambda cross sections
342 //
343 return 0.;
344 }

◆ etaNToPiN()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::etaNToPiN ( Particle const *const p1,
Particle const *const p2 )
virtual

Cross sections for mesonic resonance absorption on nucleon - piN Channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 256 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

256 {
257 //
258 // Eta-Nucleon producing Pion cross sections
259 //
260// assert((particle1->isNucleon() && particle2->isEta()) || (particle1->isEta() && particle2->isNucleon()));
261
262 const Particle *eta;
263 const Particle *nucleon;
264
265 if (particle1->isEta()) {
266 eta = particle1;
267 nucleon = particle2;
268 }
269 else {
270 eta = particle2;
271 nucleon = particle1;
272 }
273
274 const G4double pLab = KinematicsUtils::momentumInLab(eta, nucleon);
275 G4double sigma=0.;
276
277 if (pLab <= 574.)
278 sigma= 1.511147E-13*std::pow(pLab,6)- 3.603636E-10*std::pow(pLab,5)+ 3.443487E-07*std::pow(pLab,4)- 1.681980E-04*std::pow(pLab,3)+ 4.437913E-02*std::pow(pLab,2)- 6.172108E+00*pLab+ 4.031449E+02;
279 else if (pLab <= 850.)
280 sigma= -8.00018E-14*std::pow(pLab,6)+ 3.50041E-10*std::pow(pLab,5)- 6.33891E-07*std::pow(pLab,4)+ 6.07658E-04*std::pow(pLab,3)- 3.24936E-01*std::pow(pLab,2)+ 9.18098E+01*pLab- 1.06943E+04;
281 else if (pLab <= 1300.)
282 sigma= 6.56364E-09*std::pow(pLab,3)- 2.07653E-05*std::pow(pLab,2)+ 1.84148E-02*pLab- 1.70427E+00;
283 else {
288 G4double masseta;
289 G4double massnucleon;
290 G4double pCM_eta;
291 masseta=eta->getMass();
292 massnucleon=nucleon->getMass();
293 pCM_eta=KinematicsUtils::momentumInCM(ECM, masseta, massnucleon);
294 G4double pCM_PiZero=KinematicsUtils::momentumInCM(ECM, massPiZero, massProton);
295 G4double pCM_PiMinus=KinematicsUtils::momentumInCM(ECM, massPiMinus, massProton); // = pCM_PiPlus (because massPiMinus = massPiPlus)
296 sigma = (piMinuspToEtaN(ECM)/2.) * std::pow((pCM_PiZero/pCM_eta), 2) + piMinuspToEtaN(ECM) * std::pow((pCM_PiMinus/pCM_eta), 2);
297 }
298 if (sigma < 0.) sigma=0.;
299
300 return sigma;
301 }
G4double piMinuspToEtaN(Particle const *const p1, Particle const *const p2)
Internal function for pion cross sections.
G4double totalEnergyInCM(Particle const *const p1, Particle const *const p2)
G4double momentumInCM(Particle const *const p1, Particle const *const p2)
gives the momentum in the CM frame of two particles.
G4double getINCLMass(const G4int A, const G4int Z, const G4int S)
Get INCL nuclear mass (in MeV/c^2).

Referenced by etaNToPiPiN(), G4INCL::CrossSectionsAntiparticles::total(), total(), and G4INCL::CrossSectionsStrangeness::total().

◆ etaNToPiPiN()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::etaNToPiPiN ( Particle const *const p1,
Particle const *const p2 )
virtual

Cross sections for mesonic resonance absorption on nucleon - pipiN Channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 303 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

303 {
304 //
305 // Eta-Nucleon producing Two Pions cross sections
306 //
307// assert((particle1->isNucleon() && particle2->isEta()) || (particle1->isEta() && particle2->isNucleon()));
308
309 G4double sigma=0.;
310
311 const Particle *eta;
312 const Particle *nucleon;
313
314 if (particle1->isEta()) {
315 eta = particle1;
316 nucleon = particle2;
317 }
318 else {
319 eta = particle2;
320 nucleon = particle1;
321 }
322
323 const G4double pLab = KinematicsUtils::momentumInLab(eta, nucleon);
324
325 if (pLab < 450.)
326 sigma = 2.01854221E-13*std::pow(pLab,6) - 3.49750459E-10*std::pow(pLab,5) + 2.46011585E-07*std::pow(pLab,4) - 9.01422901E-05*std::pow(pLab,3) + 1.83382964E-02*std::pow(pLab,2) - 2.03113098E+00*pLab + 1.10358550E+02;
327 else if (pLab < 600.)
328 sigma = 2.01854221E-13*std::pow(450.,6) - 3.49750459E-10*std::pow(450.,5) + 2.46011585E-07*std::pow(450.,4) - 9.01422901E-05*std::pow(450.,3) + 1.83382964E-02*std::pow(450.,2) - 2.03113098E+00*450. + 1.10358550E+02;
329 else if (pLab <= 1300.)
330 sigma = -6.32793049e-16*std::pow(pLab,6) + 3.95985900e-12*std::pow(pLab,5) - 1.01727714e-8*std::pow(pLab,4) +
331 1.37055547e-05*std::pow(pLab,3) - 1.01830486e-02*std::pow(pLab,2) + 3.93492126*pLab - 609.447145;
332 else
333 sigma = etaNToPiN(particle1,particle2);
334
335 if (sigma < 0.) sigma = 0.;
336 return sigma; // Parameterization from the ANL-Osaka DCC model [PRC88(2013)035209] - eta p --> "pi+pi0 n" + "pi0 pi0 p" total XS
337 }
virtual G4double etaNToPiN(Particle const *const p1, Particle const *const p2)
Cross sections for mesonic resonance absorption on nucleon - piN Channel.

Referenced by G4INCL::CrossSectionsAntiparticles::total(), total(), and G4INCL::CrossSectionsStrangeness::total().

◆ etaNToSK()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::etaNToSK ( Particle const *const p1,
Particle const *const p2 )
virtual

Reimplemented from G4INCL::CrossSectionsMultiPions.

Reimplemented in G4INCL::CrossSectionsStrangeness.

Definition at line 346 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

346 {
347 //
348 // Eta-Nucleon producing K Sigma cross sections
349 //
350 return 0.;
351 }

◆ etaPrimeNToPiN()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::etaPrimeNToPiN ( Particle const *const p1,
Particle const *const p2 )
virtual

Cross section for EtaPrimeN->PiN.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 521 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

521 {
522#else
523 G4double CrossSectionsMultiPionsAndResonances::etaPrimeNToPiN(Particle const * const particle1, Particle const * const particle2) {
524#endif
525 //
526 // EtaPrime-Nucleon producing Pion cross sections
527 //
528// assert((particle1->isNucleon() && particle2->isEtaPrime()) || (particle1->isEtaPrime() && particle2->isNucleon()));
529
530 return 0.;
531 }
virtual G4double etaPrimeNToPiN(Particle const *const p1, Particle const *const p2)
Cross section for EtaPrimeN->PiN.

Referenced by etaPrimeNToPiN(), G4INCL::CrossSectionsAntiparticles::total(), total(), and G4INCL::CrossSectionsStrangeness::total().

◆ NNToNDeltaEta()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNDeltaEta ( Particle const *const p1,
Particle const *const p2 )
virtual

Cross section for N-Delta-Eta production - NNEta Channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 1120 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1120 {
1121// assert(p1->isNucleon() && p2->isNucleon());
1122 const G4int i = ParticleTable::getIsospin(p1->getType()) + ParticleTable::getIsospin(p2->getType());
1123 const G4double ener=KinematicsUtils::totalEnergyInCM(p1, p2) - 581.437; // 581.437 MeV translation to open pion production in NNEta
1124 if (ener < 2018.563) return 0.;
1125 G4double xsinelas;
1126 if (i!=0)
1128 else
1130 if (xsinelas <= 1.e-9) return 0.;
1131 G4double ratio=(NNToNNEta(p1, p2)-NNToNNEtaExclu(p1, p2))/xsinelas;
1132 G4double sigma = NNToNNEtaOnePiOrDelta(p1, p2)*ratio;
1133 if(i==0)
1134 sigma *= 0.5;
1135 return sigma;
1136 }
int G4int
Definition G4Types.hh:85
virtual G4double NNToNNEta(Particle const *const particle1, Particle const *const particle2)
Cross section for Eta production (inclusive) - NN entrance channel.
virtual G4double NNToNNEtaExclu(Particle const *const particle1, Particle const *const particle2)
Cross section for Eta production (exclusive) - NN entrance channel.
virtual G4double NNToNNEtaOnePiOrDelta(Particle const *const part1, Particle const *const part2)
Cross section for direct 1-pion production - NNEta channel.
G4double NNInelasticIso(const G4double ener, const G4int iso)
Internal implementation of the isospin dependent NN reaction cross section.
G4int getIsospin(const ParticleType t)
Get the isospin of a particle.

◆ NNToNDeltaOmega()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNDeltaOmega ( Particle const *const p1,
Particle const *const p2 )
virtual

Cross section for N-Delta-Eta production - NNOmega Channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 1269 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1269 {
1270// assert(p1->isNucleon() && p2->isNucleon());
1271//jcd to be removed
1272// return 0.;
1273//jcd
1274 const G4int i = ParticleTable::getIsospin(p1->getType()) + ParticleTable::getIsospin(p2->getType());
1275 const G4double ener=KinematicsUtils::totalEnergyInCM(p1, p2) - 783.437; // 783.437 MeV translation to open pion production in NNOmega
1276 if (ener < 2018.563) return 0.;
1277 G4double xsinelas;
1278 if (i!=0)
1280 else
1282 if (xsinelas <= 1.e-9) return 0.;
1283 G4double ratio=(NNToNNOmega(p1, p2)-NNToNNOmegaExclu(p1, p2))/xsinelas;
1284 G4double sigma = NNToNNOmegaOnePiOrDelta(p1, p2)*ratio;
1285 if(i==0)
1286 sigma *= 0.5;
1287 return sigma;
1288 }
virtual G4double NNToNNOmegaExclu(Particle const *const particle1, Particle const *const particle2)
Cross section for Omega production (exclusive) - NN entrance channel.
virtual G4double NNToNNOmegaOnePiOrDelta(Particle const *const part1, Particle const *const part2)
Cross section for direct 1-pion production - NNOmega channel.
virtual G4double NNToNNOmega(Particle const *const particle1, Particle const *const particle2)
Cross section for Omega production (inclusive) - NN entrance channel.

◆ NNToNNEta()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEta ( Particle const *const particle1,
Particle const *const particle2 )
virtual

Cross section for Eta production (inclusive) - NN entrance channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 719 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

719 {
720
721 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2);
722 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
723
724 if (iso != 0) {
725 return NNToNNEtaIso(ener, iso);
726 }
727 else {
728 return 0.5*(NNToNNEtaIso(ener, 0)+NNToNNEtaIso(ener, 2));
729 }
730 }
virtual G4double NNToNNEtaIso(const G4double ener, const G4int iso)
Cross section for One (more) pion production - piN entrance channel.

Referenced by NNToNDeltaEta(), NNToNNEtaFourPi(), NNToNNEtaxPi(), NNToxPiNN(), and G4INCL::CrossSectionsStrangeness::NNToxPiNN().

◆ NNToNNEtaExclu()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaExclu ( Particle const *const particle1,
Particle const *const particle2 )
virtual

Cross section for Eta production (exclusive) - NN entrance channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 795 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

795 {
796
797 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2);
798 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
799
800 if (iso != 0) {
801 return NNToNNEtaExcluIso(ener, iso);
802 }
803 else {
804 return 0.5*(NNToNNEtaExcluIso(ener, 0)+NNToNNEtaExcluIso(ener, 2));
805 }
806 }
virtual G4double NNToNNEtaExcluIso(const G4double ener, const G4int iso)
Isotopic Cross section for Eta production (exclusive) - NN entrance channel.

Referenced by NNToNDeltaEta(), NNToNNEtaFourPi(), and NNToNNEtaxPi().

◆ NNToNNEtaExcluIso()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaExcluIso ( const G4double ener,
const G4int iso )
protectedvirtual

Isotopic Cross section for Eta production (exclusive) - NN entrance channel.

Definition at line 732 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

732 {
733
734 const G4double Ecm=0.001*ener;
735 G4double sNNEta; // pp->pp+eta
736 G4double sNNEta1; // np->np+eta
737 G4double sNNEta2; // np->d+eta (d wil be considered as np - How far is this right?)
738
739 if(Ecm>=3.875) { // By hand (JCD)
740 sNNEta = -13.008*Ecm*Ecm + 84.531*Ecm + 36.234;
741 }
742 else if(Ecm>=2.725) { // By hand (JCD)
743 sNNEta = -913.2809*std::pow(Ecm,5) + 15564.27*std::pow(Ecm,4) - 105054.9*std::pow(Ecm,3) + 351294.2*std::pow(Ecm,2) - 582413.9*Ecm + 383474.7;
744 }
745 else if(Ecm>=2.575) { // By hand (JCD)
746 sNNEta = -2640.3*Ecm*Ecm + 14692*Ecm - 20225;
747 }
748 else {
749 sNNEta = -147043.497285*std::pow(Ecm,4) + 1487222.5438123*std::pow(Ecm,3) - 5634399.900744*std::pow(Ecm,2) + 9477290.199378*Ecm - 5972174.353438;
750 }
751
755 G4double Thr0=0.;
756 if (iso > 0) {
757 Thr0=2.*Mp+Meta;
758 }
759 else if (iso < 0) {
760 Thr0=2.*Mn+Meta;
761 }
762 else {
763 Thr0=Mn+Mp+Meta;
764 }
765
766 if (sNNEta < 1.e-9 || Ecm < Thr0) sNNEta = 0.; // Thr0: Ecm threshold
767
768 if (iso != 0) {
769 return sNNEta/1000.; // parameterization in microbarn (not millibarn)!
770 }
771
772 if(Ecm>=3.9) {
773 sNNEta1 = sNNEta;
774 }
775 else if (Ecm >= 3.5) {
776 sNNEta1 = -1916.2*Ecm*Ecm*Ecm + 21556.0*Ecm*Ecm - 80828.0*Ecm + 101200.0;
777 }
778 else if (Ecm >= 2.525) {
779 sNNEta1 = -4433.586*Ecm*Ecm*Ecm*Ecm + 56581.54*Ecm*Ecm*Ecm - 270212.6*Ecm*Ecm + 571650.6*Ecm - 451091.6;
780 }
781 else {
782 sNNEta1 = 17570.217219*Ecm*Ecm - 84910.985402*Ecm + 102585.55847;
783 }
784
785 sNNEta2 = -10220.89518466*Ecm*Ecm+51227.30841724*Ecm-64097.96025731;
786 if (sNNEta2 < 0.) sNNEta2=0.;
787
788 sNNEta = 2*(sNNEta1+sNNEta2)-sNNEta;
789 if (sNNEta < 1.e-9 || Ecm < Thr0) sNNEta = 0.; // Thr0: Ecm threshold
790
791 return sNNEta/1000.; // parameterization in microbarn (not millibarn)!
792
793 }
G4double getRealMass(const G4INCL::ParticleType t)
Get particle mass (in MeV/c^2).

Referenced by NNToNNEtaExclu(), and NNToNNEtaIso().

◆ NNToNNEtaFourPi()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaFourPi ( Particle const *const part1,
Particle const *const part2 )
protectedvirtual

Cross section for direct 4-pion production - NNEta channel.

Definition at line 1067 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1067 {
1068 //
1069 // Nucleon-Nucleon producing one eta and four pions
1070 //
1071
1072 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 581.437; // 581.437 MeV translation to open pion production in NNEta
1073 if (ener < 2018.563) return 0.;
1074 const G4double s = ener*ener;
1075 const G4int i = ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1076 G4double xsinelas;
1077 if (i!=0)
1079 else
1081 if (xsinelas <= 1.e-9) return 0.;
1082 G4double ratio=(NNToNNEta(particle1, particle2)-NNToNNEtaExclu(particle1, particle2))/xsinelas;
1083 if(s<6.25E6)
1084 return 0.;
1085 const G4double sigma = NNToNNEta(particle1, particle2) - NNToNNEtaExclu(particle1, particle2) - ratio*(NNToNNEtaOnePiOrDelta(particle1, particle2) + NNToNNEtaTwoPi(particle1, particle2) + NNToNNEtaThreePi(particle1, particle2));
1086 return ((sigma>1.e-9) ? sigma : 0.);
1087 }
virtual G4double NNToNNEtaThreePi(Particle const *const part1, Particle const *const part2)
Cross section for direct 3-pion production - NNEta channel.
virtual G4double NNToNNEtaTwoPi(Particle const *const part1, Particle const *const part2)
Cross section for direct 2-pion production - NNEta channel.

Referenced by NNToNNEtaxPi().

◆ NNToNNEtaIso()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaIso ( const G4double ener,
const G4int iso )
protectedvirtual

Cross section for One (more) pion production - piN entrance channel.

Cross section for Two (more) pion production - piN entrance channel

Cross section for Three (more) pion production - piN entrance channel virtual G4double piNThreePi(Particle const * const p1, Particle const * const p2);

Isotopic Cross section for Eta production (inclusive) - NN entrance channel

Definition at line 666 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

666 {
667
668 const G4double Ecm=0.001*ener;
669 G4double sNNEta; // pp->pp+eta(+X)
670 G4double sNNEta1; // np->np+eta(+X)
671 G4double sNNEta2; // np->d+eta (d will be considered as np - How far is this right?)
672 G4double x=Ecm*Ecm/5.88;
673
674//jcd
675 if (Ecm >= 3.05) {
676 sNNEta = 2.5*std::pow((x-1.),1.47)*std::pow(x,-1.25)*1000.;
677 }
678 else if(Ecm >= 2.6) {
679 sNNEta = -327.29*Ecm*Ecm*Ecm + 2870.*Ecm*Ecm - 7229.3*Ecm + 5273.3;
680 if (sNNEta <= NNToNNEtaExcluIso(ener, 2)*1000.) sNNEta = NNToNNEtaExcluIso(ener, 2)*1000.;
681 }
682 else {
683 sNNEta = NNToNNEtaExcluIso(ener, 2)*1000.;
684 }
685//jcd
686 if (sNNEta < 1.e-9) sNNEta = 0.;
687
688 if (iso != 0) {
689 return sNNEta/1000.; // parameterization in microbarn (not millibarn)!
690 }
691
692 if(Ecm >= 6.25) {
693 sNNEta1 = sNNEta;
694 }
695 else if (Ecm >= 2.6) {
696 sNNEta1 = sNNEta*std::exp(-(-5.53151576/Ecm+0.8850425));
697 }
698 else if (Ecm >= 2.525) { // = exclusive pn
699 sNNEta1 = -4433.586*Ecm*Ecm*Ecm*Ecm + 56581.54*Ecm*Ecm*Ecm - 270212.6*Ecm*Ecm + 571650.6*Ecm - 451091.6;
700 }
701 else { // = exclusive pn
702 sNNEta1 = 17570.217219*Ecm*Ecm - 84910.985402*Ecm + 102585.55847;
703 }
704
705 sNNEta2 = -10220.89518466*Ecm*Ecm+51227.30841724*Ecm-64097.96025731;
706 if (sNNEta2 < 0.) sNNEta2=0.;
707
708 sNNEta = 2*(sNNEta1+sNNEta2)-sNNEta;
709
713 if (sNNEta < 1.e-9 || Ecm < Mn+Mp+Meta) sNNEta = 0.;
714
715 return sNNEta/1000.; // parameterization in microbarn (not millibarn)!
716 }

Referenced by NNToNNEta().

◆ NNToNNEtaOnePi()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaOnePi ( Particle const *const part1,
Particle const *const part2 )
protectedvirtual

Cross section for direct 1-pion production - NNEta channel.

Definition at line 995 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

995 {
996 // Cross section for nucleon-nucleon producing one eta and one pion
997
998 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
999 if (iso!=0)
1000 return 0.;
1001
1002 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 581.437; // 581.437 MeV translation to open pion production in NNEta (= 2705.55 - 2018.563; 4074595.287720512986=2018.563*2018.563)
1003 if (ener < 2018.563) return 0.;
1004
1007
1008 return 0.25*(CrossSectionsMultiPions::NNOnePiOrDelta(ener, 0, xsiso0)+ CrossSectionsMultiPions::NNOnePiOrDelta(ener, 2, xsiso2));
1009 }
virtual G4double NNOnePiOrDelta(const G4double ener, const G4int iso, const G4double xsiso)
Cross section for direct 1-pion production + delta production - NN entrance channel.

Referenced by NNToNNEtaxPi().

◆ NNToNNEtaOnePiOrDelta()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaOnePiOrDelta ( Particle const *const part1,
Particle const *const part2 )
protectedvirtual

Cross section for direct 1-pion production - NNEta channel.

Definition at line 1011 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1011 {
1012 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 581.437; // 581.437 MeV translation to open pion production in NNEta
1013 if (ener < 2018.563) return 0.;
1014 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1015
1017 if (iso != 0)
1018 return CrossSectionsMultiPions::NNOnePiOrDelta(ener, iso, xsiso2);
1019 else {
1021 return 0.5*(CrossSectionsMultiPions::NNOnePiOrDelta(ener, 0, xsiso0)+ CrossSectionsMultiPions::NNOnePiOrDelta(ener, 2, xsiso2));
1022 }
1023 }

Referenced by NNToNDeltaEta(), and NNToNNEtaFourPi().

◆ NNToNNEtaThreePi()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaThreePi ( Particle const *const part1,
Particle const *const part2 )
protectedvirtual

Cross section for direct 3-pion production - NNEta channel.

Definition at line 1044 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1044 {
1045 //
1046 // Nucleon-Nucleon producing one eta and three pions
1047 //
1048
1049 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 581.437; // 581.437 MeV translation to open pion production in NNEta
1050 if (ener < 2018.563) return 0.;
1051 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1052
1053
1055 const G4double xs1pi2=CrossSectionsMultiPions::NNOnePiOrDelta(ener, 2, xsiso2);
1056 const G4double xs2pi2=CrossSectionsMultiPions::NNTwoPi(ener, 2, xsiso2);
1057 if (iso != 0)
1058 return CrossSectionsMultiPions::NNThreePi(ener, 2, xsiso2, xs1pi2, xs2pi2);
1059 else {
1061 const G4double xs1pi0=CrossSectionsMultiPions::NNOnePiOrDelta(ener, 0, xsiso0);
1062 const G4double xs2pi0=CrossSectionsMultiPions::NNTwoPi(ener, 0, xsiso0);
1063 return 0.5*(CrossSectionsMultiPions::NNThreePi(ener, 0, xsiso0, xs1pi0, xs2pi0)+ CrossSectionsMultiPions::NNThreePi(ener, 2, xsiso2, xs1pi2, xs2pi2));
1064 }
1065 }
virtual G4double NNTwoPi(const G4double ener, const G4int iso, const G4double xsiso)
Cross section for direct 2-pion production - NN entrance channel.
virtual G4double NNThreePi(const G4double ener, const G4int iso, const G4double xsiso, const G4double xs1pi, const G4double xs2pi)
Cross section for direct 3-pion production - NN entrance channel.

Referenced by NNToNNEtaFourPi(), and NNToNNEtaxPi().

◆ NNToNNEtaTwoPi()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaTwoPi ( Particle const *const part1,
Particle const *const part2 )
protectedvirtual

Cross section for direct 2-pion production - NNEta channel.

Definition at line 1025 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1025 {
1026 //
1027 // Nucleon-Nucleon producing one eta and two pions
1028 //
1029 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 581.437; // 581.437 MeV translation to open pion production in NNEta
1030 if (ener < 2018.563) return 0.;
1031 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1032
1033
1035 if (iso != 0) {
1036 return CrossSectionsMultiPions::NNTwoPi(ener, 2, xsiso2);
1037 }
1038 else {
1040 return 0.5*(CrossSectionsMultiPions::NNTwoPi(ener, 0, xsiso0)+ CrossSectionsMultiPions::NNTwoPi(ener, 2, xsiso2));
1041 }
1042 }

Referenced by NNToNNEtaFourPi(), and NNToNNEtaxPi().

◆ NNToNNEtaxPi()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNEtaxPi ( const G4int xpi,
Particle const *const p1,
Particle const *const p2 )
virtual

Cross section for X pion production - NNEta Channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 1089 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1089 {
1090 //
1091 // Nucleon-Nucleon producing one eta and xpi pions
1092 //
1093// assert(xpi>0 && xpi<=nMaxPiNN);
1094// assert(particle1->isNucleon() && particle2->isNucleon());
1095
1096 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 581.437; // 581.437 MeV translation to open pion production in NNEta
1097 if (ener < 2018.563) return 0.;
1098 const G4int i = ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1099 G4double xsinelas;
1100 if (i!=0)
1102 else
1104 if (xsinelas <= 1.e-9) return 0.;
1105 G4double ratio=(NNToNNEta(particle1, particle2)-NNToNNEtaExclu(particle1, particle2))/xsinelas;
1106
1107 if (xpi == 1)
1108 return NNToNNEtaOnePi(particle1, particle2)*ratio;
1109 else if (xpi == 2)
1110 return NNToNNEtaTwoPi(particle1, particle2)*ratio;
1111 else if (xpi == 3)
1112 return NNToNNEtaThreePi(particle1, particle2)*ratio;
1113 else if (xpi == 4)
1114 return NNToNNEtaFourPi(particle1, particle2);
1115 else // should never reach this point
1116 return 0.;
1117 }
virtual G4double NNToNNEtaFourPi(Particle const *const part1, Particle const *const part2)
Cross section for direct 4-pion production - NNEta channel.
virtual G4double NNToNNEtaOnePi(Particle const *const part1, Particle const *const part2)
Cross section for direct 1-pion production - NNEta channel.

◆ NNToNNOmega()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmega ( Particle const *const particle1,
Particle const *const particle2 )
virtual

Cross section for Omega production (inclusive) - NN entrance channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 843 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

843 {
844
845 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2);
846 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
847//jcd to be removed
848// return 0.;
849//jcd
850 if (iso != 0) {
851 return NNToNNOmegaIso(ener, iso);
852 }
853 else {
854 return 0.5*(NNToNNOmegaIso(ener, 0)+NNToNNOmegaIso(ener, 2));
855 }
856 }
virtual G4double NNToNNOmegaIso(const G4double ener, const G4int iso)
Isotopic Cross section for Omega production (inclusive) - NN entrance channel.

Referenced by NNToNDeltaOmega(), NNToNNOmegaFourPi(), NNToNNOmegaxPi(), NNToxPiNN(), and G4INCL::CrossSectionsStrangeness::NNToxPiNN().

◆ NNToNNOmegaExclu()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaExclu ( Particle const *const particle1,
Particle const *const particle2 )
virtual

Cross section for Omega production (exclusive) - NN entrance channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 903 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

903 {
904//jcd to be removed
905// return 0.;
906//jcd
907
908 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2);
909 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
910
911 if (iso != 0) {
912 return NNToNNOmegaExcluIso(ener, iso);
913 }
914 else {
915 return 0.5*(NNToNNOmegaExcluIso(ener, 0)+NNToNNOmegaExcluIso(ener, 2));
916 }
917 }
virtual G4double NNToNNOmegaExcluIso(const G4double ener, const G4int iso)
Isotopic Cross section for Omega production (exclusive) - NN entrance channel.

Referenced by NNToNDeltaOmega(), NNToNNOmegaFourPi(), and NNToNNOmegaxPi().

◆ NNToNNOmegaExcluIso()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaExcluIso ( const G4double ener,
const G4int iso )
protectedvirtual

Isotopic Cross section for Omega production (exclusive) - NN entrance channel.

Definition at line 858 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

858 {
859
860 const G4double Ecm=0.001*ener;
861 G4double sNNOmega; // pp->pp+eta
862 G4double sNNOmega1; // np->np+eta
863 G4double sthroot=std::sqrt(7.06);
864
865 if(Ecm>=3.0744) { // By hand (JCD)
866 sNNOmega = 330.*(Ecm-sthroot)/(1.05+std::pow((Ecm-sthroot),2));
867 }
868 else if(Ecm>=2.65854){
869 sNNOmega = -1208.09757*std::pow(Ecm,3) + 10773.3322*std::pow(Ecm,2) - 31661.0223*Ecm + 30728.7241 ;
870 }
871 else {
872 sNNOmega = 0. ;
873 }
874
878 G4double Thr0=0.;
879 if (iso > 0) {
880 Thr0=2.*Mp+Momega;
881 }
882 else if (iso < 0) {
883 Thr0=2.*Mn+Momega;
884 }
885 else {
886 Thr0=Mn+Mp+Momega;
887 }
888
889 if (sNNOmega < 1.e-9 || Ecm < Thr0) sNNOmega = 0.; // Thr0: Ecm threshold
890
891 if (iso != 0) {
892 return sNNOmega/1000.; // parameterization in microbarn (not millibarn)!
893 }
894
895 sNNOmega1 = 3*sNNOmega; // 3.0: ratio pn/pp
896
897 sNNOmega = 2*sNNOmega1-sNNOmega;
898 if (sNNOmega < 1.e-9 || Ecm < Thr0) sNNOmega = 0.;
899
900 return sNNOmega/1000.; // parameterization in microbarn (not millibarn)!
901 }

Referenced by NNToNNOmegaExclu(), and NNToNNOmegaIso().

◆ NNToNNOmegaFourPi()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaFourPi ( Particle const *const part1,
Particle const *const part2 )
protectedvirtual

Cross section for direct 4-pion production - NNOmega channel.

Definition at line 1210 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1210 {
1211 //
1212 // Nucleon-Nucleon producing one omega and four pions
1213 //
1214//jcd to be removed
1215// return 0.;
1216//jcd
1217
1218 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 783.437; // 783.437 MeV translation to open pion production in NNOmega
1219 if (ener < 2018.563) return 0.;
1220 const G4double s = ener*ener;
1221 const G4int i = ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1222 G4double xsinelas;
1223 if (i!=0)
1225 else
1227 if (xsinelas <= 1.e-9) return 0.;
1228 G4double ratio=(NNToNNOmega(particle1, particle2)-NNToNNOmegaExclu(particle1, particle2))/xsinelas;
1229 if(s<6.25E6)
1230 return 0.;
1231 const G4double sigma = NNToNNOmega(particle1, particle2) - NNToNNOmegaExclu(particle1, particle2) - ratio*(NNToNNOmegaOnePiOrDelta(particle1, particle2) + NNToNNOmegaTwoPi(particle1, particle2) + NNToNNOmegaThreePi(particle1, particle2));
1232 return ((sigma>1.e-9) ? sigma : 0.);
1233 }
virtual G4double NNToNNOmegaTwoPi(Particle const *const part1, Particle const *const part2)
Cross section for direct 2-pion production - NNOmega channel.
virtual G4double NNToNNOmegaThreePi(Particle const *const part1, Particle const *const part2)
Cross section for direct 3-pion production - NNOmega channel.

Referenced by NNToNNOmegaxPi().

◆ NNToNNOmegaIso()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaIso ( const G4double ener,
const G4int iso )
protectedvirtual

Isotopic Cross section for Omega production (inclusive) - NN entrance channel.

Definition at line 809 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

809 {
810
811 const G4double Ecm=0.001*ener;
812 G4double sNNOmega; // pp->pp+eta(+X)
813 G4double sNNOmega1; // np->np+eta(+X)
814 G4double x=Ecm*Ecm/7.06;
815
816 if(Ecm>4.0) {
817 sNNOmega = 2.5*std::pow(x-1, 1.47)*std::pow(x, -1.11) ;
818 }
819 else if(Ecm>2.802) { // 2802 MeV -> threshold to open inclusive (based on multipion threshold and omega mass)
820 sNNOmega = (568.5254*Ecm*Ecm - 2694.045*Ecm + 3106.247)/1000.;
821 if (sNNOmega <= NNToNNOmegaExcluIso(ener, 2)) sNNOmega = NNToNNOmegaExcluIso(ener, 2);
822 }
823 else {
824 sNNOmega = NNToNNOmegaExcluIso(ener, 2);
825 }
826
827 if (sNNOmega < 1.e-9) sNNOmega = 0.;
828
829 if (iso != 0) {
830 return sNNOmega;
831 }
832
833 sNNOmega1 = 3.*sNNOmega; // 3.0: ratio pn/pp (5 from theory; 2 from experiments)
834
835 sNNOmega = 2.*sNNOmega1-sNNOmega;
836
837 if (sNNOmega < 1.e-9) sNNOmega = 0.;
838
839 return sNNOmega;
840 }

Referenced by NNToNNOmega().

◆ NNToNNOmegaOnePi()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaOnePi ( Particle const *const part1,
Particle const *const part2 )
protectedvirtual

Cross section for direct 1-pion production - NNOmega channel.

Definition at line 1139 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1139 {
1140 // Cross section for nucleon-nucleon producing one omega and one pion
1141
1142 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1143 if (iso!=0)
1144 return 0.;
1145
1146 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 783.437; // 783.437 MeV translation to open pion production in NNOmega (= 2802. - 2018.563; 4074595.287720512986=2018.563*2018.563)
1147 if (ener < 2018.563) return 0.;
1148
1151
1152 return 0.25*(CrossSectionsMultiPions::NNOnePiOrDelta(ener, 0, xsiso0)+ CrossSectionsMultiPions::NNOnePiOrDelta(ener, 2, xsiso2));
1153 }

Referenced by NNToNNOmegaxPi().

◆ NNToNNOmegaOnePiOrDelta()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaOnePiOrDelta ( Particle const *const part1,
Particle const *const part2 )
protectedvirtual

Cross section for direct 1-pion production - NNOmega channel.

Definition at line 1155 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1155 {
1156 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 783.437; // 783.437 MeV translation to open pion production in NNOmega
1157 if (ener < 2018.563) return 0.;
1158 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1159
1161 if (iso != 0)
1162 return CrossSectionsMultiPions::NNOnePiOrDelta(ener, iso, xsiso2);
1163 else {
1165 return 0.5*(CrossSectionsMultiPions::NNOnePiOrDelta(ener, 0, xsiso0)+ CrossSectionsMultiPions::NNOnePiOrDelta(ener, 2, xsiso2));
1166 }
1167 }

Referenced by NNToNDeltaOmega(), and NNToNNOmegaFourPi().

◆ NNToNNOmegaThreePi()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaThreePi ( Particle const *const part1,
Particle const *const part2 )
protectedvirtual

Cross section for direct 3-pion production - NNOmega channel.

Definition at line 1187 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1187 {
1188 //
1189 // Nucleon-Nucleon producing one omega and three pions
1190 //
1191
1192 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 783.437; // 783.437 MeV translation to open pion production in NNOmega
1193 if (ener < 2018.563) return 0.;
1194 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1195
1196
1198 const G4double xs1pi2=CrossSectionsMultiPions::NNOnePiOrDelta(ener, 2, xsiso2);
1199 const G4double xs2pi2=CrossSectionsMultiPions::NNTwoPi(ener, 2, xsiso2);
1200 if (iso != 0)
1201 return CrossSectionsMultiPions::NNThreePi(ener, 2, xsiso2, xs1pi2, xs2pi2);
1202 else {
1204 const G4double xs1pi0=CrossSectionsMultiPions::NNOnePiOrDelta(ener, 0, xsiso0);
1205 const G4double xs2pi0=CrossSectionsMultiPions::NNTwoPi(ener, 0, xsiso0);
1206 return 0.5*(CrossSectionsMultiPions::NNThreePi(ener, 0, xsiso0, xs1pi0, xs2pi0)+ CrossSectionsMultiPions::NNThreePi(ener, 2, xsiso2, xs1pi2, xs2pi2));
1207 }
1208 }

Referenced by NNToNNOmegaFourPi(), and NNToNNOmegaxPi().

◆ NNToNNOmegaTwoPi()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaTwoPi ( Particle const *const part1,
Particle const *const part2 )
protectedvirtual

Cross section for direct 2-pion production - NNOmega channel.

Definition at line 1169 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1169 {
1170 //
1171 // Nucleon-Nucleon producing one omega and two pions
1172 //
1173 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 783.437; // 783.437 MeV translation to open pion production in NNOmega
1174 if (ener < 2018.563) return 0.;
1175 const G4int iso=ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1176
1178 if (iso != 0) {
1179 return CrossSectionsMultiPions::NNTwoPi(ener, 2, xsiso2);
1180 }
1181 else {
1183 return 0.5*(CrossSectionsMultiPions::NNTwoPi(ener, 0, xsiso0)+ CrossSectionsMultiPions::NNTwoPi(ener, 2, xsiso2));
1184 }
1185 }

Referenced by NNToNNOmegaFourPi(), and NNToNNOmegaxPi().

◆ NNToNNOmegaxPi()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToNNOmegaxPi ( const G4int xpi,
Particle const *const p1,
Particle const *const p2 )
virtual

Cross section for X pion production - NNOmega Channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 1235 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

1235 {
1236 //
1237 // Nucleon-Nucleon producing one omega and xpi pions
1238 //
1239// assert(xpi>0 && xpi<=nMaxPiNN);
1240// assert(particle1->isNucleon() && particle2->isNucleon());
1241//jcd to be removed
1242// return 0.;
1243//jcd
1244
1245 const G4double ener=KinematicsUtils::totalEnergyInCM(particle1, particle2) - 783.437; // 783.437 MeV translation to open pion production in NNOmega
1246 if (ener < 2018.563) return 0.;
1247 const G4int i = ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
1248 G4double xsinelas;
1249 if (i!=0)
1251 else
1253 if (xsinelas <= 1.e-9) return 0.;
1254 G4double ratio=(NNToNNOmega(particle1, particle2)-NNToNNOmegaExclu(particle1, particle2))/xsinelas;
1255
1256 if (xpi == 1)
1257 return NNToNNOmegaOnePi(particle1, particle2)*ratio;
1258 else if (xpi == 2)
1259 return NNToNNOmegaTwoPi(particle1, particle2)*ratio;
1260 else if (xpi == 3)
1261 return NNToNNOmegaThreePi(particle1, particle2)*ratio;
1262 else if (xpi == 4)
1263 return NNToNNOmegaFourPi(particle1, particle2);
1264 else // should never reach this point
1265 return 0.;
1266 }
virtual G4double NNToNNOmegaFourPi(Particle const *const part1, Particle const *const part2)
Cross section for direct 4-pion production - NNOmega channel.
virtual G4double NNToNNOmegaOnePi(Particle const *const part1, Particle const *const part2)
Cross section for direct 1-pion production - NNOmega channel.

◆ NNToxPiNN()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::NNToxPiNN ( const G4int xpi,
Particle const *const p1,
Particle const *const p2 )
virtual

Cross section for X pion production - NN Channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Reimplemented in G4INCL::CrossSectionsStrangeness.

Definition at line 920 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

920 {
921 //
922 // Nucleon-Nucleon producing xpi pions cross sections
923 //
924// assert(xpi>0 && xpi<=nMaxPiNN);
925// assert(particle1->isNucleon() && particle2->isNucleon());
926
927 G4double oldXS1Pi=CrossSectionsMultiPions::NNToxPiNN(1,particle1, particle2);
928 G4double oldXS2Pi=CrossSectionsMultiPions::NNToxPiNN(2,particle1, particle2);
929 G4double oldXS3Pi=CrossSectionsMultiPions::NNToxPiNN(3,particle1, particle2);
930 G4double oldXS4Pi=CrossSectionsMultiPions::NNToxPiNN(4,particle1, particle2);
931 G4double xsEtaOmega=NNToNNEta(particle1, particle2)+NNToNNOmega(particle1, particle2);
932 G4double newXS1Pi=0.;
933 G4double newXS2Pi=0.;
934 G4double newXS3Pi=0.;
935 G4double newXS4Pi=0.;
936
937 if (xpi == 1) {
938 if (oldXS4Pi != 0. || oldXS3Pi != 0.)
939 newXS1Pi=oldXS1Pi;
940 else if (oldXS2Pi != 0.) {
941 newXS2Pi=oldXS2Pi-xsEtaOmega;
942 if (newXS2Pi < 0.)
943 newXS1Pi=oldXS1Pi-(xsEtaOmega-oldXS2Pi);
944 else
945 newXS1Pi=oldXS1Pi;
946 }
947 else
948 newXS1Pi=oldXS1Pi-xsEtaOmega;
949 return newXS1Pi;
950 }
951 else if (xpi == 2) {
952 if (oldXS4Pi != 0.)
953 newXS2Pi=oldXS2Pi;
954 else if (oldXS3Pi != 0.) {
955 newXS3Pi=oldXS3Pi-xsEtaOmega;
956 if (newXS3Pi < 0.)
957 newXS2Pi=oldXS2Pi-(xsEtaOmega-oldXS3Pi);
958 else
959 newXS2Pi=oldXS2Pi;
960 }
961 else {
962 newXS2Pi=oldXS2Pi-xsEtaOmega;
963 if (newXS2Pi < 0.)
964 newXS2Pi=0.;
965 }
966 return newXS2Pi;
967 }
968 else if (xpi == 3) {
969 if (oldXS4Pi != 0.) {
970 newXS4Pi=oldXS4Pi-xsEtaOmega;
971 if (newXS4Pi < 0.)
972 newXS3Pi=oldXS3Pi-(xsEtaOmega-oldXS4Pi);
973 else
974 newXS3Pi=oldXS3Pi;
975 }
976 else {
977 newXS3Pi=oldXS3Pi-xsEtaOmega;
978 if (newXS3Pi < 0.)
979 newXS3Pi=0.;
980 }
981 return newXS3Pi;
982 }
983 else if (xpi == 4) {
984 newXS4Pi=oldXS4Pi-xsEtaOmega;
985 if (newXS4Pi < 0.)
986 newXS4Pi=0.;
987 return newXS4Pi;
988 }
989
990 else // should never reach this point
991 return 0.;
992 }
virtual G4double NNToxPiNN(const G4int xpi, Particle const *const p1, Particle const *const p2)
Cross section for X pion production - NN Channel.

◆ omegaNElastic()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::omegaNElastic ( Particle const *const p1,
Particle const *const p2 )
protectedvirtual

Definition at line 419 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

419 {
420 //
421 // Omega-Nucleon elastic cross sections
422 //
423// assert((particle1->isNucleon() && particle2->isOmega()) || (particle1->isOmega() && particle2->isNucleon()));
424
425 G4double sigma=0.;
426
427 const Particle *omega;
428 const Particle *nucleon;
429
430 if (particle1->isOmega()) {
431 omega = particle1;
432 nucleon = particle2;
433 }
434 else {
435 omega = particle2;
436 nucleon = particle1;
437 }
438
439 const G4double pLab = KinematicsUtils::momentumInLab(omega, nucleon)/1000.; // GeV/c
440
441 sigma = 5.4 + 10.*std::exp(-0.6*pLab); // Eq.(21) in G.I. Lykasov et al., EPJA 6, 71-81 (1999)
442
443 return sigma;
444 }

Referenced by elastic().

◆ omegaNInelastic()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::omegaNInelastic ( Particle const *const p1,
Particle const *const p2 )
protectedvirtual

Cross sections for mesonic resonance absorption on nucleon - inelastic Channel.

Definition at line 391 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

391 {
392 //
393 // Omega-Nucleon inelastic cross sections
394 //
395// assert((particle1->isNucleon() && particle2->isOmega()) || (particle1->isOmega() && particle2->isNucleon()));
396
397 G4double sigma=0.;
398
399 const Particle *omega;
400 const Particle *nucleon;
401
402 if (particle1->isOmega()) {
403 omega = particle1;
404 nucleon = particle2;
405 }
406 else {
407 omega = particle2;
408 nucleon = particle1;
409 }
410
411 const G4double pLab = KinematicsUtils::momentumInLab(omega, nucleon)/1000.; // GeV/c
412
413 sigma = 20. + 4.0/pLab; // Eq.(24) in G.I. Lykasov et al., EPJA 6, 71-81 (1999)
414
415 return sigma;
416 }

Referenced by G4INCL::CrossSectionsStrangeness::omegaNToLK(), omegaNToPiN(), omegaNToPiPiN(), G4INCL::CrossSectionsStrangeness::omegaNToPiPiN(), G4INCL::CrossSectionsStrangeness::omegaNToSK(), G4INCL::CrossSectionsAntiparticles::total(), total(), and G4INCL::CrossSectionsStrangeness::total().

◆ omegaNToLK()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::omegaNToLK ( Particle const *const p1,
Particle const *const p2 )
protectedvirtual

Cross section for OmegaN->LK/SK.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Reimplemented in G4INCL::CrossSectionsStrangeness.

Definition at line 505 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

505 {
506 //
507 // Omega-Nucleon producing K Lambda cross sections
508 //
509 return 0.;
510 }

◆ omegaNToPiN()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::omegaNToPiN ( Particle const *const p1,
Particle const *const p2 )
virtual

Cross section for OmegaN->PiN.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 447 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

447 {
448 //
449 // Omega-Nucleon producing Pion cross sections
450 //
451// assert((particle1->isNucleon() && particle2->isOmega()) || (particle1->isOmega() && particle2->isNucleon()));
452
453 G4double ECM=KinematicsUtils::totalEnergyInCM(particle1, particle2);
454
458
459 G4double massomega;
460 G4double massnucleon;
461 G4double pCM_omega;
462 G4double pLab_omega;
463
464 G4double sigma=0.;
465
466 if (particle1->isOmega()) {
467 massomega=particle1->getMass();
468 massnucleon=particle2->getMass();
469 }
470 else {
471 massomega=particle2->getMass();
472 massnucleon=particle1->getMass();
473 }
474 pCM_omega=KinematicsUtils::momentumInCM(ECM, massomega, massnucleon);
475 pLab_omega=KinematicsUtils::momentumInLab(ECM*ECM, massomega, massnucleon);
476
477 G4double pCM_PiZero=KinematicsUtils::momentumInCM(ECM, massPiZero, massProton);
478 G4double pCM_PiMinus=KinematicsUtils::momentumInCM(ECM, massPiMinus, massProton); // = pCM_PiPlus (because massPiMinus = massPiPlus)
479
480 sigma = (piMinuspToOmegaN(ECM)/2.) * std::pow((pCM_PiZero/pCM_omega), 2)
481 + piMinuspToOmegaN(ECM) * std::pow((pCM_PiMinus/pCM_omega), 2);
482
483 if (sigma > omegaNInelastic(particle1, particle2) || (pLab_omega < 200.)) {
484// if (sigma > omegaNInelastic(particle1, particle2)) {
485 sigma = omegaNInelastic(particle1, particle2);
486 }
487
488 return sigma;
489 }
virtual G4double omegaNInelastic(Particle const *const p1, Particle const *const p2)
Cross sections for mesonic resonance absorption on nucleon - inelastic Channel.
G4double piMinuspToOmegaN(Particle const *const p1, Particle const *const p2)

Referenced by omegaNToPiPiN(), and G4INCL::CrossSectionsStrangeness::omegaNToPiPiN().

◆ omegaNToPiPiN()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::omegaNToPiPiN ( Particle const *const p1,
Particle const *const p2 )
protectedvirtual

Cross sections for omega-induced 2Pi emission on nucleon.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Reimplemented in G4INCL::CrossSectionsStrangeness.

Definition at line 492 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

492 {
493 //
494 // Omega-Nucleon producing 2 PionS cross sections
495 //
496// assert((particle1->isNucleon() && particle2->isOmega()) || (particle1->isOmega() && particle2->isNucleon()));
497
498 G4double sigma=0.;
499
500 sigma = omegaNInelastic(particle1,particle2) - omegaNToPiN(particle1,particle2) ;
501
502 return sigma;
503 }
virtual G4double omegaNToPiN(Particle const *const p1, Particle const *const p2)
Cross section for OmegaN->PiN.

◆ omegaNToSK()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::omegaNToSK ( Particle const *const p1,
Particle const *const p2 )
protectedvirtual

Reimplemented from G4INCL::CrossSectionsMultiPions.

Reimplemented in G4INCL::CrossSectionsStrangeness.

Definition at line 512 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

512 {
513 //
514 // Omega-Nucleon producing K Sigma cross sections
515 //
516 return 0.;
517 }

◆ piMinuspToEtaN() [1/2]

G4double G4INCL::CrossSectionsMultiPionsAndResonances::piMinuspToEtaN ( const G4double ECM)
protected

Definition at line 578 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

578 {
579 //
580 // Pion-Nucleon producing Eta cross sections
581 //
582
584 const G4double massnucleon = ParticleTable::getRealMass(Proton);
585
586 G4double plab=KinematicsUtils::momentumInLab(ECM*ECM, masspion, massnucleon)/1000.; // GeV/c
587
588 G4double sigma;
589
590// new parameterization (JCD) - end of february 2016
591 if (ECM < 1486.5) sigma=0.;
592 else
593 {
594 if (ECM < 1535.)
595 {
596 sigma = -0.0000003689197974814*std::pow(ECM,4) + 0.002260193900097*std::pow(ECM,3) - 5.193105877187*std::pow(ECM,2) + 5303.505273919*ECM - 2031265.900648;
597 }
598 else if (ECM < 1670.)
599 {
600 sigma = -0.0000000337986446*std::pow(ECM,4) + 0.000218279989*std::pow(ECM,3) - 0.528276144*std::pow(ECM,2) + 567.828367*ECM - 228709.42;
601 }
602 else if (ECM < 1714.)
603 {
604 sigma = 0.000003737765*std::pow(ECM,2) - 0.005664062*ECM;
605 }
606 else sigma=1.47*std::pow(plab, -1.68);
607 }
608
609 return sigma;
610 }

◆ piMinuspToEtaN() [2/2]

G4double G4INCL::CrossSectionsMultiPionsAndResonances::piMinuspToEtaN ( Particle const *const p1,
Particle const *const p2 )
protected

Internal function for pion cross sections.

Definition at line 533 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

533 {
534 //
535 // Pion-Nucleon producing Eta cross sections
536 //
537// assert((particle1->isNucleon() && particle2->isPion()) || (particle1->isPion() && particle2->isNucleon()));
538
539 G4double masspion;
540 G4double massnucleon;
541 if (particle1->isPion()) {
542 masspion=particle1->getMass();
543 massnucleon=particle2->getMass();
544 }
545 else {
546 masspion=particle2->getMass();
547 massnucleon=particle1->getMass();
548 }
549
550 G4double ECM=KinematicsUtils::totalEnergyInCM(particle1, particle2);
551 G4double plab=KinematicsUtils::momentumInLab(ECM*ECM, masspion, massnucleon)/1000.; // GeV/c
552
553 G4double sigma;
554
555// new parameterization (JCD) - end of february 2016
556 if (ECM < 1486.5) sigma=0.;
557 else
558 {
559 if (ECM < 1535.)
560 {
561 sigma = -0.0000003689197974814*std::pow(ECM,4) + 0.002260193900097*std::pow(ECM,3) - 5.193105877187*std::pow(ECM,2) + 5303.505273919*ECM - 2031265.900648;
562 }
563 else if (ECM < 1670.)
564 {
565 sigma = -0.0000000337986446*std::pow(ECM,4) + 0.000218279989*std::pow(ECM,3) - 0.528276144*std::pow(ECM,2) + 567.828367*ECM - 228709.42;
566 }
567 else if (ECM < 1714.)
568 {
569 sigma = 0.000003737765*std::pow(ECM,2) - 0.005664062*ECM;
570 }
571 else sigma=1.47*std::pow(plab, -1.68);
572 }
573//
574
575 return sigma;
576 }

Referenced by etaNToPiN(), and piNToEtaN().

◆ piMinuspToOmegaN() [1/2]

G4double G4INCL::CrossSectionsMultiPionsAndResonances::piMinuspToOmegaN ( const G4double ECM)
protected

Definition at line 643 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

643 {
644 //
645 // Pion-Nucleon producing Omega cross sections
646 //
647//jcd to be removed
648// return 0.;
649//jcd
650
651// G4double param=1.095 ; // Deneye (Thesis)
652 G4double param=1.0903 ; // JCD (threshold taken into account)
653
655 const G4double massnucleon = ParticleTable::getRealMass(Proton);
656
657 G4double plab=KinematicsUtils::momentumInLab(ECM*ECM, masspion, massnucleon)/1000.; // GeV/c
658
659 G4double sigma;
660 if (plab < param) sigma=0.;
661 else sigma=13.76*(plab-param)/(std::pow(plab, 3.33)-1.07);
662
663 return sigma;
664 }

◆ piMinuspToOmegaN() [2/2]

G4double G4INCL::CrossSectionsMultiPionsAndResonances::piMinuspToOmegaN ( Particle const *const p1,
Particle const *const p2 )
protected

Definition at line 612 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

612 {
613 //
614 // Pion-Nucleon producing Omega cross sections
615 //
616// assert((particle1->isNucleon() && particle2->isPion()) || (particle1->isPion() && particle2->isNucleon()));
617//jcd to be removed
618// return 0.;
619//jcd
620
621// G4double param=1.095 ; // Deneye (Thesis)
622 G4double param=1.0903 ; // JCD (threshold taken into account)
623
624 G4double masspion;
625 G4double massnucleon;
626 if (particle1->isPion()) {
627 masspion=particle1->getMass();
628 massnucleon=particle2->getMass();
629 }
630 else {
631 masspion=particle2->getMass();
632 massnucleon=particle1->getMass();
633 }
634 G4double ECM=KinematicsUtils::totalEnergyInCM(particle1, particle2);
635 G4double plab=KinematicsUtils::momentumInLab(ECM*ECM, masspion, massnucleon)/1000.; // GeV/c
636
637 G4double sigma;
638 if (plab < param) sigma=0.;
639 else sigma=13.76*(plab-param)/(std::pow(plab, 3.33) - 1.07); // Phys. Rev. C 41, 1701–1718 (1990)
640
641 return sigma;
642}

Referenced by omegaNToPiN(), and piNToOmegaN().

◆ piNToEtaN()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::piNToEtaN ( Particle const *const p1,
Particle const *const p2 )
virtual

Cross sections for mesonic resonance production - piN Channel.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 195 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

195 {
196 //
197 // Pion-Nucleon producing Eta cross sections
198 //
199// assert((particle1->isNucleon() && particle2->isPion()) || (particle1->isPion() && particle2->isNucleon()));
200
201 G4double sigma;
202 sigma=piMinuspToEtaN(particle1,particle2);
203
204 const G4int isoin = ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
205
206 if (isoin == -1) {
207 if ((particle1->getType()) == Proton || (particle2->getType()) == Proton) return sigma;
208 else return 0.5 * sigma;
209 }
210 else if (isoin == 1) {
211 if ((particle1->getType()) == Neutron || (particle2->getType()) == Neutron) return sigma;
212 else return 0.5 * sigma;
213 }
214 else return 0. ; // should never return 0. (?) // pi+ p and pi- n return 0.
215
216// return sigma;
217 }

Referenced by piNToxPiN(), and G4INCL::CrossSectionsStrangeness::piNToxPiN().

◆ piNToEtaPrimeN()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::piNToEtaPrimeN ( Particle const *const p1,
Particle const *const p2 )
virtual

Cross section for PiN->EtaPrimeN.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 244 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

244 {
245#else
246 G4double CrossSectionsMultiPionsAndResonances::piNToEtaPrimeN(Particle const * const particle1, Particle const * const particle2) {
247#endif
248 //
249 // Pion-Nucleon producing EtaPrime cross sections
250 //
251// assert((particle1->isNucleon() && particle2->isPion()) || (particle1->isPion() && particle2->isNucleon()));
252
253 return 0.;
254 }
virtual G4double piNToEtaPrimeN(Particle const *const p1, Particle const *const p2)
Cross section for PiN->EtaPrimeN.

Referenced by piNToEtaPrimeN().

◆ piNToOmegaN()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::piNToOmegaN ( Particle const *const p1,
Particle const *const p2 )
virtual

Cross section for PiN->OmegaN.

Reimplemented from G4INCL::CrossSectionsMultiPions.

Definition at line 219 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

219 {
220 //
221 // Pion-Nucleon producing Omega cross sections
222 //
223// assert((particle1->isNucleon() && particle2->isPion()) || (particle1->isPion() && particle2->isNucleon()));
224
225 G4double sigma;
226 sigma=piMinuspToOmegaN(particle1,particle2);
227
228 const G4int isoin = ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
229
230 if (isoin == -1) {
231 if ((particle1->getType()) == Proton || (particle2->getType()) == Proton) return sigma;
232 else return 0.5 * sigma;
233 }
234 else if (isoin == 1) {
235 if ((particle1->getType()) == Neutron || (particle2->getType()) == Neutron) return sigma;
236 else return 0.5 * sigma;
237 }
238 else return 0. ; // should never return 0. (?) // pi+ p and pi- n return 0.
239
240// return sigma;
241 }

Referenced by piNToxPiN(), and G4INCL::CrossSectionsStrangeness::piNToxPiN().

◆ piNToxPiN()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::piNToxPiN ( const G4int xpi,
Particle const *const p1,
Particle const *const p2 )
virtual

Cross section for X pion production - piN Channel (modified due to the mesonic resonances).

Reimplemented from G4INCL::CrossSectionsMultiPions.

Reimplemented in G4INCL::CrossSectionsStrangeness.

Definition at line 137 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

137 {
138 //
139 // pion-Nucleon producing xpi pions cross sections (corrected due to eta and omega)
140 //
141// assert(xpi>1 && xpi<=nMaxPiPiN);
142// assert((particle1->isNucleon() && particle2->isPion()) || (particle1->isPion() && particle2->isNucleon()));
143
144 const G4double oldXS2Pi=CrossSectionsMultiPions::piNToxPiN(2,particle1, particle2);
145 const G4double oldXS3Pi=CrossSectionsMultiPions::piNToxPiN(3,particle1, particle2);
146 const G4double oldXS4Pi=CrossSectionsMultiPions::piNToxPiN(4,particle1, particle2);
147 const G4double xsEta=piNToEtaN(particle1, particle2);
148 const G4double xsOmega=piNToOmegaN(particle1, particle2);
149 G4double newXS2Pi=0.;
150 G4double newXS3Pi=0.;
151 G4double newXS4Pi=0.;
152
153 if (xpi == 2) {
154 if (oldXS4Pi != 0.)
155 newXS2Pi=oldXS2Pi;
156 else if (oldXS3Pi != 0.) {
157 newXS3Pi=oldXS3Pi-xsEta-xsOmega;
158 if (newXS3Pi < 1.e-09)
159 newXS2Pi=oldXS2Pi-(xsEta+xsOmega-oldXS3Pi);
160 else
161 newXS2Pi=oldXS2Pi;
162 }
163 else {
164 newXS2Pi=oldXS2Pi-xsEta-xsOmega;
165 if (newXS2Pi < 1.e-09)
166 newXS2Pi=0.;
167 }
168 return newXS2Pi;
169 }
170 else if (xpi == 3) {
171 if (oldXS4Pi != 0.) {
172 newXS4Pi=oldXS4Pi-xsEta-xsOmega;
173 if (newXS4Pi < 1.e-09)
174 newXS3Pi=oldXS3Pi-(xsEta+xsOmega-oldXS4Pi);
175 else
176 newXS3Pi=oldXS3Pi;
177 }
178 else {
179 newXS3Pi=oldXS3Pi-xsEta-xsOmega;
180 if (newXS3Pi < 1.e-09)
181 newXS3Pi=0.;
182 }
183 return newXS3Pi;
184 }
185 else if (xpi == 4) {
186 newXS4Pi=oldXS4Pi-xsEta-xsOmega;
187 if (newXS4Pi < 1.e-09)
188 newXS4Pi=0.;
189 return newXS4Pi;
190 }
191 else // should never reach this point
192 return 0.;
193 }
virtual G4double piNToEtaN(Particle const *const p1, Particle const *const p2)
Cross sections for mesonic resonance production - piN Channel.
virtual G4double piNToOmegaN(Particle const *const p1, Particle const *const p2)
Cross section for PiN->OmegaN.
virtual G4double piNToxPiN(const G4int xpi, Particle const *const p1, Particle const *const p2)
Cross section for X pion production - piN Channel.

◆ total()

G4double G4INCL::CrossSectionsMultiPionsAndResonances::total ( Particle const *const p1,
Particle const *const p2 )
virtual

new total particle-particle cross section

Reimplemented from G4INCL::CrossSectionsMultiPions.

Reimplemented in G4INCL::CrossSectionsAntiparticles, and G4INCL::CrossSectionsStrangeness.

Definition at line 91 of file G4INCLCrossSectionsMultiPionsAndResonances.cc.

91 {
92 G4double inelastic;
93 if(p1->isNucleon() && p2->isNucleon()) {
94 return CrossSectionsMultiPions::NNTot(p1, p2);
95 } else if((p1->isNucleon() && p2->isDelta()) ||
96 (p1->isDelta() && p2->isNucleon())) {
97 inelastic = CrossSectionsMultiPions::NDeltaToNN(p1, p2);
98 } else if((p1->isNucleon() && p2->isPion()) ||
99 (p1->isPion() && p2->isNucleon())) {
101 } else if((p1->isNucleon() && p2->isEta()) ||
102 (p1->isEta() && p2->isNucleon())) {
103 inelastic = etaNToPiN(p1,p2) + etaNToPiPiN(p1,p2);
104 } else if((p1->isNucleon() && p2->isOmega()) ||
105 (p1->isOmega() && p2->isNucleon())) {
106 inelastic = omegaNInelastic(p1,p2);
107 } else if((p1->isNucleon() && p2->isEtaPrime()) ||
108 (p1->isEtaPrime() && p2->isNucleon())) {
109 inelastic = etaPrimeNToPiN(p1,p2);
110 } else {
111 inelastic = 0.;
112 }
113
114 return inelastic + elastic(p1, p2);
115 }
virtual G4double etaNToPiPiN(Particle const *const p1, Particle const *const p2)
Cross sections for mesonic resonance absorption on nucleon - pipiN Channel.
virtual G4double elastic(Particle const *const p1, Particle const *const p2)
new elastic particle-particle cross section
G4double piNTot(Particle const *const p1, Particle const *const p2)
G4double NNTot(Particle const *const part1, Particle const *const part2)
Internal implementation of the NN total cross section.
virtual G4double NDeltaToNN(Particle const *const p1, Particle const *const p2)
Cross section for NDelta->NN.

Member Data Documentation

◆ nMaxPiNN

const G4int G4INCL::CrossSectionsMultiPionsAndResonances::nMaxPiNN = 4
staticprotected

Maximum number of outgoing pions in NN collisions.

Definition at line 114 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ nMaxPiPiN

const G4int G4INCL::CrossSectionsMultiPionsAndResonances::nMaxPiPiN = 4
staticprotected

Maximum number of outgoing pions in piN collisions.

Definition at line 117 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ s01ppHC

const HornerC8 G4INCL::CrossSectionsMultiPionsAndResonances::s01ppHC
protected

Horner coefficients for s01pp.

Definition at line 122 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Referenced by CrossSectionsMultiPionsAndResonances().

◆ s01ppOOT

const G4double G4INCL::CrossSectionsMultiPionsAndResonances::s01ppOOT = 0.003421025623481919853
staticprotected

One over threshold for s01pp.

Definition at line 143 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ s01pzHC

const HornerC4 G4INCL::CrossSectionsMultiPionsAndResonances::s01pzHC
protected

Horner coefficients for s01pz.

Definition at line 124 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Referenced by CrossSectionsMultiPionsAndResonances().

◆ s01pzOOT

const G4double G4INCL::CrossSectionsMultiPionsAndResonances::s01pzOOT = 0.0035739814152966403123
staticprotected

One over threshold for s01pz.

Definition at line 145 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ s02pmHC

const HornerC6 G4INCL::CrossSectionsMultiPionsAndResonances::s02pmHC
protected

Horner coefficients for s02pm.

Definition at line 136 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Referenced by CrossSectionsMultiPionsAndResonances().

◆ s02pmOOT

const G4double G4INCL::CrossSectionsMultiPionsAndResonances::s02pmOOT = 0.0016661112962345883443
staticprotected

One over threshold for s02pm.

Definition at line 157 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ s02pzHC

const HornerC4 G4INCL::CrossSectionsMultiPionsAndResonances::s02pzHC
protected

Horner coefficients for s02pz.

Definition at line 134 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Referenced by CrossSectionsMultiPionsAndResonances().

◆ s02pzOOT

const G4double G4INCL::CrossSectionsMultiPionsAndResonances::s02pzOOT = 0.00125
staticprotected

One over threshold for s02pz.

Definition at line 155 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ s11pmHC

const HornerC4 G4INCL::CrossSectionsMultiPionsAndResonances::s11pmHC
protected

Horner coefficients for s11pm.

Definition at line 126 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Referenced by CrossSectionsMultiPionsAndResonances().

◆ s11pmOOT

const G4double G4INCL::CrossSectionsMultiPionsAndResonances::s11pmOOT = 0.0034855350296270480281
staticprotected

One over threshold for s11pm.

Definition at line 147 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ s11pzHC

const HornerC7 G4INCL::CrossSectionsMultiPionsAndResonances::s11pzHC
protected

Horner coefficients for s11pz.

Definition at line 120 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Referenced by CrossSectionsMultiPionsAndResonances().

◆ s11pzOOT

const G4double G4INCL::CrossSectionsMultiPionsAndResonances::s11pzOOT = 0.0035761542037692665889
staticprotected

One over threshold for s11pz.

Definition at line 141 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ s12mzHC

const HornerC4 G4INCL::CrossSectionsMultiPionsAndResonances::s12mzHC
protected

Horner coefficients for s12mz.

Definition at line 138 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Referenced by CrossSectionsMultiPionsAndResonances().

◆ s12mzOOT

const G4double G4INCL::CrossSectionsMultiPionsAndResonances::s12mzOOT = 0.0017047391749062392793
staticprotected

One over threshold for s12mz.

Definition at line 159 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ s12pmHC

const HornerC5 G4INCL::CrossSectionsMultiPionsAndResonances::s12pmHC
protected

Horner coefficients for s12pm.

Definition at line 128 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Referenced by CrossSectionsMultiPionsAndResonances().

◆ s12pmOOT

const G4double G4INCL::CrossSectionsMultiPionsAndResonances::s12pmOOT = 0.0016672224074691565119
staticprotected

One over threshold for s12pm.

Definition at line 149 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ s12ppHC

const HornerC3 G4INCL::CrossSectionsMultiPionsAndResonances::s12ppHC
protected

Horner coefficients for s12pp.

Definition at line 130 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Referenced by CrossSectionsMultiPionsAndResonances().

◆ s12ppOOT

const G4double G4INCL::CrossSectionsMultiPionsAndResonances::s12ppOOT = 0.0016507643038726931312
staticprotected

One over threshold for s12pp.

Definition at line 151 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

◆ s12zzHC

const HornerC4 G4INCL::CrossSectionsMultiPionsAndResonances::s12zzHC
protected

Horner coefficients for s12zz.

Definition at line 132 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.

Referenced by CrossSectionsMultiPionsAndResonances().

◆ s12zzOOT

const G4double G4INCL::CrossSectionsMultiPionsAndResonances::s12zzOOT = 0.0011111111111111111111
staticprotected

One over threshold for s12zz.

Definition at line 153 of file G4INCLCrossSectionsMultiPionsAndResonances.hh.


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