Import Geant4 9.2.0 source tree
This commit is contained in:
+20
-37
@@ -24,8 +24,8 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4FTFParticipants.cc,v 1.7 2007/04/24 10:33:00 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-09-01 $
|
||||
// $Id: G4FTFParticipants.cc,v 1.9 2008/06/13 12:49:23 vuzhinsk Exp $
|
||||
// GEANT4 tag $Name: geant4-09-02 $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
@@ -37,19 +37,15 @@
|
||||
// with original FRITIOF mode. November - December 2006.
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#include "G4FTFParameters.hh" // Uzhi 29.03.08
|
||||
#include "G4FTFParticipants.hh"
|
||||
#include "G4DiffractiveSplitableHadron.hh"
|
||||
#include "G4VSplitableHadron.hh"
|
||||
//#include "G4PomeronCrossSection.hh" // Uzhi
|
||||
#include "G4FTFCrossSection.hh" // Uzhi
|
||||
#include "Randomize.hh"
|
||||
#include <utility>
|
||||
|
||||
#include <utility> // Uzhi 29.03.08
|
||||
|
||||
// Class G4FTFParticipants
|
||||
|
||||
|
||||
|
||||
G4FTFParticipants::G4FTFParticipants()
|
||||
{
|
||||
}
|
||||
@@ -74,7 +70,8 @@ G4FTFParticipants::~G4FTFParticipants()
|
||||
//int G4FTFParticipants::operator!=(const G4FTFParticipants &right) const
|
||||
//{}
|
||||
|
||||
void G4FTFParticipants::BuildInteractions(const G4ReactionProduct &thePrimary)
|
||||
void G4FTFParticipants::GetList(const G4ReactionProduct &thePrimary,
|
||||
G4FTFParameters *theParameters) // Uzhi 29.03.08
|
||||
{
|
||||
|
||||
StartLoop(); // reset Loop over Interactions
|
||||
@@ -82,27 +79,13 @@ void G4FTFParticipants::BuildInteractions(const G4ReactionProduct &thePrimary)
|
||||
for(unsigned int i=0; i<theInteractions.size(); i++) delete theInteractions[i];
|
||||
theInteractions.clear();
|
||||
|
||||
// --- cms energy
|
||||
|
||||
G4double s = sqr( thePrimary.GetMass() ) +
|
||||
sqr( G4Proton::Proton()->GetPDGMass() ) +
|
||||
2*thePrimary.GetTotalEnergy()*G4Proton::Proton()->GetPDGMass();
|
||||
|
||||
// G4cout << " primary Total E (GeV): " << thePrimary.GetTotalEnergy()/GeV << G4endl;
|
||||
// G4cout << " primary Mass (GeV): " << thePrimary.GetMass() /GeV << G4endl;
|
||||
// G4cout << "cms std::sqrt(s) (GeV) = " << std::sqrt(s) / GeV << G4endl;
|
||||
|
||||
// G4PomeronCrossSection theCrossSection(thePrimary.GetDefinition()); // Uzhi
|
||||
G4FTFCrossSection theCrossSection(thePrimary.GetDefinition(),s); // Uzhi
|
||||
|
||||
|
||||
G4double deltaxy=2 * fermi;
|
||||
G4double deltaxy=2 * fermi; // Extra nuclear radius
|
||||
|
||||
G4VSplitableHadron * primarySplitable=new G4DiffractiveSplitableHadron(thePrimary);
|
||||
|
||||
G4double xyradius;
|
||||
xyradius =theNucleus->GetOuterRadius() + deltaxy;
|
||||
|
||||
G4double xyradius;
|
||||
xyradius =theNucleus->GetOuterRadius() + deltaxy; // Impact parameter sampling
|
||||
// radius
|
||||
G4bool nucleusNeedsShift = true;
|
||||
|
||||
while ( theInteractions.size() == 0 )
|
||||
@@ -114,14 +97,18 @@ void G4FTFParticipants::BuildInteractions(const G4ReactionProduct &thePrimary)
|
||||
|
||||
theNucleus->StartLoop();
|
||||
G4Nucleon * nucleon;
|
||||
while ( (nucleon=theNucleus->GetNextNucleon()) )
|
||||
//G4int InterNumber=0; // Uzhi
|
||||
//while ( (nucleon=theNucleus->GetNextNucleon())&& (InterNumber < 1) ) // Uzhi
|
||||
while ( (nucleon=theNucleus->GetNextNucleon()) ) // Uzhi
|
||||
{
|
||||
G4double impact2= sqr(impactX - nucleon->GetPosition().x()) +
|
||||
sqr(impactY - nucleon->GetPosition().y());
|
||||
// if ( theCrossSection.GetInelasticProbability(s,impact2) // Uzhi
|
||||
if ( theCrossSection.GetInelasticProbability( impact2/fermi/fermi) // Uzhi
|
||||
sqr(impactY - nucleon->GetPosition().y());
|
||||
|
||||
// if ( theParameters->GetInelasticProbability(impact2/fermi/fermi) // Uzhi 29.03.08
|
||||
if ( theParameters->GetProbabilityOfInteraction(impact2/fermi/fermi) // Uzhi 29.03.08
|
||||
> G4UniformRand() )
|
||||
{
|
||||
//InterNumber++;
|
||||
if ( nucleusNeedsShift )
|
||||
{ // on the first hit, shift nucleus
|
||||
nucleusNeedsShift = false;
|
||||
@@ -135,7 +122,8 @@ void G4FTFParticipants::BuildInteractions(const G4ReactionProduct &thePrimary)
|
||||
targetSplitable= new G4DiffractiveSplitableHadron(*nucleon);
|
||||
nucleon->Hit(targetSplitable);
|
||||
}
|
||||
G4InteractionContent * aInteraction = new G4InteractionContent(primarySplitable);
|
||||
G4InteractionContent * aInteraction =
|
||||
new G4InteractionContent(primarySplitable);
|
||||
aInteraction->SetTarget(targetSplitable);
|
||||
theInteractions.push_back(aInteraction);
|
||||
}
|
||||
@@ -151,8 +139,3 @@ void G4FTFParticipants::BuildInteractions(const G4ReactionProduct &thePrimary)
|
||||
|
||||
|
||||
// Implementation (private) methods
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user