Import Geant4 10.7.0 source tree

This commit is contained in:
Gabriele Cosmo
2020-12-04 12:30:43 +01:00
parent 67ba86d073
commit dab42d2018
3770 changed files with 226369 additions and 286486 deletions
@@ -14,18 +14,42 @@ code and to keep track of all tags.
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
17-Oct-2020 V.Ivanchenko (hadr-qgsm-V10-06-06)
- G4QGSParticipants - added protection for G4Exp (fixing outstanding
precision lost in gamma+proton interactions)
28-Jul-2020 A. Ribon (hadr-qgsm-V10-06-05)
- G4BaryonSplitter : removed inexisting in Geant4 excited hyperon states
(Sigma* and Xi*).
24-Jul-2020 A. Ribon (hadr-qgsm-V10-06-04)
- G4BaryonSplitter, G4SPBaryon : extension to charmed and bottom
baryons and anti-baryons.
- G4SingleDiffractiveExcitation, G4QGSDiffractiveExcitation,
G4QuarkExchange : in the ExciteParticipants method of these classe,
extension to charmed and bottom hadrons by assuming a minimum
projectile diffractive mass equal to the PDG mass plus 250 MeV;
in G4QuarkExchange, assumed also 50% for the probability of
projectile diffraction.
- G4Reggeons : in the constructor, replaced Omega_cc (PDG code 4432)
with Omega_c (PDG code 4332); added comments.
06-Jul-2020 A. Ribon (hadr-qgsm-V10-06-03)
- G4QGSParticipants : rolled back the change in the average
transverse momentum of partons in a hadron.
10-Jun-2020 A. Ribon (hadr-qgsm-V10-06-02)
- Improved treatment of antibaryon interactions in QGS
(made by Vladimir Uzhinsky):
1. G4QGSParticipants : the average transverse momentum of partons
in a hadron is set to zero (according to the study of transverse
momentum distributions of hadrons produced in hadronic
interactions, in particular the study of Xf - Pt correlations
presented by the NA49 Collaboration).
2. G4QuarkExchange : the reggeon exchanges are now treated as
annihilation and creation of quark-antiquark pairs (to reflect
in inelastic processes the non-vacuum reggeon exchanges present
in antiparticle-particle elastic scattering amplitudes).
Two, unrelated changes made by Vladimir Uzhinsky :
- G4QuarkExchange : improved treatment of antibaryon interactions in QGS.
The reggeon exchanges are now treated as annihilation and creation of
quark-antiquark pairs (to reflect in inelastic processes the non-vacuum
reggeon exchanges present in antiparticle-particle elastic scattering
amplitudes).
- G4QGSParticipants : the average transverse momentum of partons
in a hadron is set to zero (according to the study of transverse
momentum distributions of hadrons produced in hadronic
interactions, in particular the study of Xf - Pt correlations
presented by the NA49 Collaboration).
08-Mar-2020 V.Ivanchenko (hadr-qgsm-V10-06-01)
- G4QGSModel - clean-up: removed unused methods, delete
@@ -48,6 +48,35 @@
#include "G4AntiLambda.hh"
#include "G4AntiOmegaMinus.hh"
#include "G4LambdacPlus.hh"
#include "G4AntiLambdacPlus.hh"
#include "G4SigmacPlusPlus.hh"
#include "G4AntiSigmacPlusPlus.hh"
#include "G4SigmacPlus.hh"
#include "G4AntiSigmacPlus.hh"
#include "G4SigmacZero.hh"
#include "G4AntiSigmacZero.hh"
#include "G4XicPlus.hh"
#include "G4AntiXicPlus.hh"
#include "G4XicZero.hh"
#include "G4AntiXicZero.hh"
#include "G4OmegacZero.hh"
#include "G4AntiOmegacZero.hh"
#include "G4Lambdab.hh"
#include "G4AntiLambdab.hh"
#include "G4SigmabPlus.hh"
#include "G4AntiSigmabPlus.hh"
#include "G4SigmabZero.hh"
#include "G4AntiSigmabZero.hh"
#include "G4SigmabMinus.hh"
#include "G4AntiSigmabMinus.hh"
#include "G4XibZero.hh"
#include "G4AntiXibZero.hh"
#include "G4XibMinus.hh"
#include "G4AntiXibMinus.hh"
#include "G4OmegabMinus.hh"
#include "G4AntiOmegabMinus.hh"
#include "G4ParticleDefinition.hh"
#include "G4SPPartonInfo.hh"
#include <vector>
@@ -79,6 +108,36 @@ class G4SPBaryon
G4SPBaryon(G4ParticleDefinition * aDefinition);
~G4SPBaryon();
// Extension to charmed and bottom baryons and anti-baryons
G4SPBaryon(G4LambdacPlus * aLambdacPlus);
G4SPBaryon(G4AntiLambdacPlus * aAntiLambdacPlus);
G4SPBaryon(G4SigmacPlusPlus * aSigmacPlusPlus);
G4SPBaryon(G4AntiSigmacPlusPlus * aAntiSigmacPlusPlus);
G4SPBaryon(G4SigmacPlus * aSigmacPlus);
G4SPBaryon(G4AntiSigmacPlus * aAntiSigmacPlus);
G4SPBaryon(G4SigmacZero * aSigmacZero);
G4SPBaryon(G4AntiSigmacZero * aAntiSigmacZero);
G4SPBaryon(G4XicPlus * aXicPlus);
G4SPBaryon(G4AntiXicPlus * aAntiXicPlus);
G4SPBaryon(G4XicZero * aXicZero);
G4SPBaryon(G4AntiXicZero * aAntiXicZero);
G4SPBaryon(G4OmegacZero * aOmegacZero);
G4SPBaryon(G4AntiOmegacZero * aAntiOmegacZero);
G4SPBaryon(G4Lambdab * aLambdab);
G4SPBaryon(G4AntiLambdab * aAntiLambdab);
G4SPBaryon(G4SigmabPlus * aSigmabPlus);
G4SPBaryon(G4AntiSigmabPlus * aAntiSigmabPlus);
G4SPBaryon(G4SigmabZero * aSigmabZero);
G4SPBaryon(G4AntiSigmabZero * aAntiSigmabZero);
G4SPBaryon(G4SigmabMinus * aSigmabMinus);
G4SPBaryon(G4AntiSigmabMinus * aAntiSigmabMinus);
G4SPBaryon(G4XibZero * aXibZero);
G4SPBaryon(G4AntiXibZero * aAntiXibZero);
G4SPBaryon(G4XibMinus * aXibMinus);
G4SPBaryon(G4AntiXibMinus * aAntiXibMinus);
G4SPBaryon(G4OmegabMinus * aOmegabMinus);
G4SPBaryon(G4AntiOmegabMinus * aAntiOmegabMinus);
private:
G4bool operator == ( const G4SPBaryon & aBaryon) const;
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_string.G4hadronic_qgstring
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,38 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/shortlived/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/cross_sections/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/parton_string/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/processes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4hadronic_qgstring
HEADERS
G4BaryonSplitter.hh
@@ -37,14 +37,14 @@ G4BaryonSplitter()
theBaryons.insert(new G4SPBaryon(G4Neutron::Neutron()));
theBaryons.insert(new G4SPBaryon(G4AntiProton::AntiProton()));
theBaryons.insert(new G4SPBaryon(G4AntiNeutron::AntiNeutron()));
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(2224))); // D++
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(2214))); // D+
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(2114))); // D0
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(1114))); // D-
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-2224))); // anti D++
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-2214))); // anti D+
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-2114))); // anti D0
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-1114))); // anti D-
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(2224))); // Delta++
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(2214))); // Delta+
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(2114))); // Delta0
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(1114))); // Delta-
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-2224))); // anti Delta++
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-2214))); // anti Delta+
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-2114))); // anti Delta0
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-1114))); // anti Delta-
theBaryons.insert(new G4SPBaryon(G4Lambda::Lambda()));
theBaryons.insert(new G4SPBaryon(G4AntiLambda::AntiLambda()));
theBaryons.insert(new G4SPBaryon(G4SigmaPlus::SigmaPlus()));
@@ -53,22 +53,40 @@ G4BaryonSplitter()
theBaryons.insert(new G4SPBaryon(G4AntiSigmaPlus::AntiSigmaPlus()));
theBaryons.insert(new G4SPBaryon(G4AntiSigmaZero::AntiSigmaZero()));
theBaryons.insert(new G4SPBaryon(G4AntiSigmaMinus::AntiSigmaMinus()));
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(3224))); // S+*
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(3214))); // S0*
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(3114))); // S-*
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-3224))); // anti S+*
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-3214))); // anti S0*
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-3114))); // anti S-*
theBaryons.insert(new G4SPBaryon(G4XiMinus::XiMinus()));
theBaryons.insert(new G4SPBaryon(G4XiZero::XiZero()));
theBaryons.insert(new G4SPBaryon(G4AntiXiMinus::AntiXiMinus()));
theBaryons.insert(new G4SPBaryon(G4AntiXiZero::AntiXiZero()));
theBaryons.insert(new G4SPBaryon(G4OmegaMinus::OmegaMinus()));
theBaryons.insert(new G4SPBaryon(G4AntiOmegaMinus::AntiOmegaMinus()));
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(3324))); // X0*
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(3314))); // X-*
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-3324))); // anti X0*
theBaryons.insert(new G4SPBaryon(G4ParticleTable::GetParticleTable()->FindParticle(-3314))); // anti X-*
theBaryons.insert(new G4SPBaryon(G4LambdacPlus::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiLambdacPlus::Definition()));
theBaryons.insert(new G4SPBaryon(G4SigmacPlusPlus::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiSigmacPlusPlus::Definition()));
theBaryons.insert(new G4SPBaryon(G4SigmacPlus::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiSigmacPlus::Definition()));
theBaryons.insert(new G4SPBaryon(G4SigmacZero::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiSigmacZero::Definition()));
theBaryons.insert(new G4SPBaryon(G4XicPlus::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiXicPlus::Definition()));
theBaryons.insert(new G4SPBaryon(G4XicZero::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiXicZero::Definition()));
theBaryons.insert(new G4SPBaryon(G4OmegacZero::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiOmegacZero::Definition()));
theBaryons.insert(new G4SPBaryon(G4Lambdab::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiLambdab::Definition()));
theBaryons.insert(new G4SPBaryon(G4SigmabPlus::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiSigmabPlus::Definition()));
theBaryons.insert(new G4SPBaryon(G4SigmabZero::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiSigmabZero::Definition()));
theBaryons.insert(new G4SPBaryon(G4SigmabMinus::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiSigmabMinus::Definition()));
theBaryons.insert(new G4SPBaryon(G4XibZero::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiXibZero::Definition()));
theBaryons.insert(new G4SPBaryon(G4XibMinus::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiXibMinus::Definition()));
theBaryons.insert(new G4SPBaryon(G4OmegabMinus::Definition()));
theBaryons.insert(new G4SPBaryon(G4AntiOmegabMinus::Definition()));
}
G4bool G4BaryonSplitter::
@@ -179,8 +179,16 @@ ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target, G
{ // Normal projectile
if( absPrPDGcode > 1000 ) //------Projectile is baryon --------
{
MinPrDiffMass = 1.16; // GeV
AveragePt2 = 0.3; // GeV^2
if ( absPrPDGcode > 4000 && absPrPDGcode < 6000 ) // Projectile is a charm or bottom baryon
{
MinPrDiffMass = projectile->GetDefinition()->GetPDGMass()/CLHEP::GeV + 0.25; // GeV
AveragePt2 = 0.3; // GeV^2
}
else
{
MinPrDiffMass = 1.16; // GeV
AveragePt2 = 0.3; // GeV^2
}
}
else if( absPrPDGcode == 211 || PrPDGcode == 111) //------Projectile is Pion -----------
{
@@ -192,6 +200,11 @@ ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target, G
MinPrDiffMass = 1.1; // GeV
AveragePt2 = 0.3; // GeV^2
}
else if( absPrPDGcode > 400 && absPrPDGcode < 600) // Projectile is a charm or bottom meson
{
MinPrDiffMass = projectile->GetDefinition()->GetPDGMass()/CLHEP::GeV + 0.25; // GeV
AveragePt2 = 0.3; // GeV^2
}
else //------Projectile is undefined, Nucleon assumed
{
MinPrDiffMass = 1.16; // GeV
@@ -58,7 +58,8 @@ G4QGSParticipants::G4QGSParticipants() : theDiffExcitaton(),
SetPt2ofNuclearDestruction( 0.075*GeV*GeV );
SetMaxPt2ofNuclearDestruction( 1.0*GeV*GeV );
SetExcitationEnergyPerWoundedNucleon( 40.0*MeV );
sigmaPt=0.0; // Uzhi June 2020 : sigmaPt=0.25*sqrt(GeV);
sigmaPt=0.25*sqr(GeV);
}
G4QGSParticipants::G4QGSParticipants(const G4QGSParticipants &right)
@@ -979,13 +980,14 @@ G4bool G4QGSParticipants::PutOnMassShell() {
G4ThreeVector G4QGSParticipants::GaussianPt( G4double AveragePt2, G4double maxPtSquare ) const {
// @@ this method is used in FTFModel as well. Should go somewhere common!
G4double Pt2( 0.0 );
if ( AveragePt2 <= 0.0 ) {
Pt2 = 0.0;
} else {
Pt2 = -AveragePt2 * G4Log( 1.0 + G4UniformRand() * ( G4Exp( -maxPtSquare/AveragePt2 ) -1.0 ) );
G4double Pt2( 0.0 ), Pt(0.0);
if ( AveragePt2 > 0.0 ) {
G4double x = maxPtSquare/AveragePt2;
Pt2 = (x < 200) ?
-AveragePt2 * G4Log( 1.0 + G4UniformRand() * ( G4Exp( -x ) -1.0 ) )
: -AveragePt2 * G4Log( 1.0 - G4UniformRand() );
Pt = std::sqrt( Pt2 );
}
G4double Pt = std::sqrt( Pt2 );
G4double phi = G4UniformRand() * twopi;
return G4ThreeVector( Pt*std::cos(phi), Pt*std::sin(phi), 0.0 );
@@ -136,18 +136,28 @@ ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target) c
G4bool ProjectileDiffraction = true;
// Also for heavy hadrons, assume 50% probability of projectile diffraction.
if ( absPDGcode > 1000 ) { ProjectileDiffraction = G4UniformRand() <= 0.5; }
if ( (absPDGcode == 211) || (absPDGcode == 111) ) { ProjectileDiffraction = G4UniformRand() <= 0.66; }
if ( (absPDGcode == 321) || (absPDGcode == 311) ||
( PDGcode == 130) || ( PDGcode == 310) ) { ProjectileDiffraction = G4UniformRand() <= 0.5; }
if ( absPDGcode > 400 && absPDGcode < 600 ) { ProjectileDiffraction = G4UniformRand() <= 0.5; }
//G4cout<<"ProjectileDiffr "<<ProjectileDiffraction<<G4endl;
if ( ProjectileDiffraction ) {
if ( absPDGcode > 1000 ) //------Projectile is baryon --------
{
ProjectileMinDiffrMass = 1.16; // GeV
AveragePt2 = 0.3; // GeV^2
if ( absPDGcode > 4000 && absPDGcode < 6000 ) // Projectile is a charm or bottom baryon
{
ProjectileMinDiffrMass = projectile->GetDefinition()->GetPDGMass()/CLHEP::GeV + 0.25; // GeV
AveragePt2 = 0.3; // GeV^2
}
else
{
ProjectileMinDiffrMass = 1.16; // GeV
AveragePt2 = 0.3; // GeV^2
}
}
else if( absPDGcode == 211 || absPDGcode == 111) //------Projectile is Pion -----------
{
@@ -164,6 +174,11 @@ ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target) c
ProjectileMinDiffrMass = 0.25; // GeV
AveragePt2 = 0.36; // GeV^2
}
else if( absPDGcode > 400 && absPDGcode < 600) // Projectile is a charm or bottom meson
{
ProjectileMinDiffrMass = projectile->GetDefinition()->GetPDGMass()/CLHEP::GeV + 0.25; // GeV
AveragePt2 = 0.3; // GeV^2
}
else //------Projectile is undefined, Nucleon assumed
{
ProjectileMinDiffrMass = 1.1; // GeV
@@ -190,7 +205,7 @@ ExciteParticipants(G4VSplitableHadron *projectile, G4VSplitableHadron *target) c
AveragePt2 = AveragePt2 * GeV*GeV;
if ( SqrtS - (ProjectileMinDiffrMass+TargetMinDiffrMass) < 220* MeV ) return false;
if ( SqrtS - (ProjectileMinDiffrMass+TargetMinDiffrMass) < 220.0*MeV ) return false;
//-----------------------
G4double Pt2, PZcms, PZcms2;
@@ -116,43 +116,43 @@ G4Reggeons::G4Reggeons(const G4ParticleDefinition * particle)
if (PDGcode < 0) WParity = +1;
// Copied from G4HadronNucleonXsc::HyperonNucleonXscNS(...)
if ( PDGcode == 3122 || PDGcode == 3222 ||
PDGcode == 3112 || PDGcode == 3212 ||
PDGcode ==-3122 || PDGcode ==-3222 ||
PDGcode ==-3112 || PDGcode ==-3212 ) {
if ( PDGcode == 3122 || PDGcode == 3222 || // Lambda or Sigma+ or
PDGcode == 3112 || PDGcode == 3212 || // Sigma- or Sigma0 or
PDGcode ==-3122 || PDGcode ==-3222 || // anti_Lambda or anti_Sigma+ or
PDGcode ==-3112 || PDGcode ==-3212 ) { // anti_Sigma- or anti_Sigma0
coeff = lBarCof1S;
}
if ( PDGcode == 3312 || PDGcode == 3322 ||
PDGcode ==-3312 || PDGcode ==-3322 ) {
if ( PDGcode == 3312 || PDGcode == 3322 || // Xi- or Xi0 or
PDGcode ==-3312 || PDGcode ==-3322 ) { // anti_Xi- or anti_Xi0
coeff = lBarCof2S;
}
if ( PDGcode == 3334 || PDGcode ==-3334 ) {
if ( PDGcode == 3334 || PDGcode ==-3334 ) { // Omega- or anti_Omega-
coeff = lBarCof3S;
}
if ( PDGcode == 4122 || PDGcode ==-4122 ||
PDGcode == 4222 || PDGcode ==-4222 ||
PDGcode == 4212 || PDGcode ==-4212 ||
PDGcode == 4112 || PDGcode ==-4112 ) {
if ( PDGcode == 4122 || PDGcode ==-4122 || // Lambda_c+ or anti_Lambda_c+ or
PDGcode == 4222 || PDGcode ==-4222 || // Sigma_c++ or anti_Sigma_c++ or
PDGcode == 4212 || PDGcode ==-4212 || // Sigma_c+ or anti_Sigma_c+ or
PDGcode == 4112 || PDGcode ==-4112 ) { // Sigma_c0 or anti_Sigma_c0
coeff = lBarCof1C;
}
if ( PDGcode == 4432 || PDGcode ==-4432 ) {
if ( PDGcode == 4332 || PDGcode ==-4332 ) { // Omega_c0 or anti_Omega_c0
coeff = lBarCof2SC;
}
if ( PDGcode == 4232 || PDGcode == 4132 ||
PDGcode ==-4232 || PDGcode ==-4132 ) {
if ( PDGcode == 4232 || PDGcode == 4132 || // Xi_c+ or Xi_c0 or
PDGcode ==-4232 || PDGcode ==-4132 ) { // anti_Xi_c+ or anti_Xi_c0
coeff = lBarCofSC;
}
if ( PDGcode == 5122 || PDGcode ==-5122 ||
PDGcode == 5222 || PDGcode ==-5222 ||
PDGcode == 5112 || PDGcode ==-5112 ||
PDGcode == 5212 || PDGcode ==-5212 ) {
if ( PDGcode == 5122 || PDGcode ==-5122 || // Lambda_b0 or anti_Lambda_b0 or
PDGcode == 5222 || PDGcode ==-5222 || // Sigma_b+ or anti_Sigma_b+ or
PDGcode == 5112 || PDGcode ==-5112 || // Sigma_b- or anti_Sigma_b- or
PDGcode == 5212 || PDGcode ==-5212 ) { // Sigma_b0 or anti_Sigma_b0
coeff = lBarCof1B;
}
if ( PDGcode == 5332 || PDGcode ==-5332 ) {
if ( PDGcode == 5332 || PDGcode ==-5332 ) { // Omega_b- or anti_Omega_b-
coeff = lBarCof2SB;
}
if ( PDGcode == 5132 || PDGcode == 5232 ||
PDGcode ==-5132 || PDGcode ==-5232 ) {
if ( PDGcode == 5132 || PDGcode == 5232 || // Xi_b- or Xi_b0 or
PDGcode ==-5132 || PDGcode ==-5232 ) { // anti_Xi_b- or anti_Xi_b0
coeff = lBarCofSB;
}
// End of Copied from G4HadronNucleonXsc::HyperonNucleonXscNS(...)
@@ -189,33 +189,33 @@ G4Reggeons::G4Reggeons(const G4ParticleDefinition * particle)
if (PDGcode < 0) WParity = +1;
// Copied from G4HadronNucleonXsc::SCBMesonNucleonXscNS(...)
if ( PDGcode == 511 || PDGcode ==-511 ||
PDGcode == 521 || PDGcode ==-521 ) {
if ( PDGcode == 511 || PDGcode ==-511 || // B0 or anti_B0 or
PDGcode == 521 || PDGcode ==-521 ) { // B+ or B-
coeff = llMesCof1B;
}
if ( PDGcode == 421 || PDGcode ==-421 ||
PDGcode == 411 || PDGcode ==-411 ) {
if ( PDGcode == 421 || PDGcode ==-421 || // D0 or anti_D0 or
PDGcode == 411 || PDGcode ==-411 ) { // D+ or D-
coeff = llMesCof1C;
}
if ( PDGcode == 531 || PDGcode ==-531 ) {
if ( PDGcode == 531 || PDGcode ==-531 ) { // Bs0 or anti_Bs0 or
coeff = llMesCofSB;
}
if ( PDGcode == 541 || PDGcode ==-541 ) {
if ( PDGcode == 541 || PDGcode ==-541 ) { // Bc+ or Bc-
coeff = llMesCofCB;
}
if ( PDGcode == 431 || PDGcode ==-431 ) {
if ( PDGcode == 431 || PDGcode ==-431 ) { // D_s+ or D_s-
coeff = llMesCofSC;
}
if ( PDGcode == 441 || PDGcode == 443 ) {
if ( PDGcode == 441 || PDGcode == 443 ) { // Eta_c or J/psi
coeff = llMesCof2C;
}
if ( PDGcode == 553 ) {
if ( PDGcode == 553 ) { // Upsilon
coeff = llMesCof2B;
}
if ( PDGcode == 221 ) {
if ( PDGcode == 221 ) { // Eta
coeff = llMesCofEta;
}
if ( PDGcode == 331 ) {
if ( PDGcode == 331 ) { // Eta'
coeff = llMesCofEtaP;
}
// End of Copied from G4HadronNucleonXsc::SCBMesonNucleonXscNS(...)
@@ -164,7 +164,6 @@ G4SPBaryon(G4Proton * aProton)
thePartonInfo.push_back(new G4SPPartonInfo(2101, 2, 1./2.)); // ud_0, u
}
G4SPBaryon::
G4SPBaryon(G4AntiProton * aAntiProton)
{
@@ -184,7 +183,6 @@ G4SPBaryon(G4Neutron * aNeutron)
thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3./2 )); // dd_1, u
}
G4SPBaryon::
G4SPBaryon(G4AntiNeutron * aAntiNeutron)
{
@@ -206,7 +204,6 @@ G4SPBaryon(G4Lambda * aLambda)
thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./12.)); // sd_0, u
}
G4SPBaryon::
G4SPBaryon(G4AntiLambda * aAntiLambda)
{
@@ -223,12 +220,11 @@ G4SPBaryon::
G4SPBaryon(G4SigmaPlus * aSigmaPlus)
{
theDefinition = aSigmaPlus;
thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(3201, 2, 1./2.));
thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.)); // uu_1, s
thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 1./6.)); // su_1, u
thePartonInfo.push_back(new G4SPPartonInfo(3201, 2, 1./2.)); // su_0, u
}
G4SPBaryon::
G4SPBaryon(G4AntiSigmaPlus * aAntiSigmaPlus)
{
@@ -243,14 +239,13 @@ G4SPBaryon::
G4SPBaryon(G4SigmaZero * aSigmaZero)
{
theDefinition = aSigmaZero;
thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./12.));
thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./4.));
thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./12.));
thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./4.));
thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.)); // ud_1, s
thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./12.)); // su_1, d
thePartonInfo.push_back(new G4SPPartonInfo(3201, 1, 1./4.)); // su_0, d
thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./12.)); // sd_1, u
thePartonInfo.push_back(new G4SPPartonInfo(3101, 2, 1./4.)); // sd_0, u
}
G4SPBaryon::
G4SPBaryon(G4AntiSigmaZero * aAntiSigmaZero)
{
@@ -267,12 +262,11 @@ G4SPBaryon::
G4SPBaryon(G4SigmaMinus * aSigmaMinus)
{
theDefinition = aSigmaMinus;
thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(3101, 1, 1./2.));
thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.)); // dd_1, s
thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 1./6.)); // sd_1, d
thePartonInfo.push_back(new G4SPPartonInfo(3101, 1, 1./2.)); // sd_0, d
}
G4SPBaryon::
G4SPBaryon(G4AntiSigmaMinus * aAntiSigmaMinus)
{
@@ -283,36 +277,15 @@ G4SPBaryon(G4AntiSigmaMinus * aAntiSigmaMinus)
}
G4SPBaryon::
G4SPBaryon(G4XiMinus * aXiMinus)
{
theDefinition = aXiMinus;
thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(3101, 3, 1./2.));
thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.));
}
G4SPBaryon::
G4SPBaryon(G4AntiXiMinus * aAntiXiMinus)
{
theDefinition = aAntiXiMinus;
thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(-3101, -3, 1./2.));
thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.));
}
G4SPBaryon::
G4SPBaryon(G4XiZero * aXiZero)
{
theDefinition = aXiZero;
thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(3201, 3, 1./2.));
thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./6.)); // su_1, s
thePartonInfo.push_back(new G4SPPartonInfo(3201, 3, 1./2.)); // su_0, s
thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 1./3.)); // ss_1, u
}
G4SPBaryon::
G4SPBaryon(G4AntiXiZero * aAntiXiZero)
{
@@ -323,14 +296,32 @@ G4SPBaryon(G4AntiXiZero * aAntiXiZero)
}
G4SPBaryon::
G4SPBaryon(G4XiMinus * aXiMinus)
{
theDefinition = aXiMinus;
thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 1./6.)); // sd_1, s
thePartonInfo.push_back(new G4SPPartonInfo(3101, 3, 1./2.)); // sd_0, s
thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.)); // ss_1, d
}
G4SPBaryon::
G4SPBaryon(G4AntiXiMinus * aAntiXiMinus)
{
theDefinition = aAntiXiMinus;
thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(-3101, -3, 1./2.));
thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.));
}
G4SPBaryon::
G4SPBaryon(G4OmegaMinus * anOmegaMinus)
{
theDefinition = anOmegaMinus;
thePartonInfo.push_back(new G4SPPartonInfo(3303, 3, 1.));
thePartonInfo.push_back(new G4SPPartonInfo(3303, 3, 1.)); // ss_1, s
}
G4SPBaryon::
G4SPBaryon(G4AntiOmegaMinus * anAntiOmegaMinus)
{
@@ -344,92 +335,42 @@ G4SPBaryon::
G4SPBaryon(G4ParticleDefinition * aDefinition)
{
theDefinition = aDefinition;
if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2224))// D++
if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2224)) // Delta++
{
thePartonInfo.push_back(new G4SPPartonInfo(2203, 2, 1.));
thePartonInfo.push_back(new G4SPPartonInfo(2203, 2, 1.)); // uu_1, u
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2224))// anti D++
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2224)) // anti Delta++
{
thePartonInfo.push_back(new G4SPPartonInfo(-2203, -2, 1.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2214))// D+
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2214)) // Delta+
{
thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 2./3.));
thePartonInfo.push_back(new G4SPPartonInfo(2203, 1, 1./3.)); // uu_1, d
thePartonInfo.push_back(new G4SPPartonInfo(2103, 2, 2./3.)); // ud_1, u
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2214))// anti D+
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2214)) // anti Delta+
{
thePartonInfo.push_back(new G4SPPartonInfo(-2203, -1, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 2./3.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2114))// D0
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(2114)) // Delta0
{
thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 2./3.));
thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(2103, 1, 2./3.)); // ud_1, d
thePartonInfo.push_back(new G4SPPartonInfo(1103, 2, 1./3.)); // dd_1, u
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2114))// anti D0
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-2114)) // anti Delta0
{
thePartonInfo.push_back(new G4SPPartonInfo(-2103, -1, 2./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-2103, -2, 1./3.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(1114))// D-
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(1114)) // Delta-
{
thePartonInfo.push_back(new G4SPPartonInfo(1103, 1, 1.));
thePartonInfo.push_back(new G4SPPartonInfo(1103, 1, 1.)); // dd_1, d
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-1114))// anti D-
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-1114)) // anti Delta-
{
thePartonInfo.push_back(new G4SPPartonInfo(-1103, -1, 1.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(3224))// S*+
{
thePartonInfo.push_back(new G4SPPartonInfo(2203, 3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(3203, 2, 2./3.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*+
{
thePartonInfo.push_back(new G4SPPartonInfo(-2203, -3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-3203, -2, 2./3.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(3214))// S*0
{
thePartonInfo.push_back(new G4SPPartonInfo(2103, 3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(3203, 1, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(3103, 2, 1./3.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-3214))// anti S*0
{
thePartonInfo.push_back(new G4SPPartonInfo(-2103, -3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-3203, -1, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-3103, -2, 1./3.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(3114))// S*-
{
thePartonInfo.push_back(new G4SPPartonInfo(1103, 3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(3103, 1, 2./3.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-3224))// anti S*-
{
thePartonInfo.push_back(new G4SPPartonInfo(-1103, -3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-3103, -1, 2./3.));
} else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(3324))// Xi*0
{
thePartonInfo.push_back(new G4SPPartonInfo(3203, 3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(3303, 2, 2./3.));
} else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-3324))// anti Xi*0
{
thePartonInfo.push_back(new G4SPPartonInfo(-3203, -3, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-3303, -2, 2./3.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(3314))// Xi*-
{
thePartonInfo.push_back(new G4SPPartonInfo(3103, 3, 2./3.));
thePartonInfo.push_back(new G4SPPartonInfo(3303, 1, 1./3.));
}
else if (theDefinition == G4ParticleTable::GetParticleTable()->FindParticle(-3314))// anti Xi*-
{
thePartonInfo.push_back(new G4SPPartonInfo(-3103, -3, 2./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-3303, -1, 1./3.));
}
}
}
@@ -437,3 +378,238 @@ G4SPBaryon::~G4SPBaryon()
{
for (unsigned int i=0;i<thePartonInfo.size(); i++) delete thePartonInfo[i];
}
// Extension to charmed and bottom baryons and anti-baryons
// G4SPPartonInfo(G4int diq, G4int q, G4double prob)
G4SPBaryon::G4SPBaryon(G4LambdacPlus * aLambdacPlus) {
// lambda_c+(udc) treated as lambda(uds) with s replaced by c.
theDefinition = aLambdacPlus;
thePartonInfo.push_back(new G4SPPartonInfo(2103, 4, 1./3.)); // ud_1, c
thePartonInfo.push_back(new G4SPPartonInfo(4203, 1, 1./4.)); // cu_1, d
thePartonInfo.push_back(new G4SPPartonInfo(4201, 1, 1./12.)); // cu_0, d
thePartonInfo.push_back(new G4SPPartonInfo(4103, 2, 1./4.)); // cd_1, u
thePartonInfo.push_back(new G4SPPartonInfo(4101, 2, 1./12.)); // cd_0, u
}
G4SPBaryon::G4SPBaryon(G4AntiLambdacPlus * aAntiLambdacPlus) {
theDefinition = aAntiLambdacPlus;
thePartonInfo.push_back(new G4SPPartonInfo(-2103, -4, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-4203, -1, 1./4.));
thePartonInfo.push_back(new G4SPPartonInfo(-4201, -1, 1./12.));
thePartonInfo.push_back(new G4SPPartonInfo(-4103, -2, 1./4.));
thePartonInfo.push_back(new G4SPPartonInfo(-4101, -2, 1./12.));
}
G4SPBaryon::G4SPBaryon(G4SigmacPlusPlus * aSigmacPlusPlus) {
// sigma_c++(uuc) treated as sigma+(uus) with s replaced by c.
theDefinition = aSigmacPlusPlus;
thePartonInfo.push_back(new G4SPPartonInfo(2203, 4, 1./3.)); // uu_1, c
thePartonInfo.push_back(new G4SPPartonInfo(4203, 2, 1./6.)); // cu_1, u
thePartonInfo.push_back(new G4SPPartonInfo(4201, 2, 1./2.)); // cu_0, u
}
G4SPBaryon::G4SPBaryon(G4AntiSigmacPlusPlus * aAntiSigmacPlusPlus) {
theDefinition = aAntiSigmacPlusPlus;
thePartonInfo.push_back(new G4SPPartonInfo(-2203, -4, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-4203, -2, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(-4201, -2, 1./2.));
}
G4SPBaryon::G4SPBaryon(G4SigmacPlus * aSigmacPlus) {
// sigma_c+(udc) treated as sigma0(uds) with s replaced by c.
theDefinition = aSigmacPlus;
thePartonInfo.push_back(new G4SPPartonInfo(2103, 4, 1./3.)); // ud_1, c
thePartonInfo.push_back(new G4SPPartonInfo(4203, 1, 1./12.)); // cu_1, d
thePartonInfo.push_back(new G4SPPartonInfo(4201, 1, 1./4.)); // cu_0, d
thePartonInfo.push_back(new G4SPPartonInfo(4103, 2, 1./12.)); // cd_1, u
thePartonInfo.push_back(new G4SPPartonInfo(4101, 2, 1./4.)); // cd_0, u
}
G4SPBaryon::G4SPBaryon(G4AntiSigmacPlus * aAntiSigmacPlus) {
theDefinition = aAntiSigmacPlus;
thePartonInfo.push_back(new G4SPPartonInfo(-2103, -4, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-4203, -1, 1./12.));
thePartonInfo.push_back(new G4SPPartonInfo(-4201, -1, 1./4.));
thePartonInfo.push_back(new G4SPPartonInfo(-4103, -2, 1./12.));
thePartonInfo.push_back(new G4SPPartonInfo(-4101, -2, 1./4.));
}
G4SPBaryon::G4SPBaryon(G4SigmacZero * aSigmacZero) {
// sigma_c0(ddc) treated as sigma-(dds) replacing s with c.
theDefinition = aSigmacZero;
thePartonInfo.push_back(new G4SPPartonInfo(1103, 4, 1./3.)); // dd_1, c
thePartonInfo.push_back(new G4SPPartonInfo(4103, 1, 1./6.)); // cd_1, d
thePartonInfo.push_back(new G4SPPartonInfo(4101, 1, 1./2.)); // cd_0, d
}
G4SPBaryon::G4SPBaryon(G4AntiSigmacZero * aAntiSigmacZero) {
theDefinition = aAntiSigmacZero;
thePartonInfo.push_back(new G4SPPartonInfo(-1103, -4, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-4103, -1, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(-4101, -1, 1./2.));
}
G4SPBaryon::G4SPBaryon(G4XicPlus * aXicPlus) {
// xi_c+(usc) treated as xi0(uss) replacing s with c.
theDefinition = aXicPlus;
thePartonInfo.push_back(new G4SPPartonInfo(3203, 4, 1./6.)); // su_1, c
thePartonInfo.push_back(new G4SPPartonInfo(3201, 4, 1./2.)); // su_0, c
thePartonInfo.push_back(new G4SPPartonInfo(4303, 2, 1./3.)); // cs_1, u
}
G4SPBaryon::G4SPBaryon(G4AntiXicPlus * aAntiXicPlus) {
theDefinition = aAntiXicPlus;
thePartonInfo.push_back(new G4SPPartonInfo(-3203, -4, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(-3201, -4, 1./2.));
thePartonInfo.push_back(new G4SPPartonInfo(-4303, -2, 1./3.));
}
G4SPBaryon::G4SPBaryon(G4XicZero * aXicZero) {
// xi_c0(dsc) treated as xi-(dss) replacing s with c.
theDefinition = aXicZero;
thePartonInfo.push_back(new G4SPPartonInfo(3103, 4, 1./6.)); // sd_1, c
thePartonInfo.push_back(new G4SPPartonInfo(3101, 4, 1./2.)); // sd_0, c
thePartonInfo.push_back(new G4SPPartonInfo(4303, 1, 1./3.)); // cs_1, d
}
G4SPBaryon::G4SPBaryon(G4AntiXicZero * aAntiXicZero) {
theDefinition = aAntiXicZero;
thePartonInfo.push_back(new G4SPPartonInfo(-3103, -4, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(-3101, -4, 1./2.));
thePartonInfo.push_back(new G4SPPartonInfo(-4303, -1, 1./3.));
}
G4SPBaryon::G4SPBaryon(G4OmegacZero * aOmegacZero) {
// omega_c0(ssc) treated as omega-(sss) with s replaced by c.
theDefinition = aOmegacZero;
thePartonInfo.push_back(new G4SPPartonInfo(3303, 4, 1.)); // ss_1, c
}
G4SPBaryon::G4SPBaryon(G4AntiOmegacZero * aAntiOmegacZero) {
theDefinition = aAntiOmegacZero;
thePartonInfo.push_back(new G4SPPartonInfo(-3303, -4, 1.));
}
G4SPBaryon::G4SPBaryon(G4Lambdab * aLambdab) {
// lambda_b(udb) treated as lambda-(uds) replacing s with b.
theDefinition = aLambdab;
thePartonInfo.push_back(new G4SPPartonInfo(2103, 5, 1./3.)); // ud_1, b
thePartonInfo.push_back(new G4SPPartonInfo(5203, 1, 1./4.)); // bu_1, d
thePartonInfo.push_back(new G4SPPartonInfo(5201, 1, 1./12.)); // bu_0, d
thePartonInfo.push_back(new G4SPPartonInfo(5103, 2, 1./4.)); // bd_1, u
thePartonInfo.push_back(new G4SPPartonInfo(5101, 2, 1./12.)); // bd_0, u
}
G4SPBaryon::G4SPBaryon(G4AntiLambdab * aAntiLambdab) {
theDefinition = aAntiLambdab;
thePartonInfo.push_back(new G4SPPartonInfo(-2103, -5, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-5203, -1, 1./4.));
thePartonInfo.push_back(new G4SPPartonInfo(-5201, -1, 1./12.));
thePartonInfo.push_back(new G4SPPartonInfo(-5103, -2, 1./4.));
thePartonInfo.push_back(new G4SPPartonInfo(-5101, -2, 1./12.));
}
G4SPBaryon::G4SPBaryon(G4SigmabPlus * aSigmabPlus) {
// sigma_b+(uub) treated as sigma+(uus) replacing s with b.
theDefinition = aSigmabPlus;
thePartonInfo.push_back(new G4SPPartonInfo(2203, 5, 1./3.)); // uu_1, b
thePartonInfo.push_back(new G4SPPartonInfo(5203, 2, 1./6.)); // bu_1, u
thePartonInfo.push_back(new G4SPPartonInfo(5201, 2, 1./2.)); // bu_0, u
}
G4SPBaryon::G4SPBaryon(G4AntiSigmabPlus * aAntiSigmabPlus) {
theDefinition = aAntiSigmabPlus;
thePartonInfo.push_back(new G4SPPartonInfo(-2203, -5, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-5203, -2, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(-5201, -2, 1./2.));
}
G4SPBaryon::G4SPBaryon(G4SigmabZero * aSigmabZero) {
// sigma_b0(udb) treated as sigma0(uds) replacing s with b.
theDefinition = aSigmabZero;
thePartonInfo.push_back(new G4SPPartonInfo(2103, 5, 1./3.)); // ud_1, b
thePartonInfo.push_back(new G4SPPartonInfo(5203, 1, 1./12.)); // bu_1, d
thePartonInfo.push_back(new G4SPPartonInfo(5201, 1, 1./4.)); // bu_0, d
thePartonInfo.push_back(new G4SPPartonInfo(5103, 2, 1./12.)); // bd_1, u
thePartonInfo.push_back(new G4SPPartonInfo(5101, 2, 1./4.)); // bd_0, u
}
G4SPBaryon::G4SPBaryon(G4AntiSigmabZero * aAntiSigmabZero) {
theDefinition = aAntiSigmabZero;
thePartonInfo.push_back(new G4SPPartonInfo(-2103, -5, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-5203, -1, 1./12.));
thePartonInfo.push_back(new G4SPPartonInfo(-5201, -1, 1./4.));
thePartonInfo.push_back(new G4SPPartonInfo(-5103, -2, 1./12.));
thePartonInfo.push_back(new G4SPPartonInfo(-5101, -2, 1./4.));
}
G4SPBaryon::G4SPBaryon(G4SigmabMinus * aSigmabMinus) {
// sigma_b-(ddb) treated as sigma-(dds) replacing s with b.
theDefinition = aSigmabMinus;
thePartonInfo.push_back(new G4SPPartonInfo(1103, 5, 1./3.)); // dd_1, b
thePartonInfo.push_back(new G4SPPartonInfo(5103, 1, 1./6.)); // bd_1, d
thePartonInfo.push_back(new G4SPPartonInfo(5101, 1, 1./2.)); // bd_0, d
}
G4SPBaryon::G4SPBaryon(G4AntiSigmabMinus * aAntiSigmabMinus) {
theDefinition = aAntiSigmabMinus;
thePartonInfo.push_back(new G4SPPartonInfo(-1103, -5, 1./3.));
thePartonInfo.push_back(new G4SPPartonInfo(-5103, -1, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(-5101, -1, 1./2.));
}
G4SPBaryon::G4SPBaryon(G4XibZero * aXibZero) {
// xi_b0(usb) treated as xi0(uss) replacing s with b.
theDefinition = aXibZero;
thePartonInfo.push_back(new G4SPPartonInfo(3203, 5, 1./6.)); // su_1, b
thePartonInfo.push_back(new G4SPPartonInfo(3201, 5, 1./2.)); // su_0, b
thePartonInfo.push_back(new G4SPPartonInfo(5303, 2, 1./3.)); // bs_1, u
}
G4SPBaryon::G4SPBaryon(G4AntiXibZero * aAntiXibZero) {
theDefinition = aAntiXibZero;
thePartonInfo.push_back(new G4SPPartonInfo(-3203, -5, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(-3201, -5, 1./2.));
thePartonInfo.push_back(new G4SPPartonInfo(-5303, -2, 1./3.));
}
G4SPBaryon::G4SPBaryon(G4XibMinus * aXibMinus) {
// xi_b-(dsb) treated as xi-(dss) replacing s with b.
theDefinition = aXibMinus;
thePartonInfo.push_back(new G4SPPartonInfo(3103, 5, 1./6.)); // sd_1, b
thePartonInfo.push_back(new G4SPPartonInfo(3101, 5, 1./2.)); // sd_0, b
thePartonInfo.push_back(new G4SPPartonInfo(5303, 1, 1./3.)); // bs_1, d
}
G4SPBaryon::G4SPBaryon(G4AntiXibMinus * aAntiXibMinus) {
theDefinition = aAntiXibMinus;
thePartonInfo.push_back(new G4SPPartonInfo(-3103, -5, 1./6.));
thePartonInfo.push_back(new G4SPPartonInfo(-3101, -5, 1./2.));
thePartonInfo.push_back(new G4SPPartonInfo(-5303, -1, 1./3.));
}
G4SPBaryon::G4SPBaryon(G4OmegabMinus * aOmegabMinus) {
// omega_b-(ssb) treated as omega-(sss) replacing s with b.
theDefinition = aOmegabMinus;
thePartonInfo.push_back(new G4SPPartonInfo(3303, 5, 1.)); // ss_1, b
}
G4SPBaryon::G4SPBaryon(G4AntiOmegabMinus * aAntiOmegabMinus) {
theDefinition = aAntiOmegabMinus;
thePartonInfo.push_back(new G4SPPartonInfo(-3303, -5, 1.));
}
@@ -126,8 +126,16 @@ ExciteParticipants( G4VSplitableHadron *projectile, G4VSplitableHadron *target,
if ( ProjectileDiffraction ) {
if ( absPDGcode > 1000 ) //------Projectile is baryon --------
{
ProjectileMinDiffrMass = 1.16; // GeV
AveragePt2 = 0.3; // GeV^2
if ( absPDGcode > 4000 && absPDGcode < 6000 ) // Projectile is a charm or bottom baryon
{
ProjectileMinDiffrMass = projectile->GetDefinition()->GetPDGMass()/CLHEP::GeV + 0.25; // GeV
AveragePt2 = 0.3; // GeV^2
}
else
{
ProjectileMinDiffrMass = 1.16; // GeV
AveragePt2 = 0.3; // GeV^2
}
}
else if( absPDGcode == 211 || absPDGcode == 111) //------Projectile is Pion -----------
{
@@ -144,6 +152,11 @@ ExciteParticipants( G4VSplitableHadron *projectile, G4VSplitableHadron *target,
ProjectileMinDiffrMass = 0.25; // GeV
AveragePt2 = 0.36; // GeV^2
}
else if( absPDGcode > 400 && absPDGcode < 600) // Projectile is a charm or bottom meson
{
ProjectileMinDiffrMass = projectile->GetDefinition()->GetPDGMass()/CLHEP::GeV + 0.25; // GeV
AveragePt2 = 0.3; // GeV^2
}
else //------Projectile is undefined, Nucleon assumed
{
ProjectileMinDiffrMass = 1.1; // GeV