Import Geant4 10.5.0 source tree

This commit is contained in:
Gabriele Cosmo
2018-12-07 15:15:39 +01:00
parent 6aa23be517
commit db49709b53
11370 changed files with 187480 additions and 160142 deletions
@@ -24,7 +24,6 @@
// ********************************************************************
//
//
// $Id: G4DiffractiveExcitation.cc 110870 2018-06-22 12:14:16Z gcosmo $
//
// ------------------------------------------------------------
@@ -71,8 +70,6 @@
#include "G4Pow.hh"
//#include "G4ios.hh"
//#include "UZHI_diffraction.hh"
//============================================================================
@@ -1219,8 +1216,8 @@ void G4DiffractiveExcitation::CreateStrings( G4VSplitableHadron* hadron,
if ( isProjectile ) { // Projectile
if ( end->GetDefinition()->GetParticleType() == "diquarks" &&
end->GetDefinition()->GetPDGEncoding() > 0 ) { // DiQuark on the end
FirstString = new G4ExcitedString( end , Gquark, +1 ); // Open Uzhi
SecondString = new G4ExcitedString( Ganti_quark, start , +1 ); // Open Uzhi
FirstString = new G4ExcitedString( end , Gquark, +1 );
SecondString = new G4ExcitedString( Ganti_quark, start , +1 );
Gquark->Set4Momentum( PkinkQ1 );
Ganti_quark->Set4Momentum( PkinkQ2 );
@@ -1241,7 +1238,7 @@ void G4DiffractiveExcitation::CreateStrings( G4VSplitableHadron* hadron,
SecondString = new G4ExcitedString( Ganti_quark, start, -1 );
} else { // Anti_DiQuark on the end or Q
FirstString = new G4ExcitedString( Ganti_quark, end , -1 ); // Uzhi ?????
FirstString = new G4ExcitedString( Ganti_quark, end , -1 );
SecondString = new G4ExcitedString( start , Gquark, -1 );
Gquark->Set4Momentum( PkinkQ2 );
Ganti_quark->Set4Momentum( PkinkQ1 );
@@ -1262,7 +1259,7 @@ void G4DiffractiveExcitation::CreateStrings( G4VSplitableHadron* hadron,
FirstString->SetPosition( hadron->GetPosition() );
SecondString = 0;
if ( ! (end->Get4Momentum().e() != 0.) ) { //AR-Oct2017
if ( ! (end->Get4Momentum().e() != 0.) ) {
// momenta of string ends
G4double Momentum = hadron->Get4Momentum().vect().mag();
G4double Plus = hadron->Get4Momentum().e() + Momentum;
@@ -1286,19 +1283,17 @@ void G4DiffractiveExcitation::CreateStrings( G4VSplitableHadron* hadron,
Pend1 *= (-1.0)*Minus/2.0;
}
//AR-Oct2017 Momentum = -Pstart1.mag();
Momentum = Pstart1.vect().mag();
Pstart1.setT( Momentum ); // It is assumed that quark has m=0.
//AR-Oct2017 Momentum = -Pend1.mag();
Momentum = Pend1.vect().mag();
Pend1.setT( Momentum ); // It is assumed that di-quark has m=0.
start->Set4Momentum( Pstart1 );
end->Set4Momentum( Pend1 );
SecondString = 0;
} //AR-Oct2017
}
} // End of kink is impossible
//G4cout << "Quarks in the string at creation" << FirstString->GetRightParton()->GetPDGcode()
@@ -1430,7 +1425,7 @@ G4int G4DiffractiveExcitation::NewNucleonId( G4int Q1, G4int Q2, G4int Q3 ) cons
G4DiffractiveExcitation::G4DiffractiveExcitation( const G4DiffractiveExcitation& ) {
throw G4HadronicException( __FILE__, __LINE__,
"G4DiffractiveExcitation copy contructor not meant to be called" );
"G4DiffractiveExcitation copy constructor not meant to be called" );
}
@@ -24,8 +24,6 @@
// ********************************************************************
//
//
// $Id: G4DiffractiveSplitableHadron.cc 108010 2017-12-19 08:59:48Z gcosmo $
// GEANT4 tag $Name: $
//
// ------------------------------------------------------------
@@ -47,11 +45,11 @@
G4DiffractiveSplitableHadron::G4DiffractiveSplitableHadron()
{
PartonIndex = -1;
G4LorentzVector tmp=G4LorentzVector(0.,0.,0.,0.); // Uzhi 16 Oct. 2017
G4LorentzVector tmp=G4LorentzVector(0.,0.,0.,0.);
Parton[0] = new G4Parton( 1 );
Parton[1] = new G4Parton(-1 );
Parton[0]->Set4Momentum(tmp); Parton[1]->Set4Momentum(tmp); // Uzhi 16 Oct. 2017
Parton[0]->Set4Momentum(tmp); Parton[1]->Set4Momentum(tmp);
}
@@ -87,8 +85,7 @@ G4DiffractiveSplitableHadron::G4DiffractiveSplitableHadron( const G4VKineticNucl
//============================================================================
G4DiffractiveSplitableHadron::~G4DiffractiveSplitableHadron() {
}
G4DiffractiveSplitableHadron::~G4DiffractiveSplitableHadron() {}
//============================================================================
@@ -108,8 +105,8 @@ void G4DiffractiveSplitableHadron::SplitUp() {
Parton[0] = new G4Parton( stringStart );
Parton[1] = new G4Parton( stringEnd );
G4LorentzVector tmp=G4LorentzVector(0.,0.,0.,0.); // Uzhi 16 Oct. 2017
Parton[0]->Set4Momentum(tmp); Parton[1]->Set4Momentum(tmp); // Uzhi 16 Oct. 2017
G4LorentzVector tmp=G4LorentzVector(0.,0.,0.,0.);
Parton[0]->Set4Momentum(tmp); Parton[1]->Set4Momentum(tmp);
/* // Inversion of a string
if ( G4UniformRand() < 1.75 ) { //0.75
@@ -152,9 +149,8 @@ G4Parton* G4DiffractiveSplitableHadron::GetNextAntiParton() {
void G4DiffractiveSplitableHadron::SetFirstParton( G4int PDGcode ) {
delete Parton[0];
Parton[0] = new G4Parton( PDGcode );
G4LorentzVector tmp=G4LorentzVector(0.,0.,0.,0.); // Uzhi 16 Oct. 2017
Parton[0]->Set4Momentum(tmp); // Uzhi 16 Oct. 2017
G4LorentzVector tmp=G4LorentzVector(0.,0.,0.,0.);
Parton[0]->Set4Momentum(tmp);
}
@@ -163,8 +159,8 @@ void G4DiffractiveSplitableHadron::SetFirstParton( G4int PDGcode ) {
void G4DiffractiveSplitableHadron::SetSecondParton( G4int PDGcode ) {
delete Parton[1];
Parton[1] = new G4Parton( PDGcode );
G4LorentzVector tmp=G4LorentzVector(0.,0.,0.,0.); // Uzhi 16 Oct. 2017
Parton[1]->Set4Momentum(tmp); // Uzhi 16 Oct. 2017
G4LorentzVector tmp=G4LorentzVector(0.,0.,0.,0.);
Parton[1]->Set4Momentum(tmp);
}
@@ -176,7 +172,7 @@ void G4DiffractiveSplitableHadron::ChooseStringEnds( G4int PDGcode, G4int* aEnd,
if ( absPDGcode < 1000 ) { //-------------------- Meson -------------
G4int heavy(0), light(0);
if(!((absPDGcode == 111)||(absPDGcode == 221)||(absPDGcode == 331)))
if (!((absPDGcode == 111)||(absPDGcode == 221)||(absPDGcode == 331)))
{ // Ordinary mesons =======================
heavy = absPDGcode/100;
light = (absPDGcode % 100)/10;
@@ -188,8 +184,8 @@ void G4DiffractiveSplitableHadron::ChooseStringEnds( G4int PDGcode, G4int* aEnd,
}
else
{ // Pi0, Eta, Eta' =======================
if( G4UniformRand() < 0.5 ) {heavy = 1; light = -1;}
else {heavy = 2; light = -2;}
if ( G4UniformRand() < 0.5 ) {heavy = 1; light = -1;}
else {heavy = 2; light = -2;}
}
if ( G4UniformRand() < 0.5 ) {
*aEnd = heavy;
@@ -204,42 +200,41 @@ void G4DiffractiveSplitableHadron::ChooseStringEnds( G4int PDGcode, G4int* aEnd,
G4int j10 = (PDGcode % 100)/10;
G4double SuppresUUDDSS=1.0/2.0;
if((j1000 == j100) && (j1000 == j10)) SuppresUUDDSS=1.;
if ((j1000 == j100) && (j1000 == j10)) SuppresUUDDSS=1.;
//
const G4int maxNumberOfLoops = 1000;
G4int loopCounter = 0;
do
{
G4double random = G4UniformRand();
if(random < 0.33333)
if (random < 0.33333)
{
if(( j100 == j10 ) && ( G4UniformRand() > SuppresUUDDSS )) continue;
if (( j100 == j10 ) && ( G4UniformRand() > SuppresUUDDSS )) continue;
*aEnd = j1000;
if( j100 == j10 ) {*bEnd = Diquark( j100, j10, 1 );}
if ( j100 == j10 ) {*bEnd = Diquark( j100, j10, 1 );}
else
if( G4UniformRand() > 0.25) {*bEnd = Diquark( j100, j10, 0 );}
if ( G4UniformRand() > 0.25) {*bEnd = Diquark( j100, j10, 0 );}
else {*bEnd = Diquark( j100, j10, 1 );}
break;
}
else if(random < 0.66667)
else if (random < 0.66667)
{
if(( j1000 == j10 ) && ( G4UniformRand() > SuppresUUDDSS )) continue;
if (( j1000 == j10 ) && ( G4UniformRand() > SuppresUUDDSS )) continue;
*aEnd = j100;
if( j1000 == j10 ) {*bEnd = Diquark( j1000, j10, 1 );}
if ( j1000 == j10 ) {*bEnd = Diquark( j1000, j10, 1 );}
else
if( G4UniformRand() > 0.25) {*bEnd = Diquark( j1000, j10, 0 );}
if ( G4UniformRand() > 0.25) {*bEnd = Diquark( j1000, j10, 0 );}
else {*bEnd = Diquark( j1000, j10, 1 );}
break;
}
else
{
if(( j1000 == j100 ) && ( G4UniformRand() > SuppresUUDDSS )) continue;
if (( j1000 == j100 ) && ( G4UniformRand() > SuppresUUDDSS )) continue;
*aEnd = j10;
if( j1000 == j100 ) {*bEnd = Diquark( j1000, j100, 1 );}
if ( j1000 == j100 ) {*bEnd = Diquark( j1000, j100, 1 );}
else
if( G4UniformRand() > 0.25) {*bEnd = Diquark( j1000, j100, 0 );}
if ( G4UniformRand() > 0.25) {*bEnd = Diquark( j1000, j100, 0 );}
else {*bEnd = Diquark( j1000, j100, 1 );}
break;
}
@@ -249,35 +244,6 @@ void G4DiffractiveSplitableHadron::ChooseStringEnds( G4int PDGcode, G4int* aEnd,
*aEnd = j10; *bEnd = Diquark( j1000, j100, 1 ); // Just something acceptable, without any physics consideration.
}
/*
if ( std::abs( j100 ) >= std::abs( j10 ) ) {
if ( random < udspin1 ) {
*aEnd = j1000;
*bEnd = Diquark( j100, j10, 1 );
} else if ( random < udspin1 + uuspin1 ) {
*aEnd = j10;
*bEnd = Diquark( j1000, j100, 1 );
} else {
*aEnd = j100;
// Careful, there is no diquark q1=q2, (q1 q2)0, possible for Omega-
*bEnd = Diquark( j1000, j10, j1000 != j100 ? 0 : 1 );
}
} else {
// Lambda-like hadrons have two lightest quarks in spin 0
if ( random < udspin1 ) {
*aEnd = j1000;
// as above, but with charmed baryons
*bEnd = Diquark( j100, j10, j100 != j10 ? 0 : 10 );
} else if ( random < udspin1 + uuspin1 ) {
*aEnd = j10;
*bEnd = Diquark( j1000, j100, 1 );
} else {
*aEnd = j100;
*bEnd = Diquark( j1000, j10, 1 );
}
}
*/
}
}
@@ -24,7 +24,6 @@
// ********************************************************************
//
//
// $Id: G4ElasticHNScattering.cc 100828 2016-11-02 15:25:59Z gcosmo $
//
// ------------------------------------------------------------
@@ -228,7 +227,7 @@ G4ThreeVector G4ElasticHNScattering::GaussianPt( G4double AveragePt2,
G4ElasticHNScattering::G4ElasticHNScattering( const G4ElasticHNScattering& ) {
throw G4HadronicException( __FILE__, __LINE__,
"G4ElasticHNScattering copy contructor not meant to be called" );
"G4ElasticHNScattering copy constructor not meant to be called" );
}
@@ -24,7 +24,6 @@
// ********************************************************************
//
//
// $Id: G4FTFAnnihilation.cc 110870 2018-06-22 12:14:16Z gcosmo $
//
// ------------------------------------------------------------
@@ -1067,7 +1066,7 @@ void G4FTFAnnihilation::UnpackBaryon( G4int IdPDG, G4int& Q1, G4int& Q2, G4int&
G4FTFAnnihilation::G4FTFAnnihilation( const G4FTFAnnihilation& ) {
throw G4HadronicException( __FILE__, __LINE__,
"G4FTFAnnihilation copy contructor not meant to be called" );
"G4FTFAnnihilation copy constructor not meant to be called" );
}
@@ -24,8 +24,6 @@
// ********************************************************************
//
//
// $Id: G4FTFModel.cc 110870 2018-06-22 12:14:16Z gcosmo $
// GEANT4 tag $Name: $
//
// ------------------------------------------------------------
@@ -289,7 +287,7 @@ G4ExcitedStringVector* G4FTFModel::GetStrings() {
G4cout << "G4FTFModel::GetStrings() " << G4endl;
#endif
G4ExcitedStringVector* theStrings( 0 );
G4ExcitedStringVector* theStrings = new G4ExcitedStringVector;
theParticipants.GetList( theProjectile, theParameters );
StoreInvolvedNucleon();
@@ -1995,7 +1993,7 @@ G4ExcitedStringVector* G4FTFModel::BuildStrings() {
primaries[ahadron]->GetPosition(),
ParticleMomentum );
FirstString = new G4ExcitedString( aTrack );
} else if(primaries[ahadron]->GetStatus() == 2) {
} else if (primaries[ahadron]->GetStatus() == 2) {
G4LorentzVector ParticleMomentum=primaries[ahadron]->Get4Momentum();
G4KineticTrack* aTrack = new G4KineticTrack( primaries[ahadron]->GetDefinition(),
primaries[ahadron]->GetTimeOfCreation(),
@@ -2578,8 +2576,8 @@ G4ThreeVector G4FTFModel::GaussianPt( G4double AveragePt2, G4double maxPtSquare
G4double Pt2( 0.0 );
if(AveragePt2 > 0.0) {
if(maxPtSquare/AveragePt2 < 1.0e+9) {
if (AveragePt2 > 0.0) {
if (maxPtSquare/AveragePt2 < 1.0e+9) {
Pt2 = -AveragePt2 * G4Log( 1.0 + G4UniformRand() *
( G4Exp( -maxPtSquare/AveragePt2 ) -1.0 ) );
} else {
@@ -2642,8 +2640,7 @@ ComputeNucleusProperties( G4V3DNucleus* nucleus, // input paramete
+ aNucleon->Get4Momentum().perp2() );
sumMasses += 20.0*MeV; // Separation energy for a nucleon
//AR-11Oct2016 : brought back residual excitation energy as it was in G4 10.1
//residualExcitationEnergy += ExcitationEnergyPerWoundedNucleon;
//residualExcitationEnergy += ExcitationEnergyPerWoundedNucleon; // In G4 10.1
residualExcitationEnergy += -ExcitationEnergyPerWoundedNucleon*G4Log( G4UniformRand() );
residualMassNumber--;
@@ -2715,7 +2712,7 @@ GenerateDeltaIsobar( const G4double sqrtS, // input parameter
G4VSplitableHadron* splitableHadron = involvedNucleons[i]->GetSplitableHadron();
G4double massNuc = std::sqrt( sqr( splitableHadron->GetDefinition()->GetPDGMass() )
+ splitableHadron->Get4Momentum().perp2() );
//AR The absolute value below is needed in the case of an antinucleus.
// The absolute value below is needed in the case of an antinucleus.
G4int pdgCode = std::abs( splitableHadron->GetDefinition()->GetPDGEncoding() );
const G4ParticleDefinition* old_def = splitableHadron->GetDefinition();
G4int newPdgCode = pdgCode/10; newPdgCode = newPdgCode*10 + 4; // Delta
@@ -2832,7 +2829,7 @@ SamplingNucleonKinematics( G4double averagePt2, // input param
break;
}
xSum += x;
//AR The energy is in the lab (instead of cms) frame but it will not be used.
// The energy is in the lab (instead of cms) frame but it will not be used.
G4LorentzVector tmp( aNucleon->Get4Momentum().x(), aNucleon->Get4Momentum().y(),
x, aNucleon->Get4Momentum().e() );
@@ -24,8 +24,6 @@
// ********************************************************************
//
//
// $Id: G4FTFParameters.cc 109066 2018-03-23 12:59:45Z gcosmo $
// GEANT4 tag $Name: $
//
#include <utility>
@@ -185,7 +183,7 @@ G4FTFParamCollection::G4FTFParamCollection()
// fNuclearProjDestructP1 = 1.; // in 10.2.p03 & 10.3.ref04-ref07/08/09 it's 0.00481; in 10.3.p01/p02/p03, etc. it's be 1. (fixed)
// fNuclearProjDestructP1_NBRNDEP = false;
// fNuclearTgtDestructP1 = 1.; // in 10.2.p03 & 10.3.ref04-ref07/08/09 it's 0.00481; in 10.3.p01/p02/p03, etc. it's be 1. (fixed)
// fNuclearTgtDestructP1_ADEP = false;
fNuclearTgtDestructP1_ADEP = false;
fNuclearProjDestructP2 = 4.0;
fNuclearProjDestructP3 = 2.1;
// fNuclearTgtDestructP2 = 4.0;
@@ -193,7 +191,10 @@ G4FTFParamCollection::G4FTFParamCollection()
// fPt2NuclearDestructP1 = 0.035;
// fPt2NuclearDestructP2 = 0.04;
// fPt2NuclearDestructP3 = 4.0;
// fPt2NuclearDestructP4 = 2.5;
// fPt2NuclearDestructP4 = 2.5;
fProjDiffDissociation = false;
fTgtDiffDissociation = false;
}
void G4FTFParamCollection::Reset()
@@ -475,7 +476,6 @@ void G4FTFParameters::Reset()
void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
G4int theA, G4int theZ, G4double PlabPerParticle )
{
Reset();
G4int ProjectilePDGcode = particle->GetPDGEncoding();
@@ -855,10 +855,10 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
// Interactions with elastic and inelastic collisions
SetProbabilityOfElasticScatt( Xtotal, Xelastic );
//G4cout<<"in PARAMS ProbabilityOfElasticScatt "<<GetProbabilityOfElasticScatt()<<G4endl; // Uzhi
//SetProbabilityOfElasticScatt(0. * GetProbabilityOfElasticScatt());
//G4cout<<"in PARAMS ProbabilityOfElasticScatt "<<GetProbabilityOfElasticScatt()<<G4endl;
//{G4int Uzhi; G4cin>>Uzhi;}
//G4cout<<"in PARAMS ProbabilityOfElasticScatt "<<GetProbabilityOfElasticScatt()<<G4endl;
//SetProbabilityOfElasticScatt(0. * GetProbabilityOfElasticScatt());
//G4cout<<"in PARAMS ProbabilityOfElasticScatt "<<GetProbabilityOfElasticScatt()<<G4endl;
//{G4int Uzhi; G4cin>>Uzhi;}
SetRadiusOfHNinteractions2( Xtotal/pi/10.0 );
if ( Xtotal - Xelastic == 0.0 ) {
@@ -911,7 +911,7 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
fParCollBaryonProj.GetProc1Atop(),
fParCollBaryonProj.GetProc1Ymin() ); // Qexchange with Exc.
// ---> end update
if( Xinel > 0.) {
if ( Xinel > 0.) {
SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);// Projectile diffraction
SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93);// Target diffraction
/* original hadr-string-diff-V10-03-07
@@ -932,36 +932,19 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
}
//G4cout<<"fParCollBaryonProj.IsProjDiffDissociation() "<<fParCollBaryonProj.IsProjDiffDissociation()<<G4endl;
//G4cout<<"fParCollBaryonProj.IsTgtDiffDissociation() "<<fParCollBaryonProj.IsTgtDiffDissociation() <<G4endl;
//{G4int Uzhi; G4cin>>Uzhi;}
//G4cout<<"fParCollBaryonProj.IsProjDiffDissociation() "<<fParCollBaryonProj.IsProjDiffDissociation()<<G4endl;
//G4cout<<"fParCollBaryonProj.IsTgtDiffDissociation() "<<fParCollBaryonProj.IsTgtDiffDissociation() <<G4endl;
//{G4int Uzhi; G4cin>>Uzhi;}
// if ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) {
if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) { // Uzhi Dec. 2017 12 -> 10
//if ( AbsProjectileBaryonNumber > 1 || NumberOfTargetNucleons > 1 ) {
if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) {
// It is not decided what to do with diffraction dissociation in Had-Nucl and Nucl-Nucl interactions
//
if ( ! fParCollBaryonProj.IsProjDiffDissociation() )
SetParams( 2, 0.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Projectile diffraction
if ( ! fParCollBaryonProj.IsTgtDiffDissociation() )
SetParams( 3, 0.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction
//
}
/* original hadr-string-diff-V10-03-07
SetDeltaProbAtQuarkExchange( 0.0 );
if ( NumberOfTargetNucleons > 26 ) {
SetProbOfSameQuarkExchange( 1.0);
} else {
SetProbOfSameQuarkExchange( 0.0 );
}
SetProjMinDiffMass( 1.16 ); // GeV
SetProjMinNonDiffMass( 1.16 ); // GeV
SetTarMinDiffMass( 1.16 ); // GeV
SetTarMinNonDiffMass( 1.16 ); // GeV
SetAveragePt2( 0.15 ); // GeV^2
SetProbLogDistrPrD( 0.3 ); // Before it was: 0.5
SetProbLogDistr(0.3 ); // Before it was: 0.5
*/
// ---> JVY - update
SetDeltaProbAtQuarkExchange( fParCollBaryonProj.GetDeltaProbAtQuarkExchange() );
@@ -979,12 +962,12 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
SetProbLogDistr( fParCollBaryonProj.GetProbLogDistr() );
// ---> end update
} else if( ProjectilePDGcode < -1000 ) { // Projectile is anti_baryon
} else if ( ProjectilePDGcode < -1000 ) { // Projectile is anti_baryon
// Proc# A1 B1 A2 B2 A3 Atop Ymin
SetParams( 0, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 1000.0 ); // Qexchange without Exc.
SetParams( 1, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 1000.0 ); // Qexchange with Exc.
if( Xinel > 0.) {
if ( Xinel > 0.) {
SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93); // Projectile diffraction
SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93); // Target diffraction
SetParams( 4, 1.0, 0.0 , 0.0, 0.0 , 0.0, 0.0 , 0.93 ); // Qexchange with Exc. Additional multiply
@@ -994,9 +977,9 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
}
if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) { // Uzhi Dec. 2017
if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) {
SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Projectile diffraction
SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction Uzhi Dec. 2017
SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction
}
SetDeltaProbAtQuarkExchange( 0.0 );
@@ -1012,25 +995,25 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
} else if ( ProjectileabsPDGcode == 211 || ProjectilePDGcode == 111 ) { // Projectile is Pion
// Proc# A1 B1 A2 B2 A3 Atop Ymin
SetParams( 0, 150.0, 1.8 , -247.3, 2.3, 0., 1. , 2.3 ); // Uzhi July 2017
SetParams( 0, 150.0, 1.8 , -247.3, 2.3, 0., 1. , 2.3 );
SetParams( 1, 5.77, 0.6 , -5.77, 0.8, 0., 0. , 0.0 );
SetParams( 2, 2.27, 0.5 , -98052.0, 4.0, 0., 0. , 3.0 );
SetParams( 3, 7.0, 0.9, -85.28, 1.9, 0.08, 0. , 2.2 );
SetParams( 4, 1.0, 0.0 , -11.02, 1.0, 0.0, 0. , 2.4 ); // Qexchange with Exc. Additional multiply
if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) { // Uzhi Dec. 2017
if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) {
SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Projectile diffraction
SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction Uzhi Dec. 2017-
SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction
}
SetDeltaProbAtQuarkExchange( 0.56 ); // (0.35)
SetProjMinDiffMass( 1.0 ); // (0.5) // GeV Uzhi July 2017
SetProjMinNonDiffMass( 1.0 ); // (0.5) // GeV Uzhi July 2017
SetTarMinDiffMass( 1.16 ); // GeV
SetTarMinNonDiffMass( 1.16 ); // GeV
SetAveragePt2( 0.3 ); // GeV^2 Uzhi July 2017
SetProbLogDistrPrD( 0.55 ); // Uzhi July 2017
SetProbLogDistr( 0.55 ); // Uzhi July 2017
SetDeltaProbAtQuarkExchange( 0.56 );
SetProjMinDiffMass( 1.0 ); // GeV
SetProjMinNonDiffMass( 1.0 ); // GeV
SetTarMinDiffMass( 1.16 ); // GeV
SetTarMinNonDiffMass( 1.16 ); // GeV
SetAveragePt2( 0.3 ); // GeV^2
SetProbLogDistrPrD( 0.55 );
SetProbLogDistr( 0.55 );
} else if ( ProjectileabsPDGcode == 321 || ProjectileabsPDGcode == 311 ||
ProjectilePDGcode == 130 || ProjectilePDGcode == 310 ) { // Projectile is Kaon
@@ -1042,26 +1025,26 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
SetParams( 3, 1.09, 0.5 , -8.88 , 2. ,0.05, 0.0 , 1.40 ); // Target diffraction
SetParams( 4, 1.0, 0.0 , 0.0 , 0.0 , 0.0, 0.0 , 0.93 ); // Qexchange with Exc. Additional multiply
if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) { // Uzhi Dec. 2017
if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) {
SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Projectile diffraction
SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction // Uzhi Dec. 2017
SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction
}
SetDeltaProbAtQuarkExchange( 0.6 );
SetProjMinDiffMass( 0.7 ); // (1.4) // (0.7) // GeV
SetProjMinNonDiffMass( 0.7 ); // (1.4) // (0.7) // GeV
SetTarMinDiffMass( 1.16 ); // GeV
SetTarMinNonDiffMass( 1.16 ); // GeV
SetAveragePt2( 0.3 ); // GeV^2 // Uzhi Dec. 2017
SetProbLogDistrPrD( 0.55 ); // Uzhi Dec. 2017
SetProbLogDistr( 0.55 ); // Uzhi Dec. 2017
SetProjMinDiffMass( 0.7 ); // GeV
SetProjMinNonDiffMass( 0.7 ); // GeV
SetTarMinDiffMass( 1.16 ); // GeV
SetTarMinNonDiffMass( 1.16 ); // GeV
SetAveragePt2( 0.3 ); // GeV^2
SetProbLogDistrPrD( 0.55 );
SetProbLogDistr( 0.55 );
} else { // Projectile is undefined, Nucleon assumed
} else { // Projectile is undefined, Nucleon assumed
// Proc# A1 B1 A2 B2 A3 Atop Ymin
SetParams( 0, 13.71, 1.75, -30.69, 3.0 , 0.0, 1.0 , 0.93 ); // Qexchange without Exc. // Uzhi Dec. 2017
SetParams( 0, 13.71, 1.75, -30.69, 3.0 , 0.0, 1.0 , 0.93 ); // Qexchange without Exc.
SetParams( 1, 25.0, 1.0, -50.34, 1.5 , 0.0, 0.0 , 1.4 ); // Qexchange with Exc.
if( Xinel > 0.) {
if ( Xinel > 0.) {
SetParams( 2, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93); // Projectile diffraction
SetParams( 3, 6.0/Xinel, 0.0 ,-6.0/Xinel*16.28, 3.0 , 0.0, 0.0 , 0.93); // Target diffraction
SetParams( 4, 1.0, 0.0 , -2.01 , 0.5 , 0.0, 0.0 , 1.4 ); // Qexchange with Exc. Additional multiply
@@ -1070,25 +1053,25 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
SetParams( 3, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
SetParams( 4, 0.0, 0.0 ,0.0, 0.0 , 0.0, 0.0 , 0.0);
}
if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) { // Uzhi Dec. 2017 12 -> 10
if ( AbsProjectileBaryonNumber > 10 || NumberOfTargetNucleons > 10 ) {
SetParams( 2, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Projectile diffraction
SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction // Uzhi Dec. 2017
SetParams( 3, 0.0 , 0.0 , 0.0 , 0.0 , 0.0, 0.0 , -100.0 ); // Target diffraction
}
SetDeltaProbAtQuarkExchange( 0.0 ); // 7 June 2011
SetDeltaProbAtQuarkExchange( 0.0 );
SetProbOfSameQuarkExchange( 0.0 );
SetProjMinDiffMass( ProjectileMass + 0.22 ); // GeV
SetProjMinNonDiffMass( ProjectileMass + 0.22 ); // GeV
SetTarMinDiffMass( TargetMass + 0.22 ); // GeV
SetTarMinNonDiffMass( TargetMass + 0.22 ); // GeV
SetAveragePt2( 0.3 ); // GeV^2 // Uzhi Dec. 2017
SetProbLogDistrPrD( 0.55 ); // Uzhi Dec. 2017
SetProbLogDistr( 0.55 ); // Uzhi Dec. 2017
SetAveragePt2( 0.3 ); // GeV^2
SetProbLogDistrPrD( 0.55 );
SetProbLogDistr( 0.55 );
}
// Set parameters of a string kink
// SetPt2Kink( 6.0*GeV*GeV );
SetPt2Kink( 0.0*GeV*GeV ); // Uzhi Oct 2014 to switch off kinky strings
SetPt2Kink( 0.0*GeV*GeV ); // To switch off kinky strings
G4double Puubar( 1.0/3.0 ), Pddbar( 1.0/3.0 ), Pssbar( 1.0/3.0 ); // SU(3) symmetry
//G4double Puubar( 0.41 ), Pddbar( 0.41 ), Pssbar( 0.18 ); // Broken SU(3) symmetry
SetQuarkProbabilitiesAtGluonSplitUp( Puubar, Pddbar, Pssbar );
@@ -1096,8 +1079,8 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
// Set parameters of nuclear destruction
if ( ProjectileabsPDGcode < 1000 ) { // Meson projectile
SetMaxNumberOfCollisions( Plab, 2.0 ); // 3.0 )
// SetCofNuclearDestruction( 1.0* // AR-18May2016
SetCofNuclearDestruction( 0.00481*G4double(NumberOfTargetNucleons)* // Uzhi 3.05.2015 // Uzhi Dec. 2017
//SetCofNuclearDestruction( 1.0*
SetCofNuclearDestruction( 0.00481*G4double(NumberOfTargetNucleons)*
G4Exp( 4.0*(Ylab - 2.1) )/( 1.0 + G4Exp( 4.0*(Ylab - 2.1) ) ) );
SetR2ofNuclearDestruction( 1.5*fermi*fermi );
SetDofNuclearDestruction( 0.3 );
@@ -1107,8 +1090,8 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
SetExcitationEnergyPerWoundedNucleon( 40.0*MeV );
} else if ( ProjectilePDGcode < -1000 ) { // for anti-baryon projectile
SetMaxNumberOfCollisions( Plab, 2.0 ); // 3.0 )
// SetCofNuclearDestruction( 1.0* // AR-18May2016
SetCofNuclearDestruction( 0.00481*G4double(NumberOfTargetNucleons)* // Uzhi 3.05.2015 // Uzhi Dec. 2017
//SetCofNuclearDestruction( 1.0*
SetCofNuclearDestruction( 0.00481*G4double(NumberOfTargetNucleons)*
G4Exp( 4.0*(Ylab - 2.1) )/( 1.0 + G4Exp( 4.0*(Ylab - 2.1) ) ) );
SetR2ofNuclearDestruction( 1.5*fermi*fermi );
SetDofNuclearDestruction( 0.3 );
@@ -1132,11 +1115,11 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
SetMaxNumberOfCollisions( Plab, 2.0 ); // 3.0 )
/* original hadr-string-diff-V10-03-07
//AR-18May2016 SetCofNuclearDestructionPr( 0.00481*G4double(AbsProjectileBaryonNumber)* // Uzhi 3.05.2015
SetCofNuclearDestructionPr( 1.0* // AR-18May2016
//SetCofNuclearDestructionPr( 0.00481*G4double(AbsProjectileBaryonNumber)*
SetCofNuclearDestructionPr( 1.0*
G4Exp( 4.0*(Ylab - 2.1) )/( 1.0 + G4Exp( 4.0*(Ylab - 2.1) ) ) );
//AR-18May2016 SetCofNuclearDestruction( 0.00481*G4double(NumberOfTargetNucleons)* // Uzhi 3.05.2015
SetCofNuclearDestruction( 1.0* // AR-18May2016
//SetCofNuclearDestruction( 0.00481*G4double(NumberOfTargetNucleons)*
SetCofNuclearDestruction( 1.0*
G4Exp( 4.0*(Ylab - 2.1) )/( 1.0 + G4Exp( 4.0*(Ylab - 2.1) ) ) );
SetR2ofNuclearDestruction( 1.5*fermi*fermi );
SetDofNuclearDestruction( 0.3 );
@@ -1220,25 +1203,25 @@ void G4FTFParameters::InitForInteraction( const G4ParticleDefinition* particle,
//SetExcitationEnergyPerWoundedNucleon(0.);//( 30.0*MeV ); // (75.0*MeV)
//SetDofNuclearDestruction(0.);//( 0.2 ); //0.4 // 0.3 0.5
/* Uzhi Nov. 20
//SetAveragePt2(0.1);
SetCofNuclearDestructionPr(0.);
SetCofNuclearDestruction(0.);//( 0.5 ); // (0.25)
//SetExcitationEnergyPerWoundedNucleon(0.);//( 30.0*MeV ); // (75.0*MeV)
SetDofNuclearDestruction(0.);//( 0.2 ); //0.4 // 0.3 0.5
SetPt2ofNuclearDestruction(0.);//(2.*0.075*GeV*GeV); //( 0.3*GeV*GeV ); // (0.168*GeV*GeV)
*/
/*
//SetAveragePt2(0.1);
SetCofNuclearDestructionPr(0.);
SetCofNuclearDestruction(0.);//( 0.5 ); // (0.25)
//SetExcitationEnergyPerWoundedNucleon(0.);//( 30.0*MeV ); // (75.0*MeV)
SetDofNuclearDestruction(0.);//( 0.2 ); //0.4 // 0.3 0.5
SetPt2ofNuclearDestruction(0.);//(2.*0.075*GeV*GeV); //( 0.3*GeV*GeV ); // (0.168*GeV*GeV)
*/
//SetMaxNumberOfCollisions( Plab, 4.0 ); // 3.0 )
//SetMaxNumberOfCollisions( Plab, 4.0 ); // 3.0 )
//SetRadiusOfHNinteractions2( Xtotal/pi/10.0 /2.);
/*
G4cout << "Pt2 " << GetAveragePt2()<<" "<<GetAveragePt2()/GeV/GeV<<G4endl;
G4cout << "Cnd " << GetCofNuclearDestruction() << G4endl;
G4cout << "Dnd " << GetDofNuclearDestruction() << G4endl;
G4cout << "Pt2 " << GetPt2ofNuclearDestruction()/GeV/GeV << G4endl;
G4int Uzhi; G4cin >> Uzhi;
*/
//SetRadiusOfHNinteractions2( Xtotal/pi/10.0 /2.);
/*
G4cout << "Pt2 " << GetAveragePt2()<<" "<<GetAveragePt2()/GeV/GeV<<G4endl;
G4cout << "Cnd " << GetCofNuclearDestruction() << G4endl;
G4cout << "Dnd " << GetDofNuclearDestruction() << G4endl;
G4cout << "Pt2 " << GetPt2ofNuclearDestruction()/GeV/GeV << G4endl;
G4int Uzhi; G4cin >> Uzhi;
*/
}
@@ -1248,12 +1231,12 @@ G4double G4FTFParameters::GetProcProb( const G4int ProcN, const G4double y ) {
G4double Prob( 0.0 );
if ( y < ProcParams[ProcN][6] ) {
Prob = ProcParams[ProcN][5];
if(Prob < 0.) Prob=0.;
if (Prob < 0.) Prob=0.;
return Prob;
}
Prob = ProcParams[ProcN][0] * G4Exp( -ProcParams[ProcN][1]*y ) +
ProcParams[ProcN][2] * G4Exp( -ProcParams[ProcN][3]*y ) +
ProcParams[ProcN][4];
if(Prob < 0.) Prob=0.;
if (Prob < 0.) Prob=0.;
return Prob;
}
@@ -24,8 +24,6 @@
// ********************************************************************
//
//
// $Id: G4FTFParticipants.cc 108010 2017-12-19 08:59:48Z gcosmo $
// GEANT4 tag $Name: $
//
// ------------------------------------------------------------
@@ -199,7 +197,7 @@ void G4FTFParticipants::GetList( const G4ReactionProduct& thePrimary,
G4cout << "Projectile and target are nuclei" << G4endl;
#endif
//G4cout<<theProjectileNucleus->GetOuterRadius()/fermi<<" "<<theNucleus->GetOuterRadius()/fermi<<" "<<deltaxy/fermi<<G4endl;
//G4cout<<theProjectileNucleus->GetOuterRadius()/fermi<<" "<<theNucleus->GetOuterRadius()/fermi<<" "<<deltaxy/fermi<<G4endl;
G4double xyradius;
xyradius = theProjectileNucleus->GetOuterRadius() + // Range of impact parameter sampling