Import Geant4 9.3.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 16:15:05 +02:00
parent b79225fb37
commit 74cad5e589
3877 changed files with 234205 additions and 167127 deletions
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4DiffractiveExcitation.hh,v 1.2 2008/04/25 14:20:13 vuzhinsk Exp $
// $Id: G4DiffractiveExcitation.hh,v 1.4 2009/09/17 18:24:30 vuzhinsk Exp $
#ifndef G4DiffractiveExcitation_h
#define G4DiffractiveExcitation_h 1
@@ -41,7 +41,8 @@
#include "globals.hh"
class G4VSplitableHadron;
class G4ExcitedString;
#include "G4FTFParameters.hh" // Uzhi 19.04.08
#include "G4FTFParameters.hh"
#include "G4ElasticHNScattering.hh" // Uzhi 3.09.09
#include "G4ThreeVector.hh"
class G4DiffractiveExcitation
@@ -49,22 +50,30 @@ class G4DiffractiveExcitation
public:
G4DiffractiveExcitation(); // Uzhi
G4DiffractiveExcitation();
virtual ~G4DiffractiveExcitation();
virtual G4bool ExciteParticipants (G4VSplitableHadron *aPartner,
G4VSplitableHadron * bPartner,
G4FTFParameters *theParameters,
G4ElasticHNScattering *theElastic) const;
virtual void CreateStrings (G4VSplitableHadron * aHadron,
G4bool isProjectile,
G4ExcitedString * &FirstString,
G4ExcitedString * &SecondString,
G4FTFParameters *theParameters) const;
virtual G4ExcitedString * String(G4VSplitableHadron * aHadron, G4bool isProjectile) const;
private:
G4DiffractiveExcitation(const G4DiffractiveExcitation &right);
G4ThreeVector GaussianPt(G4double AveragePt2, G4double maxPtSquare) const; // Uzhi
G4double ChooseP(G4double Pmin, G4double Pmax) const; // Uzhi
G4ThreeVector GaussianPt(G4double AveragePt2, G4double maxPtSquare) const;
G4double ChooseP(G4double Pmin, G4double Pmax) const;
G4double GetQuarkFractionOfKink(G4double zmin, G4double zmax) const;
void UnpackMeson( G4int IdPDG, G4int &Q1, G4int &Q2) const; // Uzhi 7.09.09
void UnpackBaryon(G4int IdPDG, G4int &Q1, G4int &Q2, G4int &Q3) const; // Uzhi 7.09.09
G4int NewNucleonId(G4int Q1, G4int Q2, G4int Q3) const; // Uzhi 7.09.09
const G4DiffractiveExcitation & operator=(const G4DiffractiveExcitation &right);
int operator==(const G4DiffractiveExcitation &right) const;
int operator!=(const G4DiffractiveExcitation &right) const;
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4DiffractiveHHScatterer.hh,v 1.4 2008/04/25 14:20:13 vuzhinsk Exp $
// $Id: G4DiffractiveHHScatterer.hh,v 1.7 2009/10/06 10:10:36 vuzhinsk Exp $
#ifndef G4DiffractiveHHScatterer_h
#define G4DiffractiveHHScatterer_h 1
@@ -43,7 +43,8 @@ class G4DiffractiveExcitation;
class G4LundStringFragmentation;
class G4KineticTrack;
#include "G4KineticTrackVector.hh"
#include "G4FTFParameters.hh" // Uzhi 21.04.08
#include "G4FTFParameters.hh"
#include "G4ExcitedString.hh"
class G4DiffractiveHHScatterer
{
@@ -51,13 +52,21 @@ public:
G4DiffractiveHHScatterer();
G4KineticTrackVector * Scatter(const G4KineticTrack & aTrack, const G4KineticTrack & bTrack);
// G4KineticTrackVector * Scatter(const G4KineticTrack & aTrack, const G4KineticTrack & bTrack);
virtual void CreateStrings() const;
/*
(G4VSplitableHadron * aHadron,
G4bool isProjectile,
G4ExcitedString * FirstString,
G4ExcitedString * SecondString,
G4FTFParameters *theParameters) const;
*/
private:
const G4DiffractiveExcitation * theExcitation;
G4LundStringFragmentation * theStringFragmentation;
G4FTFParameters *theParameters; // Uzhi 21.04.08
G4FTFParameters *theParameters;
};
#endif
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DiffractiveSplitableHadron.hh,v 1.4 2006/06/29 20:54:27 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4DiffractiveSplitableHadron.hh,v 1.5 2009/08/03 13:14:19 vuzhinsk Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
#ifndef G4DiffractiveSplitableHadron_h
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4ElasticHNScattering.hh,v 1.1 2008/03/31 15:34:01 vuzhinsk Exp $
// $Id: G4ElasticHNScattering.hh,v 1.2 2009/08/03 13:14:19 vuzhinsk Exp $
#ifndef G4ElasticHNScattering_h
#define G4ElasticHNScattering_h 1
@@ -41,7 +41,7 @@
#include "globals.hh"
class G4VSplitableHadron;
class G4ExcitedString;
#include "G4FTFParameters.hh" // Uzhi 29.03.08
#include "G4FTFParameters.hh"
#include "G4ThreeVector.hh"
class G4ElasticHNScattering
@@ -49,7 +49,7 @@ class G4ElasticHNScattering
public:
G4ElasticHNScattering(); // Uzhi
G4ElasticHNScattering();
virtual ~G4ElasticHNScattering();
virtual G4bool ElasticScattering (G4VSplitableHadron *aPartner,
@@ -60,7 +60,7 @@ class G4ElasticHNScattering
G4ElasticHNScattering(const G4ElasticHNScattering &right);
G4ThreeVector GaussianPt(G4double AveragePt2, G4double maxPtSquare) const; // Uzhi
G4ThreeVector GaussianPt(G4double AveragePt2, G4double maxPtSquare) const;
const G4ElasticHNScattering & operator=(const G4ElasticHNScattering &right);
int operator==(const G4ElasticHNScattering &right) const;
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4FTFModel.hh,v 1.7 2008/04/25 14:20:13 vuzhinsk Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4FTFModel.hh,v 1.10 2009/10/25 10:50:54 vuzhinsk Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
// Class Description
// Final state production code for hadron inelastic scattering above 20 GeV
@@ -52,7 +52,7 @@
class G4VSplitableHadron;
class G4ExcitedString;
#include "G4FTFParameters.hh" // Uzhi 29.03.08
#include "G4FTFParameters.hh"
#include "G4FTFParticipants.hh"
#include "G4ExcitedStringVector.hh"
@@ -63,8 +63,8 @@ class G4FTFModel : public G4VPartonStringModel
{
public:
G4FTFModel(); // Uzhi
G4FTFModel(G4double , G4double , G4double ); // Uzhi
G4FTFModel();
G4FTFModel(G4double , G4double , G4double );
G4FTFModel(G4DiffractiveExcitation * anExcitation);
G4FTFModel(const G4FTFModel &right);
~G4FTFModel();
@@ -81,18 +81,27 @@ class G4FTFModel : public G4VPartonStringModel
protected:
private:
void ReggeonCascade();
G4bool PutOnMassShell();
G4bool ExciteParticipants();
G4ExcitedStringVector * BuildStrings();
void GetResidualNucleus(); // 23 Oct. 2009
G4ThreeVector GaussianPt(G4double AveragePt2, G4double maxPtSquare) const;
private:
G4ReactionProduct theProjectile;
G4FTFParticipants theParticipants;
G4Nucleon * TheInvolvedNucleon[250];
G4int NumberOfInvolvedNucleon;
G4FTFParameters *theParameters; // Uzhi 29.03.08
G4FTFParameters *theParameters;
G4DiffractiveExcitation * theExcitation;
G4ElasticHNScattering * theElastic; // Uzhi 29.03.08
G4ElasticHNScattering * theElastic;
G4LorentzVector Residual4Momentum;
G4double ResidualExcitationEnergy;
};
@@ -104,5 +113,3 @@ G4V3DNucleus * G4FTFModel::GetWoundedNucleus() const
}
#endif
@@ -26,8 +26,8 @@
#ifndef G4FTFParameters_h
#define G4FTFParameters_h 1
//
// $Id: G4FTFParameters.hh,v 1.2 2008/06/13 12:49:23 vuzhinsk Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4FTFParameters.hh,v 1.7 2009/10/25 10:50:54 vuzhinsk Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
#include "G4Proton.hh"
class G4FTFParameters
@@ -59,18 +59,37 @@ class G4FTFParameters
void SetAvaragePt2ofElasticScattering(const G4double aPt2);
// --------- Set parameters of excitations ---------------------------
void SetProjMinDiffMass(const G4double aValue); // Uzhi 19.04.08
void SetMagQuarkExchange(const G4double aValue);
void SetSlopeQuarkExchange(const G4double aValue);
void SetDeltaProbAtQuarkExchange(const G4double aValue);
void SetProjMinDiffMass(const G4double aValue);
void SetProjMinNonDiffMass(const G4double aValue);
void SetProbabilityOfProjDiff(const G4double aValue);
void SetTarMinDiffMass(const G4double aValue); // Uzhi 19.04.08
void SetTarMinDiffMass(const G4double aValue);
void SetTarMinNonDiffMass(const G4double aValue);
void SetProbabilityOfTarDiff(const G4double aValue);
void SetAveragePt2(const G4double aValue);
// Perevod mass*GeV Pt2*GeV*GeV
// --------- Set parameters of a string kink --------------------------------
void SetPt2Kink(const G4double aValue);
void SetQuarkProbabilitiesAtGluonSplitUp(const G4double Puubar,
const G4double Pddbar,
const G4double Pssbar );
// --------- Set parameters of nuclear destruction--------------------
void SetCofNuclearDestruction(const G4double aValue);
void SetR2ofNuclearDestruction(const G4double aValue);
void SetExcitationEnergyPerWoundedNucleon(const G4double aValue);
void SetDofNuclearDestruction(const G4double aValue);
void SetPt2ofNuclearDestruction(const G4double aValue);
void SetMaxPt2ofNuclearDestruction(const G4double aValue);
//--------------------------------------------------------------------
// --------- Get geometrical parameteres -----------------------------
G4double GetTotalCrossSection();
G4double GetElasticCrossSection();
@@ -86,16 +105,34 @@ class G4FTFParameters
G4double GetAvaragePt2ofElasticScattering();
// --------- Get parameters of excitations ---------------------------
G4double GetProjMinDiffMass(); // Uzhi 19.04.08
G4double GetMagQuarkExchange();
G4double GetSlopeQuarkExchange();
G4double GetDeltaProbAtQuarkExchange();
G4double GetProjMinDiffMass();
G4double GetProjMinNonDiffMass();
G4double GetProbabilityOfProjDiff();
G4double GetTarMinDiffMass(); // Uzhi 19.04.08
G4double GetTarMinDiffMass();
G4double GetTarMinNonDiffMass();
G4double GetProbabilityOfTarDiff();
G4double GetAveragePt2();
// --------- Get parameters of a string kink --------------------------------
G4double GetPt2Kink();
std::vector<G4double> GetQuarkProbabilitiesAtGluonSplitUp();
// --------- Get parameters of nuclear destruction---------------------
G4double GetCofNuclearDestruction();
G4double GetR2ofNuclearDestruction();
G4double GetExcitationEnergyPerWoundedNucleon();
G4double GetDofNuclearDestruction();
G4double GetPt2ofNuclearDestruction();
G4double GetMaxPt2ofNuclearDestruction();
// private:
G4FTFParameters();
@@ -114,7 +151,11 @@ class G4FTFParameters
G4double FTFGamma0;
// --------- Parameters of excitations -------------------------------
G4double ProjMinDiffMass; // Uzhi 19.04.08
G4double MagQuarkExchange;
G4double SlopeQuarkExchange;
G4double DeltaProbAtQuarkExchange;
G4double ProjMinDiffMass;
G4double ProjMinNonDiffMass;
G4double ProbabilityOfProjDiff;
@@ -123,6 +164,21 @@ class G4FTFParameters
G4double ProbabilityOfTarDiff;
G4double AveragePt2;
// ---------- Parameters of kink -------------------------------------
G4double Pt2kink;
std::vector<G4double> QuarkProbabilitiesAtGluonSplitUp;
// --------- Parameters of nuclear destruction------------------------
G4double CofNuclearDestruction; // Cnd of nuclear destruction
G4double R2ofNuclearDestruction; // R2nd
G4double ExcitationEnergyPerWoundedNucleon;
G4double DofNuclearDestruction; // D for momentum sampling
G4double Pt2ofNuclearDestruction; // Pt2
G4double MaxPt2ofNuclearDestruction; // Max Pt2
};
// --------------------------------------------------------------------
@@ -161,19 +217,24 @@ inline void G4FTFParameters::SetGamma0(const G4double Gamma0)
// --------- Set parameters of elastic scattering ---------------------
inline void G4FTFParameters::SetAvaragePt2ofElasticScattering(const G4double aPt2)
{
//G4cout<<"Pt2 El "<<aPt2<<" "<<std::sqrt(aPt2)<<G4endl;
//G4int Uzhi; G4cin>>Uzhi;
AvaragePt2ofElasticScattering = aPt2;}
// --------- Set parameters of excitations ----------------------------
inline void G4FTFParameters::SetProjMinDiffMass(const G4double aValue) // Uzhi 19.04.08
inline void G4FTFParameters::SetMagQuarkExchange(const G4double aValue)
{MagQuarkExchange = aValue;}
inline void G4FTFParameters::SetSlopeQuarkExchange(const G4double aValue)
{SlopeQuarkExchange = aValue;}
inline void G4FTFParameters::SetDeltaProbAtQuarkExchange(const G4double aValue)
{DeltaProbAtQuarkExchange = aValue;}
inline void G4FTFParameters::SetProjMinDiffMass(const G4double aValue)
{ProjMinDiffMass = aValue*GeV;}
inline void G4FTFParameters::SetProjMinNonDiffMass(const G4double aValue)
{ProjMinNonDiffMass = aValue*GeV;}
inline void G4FTFParameters::SetProbabilityOfProjDiff(const G4double aValue)
{ProbabilityOfProjDiff = aValue;}
inline void G4FTFParameters::SetTarMinDiffMass(const G4double aValue) // Uzhi 19.04.08
inline void G4FTFParameters::SetTarMinDiffMass(const G4double aValue)
{TarMinDiffMass = aValue*GeV;}
inline void G4FTFParameters::SetTarMinNonDiffMass(const G4double aValue)
{TarMinNonDiffMass = aValue*GeV;}
@@ -183,6 +244,36 @@ inline void G4FTFParameters::SetProbabilityOfTarDiff(const G4double aValue)
inline void G4FTFParameters::SetAveragePt2(const G4double aValue)
{AveragePt2 = aValue*GeV*GeV;}
// --------- Set parameters of a string kink --------------------------------
inline void G4FTFParameters::SetPt2Kink(const G4double aValue)
{Pt2kink = aValue;}
inline void G4FTFParameters::SetQuarkProbabilitiesAtGluonSplitUp(
const G4double Puubar,
const G4double Pddbar,
const G4double Pssbar )
{
QuarkProbabilitiesAtGluonSplitUp.push_back(Puubar);
QuarkProbabilitiesAtGluonSplitUp.push_back(Puubar+Pddbar);
QuarkProbabilitiesAtGluonSplitUp.push_back(Puubar+Pddbar+Pssbar);
}
// --------- Set parameters of nuclear destruction--------------------
inline void G4FTFParameters::SetCofNuclearDestruction(const G4double aValue)
{CofNuclearDestruction = aValue;}
inline void G4FTFParameters::SetR2ofNuclearDestruction(const G4double aValue)
{R2ofNuclearDestruction = aValue;}
inline void G4FTFParameters::SetExcitationEnergyPerWoundedNucleon(const G4double aValue)
{ExcitationEnergyPerWoundedNucleon = aValue;}
inline void G4FTFParameters::SetDofNuclearDestruction(const G4double aValue)
{DofNuclearDestruction = aValue;}
inline void G4FTFParameters::SetPt2ofNuclearDestruction(const G4double aValue)
{Pt2ofNuclearDestruction =aValue;}
inline void G4FTFParameters::SetMaxPt2ofNuclearDestruction(const G4double aValue)
{MaxPt2ofNuclearDestruction = aValue;}
// --------- Get geometrical parameteres ------------------------------
inline G4double G4FTFParameters::GetTotalCrossSection() {return FTFXtotal;}
inline G4double G4FTFParameters::GetElasticCrossSection() {return FTFXelastic;}
@@ -210,6 +301,12 @@ inline G4double G4FTFParameters::GetAvaragePt2ofElasticScattering()
{return AvaragePt2ofElasticScattering;}
// --------- Get parameters of excitations ---------------------------
inline G4double G4FTFParameters::GetMagQuarkExchange() {return MagQuarkExchange;}
inline G4double G4FTFParameters::GetSlopeQuarkExchange() {return SlopeQuarkExchange;}
inline G4double G4FTFParameters::GetDeltaProbAtQuarkExchange()
{return DeltaProbAtQuarkExchange;}
inline G4double G4FTFParameters::GetProjMinDiffMass() {return ProjMinDiffMass;}
inline G4double G4FTFParameters::GetProjMinNonDiffMass() {return ProjMinNonDiffMass;}
inline G4double G4FTFParameters::GetProbabilityOfProjDiff() {return ProbabilityOfProjDiff;}
@@ -220,4 +317,23 @@ inline G4double G4FTFParameters::GetProbabilityOfTarDiff() {return Probabilit
inline G4double G4FTFParameters::GetAveragePt2() {return AveragePt2;}
// --------- Get parameters of a string kink --------------------------
inline G4double G4FTFParameters::GetPt2Kink() {return Pt2kink;}
inline std::vector<G4double>
G4FTFParameters::GetQuarkProbabilitiesAtGluonSplitUp()
{return QuarkProbabilitiesAtGluonSplitUp;}
// --------- Get parameters of nuclear destruction---------------------
inline G4double G4FTFParameters::GetCofNuclearDestruction(){return CofNuclearDestruction;}
inline G4double G4FTFParameters::GetR2ofNuclearDestruction(){return R2ofNuclearDestruction;}
inline G4double G4FTFParameters::GetExcitationEnergyPerWoundedNucleon()
{return ExcitationEnergyPerWoundedNucleon;}
inline G4double G4FTFParameters::GetDofNuclearDestruction()
{return DofNuclearDestruction;}
inline G4double G4FTFParameters::GetPt2ofNuclearDestruction(){return Pt2ofNuclearDestruction;}
inline G4double G4FTFParameters::GetMaxPt2ofNuclearDestruction()
{return MaxPt2ofNuclearDestruction;}
#endif
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4FTFParticipants.hh,v 1.5 2008/03/31 15:34:01 vuzhinsk Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4FTFParticipants.hh,v 1.6 2009/08/03 13:14:19 vuzhinsk Exp $
// GEANT4 tag $Name: geant4-09-03 $
//
#ifndef G4FTFParticipants_h
@@ -40,7 +40,7 @@
// ------------------------------------------------------------
#include "G4VParticipants.hh"
#include "G4FTFParameters.hh" // Uzhi 29.03.08
#include "G4FTFParameters.hh"
#include <vector>
#include "G4Nucleon.hh"
#include "G4V3DNucleus.hh"
@@ -61,7 +61,7 @@ class G4FTFParticipants : public G4VParticipants
int operator!=(const G4FTFParticipants &right) const;
void GetList(const G4ReactionProduct &thePrimary,
G4FTFParameters *theParameters); // Uzhi 29.03.08
G4FTFParameters *theParameters);
void StartLoop();
G4bool Next();