Import Geant4 10.7.0 source tree

This commit is contained in:
Gabriele Cosmo
2020-12-04 12:30:43 +01:00
parent 67ba86d073
commit dab42d2018
3770 changed files with 226369 additions and 286486 deletions
@@ -7,13 +7,20 @@
History file for hadronic/models/parton_string/diffraction directory
-------------------------------------------------------------
This file should be used to summarize modifications introduced in the
This file should be used to summarize modifications introduced in the
code and to keep track of all tags.
---------------------------------------------------------------
* Please list in reverse chronological order (last date on top)
---------------------------------------------------------------
29-Oct-2020 B. Morgan hadr-partonstring-mgt-V10-06-03
- Remove inclusion of obsolete CMake module
24-Jul-2020 A. Ribon hadr-partonstring-mgt-V10-06-02
- G4VPartonStringModel : introduced a new pre-processor option for
debugging heavy hadrons, switched off by default.
08-Mar-2020 V. Ivanchenko hadr-partonstring-mgt-V10-06-01
- G4VParticipants, G4VPartonStringModel, G4VStringFragmentation,
G4StringModel - clean-up: removed unused methods, delete
@@ -51,7 +58,7 @@ code and to keep track of all tags.
Thanks to Raphael Isemann for reporting this.
07-Dec-2017 A. Ribon hadr-partonstring-mgt-V10-04-00
- Resumed the development version (i.e. deleted the class
- Resumed the development version (i.e. deleted the class
G4PomeronCrossSection which is not needed any longer).
08-Nov-2017 A. Ribon hadr-partonstring-mgt-V10-03-04
@@ -158,7 +165,7 @@ code and to keep track of all tags.
- G4PomeronCrossSection.cc: fix shadowing warnings
25-May-2012, G.Folger (had-partonstring-mgt-V09-05-01)
- G4VPartonStringModel:
- G4VPartonStringModel:
- add ModelDescription() interface
- make copy ctor, =, ==, and != operators private, not implemented
@@ -173,12 +180,12 @@ code and to keep track of all tags.
Address coverity warnings
30 Nov. 2010 V. Uzhinsky (had-partonstring-mgt-V09-03-01)
Member G4int Status in G4VSplitableHadron was changed
Member G4int Status in G4VSplitableHadron was changed
into G4int curStatus
8-Sept-2010, G.Folger (had-partonstring-mgt-V09-03-00)
use integer interface of G4Nucleus for A&Z
6 Dec. 2009, V. Uzhinsky (had-partonstring-mgt-V09-02-02)
Repeatation of string fragmentation if
energy corr. can not be done is implemented.
@@ -195,8 +202,8 @@ code and to keep track of all tags.
Introduction the right tag number.
9-July-2009 V. Uzhinsky (had-partonstring-mgt-V08-02-02)
- New field was added in G4VSplitableHadron class (G4 bool Activation) and
corresponding methods to operatite with it. It was needed for an
- New field was added in G4VSplitableHadron class (G4 bool Activation) and
corresponding methods to operatite with it. It was needed for an
absorption of meson in nuclear collision generated by FTF.
24-Apr 2007 Gunter Folger (had-partonstring-mgt-V08-02-01)
@@ -211,5 +218,5 @@ code and to keep track of all tags.
31-March-2008 V. Uzhinsky Tag : had-partonstring-mgt-V09-01-00
- G4FTFCrossSection.cc and G4FTFCrossSection.hh were re-named into
G4FTFParameters.cc and .hh, and moved to diffraction directory.
The corresponding class was re-named too. All of these characterize
The corresponding class was re-named too. All of these characterize
the content of the files more exactly.
@@ -4,7 +4,7 @@
# Package: Geant4.src.G4processes.G4hadronic.G4hadronic_models.G4had_string.G4had_string_man
#
# Sources description for a library.
# Lists the sources and headers of the code explicitely.
# Lists the sources and headers of the code explicitly.
# Lists include paths needed.
# Lists the internal granular and global dependencies of the library.
# Source specific properties should be added at the end.
@@ -14,35 +14,9 @@
#
#------------------------------------------------------------------------------
# List external includes needed.
include_directories(${CLHEP_INCLUDE_DIRS})
# List internal includes needed.
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/geometry/volumes/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPGeometry/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPNumerics/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/HEPRandom/include)
include_directories(${CMAKE_SOURCE_DIR}/source/global/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/materials/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/bosons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/barions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/ions/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/hadrons/mesons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/leptons/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/particles/shortlived/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/models/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/hadronic/util/include)
include_directories(${CMAKE_SOURCE_DIR}/source/processes/management/include)
include_directories(${CMAKE_SOURCE_DIR}/source/track/include)
#
# Define the Geant4 Module.
#
include(Geant4MacroDefineModule)
GEANT4_DEFINE_MODULE(NAME G4had_string_man
HEADERS
G4InteractionContent.hh
@@ -34,6 +34,7 @@
// ------------------------------------------------------------
// debug switch
//#define debug_PartonStringModel
//#define debug_heavyHadrons
// ------------------------------------------------------------
#include "G4VPartonStringModel.hh"
@@ -157,6 +158,16 @@ G4KineticTrackVector * G4VPartonStringModel::Scatter(const G4Nucleus &theNucleus
G4cout<<"------------ Parton-String model: Number of produced strings ---- "<<strings->size()<<G4endl;
#endif
#ifdef debug_heavyHadrons
// Check charm and bottom numbers of the projectile:
G4int count_charm_projectile = thePrimary.GetDefinition()->GetQuarkContent( 4 ) -
thePrimary.GetDefinition()->GetAntiQuarkContent( 4 );
G4int count_bottom_projectile = thePrimary.GetDefinition()->GetQuarkContent( 5 ) -
thePrimary.GetDefinition()->GetAntiQuarkContent( 5 );
G4int count_charm_strings = 0, count_bottom_strings = 0;
G4int count_charm_hadrons = 0, count_bottom_hadrons = 0;
#endif
for ( unsigned int astring=0; astring < strings->size(); astring++)
{
// rotate string to lab frame, models have it aligned to z
@@ -172,6 +183,25 @@ G4KineticTrackVector * G4VPartonStringModel::Scatter(const G4Nucleus &theNucleus
<<" Partons "<<(*strings)[astring]->GetLeftParton()->GetDefinition()->GetPDGEncoding()
<<" "<<(*strings)[astring]->GetRightParton()->GetDefinition()->GetPDGEncoding()<<G4endl;
#endif
#ifdef debug_heavyHadrons
G4int left_charm = (*strings)[astring]->GetLeftParton()->GetDefinition()->GetQuarkContent( 4 );
G4int left_anticharm = (*strings)[astring]->GetLeftParton()->GetDefinition()->GetAntiQuarkContent( 4 );
G4int right_charm = (*strings)[astring]->GetRightParton()->GetDefinition()->GetQuarkContent( 4 );
G4int right_anticharm = (*strings)[astring]->GetRightParton()->GetDefinition()->GetAntiQuarkContent( 4 );
G4int left_bottom = (*strings)[astring]->GetLeftParton()->GetDefinition()->GetQuarkContent( 5 );
G4int left_antibottom = (*strings)[astring]->GetLeftParton()->GetDefinition()->GetAntiQuarkContent( 5 );
G4int right_bottom = (*strings)[astring]->GetRightParton()->GetDefinition()->GetQuarkContent( 5 );
G4int right_antibottom = (*strings)[astring]->GetRightParton()->GetDefinition()->GetAntiQuarkContent( 5 );
if ( left_charm != 0 || left_anticharm != 0 || right_charm != 0 || right_anticharm != 0 ||
left_bottom != 0 || left_antibottom != 0 || right_bottom != 0 || right_antibottom != 0 ) {
count_charm_strings += left_charm - left_anticharm + right_charm - right_anticharm;
count_bottom_strings += left_bottom - left_antibottom + right_bottom - right_antibottom;
G4cout << "G4VPartonStringModel::Scatter : string #" << astring << " ("
<< (*strings)[astring]->GetLeftParton()->GetDefinition()->GetParticleName() << " , "
<< (*strings)[astring]->GetRightParton()->GetDefinition()->GetParticleName() << ")" << G4endl;
}
#endif
}
else
{
@@ -184,9 +214,33 @@ G4KineticTrackVector * G4VPartonStringModel::Scatter(const G4Nucleus &theNucleus
<<(*strings)[astring]->GetKineticTrack()->Get4Momentum().mag()<<" "
<<(*strings)[astring]->GetKineticTrack()->GetDefinition()->GetParticleName()<<G4endl;
#endif
#ifdef debug_heavyHadrons
G4int charm = (*strings)[astring]->GetKineticTrack()->GetDefinition()->GetQuarkContent( 4 );
G4int anticharm = (*strings)[astring]->GetKineticTrack()->GetDefinition()->GetAntiQuarkContent( 4 );
G4int bottom = (*strings)[astring]->GetKineticTrack()->GetDefinition()->GetQuarkContent( 5 );
G4int antibottom = (*strings)[astring]->GetKineticTrack()->GetDefinition()->GetAntiQuarkContent( 5 );
if ( charm != 0 || anticharm != 0 || bottom != 0 || antibottom != 0 ) {
count_charm_strings += charm - anticharm;
count_bottom_strings += bottom - antibottom;
G4cout << "G4VPartonStringModel::Scatter : track #" << astring << "\t"
<< (*strings)[astring]->GetKineticTrack()->GetDefinition()->GetParticleName() << G4endl;
}
#endif
}
}
#ifdef debug_heavyHadrons
if ( count_charm_projectile != count_charm_strings ) {
G4cout << "G4VPartonStringModel::Scatter : CHARM VIOLATION in String formation ! #projectile="
<< count_charm_projectile << " ; #strings=" << count_charm_strings << G4endl;
}
if ( count_bottom_projectile != count_bottom_strings ) {
G4cout << "G4VPartonStringModel::Scatter : BOTTOM VIOLATION in String formation ! #projectile="
<< count_bottom_projectile << " ; #strings=" << count_bottom_strings << G4endl;
}
#endif
#ifdef debug_PartonStringModel
G4cout<<G4endl<<"SumString4Mom "<<SumStringMom<<G4endl;
G4LorentzVector TargetResidual4Momentum(0.,0.,0.,0.);
@@ -328,7 +382,6 @@ G4KineticTrackVector * G4VPartonStringModel::Scatter(const G4Nucleus &theNucleus
#endif
SumMass=0.;
for ( unsigned int i=0; i < theResult->size(); i++)
{
SumMass+=(*theResult)[i]->Get4Momentum().mag();
@@ -341,8 +394,32 @@ G4KineticTrackVector * G4VPartonStringModel::Scatter(const G4Nucleus &theNucleus
BsumSec += (*theResult)[i]->GetDefinition()->GetBaryonNumber();
QsumSec += (*theResult)[i]->GetDefinition()->GetPDGCharge();
#endif
#ifdef debug_heavyHadrons
G4int charm = (*theResult)[i]->GetDefinition()->GetQuarkContent( 4 );
G4int anticharm = (*theResult)[i]->GetDefinition()->GetAntiQuarkContent( 4 );
G4int bottom = (*theResult)[i]->GetDefinition()->GetQuarkContent( 5 );
G4int antibottom = (*theResult)[i]->GetDefinition()->GetAntiQuarkContent( 5 );
if ( charm != 0 || anticharm != 0 || bottom != 0 || antibottom != 0 ) {
count_charm_hadrons += charm - anticharm;
count_bottom_hadrons += bottom - antibottom;
G4cout << "G4VPartonStringModel::Scatter : hadron #" << i << "\t"
<< (*theResult)[i]->GetDefinition()->GetParticleName() << G4endl;
}
#endif
}
#ifdef debug_heavyHadrons
if ( count_charm_projectile != count_charm_hadrons ) {
G4cout << "G4VPartonStringModel::Scatter : CHARM VIOLATION in String hadronization ! #projectile="
<< count_charm_projectile << " ; #hadrons=" << count_charm_hadrons << G4endl;
}
if ( count_bottom_projectile != count_bottom_hadrons ) {
G4cout << "G4VPartonStringModel::Scatter : BOTTOM VIOLATION in String hadronization ! #projectile="
<< count_bottom_projectile << " ; #hadrons=" << count_bottom_hadrons << G4endl;
}
#endif
#ifdef debug_PartonStringModel
G4cout<<G4endl<<"-----------------------Parton-String model: balances -------------"<<G4endl;
if(Qsum != QsumSec) {
@@ -93,7 +93,7 @@ G4VSplitableHadron::~G4VSplitableHadron()
const G4VSplitableHadron & G4VSplitableHadron::operator=(const G4VSplitableHadron &)
{
throw G4HadronicException(__FILE__, __LINE__,
"G4VSplitableHadron::operator= meant to not be accessable");
"G4VSplitableHadron::operator= meant to not be accessible");
return *this;
}