Import Geant4 10.3.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-12-09 12:35:28 +01:00
parent 4ec577e5c4
commit a3452e42ac
3514 changed files with 210500 additions and 89628 deletions
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4FTFAnnihilation.cc 96766 2016-05-04 13:31:27Z gcosmo $
// $Id: G4FTFAnnihilation.cc 100828 2016-11-02 15:25:59Z gcosmo $
//
// ------------------------------------------------------------
@@ -66,7 +66,8 @@
//#include "G4ios.hh"
//#include "UZHI_diffraction.hh"
#include "G4ParticleTable.hh" // Uzhi March 2016
#include "G4ParticleTable.hh"
//============================================================================
//#define debugFTFannih
@@ -89,7 +90,7 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
G4VSplitableHadron*& AdditionalString,
G4FTFParameters* theParameters ) const {
//theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016 ??? for other Anti_bar annih.
//theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016 ? for other Anti_bar annih.
#ifdef debugFTFannih
G4cout << "---------------------------- Annihilation----------------" << G4endl;
@@ -99,7 +100,7 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
G4LorentzVector Pprojectile = projectile->Get4Momentum();
G4int ProjectilePDGcode = projectile->GetDefinition()->GetPDGEncoding();
if ( ProjectilePDGcode > 0 ) {
target->SetStatus( 3 ); // 2->3 Uzhi Oct 2014
target->SetStatus( 3 ); // 2->3
return false;
}
//G4double M0projectile = Pprojectile.mag();
@@ -238,11 +239,12 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
#endif
G4double Xannihilation = X_a + X_b + X_c + X_d;
//X_a=0.; // Uzhi
//X_b=0.;
//X_c=0.;
//X_d=0.;
//Xannihilation = X_a + X_b + X_c + X_d;
//X_a=0.0;
//X_b=0.0;
//X_c=0.0;
//X_d=0.0;
//Xannihilation = X_a + X_b + X_c + X_d;
// Projectile unpacking
G4int AQ[3];
@@ -287,40 +289,40 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
projectile->SetSecondParton( Q[0] );
projectile->SetStatus( 0 );
// Uzhi March 2016 start
G4int aAQ, aQ;
aAQ=std::abs( AQ[0] ); aQ=std::abs( Q[0] );
G4int NewCode;
G4double aKsi = G4UniformRand();
G4int aAQ, aQ;
aAQ = std::abs( AQ[0] ); aQ = std::abs( Q[0] );
G4int NewCode;
G4double aKsi = G4UniformRand();
if ( aAQ == aQ )
{
if ( aAQ != 3 )
{
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 )
{
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson
}
} else
{
NewCode = 221; // Eta -meson
if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson
}
} else
{
if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/AQ[0]; }
else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/Q[0]; }
}
if ( aAQ == aQ ) {
if ( aAQ != 3 ) {
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 ) {
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
NewCode = 221; // Eta -meson
if ( aKsi < 0.5 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
if ( aAQ > aQ ) {
NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/AQ[0];
} else {
NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/Q[0];
}
}
G4ParticleDefinition* TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if(!TestParticle) return false;
projectile->SetDefinition( TestParticle );
G4ParticleDefinition* TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if ( ! TestParticle ) return false;
projectile->SetDefinition( TestParticle );
theParameters->SetProjMinDiffMass( 0.5 ); // Uzhi 2016 M+140 ??
theParameters->SetProjMinNonDiffMass( 0.5 ); // Uzhi 2016 M+140 ??
// Uzhi March 2016 end
theParameters->SetProjMinDiffMass( 0.5 ); // Uzhi 2016 M+140 ?
theParameters->SetProjMinNonDiffMass( 0.5 ); // Uzhi 2016 M+140 ?
//G4cout << "String 2 " << Q[1] << " " << AQ[1] << G4endl;
target->SplitUp();
@@ -328,68 +330,68 @@ theParameters->SetProjMinNonDiffMass( 0.5 ); // Uzhi 2016 M+140 ??
target->SetSecondParton( AQ[1] );
target->SetStatus( 0 );
// Uzhi March 2016 Start
aAQ=std::abs( AQ[1] ); aQ=std::abs( Q[1] ); aKsi = G4UniformRand();
if ( aAQ == aQ )
{
if ( aAQ != 3 )
{
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 )
{
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson
}
} else
{
NewCode = 221; // Eta -meson
if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson
}
} else
{
if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/AQ[1]; }
else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/Q[1]; }
}
TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if(!TestParticle) return false;
target->SetDefinition( TestParticle );
aAQ = std::abs( AQ[1] ); aQ = std::abs( Q[1] ); aKsi = G4UniformRand();
if ( aAQ == aQ ) {
if ( aAQ != 3 ) {
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 ) {
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
NewCode = 221; // Eta -meson
if ( aKsi < 0.5 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
if ( aAQ > aQ ) {
NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/AQ[1];
} else {
NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/Q[1];
}
}
theParameters->SetTarMinDiffMass( 0.5 ); // Uzhi 2016 M+140 ??
theParameters->SetTarMinNonDiffMass( 0.5 ); // Uzhi 2016 M+140 ??
// Uzhi March 2016 end
TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if ( ! TestParticle ) return false;
target->SetDefinition( TestParticle );
theParameters->SetTarMinDiffMass( 0.5 ); // Uzhi 2016 M+140 ?
theParameters->SetTarMinNonDiffMass( 0.5 ); // Uzhi 2016 M+140 ?
//G4cout << "String 3 " << AQ[2] << " " << Q[2] << G4endl;
AdditionalString = new G4DiffractiveSplitableHadron();
// Uzhi March 2016 start
aAQ=std::abs( AQ[2] ); aQ=std::abs( Q[2] ); aKsi = G4UniformRand();
aAQ = std::abs( AQ[2] ); aQ = std::abs( Q[2] ); aKsi = G4UniformRand();
if ( aAQ == aQ )
{
if ( aAQ != 3 )
{
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 )
{
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson
}
} else
{
NewCode = 221; // Eta -meson
if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson
}
} else
{
if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/AQ[2]; }
else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/Q[2]; }
}
if ( aAQ == aQ ) {
if ( aAQ != 3 ) {
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 ) {
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
NewCode = 221; // Eta -meson
if ( aKsi < 0.5 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
if ( aAQ > aQ ) {
NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/AQ[2];
} else {
NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/Q[2];
}
}
TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if(!TestParticle) return false;
AdditionalString->SetDefinition( TestParticle );
// Uzhi March 2016 end
TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if ( ! TestParticle ) return false;
AdditionalString->SetDefinition( TestParticle );
AdditionalString->SplitUp();
AdditionalString->SetFirstParton( AQ[2] );
@@ -643,7 +645,7 @@ AdditionalString->SetDefinition( TestParticle );
AdditionalString->IncrementCollisionCount( 1 );
target->IncrementCollisionCount( 1 );
theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
theParameters->SetProbabilityOfAnnihilation( 0.0 );
return true;
@@ -705,13 +707,13 @@ theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
projectile->SetFirstParton( DQ );
projectile->SetSecondParton( Anti_DQ );
projectile->SetStatus( 0 );
target->SetStatus( 4 ); // The target nucleon has annihilated 3->4 Uzhi Oct 2014
target->SetStatus( 4 ); // The target nucleon has annihilated 3->4
Pprojectile.setPx( 0.0 );
Pprojectile.setPy( 0.0 );
Pprojectile.setPz( 0.0 );
Pprojectile.setE( SqrtS );
Pprojectile.transform( toLab );
// Uzhi March 2016 if QQ_QQbar will interact Set Mmin, MdifMin
// Uzhi March 2016 if QQ_QQbar will interact Set Mmin, MdifMin
// Calculation of the creation time
projectile->SetTimeOfCreation( target->GetTimeOfCreation() );
@@ -726,8 +728,8 @@ theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
projectile->IncrementCollisionCount( 1 );
target->IncrementCollisionCount( 1 );
//theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
// In the case baryon and anti-baryon are created. Thus the antibaryon can annihilate latter.
//theParameters->SetProbabilityOfAnnihilation( 0.0 );
// In the case baryon and anti-baryon are created. Thus the antibaryon can annihilate later.
return true;
}
@@ -780,40 +782,40 @@ theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
projectile->SetSecondParton( LeftQ1 );
projectile->SetStatus( 0 );
// Uzhi March 2016 start
G4int aAQ, aQ;
aAQ=std::abs( LeftAQ1 ); aQ=std::abs( LeftQ1 );
G4int aAQ, aQ;
aAQ = std::abs( LeftAQ1 ); aQ = std::abs( LeftQ1 );
G4int NewCode;
G4double aKsi = G4UniformRand();
G4int NewCode;
G4double aKsi = G4UniformRand();
if ( aAQ == aQ )
{
if ( aAQ != 3 )
{
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 )
{
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson
}
} else
{
NewCode = 221; // Eta -meson
if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson
}
} else
{
if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/LeftAQ1; }
else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/LeftQ1; }
}
if ( aAQ == aQ ) {
if ( aAQ != 3 ) {
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 ) {
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
NewCode = 221; // Eta -meson
if ( aKsi < 0.5 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
if ( aAQ > aQ ) {
NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/LeftAQ1;
} else {
NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/LeftQ1;
}
}
G4ParticleDefinition* TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if(!TestParticle) return false;
projectile->SetDefinition( TestParticle );
theParameters->SetProjMinDiffMass( 0.5 ); // (0.5) // GeV Uzhi March 2016 ???
theParameters->SetProjMinNonDiffMass( 0.5 );
// Uzhi March 2016 end
G4ParticleDefinition* TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if ( ! TestParticle ) return false;
projectile->SetDefinition( TestParticle );
theParameters->SetProjMinDiffMass( 0.5 ); // (0.5) // GeV Uzhi March 2016 ?
theParameters->SetProjMinNonDiffMass( 0.5 );
//G4cout << "String 2 " << LeftAQ2 << " " << LeftQ2 << G4endl;
target->SplitUp();
@@ -821,36 +823,36 @@ theParameters->SetProjMinNonDiffMass( 0.5 );
target->SetSecondParton( LeftAQ2 );
target->SetStatus( 0 );
// Uzhi March 2016 start
aAQ=std::abs( LeftAQ2 ); aQ=std::abs( LeftQ2 ); aKsi = G4UniformRand();
aAQ = std::abs( LeftAQ2 ); aQ = std::abs( LeftQ2 ); aKsi = G4UniformRand();
if ( aAQ == aQ )
{
if ( aAQ != 3 )
{
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 )
{
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson
}
} else
{
NewCode = 221; // Eta -meson
if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson
}
} else
{
if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/LeftAQ2; }
else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/LeftQ2; }
}
if ( aAQ == aQ ) {
if ( aAQ != 3 ) {
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 ) {
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
NewCode = 221; // Eta -meson
if ( aKsi < 0.5 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
if ( aAQ > aQ ) {
NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/LeftAQ2;
} else {
NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/LeftQ2;
}
}
TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if(!TestParticle) return false;
target->SetDefinition( TestParticle );
theParameters->SetTarMinDiffMass( 0.5 ); // Uzhi March 2016 ???
theParameters->SetTarMinNonDiffMass( 0.5 );
// Uzhi March 2016
TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if ( ! TestParticle ) return false;
target->SetDefinition( TestParticle );
theParameters->SetTarMinDiffMass( 0.5 ); // Uzhi March 2016 ?
theParameters->SetTarMinNonDiffMass( 0.5 );
// Sampling kinematical properties
// 1 string LeftAQ1-LeftQ1// 2 string LeftAQ2-LeftQ2
@@ -1034,7 +1036,7 @@ theParameters->SetTarMinNonDiffMass( 0.5 );
projectile->IncrementCollisionCount( 1 );
target->IncrementCollisionCount( 1 );
theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
theParameters->SetProbabilityOfAnnihilation( 0.0 );
return true;
@@ -1100,42 +1102,42 @@ theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
projectile->SetSecondParton( LeftAQ );
projectile->SetStatus( 0 );
// Uzhi March 2016 start
G4int aAQ, aQ;
aAQ=std::abs( LeftAQ ); aQ=std::abs( LeftQ );
G4int aAQ, aQ;
aAQ = std::abs( LeftAQ ); aQ = std::abs( LeftQ );
G4int NewCode;
G4double aKsi = G4UniformRand();
G4int NewCode;
G4double aKsi = G4UniformRand();
if ( aAQ == aQ )
{
if ( aAQ != 3 )
{
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 )
{
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {NewCode = 331;} // Eta'-meson
}
} else
{
NewCode = 221; // Eta -meson
if( aKsi < 0.5 ) {NewCode = 331;} // Eta'-meson
}
} else
{
if ( aAQ > aQ ){ NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/LeftAQ; }
else { NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/LeftQ; }
}
if ( aAQ == aQ ) {
if ( aAQ != 3 ) {
NewCode = 111; // Pi0-meson
if ( aKsi < 0.5 ) {
NewCode = 221; // Eta -meson
if ( aKsi < 0.25 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
NewCode = 221; // Eta -meson
if ( aKsi < 0.5 ) {
NewCode = 331; // Eta'-meson
}
}
} else {
if ( aAQ > aQ ) {
NewCode = aAQ*100 + aQ*10 + 1; NewCode *= aAQ/LeftAQ;
} else {
NewCode = aQ*100 + aAQ*10 + 1; NewCode *= aQ/LeftQ;
}
}
G4ParticleDefinition* TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if(!TestParticle) return false;
projectile->SetDefinition( TestParticle );
theParameters->SetProjMinDiffMass( 0.5 ); // (0.5) // GeV Uzhi March 2016
theParameters->SetProjMinNonDiffMass( 0.5 );
// Uzhi March 2016 end
G4ParticleDefinition* TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if ( ! TestParticle ) return false;
projectile->SetDefinition( TestParticle );
theParameters->SetProjMinDiffMass( 0.5 ); // (0.5) // GeV Uzhi March 2016
theParameters->SetProjMinNonDiffMass( 0.5 );
target->SetStatus( 4 ); // The target nucleon has annihilated 3->4 Uzhi Oct 2014
target->SetStatus( 4 ); // The target nucleon has annihilated 3->4
Pprojectile.setPx( 0.0 );
Pprojectile.setPy( 0.0 );
Pprojectile.setPz( 0.0 );
@@ -1154,7 +1156,7 @@ theParameters->SetProjMinNonDiffMass( 0.5 );
projectile->IncrementCollisionCount( 1 );
target->IncrementCollisionCount( 1 );
theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
theParameters->SetProbabilityOfAnnihilation( 0.0 );
return true;
}
@@ -1237,3 +1239,4 @@ int G4FTFAnnihilation::operator!=( const G4FTFAnnihilation& ) const {
throw G4HadronicException( __FILE__, __LINE__,
"G4DiffractiveExcitation != operator not meant to be called" );
}