Import Geant4 10.4.0 source tree
This commit is contained in:
+231
-192
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4FTFAnnihilation.cc 102029 2016-12-16 14:53:08Z gcosmo $
|
||||
// $Id: G4FTFAnnihilation.cc 107525 2017-11-21 07:16:52Z 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();
|
||||
@@ -142,6 +143,17 @@ G4bool G4FTFAnnihilation::Annihilate( G4VSplitableHadron* projectile,
|
||||
G4LorentzRotation toLab( toCms.inverse() );
|
||||
|
||||
G4double SqrtS = std::sqrt( S );
|
||||
|
||||
//AR-Nov2017 String rotation: Begin
|
||||
G4bool RotateStrings = false;
|
||||
G4LorentzRotation RandomRotation;
|
||||
if ( G4UniformRand() <= G4Pow::GetInstance()->powA( 1880.0/SqrtS, 4.0 ) ) {
|
||||
RotateStrings = true;
|
||||
RandomRotation.rotateZ( 2.*pi*G4UniformRand() );
|
||||
RandomRotation.rotateY( std::acos( 2.*G4UniformRand()-1. ) );
|
||||
}
|
||||
//AR-Nov2017 String rotation: End
|
||||
|
||||
G4double maxPtSquare;
|
||||
G4double X_a( 0.0 ), X_b( 0.0 ), X_c( 0.0 ), X_d( 0.0 );
|
||||
|
||||
@@ -238,11 +250,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 +300,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 +341,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] );
|
||||
@@ -560,6 +573,7 @@ AdditionalString->SetDefinition( TestParticle );
|
||||
G4ThreeVector tmp = Quark_Mom[0] + Quark_Mom[3];
|
||||
G4LorentzVector Pstring1( tmp, std::sqrt( Quark_Mom[0].mag2() + MassQ2 ) +
|
||||
std::sqrt( Quark_Mom[3].mag2() + MassQ2 ) );
|
||||
if ( RotateStrings ) Pstring1 *= RandomRotation; //AR-Nov2017 String rotation
|
||||
G4double Ystring1 = Pstring1.rapidity();
|
||||
|
||||
//G4cout << "Mom 1 string " << G4endl << Quark_Mom[0] << G4endl << Quark_Mom[3] << G4endl
|
||||
@@ -569,6 +583,7 @@ AdditionalString->SetDefinition( TestParticle );
|
||||
tmp = Quark_Mom[1] + Quark_Mom[4];
|
||||
G4LorentzVector Pstring2( tmp, std::sqrt( Quark_Mom[1].mag2() + MassQ2 ) +
|
||||
std::sqrt( Quark_Mom[4].mag2() + MassQ2 ) );
|
||||
if ( RotateStrings ) Pstring2 *= RandomRotation; //AR-Nov2017 String rotation
|
||||
G4double Ystring2 = Pstring2.rapidity();
|
||||
|
||||
//G4cout << "Mom 2 string " << G4endl << Quark_Mom[1] << G4endl << Quark_Mom[4] << G4endl
|
||||
@@ -578,6 +593,7 @@ AdditionalString->SetDefinition( TestParticle );
|
||||
tmp = Quark_Mom[2] + Quark_Mom[5];
|
||||
G4LorentzVector Pstring3( tmp, std::sqrt( Quark_Mom[2].mag2() + MassQ2 ) +
|
||||
std::sqrt( Quark_Mom[5].mag2() + MassQ2 ) );
|
||||
if ( RotateStrings ) Pstring3 *= RandomRotation; //AR-Nov2017 String rotation
|
||||
G4double Ystring3 = Pstring3.rapidity();
|
||||
|
||||
//G4cout << "Mom 3 string " << G4endl << Quark_Mom[2] << G4endl << Quark_Mom[5] << G4endl
|
||||
@@ -643,7 +659,7 @@ AdditionalString->SetDefinition( TestParticle );
|
||||
AdditionalString->IncrementCollisionCount( 1 );
|
||||
target->IncrementCollisionCount( 1 );
|
||||
|
||||
theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
|
||||
//AR-Oct2017 theParameters->SetProbabilityOfAnnihilation( 0.0 );
|
||||
|
||||
return true;
|
||||
|
||||
@@ -704,14 +720,26 @@ theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
|
||||
//projectile->SetSecondParton( DQ );
|
||||
projectile->SetFirstParton( DQ );
|
||||
projectile->SetSecondParton( Anti_DQ );
|
||||
|
||||
//AR-Nov2017 String rotation : Begin
|
||||
if ( RotateStrings ) {
|
||||
G4LorentzVector Pquark = G4LorentzVector( 0., 0., SqrtS/2., SqrtS/2. );
|
||||
Pquark *= RandomRotation;
|
||||
G4LorentzVector Paquark = G4LorentzVector( 0., 0., -SqrtS/2., SqrtS/2. );
|
||||
Paquark *= RandomRotation;
|
||||
Pquark.transform(toLab); projectile->GetNextParton()->Set4Momentum(Pquark);
|
||||
Paquark.transform(toLab); projectile->GetNextAntiParton()->Set4Momentum(Paquark);
|
||||
}
|
||||
//AR-Nov2017 String rotation : End
|
||||
|
||||
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 +754,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 +808,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 +849,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
|
||||
@@ -995,6 +1023,7 @@ theParameters->SetTarMinNonDiffMass( 0.5 );
|
||||
G4ThreeVector tmp = Quark_Mom[0] + Quark_Mom[2];
|
||||
G4LorentzVector Pstring1( tmp, std::sqrt( Quark_Mom[0].mag2() + MassQ2 ) +
|
||||
std::sqrt( Quark_Mom[2].mag2() + MassQ2 ) );
|
||||
if ( RotateStrings ) Pstring1 *= RandomRotation; //AR-Nov2017 String rotation
|
||||
G4double Ystring1 = Pstring1.rapidity();
|
||||
|
||||
//G4cout << "Mom 1 string " << G4endl << Quark_Mom[0] << G4endl << Quark_Mom[2] << G4endl
|
||||
@@ -1004,6 +1033,7 @@ theParameters->SetTarMinNonDiffMass( 0.5 );
|
||||
tmp = Quark_Mom[1] + Quark_Mom[3];
|
||||
G4LorentzVector Pstring2( tmp, std::sqrt( Quark_Mom[1].mag2() + MassQ2 ) +
|
||||
std::sqrt( Quark_Mom[3].mag2() + MassQ2 ) );
|
||||
if ( RotateStrings ) Pstring2 *= RandomRotation; //AR-Nov2017 String rotation
|
||||
G4double Ystring2 = Pstring2.rapidity();
|
||||
|
||||
//G4cout << "Mom 2 string " << G4endl <<Quark_Mom[1] << G4endl << Quark_Mom[3] << G4endl
|
||||
@@ -1034,7 +1064,7 @@ theParameters->SetTarMinNonDiffMass( 0.5 );
|
||||
projectile->IncrementCollisionCount( 1 );
|
||||
target->IncrementCollisionCount( 1 );
|
||||
|
||||
theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
|
||||
//AR-Oct2017 theParameters->SetProbabilityOfAnnihilation( 0.0 );
|
||||
|
||||
return true;
|
||||
|
||||
@@ -1100,48 +1130,56 @@ 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 );
|
||||
Pprojectile.setE( SqrtS );
|
||||
Pprojectile.transform( toLab );
|
||||
|
||||
//AR-Nov2017 String rotation : Begin
|
||||
G4LorentzVector Pquark = G4LorentzVector( 0., 0., SqrtS/2., SqrtS/2. );
|
||||
G4LorentzVector Paquark = G4LorentzVector( 0., 0., -SqrtS/2., SqrtS/2. );
|
||||
if ( RotateStrings ) { Pquark *= RandomRotation; Paquark *= RandomRotation; }
|
||||
Pquark.transform(toLab); projectile->GetNextParton()->Set4Momentum(Pquark);
|
||||
Paquark.transform(toLab); projectile->GetNextAntiParton()->Set4Momentum(Paquark);
|
||||
//AR-Nov2017 String rotation : End
|
||||
|
||||
// Calculation of the creation time
|
||||
projectile->SetTimeOfCreation( target->GetTimeOfCreation() );
|
||||
projectile->SetPosition( target->GetPosition() );
|
||||
@@ -1154,7 +1192,7 @@ theParameters->SetProjMinNonDiffMass( 0.5 );
|
||||
projectile->IncrementCollisionCount( 1 );
|
||||
target->IncrementCollisionCount( 1 );
|
||||
|
||||
theParameters->SetProbabilityOfAnnihilation( 0.0 ); // Uzhi March 2016
|
||||
//AR-Oct2017 theParameters->SetProbabilityOfAnnihilation( 0.0 );
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -1237,3 +1275,4 @@ int G4FTFAnnihilation::operator!=( const G4FTFAnnihilation& ) const {
|
||||
throw G4HadronicException( __FILE__, __LINE__,
|
||||
"G4DiffractiveExcitation != operator not meant to be called" );
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user