Import Geant4 11.2.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2023-06-30 09:09:57 +02:00
parent aef78ca386
commit dd1f179cda
3780 changed files with 212808 additions and 142780 deletions
@@ -1,23 +0,0 @@
# --------------------------------------------------------------
# GNUmakefile for chips library. HPW 20-Nov-99
# --------------------------------------------------------------
name := G4had_string
ifndef G4INSTALL
G4INSTALL = ../../../../..
endif
SUBDIRS = diffraction
SUBDIRS += hadronization
SUBDIRS += management
SUBDIRS += qgsm
SUBLIBS = G4had_string_diff
SUBLIBS += G4had_string_frag
SUBLIBS += G4had_string_man
SUBLIBS += G4hadronic_qgstring
include $(G4INSTALL)/config/globlib.gmk
@@ -1,39 +0,0 @@
# -----------------------------------------------------------
# GNUmakefile for hadronic library. JPW, 2003.
# -----------------------------------------------------------
name := G4had_string_diff
ifndef G4INSTALL
G4INSTALL = ../../../../../..
endif
include $(G4INSTALL)/config/architecture.gmk
CPPFLAGS += -DG4HADRONIC_ALLOC_EXPORT
CPPFLAGS += -I$(G4BASE)/global/management/include \
-I$(G4BASE)/global/HEPRandom/include \
-I$(G4BASE)/global/HEPNumerics/include \
-I$(G4BASE)/global/HEPGeometry/include \
-I$(G4BASE)/track/include \
-I$(G4BASE)/geometry/volumes/include \
-I$(G4BASE)/geometry/management/include \
-I$(G4BASE)/intercoms/include \
-I$(G4BASE)/processes/management/include \
-I$(G4BASE)/processes/hadronic/management/include/ \
-I$(G4BASE)/processes/hadronic/cross_sections/include/ \
-I$(G4BASE)/processes/hadronic/util/include \
-I$(G4BASE)/processes/hadronic/models/parton_string/diffraction/include \
-I$(G4BASE)/processes/hadronic/models/parton_string/management/include \
-I$(G4BASE)/processes/hadronic/models/parton_string/hadronization/include \
-I$(G4BASE)/particles/management/include \
-I$(G4BASE)/particles/leptons/include \
-I$(G4BASE)/particles/bosons/include \
-I$(G4BASE)/particles/hadrons/mesons/include \
-I$(G4BASE)/particles/hadrons/barions/include \
-I$(G4BASE)/particles/hadrons/ions/include \
-I$(G4BASE)/particles/shortlived/include \
-I$(G4BASE)/materials/include
include $(G4INSTALL)/config/common.gmk
@@ -1,36 +0,0 @@
# -----------------------------------------------------------
# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96.
# -----------------------------------------------------------
name := G4had_string_frag
ifndef G4INSTALL
G4INSTALL = ../../../../../..
endif
include $(G4INSTALL)/config/architecture.gmk
CPPFLAGS += -DG4HADRONIC_ALLOC_EXPORT
CPPFLAGS += -I$(G4BASE)/global/management/include \
-I$(G4BASE)/global/HEPRandom/include \
-I$(G4BASE)/global/HEPNumerics/include \
-I$(G4BASE)/global/HEPGeometry/include \
-I$(G4BASE)/track/include \
-I$(G4BASE)/geometry/volumes/include \
-I$(G4BASE)/geometry/management/include \
-I$(G4BASE)/processes/management/include \
-I$(G4BASE)/processes/hadronic/management/include/ \
-I$(G4BASE)/processes/hadronic/util/include \
-I$(G4BASE)/processes/hadronic/cross_sections/include \
-I$(G4BASE)/processes/hadronic/models/parton_string/management/include \
-I$(G4BASE)/particles/management/include \
-I$(G4BASE)/particles/leptons/include \
-I$(G4BASE)/particles/bosons/include \
-I$(G4BASE)/particles/hadrons/mesons/include \
-I$(G4BASE)/particles/hadrons/barions/include \
-I$(G4BASE)/particles/hadrons/ions/include \
-I$(G4BASE)/particles/shortlived/include \
-I$(G4BASE)/materials/include
include $(G4INSTALL)/config/common.gmk
@@ -1,34 +0,0 @@
# -----------------------------------------------------------
# GNUmakefile for hadronic library. JPW 2003.
# -----------------------------------------------------------
name := G4had_string_man
ifndef G4INSTALL
G4INSTALL = ../../../../../..
endif
include $(G4INSTALL)/config/architecture.gmk
CPPFLAGS += -DG4HADRONIC_ALLOC_EXPORT
CPPFLAGS += -I$(G4BASE)/global/management/include \
-I$(G4BASE)/global/HEPRandom/include \
-I$(G4BASE)/global/HEPNumerics/include \
-I$(G4BASE)/global/HEPGeometry/include \
-I$(G4BASE)/track/include \
-I$(G4BASE)/geometry/volumes/include \
-I$(G4BASE)/geometry/management/include \
-I$(G4BASE)/processes/management/include \
-I$(G4BASE)/processes/hadronic/management/include/ \
-I$(G4BASE)/processes/hadronic/util/include \
-I$(G4BASE)/particles/management/include \
-I$(G4BASE)/particles/leptons/include \
-I$(G4BASE)/particles/bosons/include \
-I$(G4BASE)/particles/hadrons/mesons/include \
-I$(G4BASE)/particles/hadrons/barions/include \
-I$(G4BASE)/particles/hadrons/ions/include \
-I$(G4BASE)/particles/shortlived/include \
-I$(G4BASE)/materials/include
include $(G4INSTALL)/config/common.gmk
@@ -1,36 +0,0 @@
# -----------------------------------------------------------
# GNUmakefile for hadronic library. Gabriele Cosmo, 18/9/96.
# -----------------------------------------------------------
name := G4hadronic_qgstring
ifndef G4INSTALL
G4INSTALL = ../../../../../..
endif
include $(G4INSTALL)/config/architecture.gmk
CPPFLAGS += -DG4HADRONIC_ALLOC_EXPORT
CPPFLAGS += -I$(G4BASE)/global/management/include \
-I$(G4BASE)/global/HEPRandom/include \
-I$(G4BASE)/global/HEPNumerics/include \
-I$(G4BASE)/global/HEPGeometry/include \
-I$(G4BASE)/track/include \
-I$(G4BASE)/geometry/volumes/include \
-I$(G4BASE)/geometry/management/include \
-I$(G4BASE)/processes/management/include \
-I$(G4BASE)/processes/hadronic/management/include \
-I$(G4BASE)/processes/hadronic/util/include \
-I$(G4BASE)/processes/hadronic/cross_sections/include \
-I$(G4BASE)/processes/hadronic/models/parton_string/management/include \
-I$(G4BASE)/particles/management/include \
-I$(G4BASE)/particles/leptons/include \
-I$(G4BASE)/particles/bosons/include \
-I$(G4BASE)/particles/hadrons/mesons/include \
-I$(G4BASE)/particles/hadrons/barions/include \
-I$(G4BASE)/particles/hadrons/ions/include \
-I$(G4BASE)/particles/shortlived/include \
-I$(G4BASE)/materials/include
include $(G4INSTALL)/config/common.gmk
@@ -6,7 +6,12 @@ It must **not** be used as a substitute for writing good git commit messages!
-------------------------------------------------------------------------------
## 2023-02-06 Gabriele Cosmo (hadr-qgsm-V11-00-04)
## 2023-03-09 Vladimir Ivanchenko (hadr-qgsm-V11-01-01)
- G4BaryonSplitter, G4MesonSplitter, G4QGSMSplittableHadron, G4SPBaryon -
attempt make code more uniform in order to reduce probability of warnings
observed in CMS, when LTO option is enabled
## 2023-02-06 Gabriele Cosmo (hadr-qgsm-V11-01-00)
- Fixed potential uninitialised variables in G4QGSMSplitableHadron::GetValenceQuarkFlavors().
## 2022-10-07 Gabriele Cosmo (hadr-qgsm-V11-00-03)
@@ -37,8 +37,8 @@ class G4BaryonSplitter
{
public:
G4BaryonSplitter();
G4bool SplitBarion(G4int PDGCode, G4int* q_or_qqbar, G4int* qbar_or_qq);
G4bool FindDiquark(G4int PDGCode, G4int Quark, G4int* Diquark);
G4bool SplitBarion(G4int PDGCode, G4int & q_or_qqbar, G4int & qbar_or_qq);
G4bool FindDiquark(G4int PDGCode, G4int Quark, G4int & Diquark);
const G4SPBaryon & GetSPBaryon(G4int PDGCode);
private:
@@ -36,9 +36,7 @@
class G4MesonSplitter
{
public:
G4bool SplitMeson(G4int PDGcode, G4int* aEnd, G4int* bEnd);
private:
G4bool SplitMeson(G4int PDGcode, G4int & aEnd, G4int & bEnd);
};
#endif
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// Split barion (antibarion) into quark and diquark (antidiquark and antiqaurk )
// Split baryon (antibaryon) into quark and diquark (antidiquark and antiquark)
// based on prototype, needs clean up of interfaces HPW Feb 1999
// Numbers verified and errors corrected, HPW Dec 1999
@@ -90,16 +90,16 @@ G4BaryonSplitter()
}
G4bool G4BaryonSplitter::
SplitBarion(G4int PDGCode, G4int* q_or_qqbar, G4int* qbar_or_qq)
SplitBarion(G4int PDGCode, G4int& q_or_qqbar, G4int& qbar_or_qq)
{
const G4SPBaryon * aBaryon = theBaryons.GetBaryon(G4ParticleTable::GetParticleTable()->FindParticle(PDGCode));
if(aBaryon==NULL)
if(aBaryon == nullptr)
{
return FALSE;
} else {
aBaryon->SampleQuarkAndDiquark(*q_or_qqbar, *qbar_or_qq);
return TRUE;
return false;
} else {
aBaryon->SampleQuarkAndDiquark(q_or_qqbar, qbar_or_qq);
return true;
}
}
@@ -113,13 +113,12 @@ GetSPBaryon(G4int PDGCode)
// Find rest diquark in given barion after quark - antiquark annihilation
G4bool G4BaryonSplitter::
FindDiquark(G4int PDGCode, G4int Quark, G4int* Diquark)
G4bool G4BaryonSplitter::FindDiquark(G4int PDGCode, G4int Quark, G4int& Diquark)
{
const G4SPBaryon * aBaryon = theBaryons.GetBaryon(G4ParticleTable::GetParticleTable()->FindParticle(PDGCode));
if(aBaryon)
{
aBaryon->FindDiquark(Quark, *Diquark);
aBaryon->FindDiquark(Quark, Diquark);
return true;
}
return false;
@@ -26,17 +26,16 @@
#include "G4MesonSplitter.hh"
#include "Randomize.hh"
G4bool G4MesonSplitter::SplitMeson(G4int PDGcode, G4int* aEnd, G4int* bEnd)
G4bool G4MesonSplitter::SplitMeson(G4int PDGcode, G4int& aEnd, G4int& bEnd)
{
G4bool result = true;
G4int absPDGcode = std::abs(PDGcode);
if (absPDGcode >= 1000) return false;
if(absPDGcode == 22) // For gamma -> 4 (u ubar) + 1 (d dbar)
if (absPDGcode == 22) // For gamma -> 4 (u ubar) + 1 (d dbar)
{
G4int it=1;
if(G4UniformRand()<0.8) it++;
*aEnd = it;
*bEnd = -it;
aEnd = it;
bEnd = -it;
}
else
{
@@ -47,8 +46,8 @@ G4bool G4MesonSplitter::SplitMeson(G4int PDGcode, G4int* aEnd, G4int* bEnd)
heavy *= anti;
light *= -anti;
if ( anti < 0) G4SwapObj(&heavy, &light);
*aEnd = heavy;
*bEnd = light;
aEnd = heavy;
bEnd = light;
}
return result;
return true;
}
@@ -230,11 +230,11 @@ void G4QGSMSplitableHadron::GetValenceQuarkFlavors(const G4ParticleDefinition *
G4int HadronEncoding = aPart->GetPDGEncoding();
if (aPart->GetBaryonNumber() == 0)
{
theMesonSplitter.SplitMeson(HadronEncoding, &aEnd, &bEnd);
theMesonSplitter.SplitMeson(HadronEncoding, aEnd, bEnd);
}
else
{
theBaryonSplitter.SplitBarion(HadronEncoding, &aEnd, &bEnd);
theBaryonSplitter.SplitBarion(HadronEncoding, aEnd, bEnd);
}
Parton1 = new G4Parton(aEnd);