Import Geant4 11.1.0.beta source tree
This commit is contained in:
@@ -1,18 +1,35 @@
|
||||
-------------------------------------------------------------------
|
||||
# Category had-hadronization History
|
||||
|
||||
==========================================================
|
||||
Geant4 - an Object-Oriented Toolkit for Physics Simulation
|
||||
==========================================================
|
||||
See `CONTRIBUTING.rst` for details of **required** info/format for each entry,
|
||||
which **must** added in reverse chronological order (newest at the top). It must **not**
|
||||
be used as a substitute for writing good git commit messages!
|
||||
|
||||
History file for hadronic/models/parton_string/hadronization directory
|
||||
-------------------------------------------------------------
|
||||
## 2022-06-07 Alberto Ribon (had-hadronization-V11-00-01)
|
||||
Changes made by Vladimir Uzhinsky:
|
||||
- G4HadronBuilder : a new argument is added in the constructor, and
|
||||
a new data member is added to the class.
|
||||
This is needed to set a special mixing of pseudo-scalar and vector mesons
|
||||
for s-sbar mesons. This is introduced to describe phi-meson production
|
||||
in proton-proton interactions measured by NA61/SHINE.
|
||||
- G4VLongitudinalStringDecay : the probability of pseudo-scalar meson
|
||||
production has been tuned to describe K*0 meson production in
|
||||
proton-proton interactions according to NA61/SHINE data.
|
||||
Moreover, a new parameter (probability of pseudo-scalar meson production
|
||||
in s-sbar mesons) is introduced to increase the phi-meson
|
||||
yield in proton-proton interactions.
|
||||
Fixed also a bug in mixing eta_prime and phi mesons in the quark systems
|
||||
d-dbar, u-ubar and s-sbar.
|
||||
- G4LundStringFragmentation : few changes were introduced for a special
|
||||
treatment of the last string decay in the case of ss-q or ss-qq,
|
||||
ss-sbar sbar last string decay. This improves the yield of anti-Xi
|
||||
hyperons in proton-proton interactions according to the NA61/SHINE data.
|
||||
|
||||
This file should be used to summarize modifications introduced in the
|
||||
code and to keep track of all tags.
|
||||
## 2021-12-10 Ben Morgan (had-hadronization-V11-00-00)
|
||||
- Change to new Markdown History format
|
||||
|
||||
---------------------------------------------------------------
|
||||
* Please list in reverse chronological order (last date on top)
|
||||
---------------------------------------------------------------
|
||||
---
|
||||
|
||||
# History entries prior to 11.0
|
||||
|
||||
16-Apr-2021 B. Morgan (had-hadronization-V10-07-01)
|
||||
- Migrate build to modular CMake API
|
||||
|
||||
+3
-3
@@ -51,9 +51,8 @@ class G4HadronBuilder
|
||||
|
||||
// ctor
|
||||
G4HadronBuilder(G4double mesonMix, G4double barionMix,
|
||||
std::vector<double> scalarMesonMix,
|
||||
std::vector<double> vectorMesonMix,
|
||||
G4double Eta_cProb, G4double Eta_bProb);
|
||||
std::vector<double> scalarMesonMix, std::vector<double> vectorMesonMix,
|
||||
G4double Eta_cProb, G4double Eta_bProb, G4double mesonMixSSbar);
|
||||
|
||||
private:
|
||||
G4HadronBuilder(); // no default ctor
|
||||
@@ -65,6 +64,7 @@ class G4HadronBuilder
|
||||
G4ParticleDefinition * Barion(G4ParticleDefinition * black, G4ParticleDefinition * white, Spin spin);
|
||||
|
||||
G4double mesonSpinMix;
|
||||
G4double mesonSpinMixSSbar;
|
||||
G4double barionSpinMix;
|
||||
std::vector<double> scalarMesonMixings;
|
||||
std::vector<double> vectorMesonMixings;
|
||||
|
||||
+1
@@ -194,6 +194,7 @@ class G4VLongitudinalStringDecay : public G4HadronicInteraction
|
||||
G4HadronBuilder *hadronizer;
|
||||
|
||||
G4double pspin_meson;
|
||||
G4double pspin_mesonSSbar;
|
||||
G4double pspin_barion;
|
||||
std::vector<G4double> vectorMesonMix;
|
||||
std::vector<G4double> scalarMesonMix;
|
||||
|
||||
+10
-4
@@ -44,10 +44,11 @@
|
||||
|
||||
G4HadronBuilder::G4HadronBuilder(G4double mesonMix, G4double barionMix,
|
||||
std::vector<double> scalarMesonMix,
|
||||
std::vector<double> vectorMesonMix,
|
||||
G4double Eta_cProb, G4double Eta_bProb)
|
||||
std::vector<double> vectorMesonMix,
|
||||
G4double Eta_cProb, G4double Eta_bProb, G4double mesonMixSSbar)
|
||||
{
|
||||
mesonSpinMix = mesonMix;
|
||||
mesonSpinMix = mesonMix;
|
||||
mesonSpinMixSSbar = mesonMixSSbar;
|
||||
barionSpinMix = barionMix;
|
||||
scalarMesonMixings = scalarMesonMix;
|
||||
vectorMesonMixings = vectorMesonMix;
|
||||
@@ -64,7 +65,12 @@ G4ParticleDefinition * G4HadronBuilder::Build(G4ParticleDefinition * black, G4Pa
|
||||
return Barion(black,white,spin);
|
||||
} else {
|
||||
// Meson
|
||||
Spin spin = (G4UniformRand() < mesonSpinMix) ? SpinZero : SpinOne;
|
||||
Spin spin = SpinZero;
|
||||
if ( std::abs(black->GetPDGEncoding()) == 3 && std::abs(white->GetPDGEncoding()) == 3 ) {
|
||||
spin = (G4UniformRand() < mesonSpinMixSSbar) ? SpinZero : SpinOne;
|
||||
} else {
|
||||
spin = (G4UniformRand() < mesonSpinMix) ? SpinZero : SpinOne;
|
||||
}
|
||||
return Meson(black,white,spin);
|
||||
}
|
||||
}
|
||||
|
||||
+31
-19
@@ -723,29 +723,40 @@ G4bool G4LundStringFragmentation::SplitLast(G4FragmentingString * string,
|
||||
|
||||
if (string->IsAFourQuarkString() )
|
||||
{
|
||||
// The string is qq-qqbar type. Diquarks are on the string ends
|
||||
if (StringMass-MinimalStringMass < 0.)
|
||||
{
|
||||
if (! Diquark_AntiDiquark_belowThreshold_lastSplitting(string, LeftHadron, RightHadron) )
|
||||
G4int IDleft = std::abs( string->GetLeftParton()->GetPDGEncoding() );
|
||||
G4int IDright = std::abs( string->GetRightParton()->GetPDGEncoding() );
|
||||
if ( IDleft > 3100 || IDright > 3100 )
|
||||
{
|
||||
if (! Diquark_AntiDiquark_belowThreshold_lastSplitting(string, LeftHadron, RightHadron) )
|
||||
{
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
} else
|
||||
{
|
||||
Diquark_AntiDiquark_aboveThreshold_lastSplitting(string, LeftHadron, RightHadron);
|
||||
} else
|
||||
{
|
||||
// The string is qq-qqbar type. Diquarks are on the string ends
|
||||
if (StringMass-MinimalStringMass < 0.)
|
||||
{
|
||||
if (! Diquark_AntiDiquark_belowThreshold_lastSplitting(string, LeftHadron, RightHadron) )
|
||||
{
|
||||
return false;
|
||||
}
|
||||
} else
|
||||
{
|
||||
Diquark_AntiDiquark_aboveThreshold_lastSplitting(string, LeftHadron, RightHadron);
|
||||
|
||||
if (NumberOf_FS == 0) return false;
|
||||
if (NumberOf_FS == 0) return false;
|
||||
|
||||
sampledState = SampleState();
|
||||
if (string->GetLeftParton()->GetPDGEncoding() < 0)
|
||||
{
|
||||
LeftHadron =FS_LeftHadron[sampledState];
|
||||
RightHadron=FS_RightHadron[sampledState];
|
||||
} else
|
||||
{
|
||||
LeftHadron =FS_RightHadron[sampledState];
|
||||
RightHadron=FS_LeftHadron[sampledState];
|
||||
}
|
||||
sampledState = SampleState();
|
||||
if (string->GetLeftParton()->GetPDGEncoding() < 0)
|
||||
{
|
||||
LeftHadron =FS_LeftHadron[sampledState];
|
||||
RightHadron=FS_RightHadron[sampledState];
|
||||
} else
|
||||
{
|
||||
LeftHadron =FS_RightHadron[sampledState];
|
||||
RightHadron=FS_LeftHadron[sampledState];
|
||||
}
|
||||
}
|
||||
}
|
||||
} else
|
||||
{
|
||||
@@ -1134,6 +1145,7 @@ G4bool G4LundStringFragmentation::Quark_AntiQuark_lastSplitting(G4FragmentingStr
|
||||
NumberOf_FS=0;
|
||||
for (G4int ProdQ=1; ProdQ < 4; ProdQ++) // Loop over quark-antiquark cases: u-ubar, d-dbar, s-sbar
|
||||
{ // (as last splitting, do not consider c-cbar and b-bbar cases)
|
||||
//G4cout << "NumberOf_FS ProdQ " << NumberOf_FS << " " << ProdQ << G4endl;
|
||||
LeftHadronCharge = QuarkCharge - Qcharge[ProdQ-1];
|
||||
G4int SignQ = LeftHadronCharge/3; if (SignQ == 0) SignQ = 1;
|
||||
|
||||
|
||||
+35
-8
@@ -80,7 +80,8 @@ G4VLongitudinalStringDecay::G4VLongitudinalStringDecay(const G4String& name)
|
||||
DiquarkBreakProb = 0.1; // Probability of (qq)->h+(qq)'
|
||||
|
||||
//... pspin_meson is probability to create pseudo-scalar meson
|
||||
pspin_meson = 0.5;
|
||||
pspin_meson = 0.4;
|
||||
pspin_mesonSSbar = 0.3;
|
||||
|
||||
//... pspin_barion is probability to create 1/2 barion
|
||||
pspin_barion = 0.5;
|
||||
@@ -110,9 +111,8 @@ G4VLongitudinalStringDecay::G4VLongitudinalStringDecay(const G4String& name)
|
||||
|
||||
// Parameters may be changed until the first fragmentation starts
|
||||
PastInitPhase=false;
|
||||
hadronizer = new G4HadronBuilder(pspin_meson,pspin_barion,
|
||||
scalarMesonMix,vectorMesonMix,
|
||||
ProbEta_c, ProbEta_b);
|
||||
hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix,
|
||||
ProbEta_c, ProbEta_b, pspin_mesonSSbar );
|
||||
|
||||
MaxMass=-350.0*GeV; // If there will be a particle with mass larger than Higgs the value must be changed.
|
||||
|
||||
@@ -505,7 +505,8 @@ void G4VLongitudinalStringDecay::SetVectorMesonProbability(G4double aValue)
|
||||
} else {
|
||||
pspin_meson = aValue;
|
||||
delete hadronizer;
|
||||
hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, ProbEta_c, ProbEta_b );
|
||||
hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix,
|
||||
ProbEta_c, ProbEta_b , pspin_mesonSSbar );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -519,7 +520,8 @@ void G4VLongitudinalStringDecay::SetSpinThreeHalfBarionProbability(G4double aVal
|
||||
} else {
|
||||
pspin_barion = aValue;
|
||||
delete hadronizer;
|
||||
hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, ProbEta_c, ProbEta_b );
|
||||
hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix,
|
||||
ProbEta_c, ProbEta_b, pspin_mesonSSbar );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -541,7 +543,8 @@ void G4VLongitudinalStringDecay::SetScalarMesonMixings(std::vector<G4double> aVe
|
||||
scalarMesonMix[4] = aVector[4];
|
||||
scalarMesonMix[5] = aVector[5];
|
||||
delete hadronizer;
|
||||
hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, ProbEta_c, ProbEta_b );
|
||||
hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix,
|
||||
ProbEta_c, ProbEta_b, pspin_mesonSSbar );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -563,7 +566,8 @@ void G4VLongitudinalStringDecay::SetVectorMesonMixings(std::vector<G4double> aVe
|
||||
vectorMesonMix[4] = aVector[4];
|
||||
vectorMesonMix[5] = aVector[5];
|
||||
delete hadronizer;
|
||||
hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix, ProbEta_c, ProbEta_b );
|
||||
hadronizer = new G4HadronBuilder( pspin_meson, pspin_barion, scalarMesonMix, vectorMesonMix,
|
||||
ProbEta_c, ProbEta_b, pspin_mesonSSbar );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -704,12 +708,20 @@ void G4VLongitudinalStringDecay::SetMinMasses()
|
||||
Meson[0][0][2] = 221; MesonWeight[0][0][3] = ( pspin_meson) * (1-scalarMesonMix[0]-scalarMesonMix[1]); // Eta
|
||||
Meson[0][0][3] = 331; MesonWeight[0][0][4] = ( pspin_meson) * ( scalarMesonMix[1]); // Eta'
|
||||
|
||||
/*
|
||||
//dd3 -> vectorMesonMix[0] * 113 + (1-vectorMesonMix[0]-vectorMesonMix[1]) * 223 + vectorMesonMix[1] * 333 (001)
|
||||
//dd3 -> rho_0 omega phi
|
||||
|
||||
Meson[0][0][1] = 113; MesonWeight[0][0][1] = (1.-pspin_meson) * ( vectorMesonMix[0] ); // Rho
|
||||
Meson[0][0][4] = 223; MesonWeight[0][0][4] = (1.-pspin_meson) * (1-vectorMesonMix[0]-vectorMesonMix[1]); // omega
|
||||
Meson[0][0][5] = 333; MesonWeight[0][0][5] = (1.-pspin_meson) * ( vectorMesonMix[1]); // phi
|
||||
*/
|
||||
|
||||
//dd3 -> (1-vectorMesonMix[1] * 113 + vectorMesonMix[1] * 223 (001)
|
||||
//dd3 -> rho_0 omega
|
||||
|
||||
Meson[0][0][1] = 113; MesonWeight[0][0][1] = (1.-pspin_meson) * (1-vectorMesonMix[1]); // Rho
|
||||
Meson[0][0][4] = 223; MesonWeight[0][0][4] = (1.-pspin_meson) * ( vectorMesonMix[1]); // omega
|
||||
|
||||
//uu1 -> scalarMesonMix[0] * 111 + (1-scalarMesonMix[0]-scalarMesonMix[1]) * 221 + scalarMesonMix[1] * 331 (110)
|
||||
//uu1 -> Pi0 Eta Eta'
|
||||
@@ -718,12 +730,20 @@ void G4VLongitudinalStringDecay::SetMinMasses()
|
||||
Meson[1][1][2] = 221; MesonWeight[1][1][2] = ( pspin_meson) * (1-scalarMesonMix[0]-scalarMesonMix[1]); // Eta
|
||||
Meson[1][1][3] = 331; MesonWeight[1][1][3] = ( pspin_meson) * ( scalarMesonMix[1]); // Eta'
|
||||
|
||||
/*
|
||||
//uu3 -> vectorMesonMix[0] * 113 + (1-vectorMesonMix[0]-vectorMesonMix[1]) * 223 + vectorMesonMix[1] * 333 (111)
|
||||
//uu3 -> rho_0 omega phi
|
||||
|
||||
Meson[1][1][1] = 113; MesonWeight[1][1][1] = (1.-pspin_meson) * ( vectorMesonMix[0] ); // Rho
|
||||
Meson[1][1][4] = 223; MesonWeight[1][1][4] = (1.-pspin_meson) * (1-vectorMesonMix[0]-vectorMesonMix[1]); // omega
|
||||
Meson[1][1][5] = 333; MesonWeight[1][1][5] = (1.-pspin_meson) * ( vectorMesonMix[1]); // phi
|
||||
*/
|
||||
|
||||
//uu3 -> (1-vectorMesonMix[1]) * 113 + vectorMesonMix[1] * 223 (111)
|
||||
//uu3 -> rho_0 omega
|
||||
|
||||
Meson[1][1][1] = 113; MesonWeight[1][1][1] = (1.-pspin_meson) * (1-vectorMesonMix[1]); // Rho
|
||||
Meson[1][1][4] = 223; MesonWeight[1][1][4] = (1.-pspin_meson) * ( vectorMesonMix[1]); // omega
|
||||
|
||||
//ss1 -> (1-scalarMesonMix[5]) * 221 + scalarMesonMix[5] * 331 (220)
|
||||
//ss1 -> Eta Eta'
|
||||
@@ -731,11 +751,18 @@ void G4VLongitudinalStringDecay::SetMinMasses()
|
||||
Meson[2][2][0] = 221; MesonWeight[2][2][0] = ( pspin_meson) * (1-scalarMesonMix[5] ); // Eta
|
||||
Meson[2][2][2] = 331; MesonWeight[2][2][2] = ( pspin_meson) * ( scalarMesonMix[5]); // Eta'
|
||||
|
||||
/*
|
||||
//ss3 -> (1-vectorMesonMix[5]) * 223 + vectorMesonMix[5] * 333 (221)
|
||||
//ss3 -> omega phi
|
||||
|
||||
Meson[2][2][1] = 223; MesonWeight[2][2][1] = (1.-pspin_meson) * (1-vectorMesonMix[5] ); // omega
|
||||
Meson[2][2][3] = 333; MesonWeight[2][2][3] = (1.-pspin_meson) * ( vectorMesonMix[5]); // phi
|
||||
*/
|
||||
|
||||
//ss3 -> vectorMesonMix[5] * 333 (221)
|
||||
//ss3 -> phi
|
||||
|
||||
Meson[2][2][1] = 333; MesonWeight[2][2][3] = (1.-pspin_mesonSSbar) * ( vectorMesonMix[5]); // phi
|
||||
|
||||
//cc1 -> ProbEta_c /(1-pspin_meson) 441 (330) Probability of Eta_c
|
||||
//cc3 -> (1-ProbEta_c)/( pspin_meson) 443 (331) Probability of J/Psi
|
||||
|
||||
Reference in New Issue
Block a user