Import Geant4 10.4.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2017-06-30 10:49:55 +02:00
parent 3a5407696b
commit 1a1316fea4
2180 changed files with 237880 additions and 59109 deletions
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4FTFAnnihilation.cc 100828 2016-11-02 15:25:59Z gcosmo $
// $Id: G4FTFAnnihilation.cc 102029 2016-12-16 14:53:08Z gcosmo $
//
// ------------------------------------------------------------
@@ -66,8 +66,7 @@
//#include "G4ios.hh"
//#include "UZHI_diffraction.hh"
#include "G4ParticleTable.hh"
#include "G4ParticleTable.hh" // Uzhi March 2016
//============================================================================
//#define debugFTFannih
@@ -90,7 +89,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;
@@ -100,7 +99,7 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
G4LorentzVector Pprojectile = projectile->Get4Momentum();
G4int ProjectilePDGcode = projectile->GetDefinition()->GetPDGEncoding();
if ( ProjectilePDGcode > 0 ) {
target->SetStatus( 3 ); // 2->3
target->SetStatus( 3 ); // 2->3 Uzhi Oct 2014
return false;
}
//G4double M0projectile = Pprojectile.mag();
@@ -239,12 +238,11 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
#endif
G4double 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;
//X_a=0.; // Uzhi
//X_b=0.;
//X_c=0.;
//X_d=0.;
//Xannihilation = X_a + X_b + X_c + X_d;
// Projectile unpacking
G4int AQ[3];
@@ -289,40 +287,40 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
projectile->SetSecondParton( Q[0] );
projectile->SetStatus( 0 );
G4int aAQ, aQ;
aAQ = std::abs( AQ[0] ); aQ = std::abs( Q[0] );
G4int NewCode;
G4double aKsi = G4UniformRand();
// Uzhi March 2016 start
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 ?
theParameters->SetProjMinDiffMass( 0.5 ); // Uzhi 2016 M+140 ??
theParameters->SetProjMinNonDiffMass( 0.5 ); // Uzhi 2016 M+140 ??
// Uzhi March 2016 end
//G4cout << "String 2 " << Q[1] << " " << AQ[1] << G4endl;
target->SplitUp();
@@ -330,68 +328,68 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
target->SetSecondParton( AQ[1] );
target->SetStatus( 0 );
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];
}
}
// 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 );
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 ??
// Uzhi March 2016 end
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();
aAQ = std::abs( AQ[2] ); aQ = std::abs( Q[2] ); aKsi = G4UniformRand();
// Uzhi March 2016 start
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 );
TestParticle = G4ParticleTable::GetParticleTable()->FindParticle( NewCode );
if(!TestParticle) return false;
AdditionalString->SetDefinition( TestParticle );
// Uzhi March 2016 end
AdditionalString->SplitUp();
AdditionalString->SetFirstParton( AQ[2] );
@@ -645,7 +643,7 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
AdditionalString->IncrementCollisionCount( 1 );
target->IncrementCollisionCount( 1 );
theParameters->SetProbabilityOfAnnihilation( 0.0 );
theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
return true;
@@ -707,13 +705,13 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
projectile->SetFirstParton( DQ );
projectile->SetSecondParton( Anti_DQ );
projectile->SetStatus( 0 );
target->SetStatus( 4 ); // The target nucleon has annihilated 3->4
target->SetStatus( 4 ); // The target nucleon has annihilated 3->4 Uzhi Oct 2014
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() );
@@ -728,8 +726,8 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
projectile->IncrementCollisionCount( 1 );
target->IncrementCollisionCount( 1 );
//theParameters->SetProbabilityOfAnnihilation( 0.0 );
// In the case baryon and anti-baryon are created. Thus the antibaryon can annihilate later.
//theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
// In the case baryon and anti-baryon are created. Thus the antibaryon can annihilate latter.
return true;
}
@@ -782,40 +780,40 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
projectile->SetSecondParton( LeftQ1 );
projectile->SetStatus( 0 );
G4int aAQ, aQ;
aAQ = std::abs( LeftAQ1 ); aQ = std::abs( LeftQ1 );
// Uzhi March 2016 start
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 );
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
//G4cout << "String 2 " << LeftAQ2 << " " << LeftQ2 << G4endl;
target->SplitUp();
@@ -823,36 +821,36 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
target->SetSecondParton( LeftAQ2 );
target->SetStatus( 0 );
aAQ = std::abs( LeftAQ2 ); aQ = std::abs( LeftQ2 ); aKsi = G4UniformRand();
// Uzhi March 2016 start
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 );
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
// Sampling kinematical properties
// 1 string LeftAQ1-LeftQ1// 2 string LeftAQ2-LeftQ2
@@ -1036,7 +1034,7 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
projectile->IncrementCollisionCount( 1 );
target->IncrementCollisionCount( 1 );
theParameters->SetProbabilityOfAnnihilation( 0.0 );
theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
return true;
@@ -1102,42 +1100,42 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
projectile->SetSecondParton( LeftAQ );
projectile->SetStatus( 0 );
G4int aAQ, aQ;
aAQ = std::abs( LeftAQ ); aQ = std::abs( LeftQ );
// Uzhi March 2016 start
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 );
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
target->SetStatus( 4 ); // The target nucleon has annihilated 3->4
target->SetStatus( 4 ); // The target nucleon has annihilated 3->4 Uzhi Oct 2014
Pprojectile.setPx( 0.0 );
Pprojectile.setPy( 0.0 );
Pprojectile.setPz( 0.0 );
@@ -1156,7 +1154,7 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
projectile->IncrementCollisionCount( 1 );
target->IncrementCollisionCount( 1 );
theParameters->SetProbabilityOfAnnihilation( 0.0 );
theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
return true;
}
@@ -1239,4 +1237,3 @@ int G4FTFAnnihilation::operator!=( const G4FTFAnnihilation& ) const {
throw G4HadronicException( __FILE__, __LINE__,
"G4DiffractiveExcitation != operator not meant to be called" );
}