Import Geant4 11.4.0 source tree
This commit is contained in:
@@ -6,6 +6,16 @@ It must **not** be used as a substitute for writing good git commit messages!
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
## 2025-08-14 Alberto Ribon (hadr-string-diff-V11-03-00)
|
||||
- G4FTFModel, G4DiffractiveExcitation : introduced the classification of
|
||||
quasi-elastic and diffractive interactions among the inelastic interactions
|
||||
of the FTF string model.
|
||||
In the G4FTFModel class, the boolean flags fIsQuasiElasticInteraction and
|
||||
fIsDiffractiveInteraction - inherited from the base class
|
||||
G4VHighEnergyGenerator - are used in the methods Init and ExciteParticipants.
|
||||
In the class G4DiffractiveExcitation, an extra, boolean parameter is added
|
||||
to the method ExciteParticipants to tag diffractive interactions.
|
||||
|
||||
## 2024-07-18 Alberto Ribon (hadr-string-diff-V11-02-00)
|
||||
- G4FTFParameters : renamed method SetElastis as SetElastic.
|
||||
This does not have any effect - the random sequence stays the same.
|
||||
|
||||
+2
-1
@@ -57,7 +57,8 @@ class G4DiffractiveExcitation {
|
||||
virtual G4bool ExciteParticipants( G4VSplitableHadron* aPartner,
|
||||
G4VSplitableHadron* bPartner,
|
||||
G4FTFParameters* theParameters,
|
||||
G4ElasticHNScattering* theElastic ) const;
|
||||
G4ElasticHNScattering* theElastic,
|
||||
G4bool& isDiffractive ) const;
|
||||
|
||||
virtual void CreateStrings( G4VSplitableHadron* aHadron,
|
||||
G4bool isProjectile,
|
||||
|
||||
+5
-2
@@ -89,7 +89,8 @@ G4DiffractiveExcitation::~G4DiffractiveExcitation() {}
|
||||
G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* projectile,
|
||||
G4VSplitableHadron* target,
|
||||
G4FTFParameters* theParameters,
|
||||
G4ElasticHNScattering* theElastic ) const {
|
||||
G4ElasticHNScattering* theElastic,
|
||||
G4bool& isDiffractive ) const {
|
||||
|
||||
#ifdef debugFTFexcitation
|
||||
G4cout << G4endl << "FTF ExciteParticipants --------------" << G4endl;
|
||||
@@ -294,7 +295,9 @@ G4bool G4DiffractiveExcitation::ExciteParticipants( G4VSplitableHadron* proje
|
||||
if ( G4UniformRand() < common.ProbOfDiffraction ) {
|
||||
|
||||
returnResult = ExciteParticipants_doDiffraction( projectile, target, theParameters, common );
|
||||
|
||||
|
||||
if ( returnResult ) isDiffractive = true;
|
||||
|
||||
} else {
|
||||
|
||||
returnResult = ExciteParticipants_doNonDiffraction( projectile, target, theParameters, common );
|
||||
|
||||
@@ -290,6 +290,9 @@ void G4FTFModel::Init( const G4Nucleus& aNucleus, const G4DynamicParticle& aProj
|
||||
aNucleus.GetA_asInt() < 2 ) theParameters->SetProbabilityOfElasticScatt( 0.0 );
|
||||
|
||||
if ( SampleBinInterval() ) theParticipants.SetBminBmax( GetBmin(), GetBmax() );
|
||||
|
||||
fIsQuasiElasticInteraction = false;
|
||||
fIsDiffractiveInteraction = false;
|
||||
}
|
||||
|
||||
|
||||
@@ -335,8 +338,8 @@ G4ExcitedStringVector* G4FTFModel::GetStrings() {
|
||||
G4cout << "FTF ExciteParticipants Success? " << Success << G4endl;
|
||||
#endif
|
||||
|
||||
if ( Success ) {
|
||||
|
||||
if ( Success ) {
|
||||
|
||||
#ifdef debugFTFmodel
|
||||
G4cout << "FTF BuildStrings ";
|
||||
#endif
|
||||
@@ -850,6 +853,14 @@ G4bool G4FTFModel::ExciteParticipants() {
|
||||
G4cout << "G4FTFModel::ExciteParticipants() " << G4endl;
|
||||
#endif
|
||||
|
||||
// The quasi-elastic boolean flag is set "true" below because it makese easier to
|
||||
// check whether the interaction is quasi-elastic - i.e. all the hadron projectile
|
||||
// interactions with the target nucleons must be of elastic type - : it would be
|
||||
// enough to have one hadron projectile - target nucleon interaction of non-elastic
|
||||
// type to conclude that the interaction is not quasi-elastic.
|
||||
fIsQuasiElasticInteraction = true;
|
||||
fIsDiffractiveInteraction = false;
|
||||
|
||||
G4bool Success( false );
|
||||
G4int MaxNumOfInelCollisions = G4int( theParameters->GetMaxNumberOfCollisions() );
|
||||
if ( MaxNumOfInelCollisions > 0 ) { // Plab > Pbound, normal application of FTF is possible
|
||||
@@ -923,7 +934,7 @@ G4bool G4FTFModel::ExciteParticipants() {
|
||||
// TargetNucleon, Annihilation );
|
||||
// if ( ! Result ) continue;
|
||||
//}
|
||||
if ( theExcitation->ExciteParticipants( projectile, target, theParameters, theElastic ) ) {
|
||||
if ( theExcitation->ExciteParticipants( projectile, target, theParameters, theElastic, fIsDiffractiveInteraction ) ) {
|
||||
InnerSuccess = true;
|
||||
NumberOfNNcollisions++;
|
||||
#ifdef debugBuildString
|
||||
@@ -933,6 +944,7 @@ G4bool G4FTFModel::ExciteParticipants() {
|
||||
// << "After tar " << target->Get4Momentum() << " "
|
||||
// << target->Get4Momentum().mag() << G4endl;
|
||||
#endif
|
||||
fIsQuasiElasticInteraction = false;
|
||||
} else {
|
||||
InnerSuccess = theElastic->ElasticScattering( projectile, target, theParameters );
|
||||
#ifdef debugBuildString
|
||||
@@ -969,6 +981,7 @@ G4bool G4FTFModel::ExciteParticipants() {
|
||||
G4VSplitableHadron* AdditionalString = 0;
|
||||
if ( theAnnihilation->Annihilate( projectile, target, AdditionalString, theParameters ) ) {
|
||||
InnerSuccess = true;
|
||||
fIsQuasiElasticInteraction = false;
|
||||
#ifdef debugBuildString
|
||||
G4cout << "Annihilation successfull. " << "*AdditionalString "
|
||||
<< AdditionalString << G4endl;
|
||||
@@ -993,7 +1006,7 @@ G4bool G4FTFModel::ExciteParticipants() {
|
||||
// Continue the interactions
|
||||
theParticipants.StartLoop();
|
||||
for ( G4int i = 0; i < CurrentInteraction; ++i ) theParticipants.Next();
|
||||
|
||||
|
||||
/*
|
||||
if ( target->GetStatus() == 4 ) {
|
||||
// Skipping possible interactions of the annihilated nucleons
|
||||
|
||||
Reference in New Issue
Block a user