Import Geant4 10.5.0 source tree

This commit is contained in:
Gabriele Cosmo
2018-12-07 15:15:39 +01:00
parent 6aa23be517
commit db49709b53
11370 changed files with 187480 additions and 160142 deletions
@@ -28,7 +28,6 @@
// HPW Feb1999 based on prototype, needs urgent clean-up of data structures.
// Also needs clean-up of interfaces.
// @@@@@@@@@@@@@@@@@
// clean-up of data structures
#include "globals.hh"
@@ -24,7 +24,6 @@
// ********************************************************************
//
//
// $Id: G4QGSDiffractiveExcitation.hh 107867 2017-12-07 14:44:07Z gcosmo $
#ifndef G4QGSDiffractiveExcitation_h
#define G4QGSDiffractiveExcitation_h 1
@@ -50,24 +49,16 @@ class G4ExcitedString;
class G4QGSDiffractiveExcitation
{
public:
public:
G4QGSDiffractiveExcitation();
virtual ~G4QGSDiffractiveExcitation();
virtual G4bool ExciteParticipants (G4VSplitableHadron * aPartner,
G4VSplitableHadron * bPartner, // Uzhi Oct. 2016
G4bool ProjectileDiffraction=TRUE) const; // Uzhi Oct. 2016 , G4bool ProjectileDiffraction
G4VSplitableHadron * bPartner,
G4bool ProjectileDiffraction=TRUE) const;
virtual G4ExcitedString * String(G4VSplitableHadron * aHadron, G4bool isProjectile) const;
// void SetPtWidth(G4double aValue) { widthOfPtSquare = aValue*aValue; }
// void SetExtraMass(G4double aValue) { minExtraMass = aValue; }
// void SetMinimumMass(G4double aValue) { minmass = aValue; }
private:
private:
G4QGSDiffractiveExcitation(const G4QGSDiffractiveExcitation &right);
G4double ChooseP(G4double Pmin, G4double Pmax) const;
@@ -77,8 +68,6 @@ private:
const G4QGSDiffractiveExcitation & operator=(const G4QGSDiffractiveExcitation &right);
int operator==(const G4QGSDiffractiveExcitation &right) const;
int operator!=(const G4QGSDiffractiveExcitation &right) const;
private:
};
#endif
@@ -40,8 +40,7 @@
class G4QGSMSplitableHadron : public G4VSplitableHadron
{
public:
public:
G4QGSMSplitableHadron();
G4QGSMSplitableHadron(const G4ReactionProduct & aPrimary);
G4QGSMSplitableHadron(const G4ReactionProduct & aPrimary, G4bool Direction);
@@ -50,17 +49,17 @@ public:
virtual ~G4QGSMSplitableHadron();
private:
private:
const G4QGSMSplitableHadron & operator=(const G4QGSMSplitableHadron &right);
public:
public:
virtual void SplitUp();
virtual void SetFirstParton(G4int PDGcode); // Uzhi 24.11.10
virtual void SetSecondParton(G4int PDGcode); // Uzhi 24.11.10
virtual void SetFirstParton(G4int PDGcode);
virtual void SetSecondParton(G4int PDGcode);
virtual G4Parton * GetNextParton();
virtual G4Parton * GetNextAntiParton();
private:
private:
void InitParameters();
void DiffractiveSplitUp();
void SoftSplitUp();
@@ -71,23 +70,21 @@ private:
G4Parton * BuildSeaQuark(G4bool isAntiQuark, G4int aPDGCode, G4int nSeaPair);
G4double SampleX(G4double anXmin, G4int nSea, G4int theTotalSea, G4double aBeta);
private:
private:
// aggregated data
G4bool Direction; // FALSE is target. - candidate for more detailed design. @@@@ HPW
G4bool Direction; // FALSE is target. - candidate for more detailed design.
std::deque<G4Parton *> Color;
std::deque<G4Parton *> AntiColor;
//std::deque<G4Parton *>::iterator iP; // Uzhi
//std::deque<G4Parton *>::iterator iAP; // Uzhi
unsigned int iP; // Uzhi 5.06.2015
unsigned int iAP; // Uzhi 5.06.2015
private:
unsigned int iP;
unsigned int iAP;
private:
// associated classes
G4MesonSplitter theMesonSplitter;
G4BaryonSplitter theBaryonSplitter;
private:
private:
// model parameters
G4double alpha;
G4double beta;
@@ -122,4 +119,3 @@ inline void G4QGSMSplitableHadron::SetSecondParton(G4int PDGcode)
{PDGcode++;}
#endif
@@ -45,38 +45,29 @@
#include "G4SoftStringBuilder.hh"
#include "G4PartonPair.hh"
//***********************************************************************************************
//*****************************************************************************************
template<class ParticipantType>
class G4QGSModel : public G4VPartonStringModel
{
// Constructors
public:
{
public:
G4QGSModel();
virtual ~G4QGSModel();
G4QGSModel(const G4QGSModel &right);
G4QGSModel& operator=(const G4QGSModel &right);
// Method
public:
public:
virtual G4V3DNucleus* GetWoundedNucleus() const;
virtual G4V3DNucleus* GetProjectileNucleus() const; // Uzhi Nov. 2012
virtual G4V3DNucleus* GetProjectileNucleus() const;
virtual void Init(const G4Nucleus& Nucleus, const G4DynamicParticle& Projectile);
virtual G4ExcitedStringVector * GetStrings();
virtual void ModelDescription(std::ostream& outFile) const;
private:
ParticipantType theParticipants;
G4DiffractiveStringBuilder theDiffractiveStringBuilder;
G4SoftStringBuilder theSoftStringBuilder;
};
//-------------------------------------------------------------------------------------------
private:
ParticipantType theParticipants;
G4DiffractiveStringBuilder theDiffractiveStringBuilder;
G4SoftStringBuilder theSoftStringBuilder;
};
//*****************************************************************************************
@@ -84,4 +75,3 @@ private:
#endif
@@ -24,7 +24,7 @@
// ********************************************************************
//
//****************************************************************************************************************
//************************************************************************************************
template<class ParticipantType>
G4QGSModel<ParticipantType>::G4QGSModel()
{
@@ -119,5 +119,5 @@ void G4QGSModel<ParticipantType>::ModelDescription(std::ostream& outFile) const
<< "into quarks and di-quarks, the formation and excitation of\n"
<< "quark-gluon strings, string hadronization and diffractive dissociation.\n";
}
//*********************************************************************************************************************
//************************************************************************************************
@@ -36,14 +36,14 @@
#include "G4QGSMSplitableHadron.hh"
#include "G4V3DNucleus.hh"
#include "G4VSplitableHadron.hh" // Uzhi
#include "G4VSplitableHadron.hh"
#include "G4Reggeons.hh"
#include "G4QuarkExchange.hh"
class G4QGSParticipants : public G4VParticipants
{
public:
public:
G4QGSParticipants();
G4QGSParticipants(const G4QGSParticipants &right);
const G4QGSParticipants & operator=(const G4QGSParticipants &right);
@@ -63,7 +63,7 @@ public:
void BuildInteractions(const G4ReactionProduct &thePrimary);
void StartPartonPairLoop();
private:
private:
G4V3DNucleus* GetTargetNucleus() const;
G4V3DNucleus* GetProjectileNucleus() const;
@@ -108,7 +108,7 @@ private:
void CreateStrings();
private:
private:
// Set parameters of nuclear destruction
void SetCofNuclearDestruction( const G4double aValue );
void SetR2ofNuclearDestruction( const G4double aValue );
@@ -129,14 +129,14 @@ private:
G4double GetPt2ofNuclearDestruction();
G4double GetMaxPt2ofNuclearDestruction();
protected:
protected:
virtual G4VSplitableHadron* SelectInteractions(const G4ReactionProduct &thePrimary);
void SplitHadrons();
void PerformSoftCollisions();
void PerformDiffractiveCollisions();
G4bool DeterminePartonMomenta();
protected:
protected:
struct DeleteInteractionContent {void operator()(G4InteractionContent*aC){delete aC;}};
std::vector<G4InteractionContent*> theInteractions;
struct DeleteSplitableHadron{void operator()(G4VSplitableHadron*aS){delete aS;}};
@@ -144,14 +144,15 @@ protected:
struct DeletePartonPair{void operator()(G4PartonPair*aP){delete aP;}};
std::vector<G4PartonPair*> thePartonPairs;
G4QuarkExchange theQuarkExchange; // Uzhi 20 Oct. 2016
G4QuarkExchange theQuarkExchange;
G4SingleDiffractiveExcitation theSingleDiffExcitation;
G4QGSDiffractiveExcitation theDiffExcitaton;
G4int ModelMode;
G4ThreeVector theBoost;
G4double SampleX(G4double anXmin, G4int nSea, G4int theTotalSea, G4double aBeta);
protected:
protected:
// model parameters HPW
enum { SOFT, DIFFRACTIVE };
enum { ALL, WITHOUT_R, NON_DIFF }; // Interaction modes
@@ -162,12 +163,13 @@ protected:
const G4double QGSMThreshold;
const G4double theNucleonRadius;
G4ThreeVector theCurrentVelocity; // Uzhi 17 Apr. 2015 Is it needed?
G4ThreeVector theCurrentVelocity;
G4QGSMSplitableHadron* theProjectileSplitable;
private:
private:
G4ReactionProduct theProjectile;
G4Reggeons* Regge; // Uzhi 18 Oct. 2016
G4Reggeons* Regge;
G4int InteractionMode;
G4double alpha;
@@ -191,7 +193,7 @@ private:
G4int TargetResidualCharge;
G4double TargetResidualExcitationEnergy;
private:
private:
// Parameters of nuclear destruction
G4double CofNuclearDestruction; // Cnd of nuclear destruction
G4double R2ofNuclearDestruction; // R2nd
@@ -201,7 +203,6 @@ private:
G4double DofNuclearDestruction; // D for momentum sampling
G4double Pt2ofNuclearDestruction; // Pt2
G4double MaxPt2ofNuclearDestruction; // Max Pt2
};
inline void G4QGSParticipants::StartPartonPairLoop()
@@ -216,7 +217,6 @@ inline G4PartonPair* G4QGSParticipants::GetNextPartonPair()
return result;
}
inline void G4QGSParticipants::SplitHadrons()
{
unsigned int i;
@@ -225,13 +225,6 @@ inline void G4QGSParticipants::SplitHadrons()
theInteractions[i]->SplitHadrons();
}
}
//--------------------------------------
//Uzhi Copy from FTF Model.hh
/*
inline G4V3DNucleus* G4QGSParticipants::GetWoundedNucleus() const {
return theNucleus;
}
*/
inline G4V3DNucleus* G4QGSParticipants::GetTargetNucleus() const {
return theNucleus;
@@ -295,4 +288,3 @@ inline G4double G4QGSParticipants::GetMaxPt2ofNuclearDestruction() {
//Uzhi End copy from FTFparameters
#endif
@@ -24,7 +24,6 @@
// ********************************************************************
//
//
// $Id: G4QuarkExchange.hh 66241 2012-12-13 18:34:42Z gunter $
#ifndef G4QuarkExchange_h
#define G4QuarkExchange_h 1
@@ -48,15 +47,13 @@ class G4ExcitedString;
class G4QuarkExchange
{
public:
public:
G4QuarkExchange();
~G4QuarkExchange();
G4bool ExciteParticipants (G4VSplitableHadron *aPartner, G4VSplitableHadron * bPartner) const;
private:
private:
G4QuarkExchange(const G4QuarkExchange &right);
G4ThreeVector GaussianPt(G4double widthSquare, G4double maxPtSquare) const;
@@ -64,7 +61,6 @@ private:
const G4QuarkExchange & operator=(const G4QuarkExchange &right);
int operator==(const G4QuarkExchange &right) const;
int operator!=(const G4QuarkExchange &right) const;
};
#endif
@@ -26,7 +26,6 @@
#ifndef G4Reggeons_h
#define G4Reggeons_h 1
//
// $Id: G4Reggeons.hh 96940 2016-05-18 09:44:20Z ribon $
//
#include "G4Proton.hh"
#include "G4Neutron.hh"
@@ -46,7 +45,6 @@
class G4Reggeons
{
public:
G4Reggeons(const G4ParticleDefinition * );
@@ -94,9 +92,9 @@ class G4Reggeons
G4double Freggeon_Alpha, Freggeon_Alphaprime, Freggeon_Gamma, Freggeon_Rsquare, Freggeon_C, FParity;
G4double Wreggeon_Alpha, Wreggeon_Alphaprime, Wreggeon_Gamma, Wreggeon_Rsquare, Wreggeon_C, WParity;
G4double C_pomeron; // = pomeron_Cpr * pomeron_Ctr // Uzhi Oct. 2016
G4double Cpr_pomeron; // shower enhancement in projectile vertex // Uzhi Oct. 2016
G4double Ctr_pomeron; // shower enhancement in target vertex // Uzhi Oct. 2016
G4double C_pomeron; // = pomeron_Cpr * pomeron_Ctr
G4double Cpr_pomeron; // shower enhancement in projectile vertex
G4double Ctr_pomeron; // shower enhancement in target vertex
G4double Sint=0.;
@@ -106,4 +104,5 @@ class G4Reggeons
G4double Xelastic, Xpr_Diff, Xtr_Diff, XDDiff;
G4double Xinel , Xnd, XndP, XndR;
};
#endif
@@ -24,7 +24,6 @@
// ********************************************************************
//
//
// $Id: G4SingleDiffractiveExcitation.hh 107867 2017-12-07 14:44:07Z gcosmo $
#ifndef G4SingleDiffractiveExcitation_h
#define G4SingleDiffractiveExcitation_h 1
@@ -48,16 +47,14 @@ class G4ExcitedString;
class G4SingleDiffractiveExcitation : public G4QGSDiffractiveExcitation
{
public:
public:
G4SingleDiffractiveExcitation();
~G4SingleDiffractiveExcitation();
G4bool ExciteParticipants (G4VSplitableHadron *aPartner, G4VSplitableHadron * bPartner, G4bool ProjectileDiffraction) const;
private:
G4bool ExciteParticipants (G4VSplitableHadron *aPartner, G4VSplitableHadron * bPartner,
G4bool ProjectileDiffraction) const;
private:
G4SingleDiffractiveExcitation(const G4SingleDiffractiveExcitation &right);
G4double ChooseX(G4double Xmin, G4double Xmax) const;
@@ -66,7 +63,6 @@ private:
const G4SingleDiffractiveExcitation & operator=(const G4SingleDiffractiveExcitation &right);
int operator==(const G4SingleDiffractiveExcitation &right) const;
int operator!=(const G4SingleDiffractiveExcitation &right) const;
};
#endif