Import Geant4 10.0.0 source tree
This commit is contained in:
+30
-31
@@ -24,59 +24,58 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4DiffractiveExcitation.hh 74627 2013-10-17 07:04:38Z gcosmo $
|
||||
|
||||
#ifndef G4DiffractiveExcitation_h
|
||||
#define G4DiffractiveExcitation_h 1
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// ---------------- G4DiffractiveExcitation --------------
|
||||
// by Gunter Folger, October 1998.
|
||||
// diffractive Excitation used by strings models
|
||||
// Take a projectile and a target
|
||||
// excite the projectile and target
|
||||
// Take a projectile and a target
|
||||
// excite the projectile and target
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#include "globals.hh"
|
||||
class G4VSplitableHadron;
|
||||
class G4ExcitedString;
|
||||
#include "G4FTFParameters.hh"
|
||||
#include "G4ElasticHNScattering.hh" // Uzhi 3.09.09
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
class G4DiffractiveExcitation
|
||||
{
|
||||
class G4VSplitableHadron;
|
||||
class G4ExcitedString;
|
||||
|
||||
|
||||
class G4DiffractiveExcitation {
|
||||
|
||||
public:
|
||||
G4DiffractiveExcitation();
|
||||
virtual ~G4DiffractiveExcitation();
|
||||
|
||||
G4DiffractiveExcitation();
|
||||
virtual ~G4DiffractiveExcitation();
|
||||
virtual G4bool ExciteParticipants( G4VSplitableHadron* aPartner,
|
||||
G4VSplitableHadron* bPartner,
|
||||
G4FTFParameters* theParameters,
|
||||
G4ElasticHNScattering* theElastic ) const;
|
||||
|
||||
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 void CreateStrings( G4VSplitableHadron* aHadron,
|
||||
G4bool isProjectile,
|
||||
G4ExcitedString*& FirstString,
|
||||
G4ExcitedString*& SecondString,
|
||||
G4FTFParameters* theParameters ) const;
|
||||
private:
|
||||
|
||||
G4DiffractiveExcitation(const G4DiffractiveExcitation &right);
|
||||
G4DiffractiveExcitation( const G4DiffractiveExcitation& right );
|
||||
const G4DiffractiveExcitation& operator=( const G4DiffractiveExcitation& right );
|
||||
int operator==( const G4DiffractiveExcitation& right ) const;
|
||||
int operator!=( const G4DiffractiveExcitation& right ) const;
|
||||
|
||||
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;
|
||||
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;
|
||||
void UnpackBaryon( G4int IdPDG, G4int& Q1, G4int& Q2, G4int& Q3 ) const;
|
||||
G4int NewNucleonId( G4int Q1, G4int Q2, G4int Q3 ) const;
|
||||
|
||||
};
|
||||
|
||||
|
||||
+16
-24
@@ -24,50 +24,42 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4DiffractiveHHScatterer.hh 74627 2013-10-17 07:04:38Z gcosmo $
|
||||
|
||||
#ifndef G4DiffractiveHHScatterer_h
|
||||
#define G4DiffractiveHHScatterer_h 1
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// ---------------- G4DiffractiveExcitation --------------
|
||||
// by Gunter Folger, October 1998.
|
||||
// diffractive Excitation used by strings models
|
||||
// Take a projectile and a target
|
||||
// excite the projectile and target
|
||||
// Take a projectile and a target
|
||||
// excite the projectile and target
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#include "globals.hh"
|
||||
class G4DiffractiveExcitation;
|
||||
class G4LundStringFragmentation;
|
||||
class G4KineticTrack;
|
||||
#include "G4KineticTrackVector.hh"
|
||||
#include "G4FTFParameters.hh"
|
||||
#include "G4ExcitedString.hh"
|
||||
|
||||
class G4DiffractiveHHScatterer
|
||||
{
|
||||
public:
|
||||
class G4DiffractiveExcitation;
|
||||
class G4LundStringFragmentation;
|
||||
class G4KineticTrack;
|
||||
|
||||
G4DiffractiveHHScatterer();
|
||||
virtual ~G4DiffractiveHHScatterer();
|
||||
|
||||
// G4KineticTrackVector * Scatter(const G4KineticTrack & aTrack, const G4KineticTrack & bTrack);
|
||||
class G4DiffractiveHHScatterer {
|
||||
|
||||
virtual void CreateStrings() const;
|
||||
/*
|
||||
(G4VSplitableHadron * aHadron,
|
||||
G4bool isProjectile,
|
||||
G4ExcitedString * FirstString,
|
||||
G4ExcitedString * SecondString,
|
||||
G4FTFParameters *theParameters) const;
|
||||
*/
|
||||
private:
|
||||
public:
|
||||
G4DiffractiveHHScatterer();
|
||||
virtual ~G4DiffractiveHHScatterer();
|
||||
virtual void CreateStrings() const;
|
||||
|
||||
private:
|
||||
const G4DiffractiveExcitation* theExcitation;
|
||||
G4LundStringFragmentation* theStringFragmentation;
|
||||
|
||||
const G4DiffractiveExcitation * theExcitation;
|
||||
G4LundStringFragmentation * theStringFragmentation;
|
||||
G4FTFParameters *theParameters;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+23
-29
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4DiffractiveSplitableHadron.hh 74627 2013-10-17 07:04:38Z gcosmo $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
|
||||
@@ -43,41 +43,35 @@
|
||||
#include "G4Nucleon.hh"
|
||||
#include "G4Parton.hh"
|
||||
|
||||
class G4DiffractiveSplitableHadron : public G4VSplitableHadron
|
||||
{
|
||||
|
||||
public:
|
||||
class G4DiffractiveSplitableHadron : public G4VSplitableHadron {
|
||||
|
||||
G4DiffractiveSplitableHadron();
|
||||
G4DiffractiveSplitableHadron(const G4ReactionProduct & aPrimary);
|
||||
G4DiffractiveSplitableHadron(const G4Nucleon & aNucleon);
|
||||
G4DiffractiveSplitableHadron(const G4VKineticNucleon * aNucleon);
|
||||
~G4DiffractiveSplitableHadron();
|
||||
public:
|
||||
G4DiffractiveSplitableHadron();
|
||||
G4DiffractiveSplitableHadron( const G4ReactionProduct& aPrimary );
|
||||
G4DiffractiveSplitableHadron( const G4Nucleon& aNucleon );
|
||||
G4DiffractiveSplitableHadron( const G4VKineticNucleon* aNucleon );
|
||||
~G4DiffractiveSplitableHadron();
|
||||
|
||||
private:
|
||||
G4DiffractiveSplitableHadron(const G4DiffractiveSplitableHadron &);
|
||||
G4DiffractiveSplitableHadron& operator=(const G4DiffractiveSplitableHadron &);
|
||||
int operator==(const G4DiffractiveSplitableHadron &right) const;
|
||||
int operator!=(const G4DiffractiveSplitableHadron &right) const;
|
||||
void SplitUp();
|
||||
G4Parton* GetNextParton() ;
|
||||
G4Parton* GetNextAntiParton();
|
||||
|
||||
public:
|
||||
void SplitUp();
|
||||
G4Parton * GetNextParton() ;
|
||||
G4Parton * GetNextAntiParton();
|
||||
void SetFirstParton( G4int PDGcode );
|
||||
void SetSecondParton( G4int PDGcode );
|
||||
|
||||
void SetFirstParton(G4int PDGcode); // Uzhi 24.11.10
|
||||
void SetSecondParton(G4int PDGcode); // Uzhi 24.11.10
|
||||
private:
|
||||
G4DiffractiveSplitableHadron( const G4DiffractiveSplitableHadron& );
|
||||
G4DiffractiveSplitableHadron& operator=( const G4DiffractiveSplitableHadron& );
|
||||
int operator==( const G4DiffractiveSplitableHadron& right ) const;
|
||||
int operator!=( const G4DiffractiveSplitableHadron& right ) const;
|
||||
|
||||
private:
|
||||
G4int Diquark( G4int aquark, G4int bquark, G4int Spin ) const;
|
||||
void ChooseStringEnds( G4int PDGcode, G4int* aEnd, G4int* bEnd ) const;
|
||||
|
||||
//implementation
|
||||
G4int Diquark(G4int aquark,G4int bquark,G4int Spin) const; // to splitable hadron
|
||||
void ChooseStringEnds(G4int PDGcode,G4int * aEnd, G4int * bEnd) const; // to splitable hadron
|
||||
|
||||
private:
|
||||
G4Parton *Parton[2];
|
||||
G4int PartonIndex;
|
||||
G4Parton* Parton[2];
|
||||
G4int PartonIndex;
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
+18
-23
@@ -24,48 +24,43 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4ElasticHNScattering.hh 74627 2013-10-17 07:04:38Z gcosmo $
|
||||
|
||||
#ifndef G4ElasticHNScattering_h
|
||||
#define G4ElasticHNScattering_h 1
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// ---------------- G4ElasticHNScattering --------------
|
||||
// by V. Uzhinsky, March 2008.
|
||||
// elastic scattering used by Fritiof model
|
||||
// Take a projectile and a target
|
||||
// scatter the projectile and target
|
||||
// Take a projectile and a target
|
||||
// scatter the projectile and target
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#include "globals.hh"
|
||||
class G4VSplitableHadron;
|
||||
class G4ExcitedString;
|
||||
#include "G4FTFParameters.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
class G4ElasticHNScattering
|
||||
{
|
||||
class G4VSplitableHadron;
|
||||
class G4ExcitedString;
|
||||
|
||||
|
||||
class G4ElasticHNScattering {
|
||||
|
||||
public:
|
||||
G4ElasticHNScattering();
|
||||
virtual ~G4ElasticHNScattering();
|
||||
virtual G4bool ElasticScattering( G4VSplitableHadron* aPartner, G4VSplitableHadron* bPartner,
|
||||
G4FTFParameters* theParameters ) const;
|
||||
|
||||
G4ElasticHNScattering();
|
||||
virtual ~G4ElasticHNScattering();
|
||||
|
||||
virtual G4bool ElasticScattering (G4VSplitableHadron *aPartner,
|
||||
G4VSplitableHadron * bPartner,
|
||||
G4FTFParameters *theParameters) const;
|
||||
|
||||
private:
|
||||
|
||||
G4ElasticHNScattering(const G4ElasticHNScattering &right);
|
||||
|
||||
G4ThreeVector GaussianPt(G4double AveragePt2, G4double maxPtSquare) const;
|
||||
|
||||
const G4ElasticHNScattering & operator=(const G4ElasticHNScattering &right);
|
||||
int operator==(const G4ElasticHNScattering &right) const;
|
||||
int operator!=(const G4ElasticHNScattering &right) const;
|
||||
|
||||
G4ElasticHNScattering( const G4ElasticHNScattering& right );
|
||||
G4ThreeVector GaussianPt( G4double AveragePt2, G4double maxPtSquare ) const;
|
||||
const G4ElasticHNScattering& operator=( const G4ElasticHNScattering& right );
|
||||
int operator==( const G4ElasticHNScattering& right ) const;
|
||||
int operator!=( const G4ElasticHNScattering& right ) const;
|
||||
|
||||
};
|
||||
|
||||
|
||||
+22
-24
@@ -24,51 +24,49 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4FTFAnnihilation.hh 74627 2013-10-17 07:04:38Z gcosmo $
|
||||
|
||||
#ifndef G4FTFAnnihilation_h
|
||||
#define G4FTFAnnihilation_h 1
|
||||
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
//
|
||||
// ---------------- G4FTFAnnihilation --------------
|
||||
// by Vladimir Uzhinsky, November 2010.
|
||||
// Annihilation used by Fritiof (FTF) model
|
||||
// Takes a projectile and a target
|
||||
// Produces strings (excited hadrons)
|
||||
// Takes a projectile and a target
|
||||
// Produces strings (excited hadrons)
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#include "globals.hh"
|
||||
class G4VSplitableHadron;
|
||||
class G4ExcitedString;
|
||||
#include "G4FTFParameters.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
class G4FTFAnnihilation
|
||||
{
|
||||
class G4VSplitableHadron;
|
||||
class G4ExcitedString;
|
||||
|
||||
|
||||
class G4FTFAnnihilation {
|
||||
|
||||
public:
|
||||
G4FTFAnnihilation();
|
||||
virtual ~G4FTFAnnihilation();
|
||||
|
||||
G4FTFAnnihilation();
|
||||
virtual ~G4FTFAnnihilation();
|
||||
|
||||
virtual G4bool Annihilate (G4VSplitableHadron *aPartner,
|
||||
G4VSplitableHadron * bPartner,
|
||||
G4VSplitableHadron *& AdditionalString,
|
||||
G4FTFParameters *theParameters) const;
|
||||
virtual G4bool Annihilate( G4VSplitableHadron* aPartner,
|
||||
G4VSplitableHadron* bPartner,
|
||||
G4VSplitableHadron*& AdditionalString,
|
||||
G4FTFParameters* theParameters ) const;
|
||||
|
||||
private:
|
||||
G4FTFAnnihilation( const G4FTFAnnihilation& right );
|
||||
const G4FTFAnnihilation& operator=( const G4FTFAnnihilation& right );
|
||||
int operator==( const G4FTFAnnihilation& right ) const;
|
||||
int operator!=( const G4FTFAnnihilation& right ) const;
|
||||
|
||||
G4FTFAnnihilation(const G4FTFAnnihilation &right);
|
||||
|
||||
G4ThreeVector GaussianPt(G4double AveragePt2, G4double maxPtSquare) const;
|
||||
G4double ChooseX(G4double Alpha, G4double Beta) const;
|
||||
|
||||
void UnpackBaryon(G4int IdPDG, G4int &Q1, G4int &Q2, G4int &Q3) const;
|
||||
|
||||
const G4FTFAnnihilation & operator=(const G4FTFAnnihilation &right);
|
||||
int operator==(const G4FTFAnnihilation &right) const;
|
||||
int operator!=(const G4FTFAnnihilation &right) const;
|
||||
G4ThreeVector GaussianPt( G4double AveragePt2, G4double maxPtSquare ) const;
|
||||
G4double ChooseX( G4double Alpha, G4double Beta ) const;
|
||||
void UnpackBaryon( G4int IdPDG, G4int& Q1, G4int& Q2, G4int& Q3 ) const;
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4FTFModel.hh 74627 2013-10-17 07:04:38Z gcosmo $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
// Class Description
|
||||
// Final state production code for hadron inelastic scattering above 20 GeV
|
||||
// Final state production code for hadron inelastic scattering above 3 GeV
|
||||
// based on the modeling ansatz used in FRITIOF.
|
||||
// To be used in your physics list in case you need this physics.
|
||||
// In this case you want to register an object of this class with an object
|
||||
@@ -46,81 +46,97 @@
|
||||
// class implementing the excitation in the FTF Parton String Model
|
||||
// ------------------------------------------------------------
|
||||
|
||||
|
||||
#include "G4VPartonStringModel.hh"
|
||||
|
||||
class G4VSplitableHadron;
|
||||
class G4ExcitedString;
|
||||
|
||||
#include "G4FTFParameters.hh"
|
||||
#include "G4FTFParticipants.hh"
|
||||
|
||||
#include "G4ExcitedStringVector.hh"
|
||||
#include "G4DiffractiveExcitation.hh"
|
||||
#include "G4ElasticHNScattering.hh"
|
||||
#include "G4FTFAnnihilation.hh"
|
||||
#include "G4Proton.hh"
|
||||
#include "G4Neutron.hh"
|
||||
|
||||
class G4FTFModel : public G4VPartonStringModel
|
||||
{
|
||||
class G4VSplitableHadron;
|
||||
class G4ExcitedString;
|
||||
|
||||
|
||||
class G4FTFModel : public G4VPartonStringModel {
|
||||
|
||||
public:
|
||||
G4FTFModel(const G4String& modelName = "FTF");
|
||||
//G4FTFModel(G4double , G4double , G4double );
|
||||
//G4FTFModel(G4DiffractiveExcitation * anExcitation);
|
||||
~G4FTFModel();
|
||||
private:
|
||||
G4FTFModel(const G4FTFModel &right);
|
||||
const G4FTFModel & operator=(const G4FTFModel &right);
|
||||
int operator==(const G4FTFModel &right) const;
|
||||
int operator!=(const G4FTFModel &right) const;
|
||||
public:
|
||||
void Init(const G4Nucleus & aNucleus, const G4DynamicParticle & aProjectile);
|
||||
G4ExcitedStringVector * GetStrings();
|
||||
G4V3DNucleus * GetWoundedNucleus() const;
|
||||
virtual void ModelDescription(std::ostream&) const;
|
||||
G4FTFModel( const G4String& modelName = "FTF" );
|
||||
~G4FTFModel();
|
||||
|
||||
protected:
|
||||
|
||||
private:
|
||||
void StoreInvolvedNucleon();
|
||||
void ReggeonCascade();
|
||||
G4bool PutOnMassShell();
|
||||
G4bool ExciteParticipants();
|
||||
G4ExcitedStringVector * BuildStrings();
|
||||
void GetResidualNucleus();
|
||||
void AjustTargetNucleonForAnnihilation(G4VSplitableHadron *SelectedAntiBaryon,
|
||||
G4VSplitableHadron *SelectedTargetNucleon);
|
||||
G4ThreeVector GaussianPt(G4double AveragePt2, G4double maxPtSquare) const;
|
||||
|
||||
private:
|
||||
void Init( const G4Nucleus& aNucleus, const G4DynamicParticle& aProjectile );
|
||||
G4ExcitedStringVector* GetStrings();
|
||||
G4V3DNucleus* GetWoundedNucleus() const;
|
||||
G4V3DNucleus* GetTargetNucleus() const;
|
||||
G4V3DNucleus* GetProjectileNucleus() const;
|
||||
|
||||
G4ReactionProduct theProjectile;
|
||||
G4FTFParticipants theParticipants;
|
||||
virtual void ModelDescription( std::ostream& ) const;
|
||||
|
||||
private:
|
||||
G4FTFModel( const G4FTFModel& right );
|
||||
const G4FTFModel& operator=( const G4FTFModel& right );
|
||||
int operator==( const G4FTFModel& right ) const;
|
||||
int operator!=( const G4FTFModel& right ) const;
|
||||
|
||||
void StoreInvolvedNucleon();
|
||||
void ReggeonCascade();
|
||||
G4bool PutOnMassShell();
|
||||
G4bool ExciteParticipants();
|
||||
G4ExcitedStringVector* BuildStrings();
|
||||
void GetResiduals();
|
||||
G4bool AdjustNucleons( G4VSplitableHadron* SelectedAntiBaryon,
|
||||
G4Nucleon* ProjectileNucleon,
|
||||
G4VSplitableHadron* SelectedTargetNucleon,
|
||||
G4Nucleon* TargetNucleon,
|
||||
G4bool Annihilation );
|
||||
G4ThreeVector GaussianPt( G4double AveragePt2, G4double maxPtSquare ) const;
|
||||
|
||||
G4ReactionProduct theProjectile;
|
||||
G4FTFParticipants theParticipants;
|
||||
|
||||
G4Nucleon * TheInvolvedNucleon[250];
|
||||
G4int NumberOfInvolvedNucleon;
|
||||
G4int NumberOfInvolvedTargetNucleon;
|
||||
G4Nucleon* TheInvolvedNucleonsOfTarget[250];
|
||||
G4int NumberOfInvolvedNucleonsOfTarget;
|
||||
|
||||
G4Nucleon * TheInvolvedNucleonOfProjectile[250];
|
||||
G4int NumberOfInvolvedNucleonOfProjectile;
|
||||
G4Nucleon* TheInvolvedNucleonsOfProjectile[250];
|
||||
G4int NumberOfInvolvedNucleonsOfProjectile;
|
||||
|
||||
G4FTFParameters *theParameters;
|
||||
G4DiffractiveExcitation * theExcitation;
|
||||
G4ElasticHNScattering * theElastic;
|
||||
G4FTFAnnihilation * theAnnihilation; // Uzhi 17.11.10
|
||||
G4FTFParameters* theParameters;
|
||||
G4DiffractiveExcitation* theExcitation;
|
||||
G4ElasticHNScattering* theElastic;
|
||||
G4FTFAnnihilation* theAnnihilation;
|
||||
|
||||
std::vector<G4VSplitableHadron *> theAdditionalString; // Uzhi 17.11.10
|
||||
std::vector< G4VSplitableHadron* > theAdditionalString;
|
||||
|
||||
G4LorentzVector Residual4Momentum;
|
||||
G4double ResidualExcitationEnergy;
|
||||
G4double LowEnergyLimit;
|
||||
G4bool HighEnergyInter;
|
||||
|
||||
G4LorentzVector ProjectileResidual4Momentum;
|
||||
G4int ProjectileResidualMassNumber;
|
||||
G4int ProjectileResidualCharge;
|
||||
G4double ProjectileResidualExcitationEnergy;
|
||||
|
||||
G4LorentzVector TargetResidual4Momentum;
|
||||
G4int TargetResidualMassNumber;
|
||||
G4int TargetResidualCharge;
|
||||
G4double TargetResidualExcitationEnergy;
|
||||
|
||||
};
|
||||
|
||||
// ------------------------------------------------------------
|
||||
inline
|
||||
G4V3DNucleus * G4FTFModel::GetWoundedNucleus() const
|
||||
{
|
||||
return theParticipants.GetWoundedNucleus();
|
||||
|
||||
inline G4V3DNucleus* G4FTFModel::GetWoundedNucleus() const {
|
||||
return theParticipants.GetWoundedNucleus();
|
||||
}
|
||||
|
||||
|
||||
inline G4V3DNucleus* G4FTFModel::GetTargetNucleus() const {
|
||||
return theParticipants.GetWoundedNucleus();
|
||||
}
|
||||
|
||||
|
||||
inline G4V3DNucleus* G4FTFModel::GetProjectileNucleus() const {
|
||||
return theParticipants.GetProjectileNucleus();
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
+364
-282
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4FTFParameters.hh 74627 2013-10-17 07:04:38Z gcosmo $
|
||||
// GEANT4 tag $Name: $
|
||||
//
|
||||
#ifndef G4FTFParameters_h
|
||||
@@ -36,367 +36,449 @@
|
||||
#include "G4Neutron.hh"
|
||||
#include "G4ChipsComponentXS.hh"
|
||||
|
||||
class G4FTFParameters
|
||||
{
|
||||
|
||||
class G4FTFParameters {
|
||||
|
||||
public:
|
||||
G4FTFParameters(const G4ParticleDefinition * , G4int theA,
|
||||
G4int theZ,
|
||||
G4double s);
|
||||
// G4FTFParameters(const G4ParticleDefinition * , G4double theA,
|
||||
// G4double theZ,
|
||||
// G4double s);
|
||||
G4FTFParameters( const G4ParticleDefinition* , G4int theA, G4int theZ, G4double s );
|
||||
~G4FTFParameters();
|
||||
|
||||
~G4FTFParameters();
|
||||
// Set geometrical parameteres
|
||||
void SethNcmsEnergy( const G4double s );
|
||||
void SetTotalCrossSection( const G4double Xtotal );
|
||||
void SetElastisCrossSection( const G4double Xelastic );
|
||||
void SetInelasticCrossSection( const G4double Xinelastic );
|
||||
void SetProbabilityOfElasticScatt( const G4double Xtotal, const G4double Xelastic );
|
||||
void SetProbabilityOfElasticScatt( const G4double aValue );
|
||||
void SetProbabilityOfAnnihilation( const G4double aValue );
|
||||
void SetRadiusOfHNinteractions2( const G4double Radius2 );
|
||||
|
||||
// --------- Set geometrical parameteres -----------------------------
|
||||
void SethNcmsEnergy(const G4double s);
|
||||
void SetTotalCrossSection(const G4double Xtotal);
|
||||
void SetElastisCrossSection(const G4double Xelastic);
|
||||
void SetInelasticCrossSection(const G4double Xinelastic);
|
||||
void SetProbabilityOfElasticScatt(const G4double Xtotal, const G4double Xelastic);
|
||||
void SetProbabilityOfElasticScatt(const G4double aValue);
|
||||
void SetProbabilityOfAnnihilation(const G4double aValue); // Uzhi 18.11.10
|
||||
void SetSlope( const G4double Slope );
|
||||
void SetGamma0( const G4double Gamma0 );
|
||||
G4double GammaElastic( const G4double impactsquare );
|
||||
|
||||
void SetRadiusOfHNinteractions2(const G4double Radius2);
|
||||
void SetSlope(const G4double Slope);
|
||||
void SetGamma0(const G4double Gamma0);
|
||||
// Set parameters of elastic scattering
|
||||
void SetAvaragePt2ofElasticScattering( const G4double aPt2 );
|
||||
|
||||
G4double GammaElastic(const G4double impactsquare)
|
||||
{return (FTFGamma0 * std::exp(-FTFSlope * impactsquare));};
|
||||
// Set parameters of excitations
|
||||
void SetParams( const G4int ProcN,
|
||||
const G4double A1, const G4double B1, const G4double A2, const G4double B2,
|
||||
const G4double A3, const G4double Atop, const G4double Ymin );
|
||||
|
||||
// --------- Set parameters of elastic scattering --------------------
|
||||
void SetAvaragePt2ofElasticScattering(const G4double aPt2);
|
||||
void SetDeltaProbAtQuarkExchange( const G4double aValue );
|
||||
void SetProbOfSameQuarkExchange( const G4double aValue );
|
||||
|
||||
// --------- Set parameters of excitations ---------------------------
|
||||
void SetMagQuarkExchange(const G4double aValue);
|
||||
void SetSlopeQuarkExchange(const G4double aValue);
|
||||
void SetDeltaProbAtQuarkExchange(const G4double aValue);
|
||||
void SetProbOfSameQuarkExchange(const G4double aValue);
|
||||
void SetProjMinDiffMass( const G4double aValue );
|
||||
void SetProjMinNonDiffMass( const G4double aValue );
|
||||
void SetProbabilityOfProjDiff( const G4double aValue );
|
||||
|
||||
void SetProjMinDiffMass(const G4double aValue);
|
||||
void SetProjMinNonDiffMass(const G4double aValue);
|
||||
void SetProbabilityOfProjDiff(const G4double aValue);
|
||||
void SetTarMinDiffMass( const G4double aValue );
|
||||
void SetTarMinNonDiffMass( const G4double aValue );
|
||||
void SetProbabilityOfTarDiff( const G4double aValue );
|
||||
|
||||
void SetTarMinDiffMass(const G4double aValue);
|
||||
void SetTarMinNonDiffMass(const G4double aValue);
|
||||
void SetProbabilityOfTarDiff(const G4double aValue);
|
||||
void SetAveragePt2( const G4double aValue );
|
||||
void SetProbLogDistr( const G4double aValue );
|
||||
|
||||
void SetAveragePt2(const G4double aValue);
|
||||
void SetProbLogDistr(const G4double aValue);
|
||||
// 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 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 SetMaxNumberOfCollisions( const G4double aValue, const G4double bValue );
|
||||
void SetProbOfInteraction( const G4double aValue );
|
||||
|
||||
// --------- Set parameters of nuclear destruction--------------------
|
||||
void SetMaxNumberOfCollisions(const G4double aValue, const G4double bValue);
|
||||
void SetProbOfInteraction(const G4double aValue);
|
||||
void SetCofNuclearDestruction( const G4double aValue );
|
||||
void SetR2ofNuclearDestruction( const G4double aValue );
|
||||
|
||||
void SetCofNuclearDestruction(const G4double aValue);
|
||||
void SetR2ofNuclearDestruction(const G4double aValue);
|
||||
void SetExcitationEnergyPerWoundedNucleon( const G4double aValue );
|
||||
|
||||
void SetExcitationEnergyPerWoundedNucleon(const G4double aValue);
|
||||
void SetDofNuclearDestruction( const G4double aValue );
|
||||
void SetPt2ofNuclearDestruction( const G4double aValue );
|
||||
void SetMaxPt2ofNuclearDestruction( 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();
|
||||
G4double GetInelasticCrossSection();
|
||||
|
||||
//--------------------------------------------------------------------
|
||||
// --------- Get geometrical parameteres -----------------------------
|
||||
G4double GetTotalCrossSection();
|
||||
G4double GetElasticCrossSection();
|
||||
G4double GetInelasticCrossSection();
|
||||
G4double GetProbabilityOfInteraction( const G4double impactsquare );
|
||||
G4double GetInelasticProbability( const G4double impactsquare );
|
||||
G4double GetProbabilityOfElasticScatt();
|
||||
G4double GetSlope();
|
||||
G4double GetProbabilityOfAnnihilation();
|
||||
|
||||
G4double GetProbabilityOfInteraction(const G4double impactsquare);
|
||||
G4double GetInelasticProbability(const G4double impactsquare);
|
||||
G4double GetProbabilityOfElasticScatt();
|
||||
G4double GetSlope();
|
||||
G4double GetProbabilityOfAnnihilation(); // Uzhi 18.11.10
|
||||
// Get parameters of elastic scattering
|
||||
G4double GetAvaragePt2ofElasticScattering();
|
||||
|
||||
// --------- Get parameters of elastic scattering --------------------
|
||||
G4double GetAvaragePt2ofElasticScattering();
|
||||
// Get parameters of excitations
|
||||
G4double GetProcProb( const G4int ProcN, const G4double y );
|
||||
|
||||
// --------- Get parameters of excitations ---------------------------
|
||||
G4double GetMagQuarkExchange();
|
||||
G4double GetSlopeQuarkExchange();
|
||||
G4double GetDeltaProbAtQuarkExchange();
|
||||
G4double GetProbOfSameQuarkExchange();
|
||||
G4double GetDeltaProbAtQuarkExchange();
|
||||
G4double GetProbOfSameQuarkExchange();
|
||||
|
||||
G4double GetProjMinDiffMass();
|
||||
G4double GetProjMinNonDiffMass();
|
||||
G4double GetProbabilityOfProjDiff();
|
||||
G4double GetProjMinDiffMass();
|
||||
G4double GetProjMinNonDiffMass();
|
||||
|
||||
G4double GetTarMinDiffMass();
|
||||
G4double GetTarMinNonDiffMass();
|
||||
G4double GetProbabilityOfTarDiff();
|
||||
G4double GetTarMinDiffMass();
|
||||
G4double GetTarMinNonDiffMass();
|
||||
|
||||
G4double GetAveragePt2();
|
||||
G4double GetProbLogDistr();
|
||||
G4double GetAveragePt2();
|
||||
G4double GetProbLogDistr();
|
||||
|
||||
// --------- Get parameters of a string kink --------------------------------
|
||||
G4double GetPt2Kink();
|
||||
std::vector<G4double> GetQuarkProbabilitiesAtGluonSplitUp();
|
||||
// Get parameters of a string kink
|
||||
G4double GetPt2Kink();
|
||||
std::vector< G4double > GetQuarkProbabilitiesAtGluonSplitUp();
|
||||
|
||||
// --------- Get parameters of nuclear destruction---------------------
|
||||
G4double GetMaxNumberOfCollisions();
|
||||
G4double GetProbOfInteraction();
|
||||
// Get parameters of nuclear destruction
|
||||
G4double GetMaxNumberOfCollisions();
|
||||
G4double GetProbOfInteraction();
|
||||
|
||||
G4double GetCofNuclearDestruction();
|
||||
G4double GetR2ofNuclearDestruction();
|
||||
G4double GetCofNuclearDestruction();
|
||||
G4double GetR2ofNuclearDestruction();
|
||||
|
||||
G4double GetExcitationEnergyPerWoundedNucleon();
|
||||
G4double GetExcitationEnergyPerWoundedNucleon();
|
||||
|
||||
G4double GetDofNuclearDestruction();
|
||||
G4double GetPt2ofNuclearDestruction();
|
||||
G4double GetMaxPt2ofNuclearDestruction();
|
||||
G4double GetDofNuclearDestruction();
|
||||
G4double GetPt2ofNuclearDestruction();
|
||||
G4double GetMaxPt2ofNuclearDestruction();
|
||||
|
||||
// private:
|
||||
//private:
|
||||
G4FTFParameters();
|
||||
|
||||
G4FTFParameters();
|
||||
// Initial energy of hN interactions
|
||||
G4double FTFhNcmsEnergy; // Initial hN CMS energy
|
||||
|
||||
// ------------ Initial energy of hN interactions --------------------
|
||||
G4double FTFhNcmsEnergy; // Initial hN CMS energy
|
||||
// hN cross section manager
|
||||
G4ChipsComponentXS* FTFxsManager;
|
||||
|
||||
// ------------ hN cross section manager -----------------------------
|
||||
G4ChipsComponentXS* FTFxsManager;
|
||||
// ------------ Geometrical parameteres ------------------------------
|
||||
G4double FTFXtotal; // Total X in mb
|
||||
G4double FTFXelastic; // Elastic X in mb
|
||||
G4double FTFXinelastic; // Inelastic X in mb
|
||||
G4double FTFXannihilation; // Annihilation X in mb // Uzhi 18.11.10
|
||||
G4double ProbabilityOfAnnihilation; // Xannih/Xinelast // Uzhi 18.11.10
|
||||
G4double ProbabilityOfElasticScatt; // Xel/Xtot
|
||||
G4double RadiusOfHNinteractions2; // Xtot/pi, in fn^2
|
||||
G4double FTFSlope; // in fm^-1
|
||||
G4double AvaragePt2ofElasticScattering; // in MeV^2
|
||||
G4double FTFGamma0;
|
||||
// Geometrical parameteres
|
||||
G4double FTFXtotal; // Total X in mb
|
||||
G4double FTFXelastic; // Elastic X in mb
|
||||
G4double FTFXinelastic; // Inelastic X in mb
|
||||
G4double FTFXannihilation; // Annihilation X in mb
|
||||
G4double ProbabilityOfAnnihilation; // Xannih/Xinelast
|
||||
G4double ProbabilityOfElasticScatt; // Xel/Xtot
|
||||
G4double RadiusOfHNinteractions2; // Xtot/pi, in fm^2
|
||||
G4double FTFSlope; // in fm^-1
|
||||
G4double AvaragePt2ofElasticScattering; // in MeV^2
|
||||
G4double FTFGamma0;
|
||||
|
||||
// --------- Parameters of excitations -------------------------------
|
||||
G4double MagQuarkExchange;
|
||||
G4double SlopeQuarkExchange;
|
||||
G4double DeltaProbAtQuarkExchange;
|
||||
G4double ProbOfSameQuarkExchange;
|
||||
// Parameters of excitations
|
||||
G4double ProcParams[4][7];
|
||||
|
||||
G4double ProjMinDiffMass;
|
||||
G4double ProjMinNonDiffMass;
|
||||
G4double ProbabilityOfProjDiff;
|
||||
G4double DeltaProbAtQuarkExchange;
|
||||
G4double ProbOfSameQuarkExchange;
|
||||
|
||||
G4double TarMinDiffMass;
|
||||
G4double TarMinNonDiffMass;
|
||||
G4double ProbabilityOfTarDiff;
|
||||
G4double ProjMinDiffMass;
|
||||
G4double ProjMinNonDiffMass;
|
||||
|
||||
G4double AveragePt2;
|
||||
G4double ProbLogDistr;
|
||||
G4double TarMinDiffMass;
|
||||
G4double TarMinNonDiffMass;
|
||||
|
||||
// ---------- Parameters of kink -------------------------------------
|
||||
G4double Pt2kink;
|
||||
std::vector<G4double> QuarkProbabilitiesAtGluonSplitUp;
|
||||
G4double AveragePt2;
|
||||
G4double ProbLogDistr;
|
||||
|
||||
// --------- Parameters of nuclear destruction------------------------
|
||||
G4double MaxNumberOfCollisions;
|
||||
G4double ProbOfInelInteraction;
|
||||
// Parameters of kink
|
||||
G4double Pt2kink;
|
||||
std::vector< G4double > QuarkProbabilitiesAtGluonSplitUp;
|
||||
|
||||
G4double CofNuclearDestruction; // Cnd of nuclear destruction
|
||||
G4double R2ofNuclearDestruction; // R2nd
|
||||
// Parameters of nuclear destruction
|
||||
G4double MaxNumberOfCollisions;
|
||||
G4double ProbOfInelInteraction;
|
||||
|
||||
G4double ExcitationEnergyPerWoundedNucleon;
|
||||
G4double CofNuclearDestruction; // Cnd of nuclear destruction
|
||||
G4double R2ofNuclearDestruction; // R2nd
|
||||
|
||||
G4double DofNuclearDestruction; // D for momentum sampling
|
||||
G4double Pt2ofNuclearDestruction; // Pt2
|
||||
G4double MaxPt2ofNuclearDestruction; // Max Pt2
|
||||
G4double ExcitationEnergyPerWoundedNucleon;
|
||||
|
||||
G4double DofNuclearDestruction; // D for momentum sampling
|
||||
G4double Pt2ofNuclearDestruction; // Pt2
|
||||
G4double MaxPt2ofNuclearDestruction; // Max Pt2
|
||||
|
||||
// G4-MT changes
|
||||
private:
|
||||
static G4ThreadLocal bool chipsComponentXSisInitialized;
|
||||
static G4ThreadLocal G4ChipsComponentXS* chipsComponentXSinstance;
|
||||
|
||||
};
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
inline void G4FTFParameters::SethNcmsEnergy(const G4double S)
|
||||
{FTFhNcmsEnergy = S;}
|
||||
|
||||
// --------- Set geometrical parameteres ------------------------------
|
||||
inline void G4FTFParameters::SetTotalCrossSection(const G4double Xtotal)
|
||||
{FTFXtotal = Xtotal;}
|
||||
inline G4double G4FTFParameters::GammaElastic( const G4double impactsquare ) {
|
||||
return ( FTFGamma0 * std::exp( -FTFSlope * impactsquare ) );
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetElastisCrossSection(const G4double Xelastic)
|
||||
{FTFXelastic = Xelastic;}
|
||||
inline void G4FTFParameters::SethNcmsEnergy( const G4double S ) {
|
||||
FTFhNcmsEnergy = S;
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetInelasticCrossSection(const G4double Xinelastic)
|
||||
{FTFXinelastic = Xinelastic;}
|
||||
// Set geometrical parameteres
|
||||
|
||||
inline void G4FTFParameters::SetProbabilityOfElasticScatt(const G4double Xtotal,
|
||||
const G4double Xelastic)
|
||||
{
|
||||
if(Xtotal==0.) {ProbabilityOfElasticScatt = 0.;}
|
||||
else {ProbabilityOfElasticScatt = Xelastic/Xtotal;};
|
||||
}
|
||||
inline void G4FTFParameters::SetTotalCrossSection( const G4double Xtotal ) {
|
||||
FTFXtotal = Xtotal;
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetProbabilityOfElasticScatt(const G4double aValue)
|
||||
{ProbabilityOfElasticScatt = aValue;}
|
||||
inline void G4FTFParameters::SetElastisCrossSection( const G4double Xelastic ) {
|
||||
FTFXelastic = Xelastic;
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetProbabilityOfAnnihilation(const G4double aValue)
|
||||
{ProbabilityOfAnnihilation = aValue;} // Uzhi 18.11.10
|
||||
inline void G4FTFParameters::SetInelasticCrossSection( const G4double Xinelastic ) {
|
||||
FTFXinelastic = Xinelastic;
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetRadiusOfHNinteractions2(const G4double Radius2)
|
||||
{RadiusOfHNinteractions2 = Radius2;}
|
||||
inline void G4FTFParameters::SetProbabilityOfElasticScatt( const G4double Xtotal,
|
||||
const G4double Xelastic ) {
|
||||
if ( Xtotal == 0.0 ) {
|
||||
ProbabilityOfElasticScatt = 0.0;
|
||||
} else {
|
||||
ProbabilityOfElasticScatt = Xelastic / Xtotal;
|
||||
}
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetSlope(const G4double Slope)
|
||||
{FTFSlope = 12.84/Slope;} // Slope is in GeV^-2, FTFSlope in fm^-2
|
||||
inline void G4FTFParameters::SetProbabilityOfElasticScatt( const G4double aValue ) {
|
||||
ProbabilityOfElasticScatt = aValue;
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetGamma0(const G4double Gamma0)
|
||||
{FTFGamma0 = Gamma0;}
|
||||
inline void G4FTFParameters::SetProbabilityOfAnnihilation( const G4double aValue ) {
|
||||
ProbabilityOfAnnihilation = aValue;
|
||||
}
|
||||
|
||||
// --------- Set parameters of elastic scattering ---------------------
|
||||
inline void G4FTFParameters::SetAvaragePt2ofElasticScattering(const G4double aPt2)
|
||||
{
|
||||
AvaragePt2ofElasticScattering = aPt2;}
|
||||
inline void G4FTFParameters::SetRadiusOfHNinteractions2( const G4double Radius2 ) {
|
||||
RadiusOfHNinteractions2 = Radius2;
|
||||
}
|
||||
|
||||
// --------- Set parameters of excitations ----------------------------
|
||||
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::SetProbOfSameQuarkExchange(const G4double aValue)
|
||||
{ProbOfSameQuarkExchange = aValue;}
|
||||
inline void G4FTFParameters::SetSlope( const G4double Slope ) {
|
||||
FTFSlope = 12.84 / Slope; // Slope is in GeV^-2, FTFSlope in fm^-2
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetProjMinDiffMass(const G4double aValue)
|
||||
{ProjMinDiffMass = aValue*CLHEP::GeV;}
|
||||
inline void G4FTFParameters::SetProjMinNonDiffMass(const G4double aValue)
|
||||
{ProjMinNonDiffMass = aValue*CLHEP::GeV;}
|
||||
inline void G4FTFParameters::SetProbabilityOfProjDiff(const G4double aValue)
|
||||
{ProbabilityOfProjDiff = aValue;}
|
||||
inline void G4FTFParameters::SetGamma0( const G4double Gamma0 ) {
|
||||
FTFGamma0 = Gamma0;
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetTarMinDiffMass(const G4double aValue)
|
||||
{TarMinDiffMass = aValue*CLHEP::GeV;}
|
||||
inline void G4FTFParameters::SetTarMinNonDiffMass(const G4double aValue)
|
||||
{TarMinNonDiffMass = aValue*CLHEP::GeV;}
|
||||
inline void G4FTFParameters::SetProbabilityOfTarDiff(const G4double aValue)
|
||||
{ProbabilityOfTarDiff = aValue;}
|
||||
// Set parameters of elastic scattering
|
||||
inline void G4FTFParameters::SetAvaragePt2ofElasticScattering( const G4double aPt2 ) {
|
||||
AvaragePt2ofElasticScattering = aPt2;
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetAveragePt2(const G4double aValue)
|
||||
{AveragePt2 = aValue*CLHEP::GeV*CLHEP::GeV;}
|
||||
// Set parameters of excitations
|
||||
|
||||
inline void G4FTFParameters::SetProbLogDistr(const G4double aValue)
|
||||
{ProbLogDistr = aValue;}
|
||||
inline void G4FTFParameters::SetParams( const G4int ProcN,
|
||||
const G4double A1, const G4double B1, const G4double A2,
|
||||
const G4double B2, const G4double A3, const G4double Atop,
|
||||
const G4double Ymin ) {
|
||||
ProcParams[ProcN][0] = A1; ProcParams[ProcN][1] = B1;
|
||||
ProcParams[ProcN][2] = A2; ProcParams[ProcN][3] = B2;
|
||||
ProcParams[ProcN][4] = A3;
|
||||
ProcParams[ProcN][5] = Atop; ProcParams[ProcN][6] = Ymin;
|
||||
}
|
||||
|
||||
// --------- Set parameters of a string kink --------------------------------
|
||||
inline void G4FTFParameters::SetPt2Kink(const G4double aValue)
|
||||
{Pt2kink = aValue;}
|
||||
inline void G4FTFParameters::SetDeltaProbAtQuarkExchange( const G4double aValue ) {
|
||||
DeltaProbAtQuarkExchange = 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);
|
||||
}
|
||||
inline void G4FTFParameters::SetProbOfSameQuarkExchange( const G4double aValue ) {
|
||||
ProbOfSameQuarkExchange = aValue;
|
||||
}
|
||||
|
||||
// --------- Set parameters of nuclear destruction--------------------
|
||||
inline void G4FTFParameters::SetMaxNumberOfCollisions(const G4double Plab,
|
||||
const G4double Pbound)
|
||||
{
|
||||
if(Plab > Pbound)
|
||||
{
|
||||
MaxNumberOfCollisions = Plab/Pbound;
|
||||
SetProbOfInteraction(-1.);
|
||||
} else
|
||||
{
|
||||
// MaxNumberOfCollisions = -1.;
|
||||
// SetProbOfInteraction(std::exp(0.25*(Plab-Pbound)));
|
||||
MaxNumberOfCollisions = 1;
|
||||
SetProbOfInteraction(-1.);
|
||||
}
|
||||
}
|
||||
inline void G4FTFParameters::SetProbOfInteraction(const G4double aValue)
|
||||
{ProbOfInelInteraction = aValue;}
|
||||
inline void G4FTFParameters::SetProjMinDiffMass( const G4double aValue ) {
|
||||
ProjMinDiffMass = aValue*CLHEP::GeV;
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetCofNuclearDestruction(const G4double aValue)
|
||||
{CofNuclearDestruction = aValue;}
|
||||
inline void G4FTFParameters::SetR2ofNuclearDestruction(const G4double aValue)
|
||||
{R2ofNuclearDestruction = aValue;}
|
||||
inline void G4FTFParameters::SetProjMinNonDiffMass( const G4double aValue ) {
|
||||
ProjMinNonDiffMass = aValue*CLHEP::GeV;
|
||||
}
|
||||
|
||||
inline void G4FTFParameters::SetExcitationEnergyPerWoundedNucleon(const G4double aValue)
|
||||
{ExcitationEnergyPerWoundedNucleon = aValue;}
|
||||
inline void G4FTFParameters::SetTarMinDiffMass( const G4double aValue ) {
|
||||
TarMinDiffMass = aValue*CLHEP::GeV;
|
||||
}
|
||||
|
||||
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;}
|
||||
inline void G4FTFParameters::SetTarMinNonDiffMass( const G4double aValue ) {
|
||||
TarMinNonDiffMass = aValue*CLHEP::GeV;
|
||||
}
|
||||
|
||||
// --------- Get geometrical parameteres ------------------------------
|
||||
inline G4double G4FTFParameters::GetTotalCrossSection() {return FTFXtotal;}
|
||||
inline G4double G4FTFParameters::GetElasticCrossSection() {return FTFXelastic;}
|
||||
inline G4double G4FTFParameters::GetInelasticCrossSection() {return FTFXinelastic;}
|
||||
inline void G4FTFParameters::SetAveragePt2( const G4double aValue ) {
|
||||
AveragePt2 = aValue*CLHEP::GeV*CLHEP::GeV;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetSlope() {return FTFSlope;}
|
||||
inline void G4FTFParameters::SetProbLogDistr( const G4double aValue ) {
|
||||
ProbLogDistr = aValue;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProbabilityOfInteraction(const G4double impactsquare)
|
||||
{
|
||||
if(RadiusOfHNinteractions2 > impactsquare) {return 1.;}
|
||||
else {return 0.;}
|
||||
}
|
||||
// Set parameters of a string kink
|
||||
|
||||
inline G4double G4FTFParameters::GetProbabilityOfElasticScatt()
|
||||
{return ProbabilityOfElasticScatt;}
|
||||
inline void G4FTFParameters::SetPt2Kink( const G4double aValue ) {
|
||||
Pt2kink = aValue;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetInelasticProbability( const G4double impactsquare)
|
||||
{
|
||||
G4double Gamma = GammaElastic(impactsquare);
|
||||
return 2 * Gamma - Gamma *Gamma;
|
||||
}
|
||||
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 );
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProbabilityOfAnnihilation()
|
||||
{return ProbabilityOfAnnihilation;}
|
||||
// Uzhi 18.11.10
|
||||
// Set parameters of nuclear destruction
|
||||
inline void G4FTFParameters::SetMaxNumberOfCollisions( const G4double Plab,
|
||||
const G4double Pbound ) {
|
||||
if ( Plab > Pbound ) {
|
||||
MaxNumberOfCollisions = Plab/Pbound;
|
||||
SetProbOfInteraction( -1.0 );
|
||||
} else {
|
||||
//MaxNumberOfCollisions = -1.0;
|
||||
//SetProbOfInteraction( std::exp( 0.25*(Plab-Pbound) ) );
|
||||
MaxNumberOfCollisions = 1;
|
||||
SetProbOfInteraction( -1.0 );
|
||||
}
|
||||
}
|
||||
|
||||
// --------- Get parameters of elastic scattering ---------------------
|
||||
inline G4double G4FTFParameters::GetAvaragePt2ofElasticScattering()
|
||||
{return AvaragePt2ofElasticScattering;}
|
||||
inline void G4FTFParameters::SetProbOfInteraction( const G4double aValue ) {
|
||||
ProbOfInelInteraction = aValue;
|
||||
}
|
||||
|
||||
// --------- 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::GetProbOfSameQuarkExchange(){return ProbOfSameQuarkExchange;}
|
||||
inline void G4FTFParameters::SetCofNuclearDestruction( const G4double aValue ) {
|
||||
CofNuclearDestruction = aValue;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProjMinDiffMass() {return ProjMinDiffMass;}
|
||||
inline G4double G4FTFParameters::GetProjMinNonDiffMass() {return ProjMinNonDiffMass;}
|
||||
inline G4double G4FTFParameters::GetProbabilityOfProjDiff() {return ProbabilityOfProjDiff;}
|
||||
inline void G4FTFParameters::SetR2ofNuclearDestruction( const G4double aValue ) {
|
||||
R2ofNuclearDestruction = aValue;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetTarMinDiffMass() {return TarMinDiffMass;}
|
||||
inline G4double G4FTFParameters::GetTarMinNonDiffMass() {return TarMinNonDiffMass;}
|
||||
inline G4double G4FTFParameters::GetProbabilityOfTarDiff() {return ProbabilityOfTarDiff;}
|
||||
inline void G4FTFParameters::SetExcitationEnergyPerWoundedNucleon( const G4double aValue ) {
|
||||
ExcitationEnergyPerWoundedNucleon = aValue;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetAveragePt2() {return AveragePt2;}
|
||||
inline G4double G4FTFParameters::GetProbLogDistr() {return ProbLogDistr;}
|
||||
inline void G4FTFParameters::SetDofNuclearDestruction( const G4double aValue ) {
|
||||
DofNuclearDestruction = aValue;
|
||||
}
|
||||
|
||||
// --------- Get parameters of a string kink --------------------------
|
||||
inline G4double G4FTFParameters::GetPt2Kink() {return Pt2kink;}
|
||||
inline std::vector<G4double>
|
||||
G4FTFParameters::GetQuarkProbabilitiesAtGluonSplitUp()
|
||||
{return QuarkProbabilitiesAtGluonSplitUp;}
|
||||
inline void G4FTFParameters::SetPt2ofNuclearDestruction( const G4double aValue ) {
|
||||
Pt2ofNuclearDestruction = aValue;
|
||||
}
|
||||
|
||||
// --------- Get parameters of nuclear destruction---------------------
|
||||
inline G4double G4FTFParameters::GetMaxNumberOfCollisions(){return MaxNumberOfCollisions;}
|
||||
inline G4double G4FTFParameters::GetProbOfInteraction() {return ProbOfInelInteraction;}
|
||||
inline void G4FTFParameters::SetMaxPt2ofNuclearDestruction( const G4double aValue ) {
|
||||
MaxPt2ofNuclearDestruction = aValue;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetCofNuclearDestruction(){return CofNuclearDestruction;}
|
||||
inline G4double G4FTFParameters::GetR2ofNuclearDestruction(){return R2ofNuclearDestruction;}
|
||||
// Get geometrical parameteres
|
||||
inline G4double G4FTFParameters::GetTotalCrossSection() {
|
||||
return FTFXtotal;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetExcitationEnergyPerWoundedNucleon()
|
||||
{return ExcitationEnergyPerWoundedNucleon;}
|
||||
inline G4double G4FTFParameters::GetElasticCrossSection() {
|
||||
return FTFXelastic;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetInelasticCrossSection() {
|
||||
return FTFXinelastic;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetSlope() {
|
||||
return FTFSlope;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProbabilityOfInteraction( const G4double impactsquare ) {
|
||||
if ( RadiusOfHNinteractions2 > impactsquare ) {
|
||||
return 1.0;
|
||||
} else {
|
||||
return 0.0;
|
||||
}
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProbabilityOfElasticScatt() {
|
||||
return ProbabilityOfElasticScatt;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetInelasticProbability( const G4double impactsquare ) {
|
||||
G4double Gamma = GammaElastic( impactsquare );
|
||||
return 2*Gamma - Gamma*Gamma;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProbabilityOfAnnihilation() {
|
||||
return ProbabilityOfAnnihilation;
|
||||
}
|
||||
|
||||
// Get parameters of elastic scattering
|
||||
inline G4double G4FTFParameters::GetAvaragePt2ofElasticScattering() {
|
||||
return AvaragePt2ofElasticScattering;
|
||||
}
|
||||
|
||||
// Get parameters of excitations
|
||||
|
||||
inline G4double G4FTFParameters::GetDeltaProbAtQuarkExchange() {
|
||||
return DeltaProbAtQuarkExchange;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProbOfSameQuarkExchange() {
|
||||
return ProbOfSameQuarkExchange;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProjMinDiffMass() {
|
||||
return ProjMinDiffMass;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProjMinNonDiffMass() {
|
||||
return ProjMinNonDiffMass;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetTarMinDiffMass() {
|
||||
return TarMinDiffMass;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetTarMinNonDiffMass() {
|
||||
return TarMinNonDiffMass;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetAveragePt2() {
|
||||
return AveragePt2;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProbLogDistr() {
|
||||
return ProbLogDistr;
|
||||
}
|
||||
|
||||
// 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::GetMaxNumberOfCollisions() {
|
||||
return MaxNumberOfCollisions;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetProbOfInteraction() {
|
||||
return ProbOfInelInteraction;
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
inline G4double G4FTFParameters::GetDofNuclearDestruction()
|
||||
{return DofNuclearDestruction;}
|
||||
inline G4double G4FTFParameters::GetPt2ofNuclearDestruction(){return Pt2ofNuclearDestruction;}
|
||||
inline G4double G4FTFParameters::GetMaxPt2ofNuclearDestruction()
|
||||
{return MaxPt2ofNuclearDestruction;}
|
||||
#endif
|
||||
|
||||
+27
-45
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id$
|
||||
// $Id: G4FTFParticipants.hh 74627 2013-10-17 07:04:38Z gcosmo $
|
||||
//
|
||||
|
||||
#ifndef G4FTFParticipants_h
|
||||
@@ -47,61 +47,43 @@
|
||||
#include "G4ReactionProduct.hh"
|
||||
#include "G4InteractionContent.hh"
|
||||
|
||||
class G4FTFParticipants : public G4VParticipants
|
||||
{
|
||||
|
||||
class G4FTFParticipants : public G4VParticipants {
|
||||
|
||||
public:
|
||||
G4FTFParticipants();
|
||||
const G4FTFParticipants & operator=(const G4FTFParticipants &right);
|
||||
~G4FTFParticipants();
|
||||
G4FTFParticipants();
|
||||
const G4FTFParticipants& operator=( const G4FTFParticipants& right );
|
||||
~G4FTFParticipants();
|
||||
int operator==( const G4FTFParticipants& right ) const;
|
||||
int operator!=( const G4FTFParticipants& right ) const;
|
||||
|
||||
int operator==(const G4FTFParticipants &right) const;
|
||||
int operator!=(const G4FTFParticipants &right) const;
|
||||
//---------------------------------------------------
|
||||
void InitProjectileNucleus(G4int theZ, G4int theA);
|
||||
void SetProjectileNucleus(G4V3DNucleus * aNucleus);
|
||||
G4V3DNucleus * GetProjectileNucleus();
|
||||
//---------------------------------------------------
|
||||
void GetList(const G4ReactionProduct &thePrimary,
|
||||
G4FTFParameters *theParameters);
|
||||
void GetList( const G4ReactionProduct& thePrimary, G4FTFParameters* theParameters );
|
||||
void StartLoop();
|
||||
G4bool Next();
|
||||
void SortInteractionsIncT();
|
||||
void ShiftInteractionTime();
|
||||
G4InteractionContent& GetInteraction();
|
||||
std::vector< G4InteractionContent* > theInteractions;
|
||||
|
||||
void StartLoop();
|
||||
G4bool Next();
|
||||
//Vova const G4InteractionContent & GetInteraction() const;
|
||||
G4InteractionContent & GetInteraction();
|
||||
|
||||
std::vector<G4InteractionContent *> theInteractions;
|
||||
G4V3DNucleus *theProjectileNucleus;
|
||||
private:
|
||||
|
||||
//A.R. 25-Jul-2012 Coverity fix : copy constructor becomes private.
|
||||
G4FTFParticipants(const G4FTFParticipants &right);
|
||||
|
||||
// std::vector<G4InteractionContent *> theInteractions;
|
||||
|
||||
G4int currentInteraction;
|
||||
G4FTFParticipants( const G4FTFParticipants& right );
|
||||
G4int currentInteraction;
|
||||
|
||||
};
|
||||
|
||||
|
||||
inline
|
||||
void G4FTFParticipants::StartLoop()
|
||||
{
|
||||
currentInteraction=-1;
|
||||
}
|
||||
|
||||
inline
|
||||
G4bool G4FTFParticipants::Next()
|
||||
{
|
||||
return ++currentInteraction < static_cast<G4int>(theInteractions.size());
|
||||
inline void G4FTFParticipants::StartLoop() {
|
||||
currentInteraction = -1;
|
||||
}
|
||||
|
||||
|
||||
//inline
|
||||
//const G4InteractionContent & G4FTFParticipants::GetInteraction() const
|
||||
inline
|
||||
G4InteractionContent & G4FTFParticipants::GetInteraction()
|
||||
{
|
||||
return *theInteractions[currentInteraction];
|
||||
inline G4bool G4FTFParticipants::Next() {
|
||||
return ++currentInteraction < static_cast< G4int >( theInteractions.size() );
|
||||
}
|
||||
|
||||
|
||||
inline G4InteractionContent& G4FTFParticipants::GetInteraction() {
|
||||
return *theInteractions[ currentInteraction ];
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user