Import Geant4 10.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 12:08:39 +02:00
parent 286caacf06
commit c9b32a6c0a
5770 changed files with 1050949 additions and 367105 deletions
@@ -63,13 +63,6 @@ G4bool G4Clebsch::operator!=(const G4Clebsch &right) const
}
const std::vector<G4double>& G4Clebsch::GetLogs() const
{
return logs;
}
G4double G4Clebsch::Weight(G4int isoIn1, G4int iso3In1,
G4int isoIn2, G4int iso3In2,
G4int isoOut1, G4int isoOut2) const
@@ -208,7 +201,7 @@ G4double G4Clebsch::Wigner3J(G4double j1, G4double j2, G4double j3,
sign *= (G4int) std::pow(-1.,sigma);
}
const std::vector<G4double> logVector = GetLogs();
const std::vector<G4double>& logVector = logs;//GetLogs();
size_t n1 = G4lrint(n[0]);
// Some boundary checks
@@ -35,6 +35,7 @@
#include "G4KineticTrackVector.hh"
#include "G4VCrossSectionSource.hh"
#include "G4HadTmpUtil.hh"
#include "G4AutoLock.hh"
const G4int G4CollisionComposite::nPoints = 32;
@@ -43,11 +44,13 @@ const G4double G4CollisionComposite::theT[nPoints] =
G4CollisionComposite::G4CollisionComposite()
{
G4MUTEXINIT( bufferMutex );
}
G4CollisionComposite::~G4CollisionComposite()
{
{
G4MUTEXDESTROY(bufferMutex);
std::for_each(components.begin(), components.end(), G4Delete());
}
@@ -64,6 +67,7 @@ G4double G4CollisionComposite::CrossSection(const G4KineticTrack& trk1,
}
else
{
G4AutoLock l(&bufferMutex);
// waiting for mutable to enable buffering.
const_cast<G4CollisionComposite *>(this)->BufferCrossSection(trk1.GetDefinition(), trk2.GetDefinition());
// G4cerr << "Buffer filled, reying with sqrts = "<< (trk1.Get4Momentum()+trk2.Get4Momentum()).mag() <<G4endl;
@@ -177,8 +181,8 @@ BufferCrossSection(const G4ParticleDefinition * aP, const G4ParticleDefinition *
}
G4LorentzVector a4Momentum(aE, aMom);
G4LorentzVector b4Momentum(bE, bMom);
G4KineticTrack a(const_cast<G4ParticleDefinition *>(aP), atime, aPosition, a4Momentum);
G4KineticTrack b(const_cast<G4ParticleDefinition *>(bP), btime, bPosition, b4Momentum);
G4KineticTrack a(aP, atime, aPosition, a4Momentum);
G4KineticTrack b(bP, btime, bPosition, b4Momentum);
for (i=0; i<components.size(); i++)
{
@@ -68,8 +68,8 @@ G4bool G4CollisionNNElastic::IsInCharge(const G4KineticTrack& trk1,
{
G4bool isInCharge = false;
G4ParticleDefinition* def1 = trk1.GetDefinition();
G4ParticleDefinition* def2 = trk2.GetDefinition();
const G4ParticleDefinition* def1 = trk1.GetDefinition();
const G4ParticleDefinition* def2 = trk2.GetDefinition();
if ( (def1 == G4Proton::ProtonDefinition() &&
def2 == G4Proton::ProtonDefinition() )
@@ -66,8 +66,8 @@ G4bool G4CollisionnpElastic::IsInCharge(const G4KineticTrack& trk1,
{
G4bool isInCharge = false;
G4ParticleDefinition* def1 = trk1.GetDefinition();
G4ParticleDefinition* def2 = trk2.GetDefinition();
const G4ParticleDefinition* def1 = trk1.GetDefinition();
const G4ParticleDefinition* def2 = trk2.GetDefinition();
if ( (def1 == G4Neutron::NeutronDefinition() &&
def2 == G4Proton::ProtonDefinition() )
@@ -43,6 +43,11 @@ G4ThreadLocal G4XDeltaDeltaTable *G4ConcreteNNToDeltaDelta::theSigmaTable_G4MT_T
G4ConcreteNNToDeltaDelta::G4ConcreteNNToDeltaDelta(const G4ParticleDefinition* aPrimary,
const G4ParticleDefinition* bPrimary,
const G4ParticleDefinition* aSecondary,
const G4ParticleDefinition* bSecondary):G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL){ ;;; if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XDeltaDeltaTable ; G4XDeltaDeltaTable &theSigmaTable = *theSigmaTable_G4MT_TLS_; ;;; establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,theSigmaTable);
const G4ParticleDefinition* bSecondary) :
G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL)
{
if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XDeltaDeltaTable;
G4XDeltaDeltaTable &theSigmaTable = *theSigmaTable_G4MT_TLS_;
establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,theSigmaTable);
}
@@ -37,7 +37,13 @@ G4ThreadLocal G4XDeltaDeltastarTable *G4ConcreteNNToDeltaDeltastar::theSigmaTabl
G4ConcreteNNToDeltaDeltastar::G4ConcreteNNToDeltaDeltastar(const G4ParticleDefinition* aPrimary,
const G4ParticleDefinition* bPrimary,
const G4ParticleDefinition* aSecondary,
const G4ParticleDefinition* bSecondary):G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL){ ;;; if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XDeltaDeltastarTable ; G4XDeltaDeltastarTable &theSigmaTable = *theSigmaTable_G4MT_TLS_; ;;; establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,G4DeltaDeltastarBuilder(bSecondary->GetParticleName(),theSigmaTable));
const G4ParticleDefinition* bSecondary) :
G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL)
{
if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XDeltaDeltastarTable;
G4XDeltaDeltastarTable &theSigmaTable = *theSigmaTable_G4MT_TLS_;
establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,
G4DeltaDeltastarBuilder(bSecondary->GetParticleName(),theSigmaTable));
G4double chargeBalance = aPrimary->GetPDGCharge()+bPrimary->GetPDGCharge();
chargeBalance -= aSecondary->GetPDGCharge();
chargeBalance -= bSecondary->GetPDGCharge();
@@ -53,5 +59,7 @@ G4ConcreteNNToDeltaDeltastar::G4ConcreteNNToDeltaDeltastar(const G4ParticleDefin
}
G4ConcreteNNToDeltaDeltastar::~G4ConcreteNNToDeltaDeltastar()
{ if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XDeltaDeltastarTable ;
{
if (theSigmaTable_G4MT_TLS_) delete theSigmaTable_G4MT_TLS_;
theSigmaTable_G4MT_TLS_=0;
}
@@ -36,9 +36,17 @@ G4ThreadLocal G4XDeltaNstarTable *G4ConcreteNNToDeltaNstar::theSigmaTable_G4MT_T
G4ConcreteNNToDeltaNstar::G4ConcreteNNToDeltaNstar(const G4ParticleDefinition* aPrimary,
const G4ParticleDefinition* bPrimary,
const G4ParticleDefinition* aSecondary,
const G4ParticleDefinition* bSecondary):G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL){ ;;; if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XDeltaNstarTable ; G4XDeltaNstarTable &theSigmaTable = *theSigmaTable_G4MT_TLS_; ;;; establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,G4DeltaNstarBuilder(bSecondary->GetParticleName(),theSigmaTable));
const G4ParticleDefinition* bSecondary) :
G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL)
{
if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XDeltaNstarTable;
G4XDeltaNstarTable &theSigmaTable = *theSigmaTable_G4MT_TLS_;
establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,
G4DeltaNstarBuilder(bSecondary->GetParticleName(),theSigmaTable));
}
G4ConcreteNNToDeltaNstar::~G4ConcreteNNToDeltaNstar()
{ if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XDeltaNstarTable ;
{
if (theSigmaTable_G4MT_TLS_) delete theSigmaTable_G4MT_TLS_;
theSigmaTable_G4MT_TLS_=0;
}
@@ -35,9 +35,16 @@ G4ThreadLocal G4XNDeltaTable *G4ConcreteNNToNDelta::theSigmaTable_G4MT_TLS_ = 0;
G4ConcreteNNToNDelta::G4ConcreteNNToNDelta(const G4ParticleDefinition* aPrimary,
const G4ParticleDefinition* bPrimary,
const G4ParticleDefinition* aSecondary,
const G4ParticleDefinition* bSecondary):G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL){ ;;; if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNDeltaTable ; G4XNDeltaTable &theSigmaTable = *theSigmaTable_G4MT_TLS_; ;;; establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,theSigmaTable);
const G4ParticleDefinition* bSecondary) :
G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL)
{
if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNDeltaTable;
G4XNDeltaTable &theSigmaTable = *theSigmaTable_G4MT_TLS_;
establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,theSigmaTable);
}
G4ConcreteNNToNDelta::~G4ConcreteNNToNDelta()
{ if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNDeltaTable ;
{
if (theSigmaTable_G4MT_TLS_) delete theSigmaTable_G4MT_TLS_;
theSigmaTable_G4MT_TLS_=0;
}
@@ -36,9 +36,17 @@ G4ThreadLocal G4XNDeltastarTable *G4ConcreteNNToNDeltaStar::theSigmaTable_G4MT_T
G4ConcreteNNToNDeltaStar::G4ConcreteNNToNDeltaStar(const G4ParticleDefinition* aPrimary,
const G4ParticleDefinition* bPrimary,
const G4ParticleDefinition* aSecondary,
const G4ParticleDefinition* bSecondary):G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL){ ;;; if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNDeltastarTable ; G4XNDeltastarTable &theSigmaTable = *theSigmaTable_G4MT_TLS_; ;;; establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,G4NDeltastarBuilder(bSecondary->GetParticleName(),theSigmaTable));
const G4ParticleDefinition* bSecondary) :
G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL)
{
if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNDeltastarTable;
G4XNDeltastarTable &theSigmaTable = *theSigmaTable_G4MT_TLS_;
establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,
G4NDeltastarBuilder(bSecondary->GetParticleName(),theSigmaTable));
}
G4ConcreteNNToNDeltaStar::~G4ConcreteNNToNDeltaStar()
{ if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNDeltastarTable ;
{
if (theSigmaTable_G4MT_TLS_) delete theSigmaTable_G4MT_TLS_;
theSigmaTable_G4MT_TLS_=0;
}
@@ -36,9 +36,17 @@ G4ThreadLocal G4XNNstarTable *G4ConcreteNNToNNStar::theSigmaTable_G4MT_TLS_ = 0;
G4ConcreteNNToNNStar::G4ConcreteNNToNNStar(const G4ParticleDefinition* aPrimary,
const G4ParticleDefinition* bPrimary,
const G4ParticleDefinition* aSecondary,
const G4ParticleDefinition* bSecondary):G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL){ ;;; if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNNstarTable ; G4XNNstarTable &theSigmaTable = *theSigmaTable_G4MT_TLS_; ;;; establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,G4NNstarBuilder(bSecondary->GetParticleName(),theSigmaTable));
const G4ParticleDefinition* bSecondary) :
G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL)
{
if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNNstarTable;
G4XNNstarTable &theSigmaTable = *theSigmaTable_G4MT_TLS_;
establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,
G4NNstarBuilder(bSecondary->GetParticleName(),theSigmaTable));
}
G4ConcreteNNToNNStar::~G4ConcreteNNToNNStar()
{ if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNNstarTable ;
{
if (theSigmaTable_G4MT_TLS_) delete theSigmaTable_G4MT_TLS_;
theSigmaTable_G4MT_TLS_=0;
}
@@ -65,6 +65,7 @@ G4ConcreteNNTwoBodyResonance::G4ConcreteNNTwoBodyResonance(const G4ParticleDefin
G4ConcreteNNTwoBodyResonance::~G4ConcreteNNTwoBodyResonance()
{
if (crossSectionSource) delete crossSectionSource;
crossSectionSource=0;
}
G4bool G4ConcreteNNTwoBodyResonance::IsInCharge(const G4KineticTrack& trk1,
@@ -83,7 +84,11 @@ void G4ConcreteNNTwoBodyResonance::establish_G4MT_TLS_G4ConcreteNNTwoBodyResonan
const G4ParticleDefinition* bPrimary,
const G4ParticleDefinition* aSecondary,
const G4ParticleDefinition* bSecondary,
const G4VXResonanceTable& sigmaTable){establish_G4MT_TLS_G4VScatteringCollision(); thePrimary1=aPrimary; thePrimary2=bPrimary;
const G4VXResonanceTable& sigmaTable)
{
establish_G4MT_TLS_G4VScatteringCollision();
thePrimary1=aPrimary;
thePrimary2=bPrimary;
theOutGoing.push_back(aSecondary);
theOutGoing.push_back(bSecondary);
@@ -36,9 +36,15 @@ G4ThreadLocal G4XNNstarTable *G4ConcreteNStarNToNN::theSigmaTable_G4MT_TLS_ = 0;
G4ConcreteNStarNToNN::G4ConcreteNStarNToNN(const G4ParticleDefinition* aPrimary,
const G4ParticleDefinition* bPrimary,
const G4ParticleDefinition* aSecondary,
const G4ParticleDefinition* bSecondary):G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL){ ;;; if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNNstarTable ; G4XNNstarTable &theSigmaTable = *theSigmaTable_G4MT_TLS_; ;;; establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,G4NNstarBuilder(aPrimary->GetParticleName(),theSigmaTable));
const G4ParticleDefinition* bSecondary) :
G4ConcreteNNTwoBodyResonance(NULL, NULL, NULL, NULL, NULL, NULL, NULL)
{
if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNNstarTable;
G4XNNstarTable &theSigmaTable = *theSigmaTable_G4MT_TLS_;
establish_G4MT_TLS_G4ConcreteNNTwoBodyResonance(aPrimary,bPrimary,aSecondary,bSecondary,
G4NNstarBuilder(aPrimary->GetParticleName(),theSigmaTable));
}
G4ConcreteNStarNToNN::~G4ConcreteNStarNToNN()
{ if (!theSigmaTable_G4MT_TLS_) theSigmaTable_G4MT_TLS_ = new G4XNNstarTable ;
{ if (theSigmaTable_G4MT_TLS_) delete theSigmaTable_G4MT_TLS_;
}
@@ -109,10 +109,10 @@
};
G4DetailedBalancePhaseSpaceIntegral::
G4DetailedBalancePhaseSpaceIntegral(G4ParticleDefinition * aR) : theR(aR)
G4DetailedBalancePhaseSpaceIntegral(const G4ParticleDefinition * aR) //: theR(aR)
{
G4ResonanceID theID;
G4int pdg=theR->GetPDGEncoding();
G4int pdg=aR->GetPDGEncoding();
data=0;
if(theID.IsDelta1232(pdg)) data = delta;
else if(theID.IsDelta1600(pdg)) data = delta1600;
@@ -147,7 +147,7 @@ GetPhaseSpaceIntegral(G4double sqs)
{
G4double result = 0;
G4int it=0;
for(G4int ie=0; ie<120; ie++)
for(G4int ie=0; ie<119; ie++)
{
if(sqrts[ie]*GeV>sqs) break;
it = ie;
@@ -139,14 +139,14 @@ GetFinalState(G4KineticTrack * projectile,
G4LorentzRotation toLab(toZ.inverse());
// Get definitions
G4ParticleDefinition * d1 = targets[0]->GetDefinition();
G4ParticleDefinition * d2 = targets[1]->GetDefinition();
const G4ParticleDefinition * d1 = targets[0]->GetDefinition();
const G4ParticleDefinition * d2 = targets[1]->GetDefinition();
if(0.5>G4UniformRand())
{
G4ParticleDefinition * temp;
const G4ParticleDefinition * temp;
temp=d1;d1=d2;d2=temp;
}
G4ParticleDefinition * dp = projectile->GetDefinition();
const G4ParticleDefinition * dp = projectile->GetDefinition();
if(dp->GetPDGCharge()<-.5)
{
if(d1->GetPDGCharge()>.5)
@@ -334,7 +334,7 @@ G4bool G4ResonanceNames::operator!=(const G4ResonanceNames &right) const
G4double G4ResonanceNames::MinMass(const G4String& name)
{
// Cut, from UrQMD (reference still to be detailed)
const G4double coeff = 0.001;
static const G4double coeff = 0.001;
G4double lowMass = 0.;
@@ -45,22 +45,37 @@
#include "G4CollisionInitialState.hh"
#include "G4HadTmpUtil.hh"
#include "G4Pair.hh"
#include "G4AutoLock.hh"
//Mutex for control of shared resource
namespace {
G4Mutex collisions_mutex = G4MUTEX_INITIALIZER;
G4bool setupDone = false;
}
// Declare the categories of collisions the Scatterer can handle
typedef GROUP2(G4CollisionNN, G4CollisionMesonBaryon) theChannels;
G4CollisionVector G4Scatterer::collisions;
//----------------------------------------------------------------------------
G4Scatterer::G4Scatterer()
{
Register aR;
G4ForEach<theChannels>::Apply(&aR, &collisions);
G4AutoLock l(&collisions_mutex);
if ( ! setupDone )
{
Register aR;
G4ForEach<theChannels>::Apply(&aR, &collisions);
setupDone = true;
}
}
//----------------------------------------------------------------------------
G4Scatterer::~G4Scatterer()
{
G4AutoLock l(&collisions_mutex);
std::for_each(collisions.begin(), collisions.end(), G4Delete());
collisions.clear();
}
@@ -68,7 +83,7 @@ G4Scatterer::~G4Scatterer()
//----------------------------------------------------------------------------
G4double G4Scatterer::GetTimeToInteraction(const G4KineticTrack& trk1,
const G4KineticTrack& trk2)
const G4KineticTrack& trk2) const
{
G4double time = DBL_MAX;
G4double distance_fast;
@@ -182,7 +197,7 @@ G4double G4Scatterer::GetTimeToInteraction(const G4KineticTrack& trk1,
G4VCollision* collision = FindCollision(trk1,trk2);
const G4VCollision* collision = FindCollision(trk1,trk2);
G4double totalCrossSection;
// The cross section is interpreted geometrically as an area
// Two particles are assumed to collide if their distance is < (totalCrossSection/pi)
@@ -267,7 +282,7 @@ G4double G4Scatterer::GetTimeToInteraction(const G4KineticTrack& trk1,
//----------------------------------------------------------------------------
G4KineticTrackVector* G4Scatterer::Scatter(const G4KineticTrack& trk1,
const G4KineticTrack& trk2)
const G4KineticTrack& trk2) const
{
// G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
G4LorentzVector pInitial=trk1.Get4Momentum() + trk2.Get4Momentum();
@@ -280,7 +295,7 @@ G4KineticTrackVector* G4Scatterer::Scatter(const G4KineticTrack& trk1,
G4int baryonBalance = trk1.GetDefinition()->GetBaryonNumber()
+ trk2.GetDefinition()->GetBaryonNumber();
G4VCollision* collision = FindCollision(trk1,trk2);
const G4VCollision* collision = FindCollision(trk1,trk2);
if (collision != 0)
{
G4double aCrossSection = collision->CrossSection(trk1,trk2);
@@ -377,8 +392,8 @@ G4KineticTrackVector* G4Scatterer::Scatter(const G4KineticTrack& trk1,
//----------------------------------------------------------------------------
G4VCollision* G4Scatterer::FindCollision(const G4KineticTrack& trk1,
const G4KineticTrack& trk2)
const G4VCollision* G4Scatterer::FindCollision(const G4KineticTrack& trk1,
const G4KineticTrack& trk2) const
{
G4VCollision* collisionInCharge = 0;
@@ -407,9 +422,9 @@ G4VCollision* G4Scatterer::FindCollision(const G4KineticTrack& trk1,
//----------------------------------------------------------------------------
G4double G4Scatterer::GetCrossSection(const G4KineticTrack& trk1,
const G4KineticTrack& trk2)
const G4KineticTrack& trk2) const
{
G4VCollision* collision = FindCollision(trk1,trk2);
const G4VCollision* collision = FindCollision(trk1,trk2);
G4double aCrossSection = 0;
if (collision != 0)
{
@@ -65,7 +65,6 @@ G4KineticTrackVector* G4VAnnihilationCollision::FinalState(const G4KineticTrack&
// G4double m1 = trk1.GetActualMass();
// G4double m2 = trk2.GetActualMass();
G4ParticleDefinition* OutputDefinition = const_cast<G4ParticleDefinition *>( GetOutgoingParticle(trk1,trk2) );
// Unit vector of three-momentum
@@ -78,8 +77,8 @@ G4KineticTrackVector* G4VAnnihilationCollision::FinalState(const G4KineticTrack&
G4LorentzRotation toLabFrame(p.boostVector());
p4Final *= toLabFrame;
G4KineticTrack* final = new G4KineticTrack(OutputDefinition, 0.0,
trk1.GetPosition(), p4Final);
const G4ParticleDefinition* OutputDefinition = GetOutgoingParticle(trk1,trk2);
G4KineticTrack* final = new G4KineticTrack(OutputDefinition, 0.0, trk1.GetPosition(), p4Final);
G4KineticTrackVector* finalTracks = new G4KineticTrackVector;
@@ -46,13 +46,13 @@ G4VCrossSectionSource::~G4VCrossSectionSource()
{ }
G4ParticleDefinition * G4VCrossSectionSource::
const G4ParticleDefinition * G4VCrossSectionSource::
FindKeyParticle(const G4KineticTrack& trk1,const G4KineticTrack& trk2) const
{
G4ParticleDefinition * result;
const G4ParticleDefinition * result;
G4ParticleDefinition * p1 = trk1.GetDefinition();
G4ParticleDefinition * p2 = trk2.GetDefinition();
const G4ParticleDefinition * p1 = trk1.GetDefinition();
const G4ParticleDefinition * p2 = trk2.GetDefinition();
if( (p1==G4Proton::Proton() && p2==G4Proton::Proton() ) ||
(p1==G4Neutron::Neutron() && p2==G4Neutron::Neutron()) )
@@ -184,21 +184,7 @@ G4double G4VCrossSectionSource::FcrossX(G4double e, G4double e0,
}
return result;
}
G4double G4VCrossSectionSource::GetTransversePionMass() const
{
// Parameter from UrQMD
const G4double transversePionMass = 0.3 * GeV;
return transversePionMass;
}
G4double G4VCrossSectionSource::GetMinStringMass() const
{
// Parameter from UrQMD
const G4double minStringMass = 0.52 * GeV;
return minStringMass;
}
@@ -53,6 +53,7 @@ G4VScatteringCollision::G4VScatteringCollision()
G4VScatteringCollision::~G4VScatteringCollision()
{
delete theAngularDistribution;
theAngularDistribution=0;
}
@@ -139,10 +140,8 @@ G4KineticTrackVector* G4VScatteringCollision::FinalState(const G4KineticTrack& t
<< trk1.GetDefinition()->GetPDGCharge()<<" "<<trk1.GetDefinition()->GetParticleName()
<< trk2.GetDefinition()->GetPDGCharge()<<" "<<trk2.GetDefinition()->GetParticleName()<<G4endl;
}
G4KineticTrack* final1 = new G4KineticTrack(const_cast<G4ParticleDefinition *>(OutputDefinitions[0]), 0.0,
trk1.GetPosition(), p4Final1);
G4KineticTrack* final2 = new G4KineticTrack(const_cast<G4ParticleDefinition *>(OutputDefinitions[1]), 0.0,
trk2.GetPosition(), p4Final2);
G4KineticTrack* final1 = new G4KineticTrack(OutputDefinitions[0], 0.0, trk1.GetPosition(), p4Final1);
G4KineticTrack* final2 = new G4KineticTrack(OutputDefinitions[1], 0.0, trk2.GetPosition(), p4Final2);
G4KineticTrackVector* finalTracks = new G4KineticTrackVector;
@@ -178,6 +177,8 @@ double G4VScatteringCollision::SampleResonanceMass(const double poleMass,
}
}
void G4VScatteringCollision::establish_G4MT_TLS_G4VScatteringCollision(){establish_G4MT_TLS_G4VCollision();
void G4VScatteringCollision::establish_G4MT_TLS_G4VScatteringCollision()
{
establish_G4MT_TLS_G4VCollision();
theAngularDistribution = new G4AngularDistribution(true);
}
@@ -74,8 +74,8 @@ G4double G4VXResonance::IsospinCorrection(const G4KineticTrack& trk1,
{
G4double result = 0.;
G4ParticleDefinition* in1 = trk1.GetDefinition();
G4ParticleDefinition* in2 = trk2.GetDefinition();
const G4ParticleDefinition* in1 = trk1.GetDefinition();
const G4ParticleDefinition* in2 = trk2.GetDefinition();
G4int isoIn1 = in1->GetPDGiIsospin();
G4int iso3In1 = in1->GetPDGiIsospin3();
@@ -132,8 +132,8 @@ G4double G4VXResonance::DetailedBalance(const G4KineticTrack& trk1,
// is used; in other words, the width of the resonances are folded to get the
// mean square of the final state momentum.
G4ParticleDefinition* in1 = trk1.GetDefinition();
G4ParticleDefinition* in2 = trk2.GetDefinition();
const G4ParticleDefinition* in1 = trk1.GetDefinition();
const G4ParticleDefinition* in2 = trk2.GetDefinition();
if(in1->IsShortLived() && in2->IsShortLived())
{
throw G4HadronicException(__FILE__, __LINE__, "Detailed balance for resonance scattering still on the schedule.");
@@ -189,8 +189,8 @@ G4double G4VXResonance::DegeneracyFactor(const G4KineticTrack& trk1,
{
G4double value = 0.;
G4ParticleDefinition* in1 = trk1.GetDefinition();
G4ParticleDefinition* in2 = trk2.GetDefinition();
const G4ParticleDefinition* in1 = trk1.GetDefinition();
const G4ParticleDefinition* in2 = trk2.GetDefinition();
G4double sIn1 = in1->GetPDGiSpin() + 1.;
G4double sIn2 = in2->GetPDGiSpin() + 1.;
@@ -94,8 +94,8 @@ G4double G4XAnnihilationChannel::CrossSection(const G4KineticTrack& trk1,
G4double sigma = 0.;
G4double eCM = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
G4ParticleDefinition* def1 = trk1.GetDefinition();
G4ParticleDefinition* def2 = trk2.GetDefinition();
const G4ParticleDefinition* def1 = trk1.GetDefinition();
const G4ParticleDefinition* def2 = trk2.GetDefinition();
G4int J1 = def1->GetPDGiSpin();
G4int J2 = def2->GetPDGiSpin();
@@ -200,8 +200,8 @@ G4double G4XAnnihilationChannel::NormalizedClebsch(const G4KineticTrack& trk1,
const G4KineticTrack& trk2) const
{
G4double cleb = 0.;
G4ParticleDefinition* def1 = trk1.GetDefinition();
G4ParticleDefinition* def2 = trk2.GetDefinition();
const G4ParticleDefinition* def1 = trk1.GetDefinition();
const G4ParticleDefinition* def2 = trk2.GetDefinition();
G4int iso31 = def1->GetPDGiIsospin3();
G4int iso32 = def2->GetPDGiIsospin3();
@@ -47,7 +47,6 @@
#include "G4XAqmElastic.hh"
#include "G4XAqmTotal.hh"
#include "G4KineticTrack.hh"
#include "G4ParticleDefinition.hh"
// Validity range of this cross-section
@@ -82,8 +81,8 @@ G4double G4XAqmElastic::CrossSection(const G4KineticTrack& trk1, const G4Kinetic
G4double sigma = 0.;
// Reference to be checked!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
const G4double coeff = 0.39;
const G4double param = 1.5;
static const G4double coeff = 0.39;
static const G4double param = 1.5;
G4XAqmTotal aqmTotal;
@@ -82,9 +82,9 @@ G4double G4XAqmTotal::CrossSection(const G4KineticTrack& trk1, const G4KineticTr
G4double sigma = 0.;
// Get strangeness content
G4ParticleDefinition* def1 = trk1.GetDefinition();
const G4ParticleDefinition* def1 = trk1.GetDefinition();
G4int sTrk1 = def1->GetQuarkContent(3) + def1->GetAntiQuarkContent(3);
G4ParticleDefinition* def2 = trk2.GetDefinition();
const G4ParticleDefinition* def2 = trk2.GetDefinition();
G4int sTrk2 = def2->GetQuarkContent(3) + def2->GetAntiQuarkContent(3);
// Get non-strange quark content
@@ -31,7 +31,6 @@
#include "G4ParticleDefinition.hh"
#include "G4PhysicsVector.hh"
#include "G4PhysicsLnVector.hh"
#include "G4ParticleDefinition.hh"
#include "G4Proton.hh"
#include "G4Neutron.hh"
@@ -141,9 +140,9 @@ G4double G4XNNElasticLowE::CrossSection(const G4KineticTrack& trk1, const G4Kine
G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
G4bool dummy = false;
G4ParticleDefinition * key = FindKeyParticle(trk1,trk2);
const G4ParticleDefinition * key = FindKeyParticle(trk1,trk2);
typedef std::map <G4ParticleDefinition *, G4PhysicsVector*, std::less<G4ParticleDefinition *> > StringPhysMap;
typedef std::map <const G4ParticleDefinition *, G4PhysicsVector*, std::less<const G4ParticleDefinition *> > StringPhysMap;
if (xMap.find(key)!= xMap.end())
{
@@ -151,7 +150,7 @@ G4double G4XNNElasticLowE::CrossSection(const G4KineticTrack& trk1, const G4Kine
StringPhysMap::const_iterator iter;
for (iter = xMap.begin(); iter != xMap.end(); ++iter)
{
G4ParticleDefinition * str = (*iter).first;
const G4ParticleDefinition * str = (*iter).first;
if (str == key)
{
G4PhysicsVector* physVector = (*iter).second;
@@ -180,15 +179,15 @@ void G4XNNElasticLowE::Print() const
G4bool dummy = false;
G4int i;
G4ParticleDefinition * key = G4Proton::ProtonDefinition();
const G4ParticleDefinition * key = G4Proton::ProtonDefinition();
G4PhysicsVector* pp = 0;
typedef std::map <G4ParticleDefinition *, G4PhysicsVector*, std::less<G4ParticleDefinition *> > StringPhysMap;
typedef std::map <const G4ParticleDefinition *, G4PhysicsVector*, std::less<const G4ParticleDefinition *> > StringPhysMap;
StringPhysMap::const_iterator iter;
for (iter = xMap.begin(); iter != xMap.end(); ++iter)
{
G4ParticleDefinition * str = (*iter).first;
const G4ParticleDefinition * str = (*iter).first;
if (str == key)
{
pp = (*iter).second;
@@ -213,7 +212,7 @@ void G4XNNElasticLowE::Print() const
G4PhysicsVector* np = 0;
for (iter = xMap.begin(); iter != xMap.end(); ++iter)
{
G4ParticleDefinition * str = (*iter).first;
const G4ParticleDefinition * str = (*iter).first;
if (str == key)
{
np = (*iter).second;
@@ -30,7 +30,6 @@
#include "G4XNNTotalLowE.hh"
#include "G4KineticTrack.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleDefinition.hh"
#include "G4Proton.hh"
#include "G4Neutron.hh"
@@ -81,7 +80,7 @@ G4double G4XNNTotalLowE::CrossSection(const G4KineticTrack& trk1, const G4Kineti
{
G4double result = 0.;
G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
G4ParticleDefinition * key = FindKeyParticle(trk1,trk2);
const G4ParticleDefinition * key = FindKeyParticle(trk1,trk2);
if (theCrossSections.find(key)!= theCrossSections.end())
{
@@ -74,23 +74,23 @@ const G4double G4XPDGElastic::npbarPDGFit[7] = { 1.1, 5.55, 36.5, 0.,
G4XPDGElastic::G4XPDGElastic()
{
G4ParticleDefinition * proton = G4Proton::ProtonDefinition();
G4ParticleDefinition * neutron = G4Neutron::NeutronDefinition();
G4ParticleDefinition * piPlus = G4PionPlus::PionPlusDefinition();
G4ParticleDefinition * piMinus = G4PionMinus::PionMinusDefinition();
G4ParticleDefinition * KPlus = G4KaonPlus::KaonPlusDefinition();
G4ParticleDefinition * KMinus = G4KaonMinus::KaonMinusDefinition();
G4ParticleDefinition * antiproton = G4AntiProton::AntiProtonDefinition();
const G4ParticleDefinition * proton = G4Proton::ProtonDefinition();
const G4ParticleDefinition * neutron = G4Neutron::NeutronDefinition();
const G4ParticleDefinition * piPlus = G4PionPlus::PionPlusDefinition();
const G4ParticleDefinition * piMinus = G4PionMinus::PionMinusDefinition();
const G4ParticleDefinition * KPlus = G4KaonPlus::KaonPlusDefinition();
const G4ParticleDefinition * KMinus = G4KaonMinus::KaonMinusDefinition();
const G4ParticleDefinition * antiproton = G4AntiProton::AntiProtonDefinition();
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> pp(proton,proton);
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> pn(proton,neutron);
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> piPlusp(piPlus,proton);
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> piMinusp(piMinus,proton);
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KPlusp(KPlus,proton);
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KMinusp(KMinus,proton);
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> nn(neutron,neutron);
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> ppbar(proton,antiproton);
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> npbar(antiproton,neutron);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> pp(proton,proton);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> pn(proton,neutron);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> piPlusp(piPlus,proton);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> piMinusp(piMinus,proton);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> KPlusp(KPlus,proton);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> KMinusp(KMinus,proton);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> nn(neutron,neutron);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> ppbar(proton,antiproton);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> npbar(antiproton,neutron);
std::vector<G4double> ppData;
std::vector<G4double> pPiPlusData;
@@ -157,8 +157,8 @@ G4double G4XPDGElastic::CrossSection(const G4KineticTrack& trk1, const G4Kinetic
G4double sigma = 0.;
G4ParticleDefinition* def1 = trk1.GetDefinition();
G4ParticleDefinition* def2 = trk2.GetDefinition();
const G4ParticleDefinition* def1 = trk1.GetDefinition();
const G4ParticleDefinition* def2 = trk2.GetDefinition();
G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
G4double m_1 = def1->GetPDGMass();
@@ -175,9 +175,9 @@ G4double G4XPDGElastic::CrossSection(const G4KineticTrack& trk1, const G4Kinetic
// The PDG fit formula requires p in GeV/c
// Order the pair: first is the lower mass particle, second is the higher mass one
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> trkPair(def1,def2);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> trkPair(def1,def2);
if (def1->GetPDGMass() > def2->GetPDGMass())
trkPair = std::pair<G4ParticleDefinition *,G4ParticleDefinition *>(def2,def1);
trkPair = std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *>(def2,def1);
std::vector<G4double> data;
G4double pMinFit = 0.;
@@ -197,7 +197,7 @@ G4double G4XPDGElastic::CrossSection(const G4KineticTrack& trk1, const G4Kinetic
PairDoubleMap::const_iterator iter;
for (iter = xMap.begin(); iter != xMap.end(); ++iter)
{
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> thePair = (*iter).first;
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> thePair = (*iter).first;
if (thePair == trkPair)
{
data = (*iter).second;
@@ -68,27 +68,27 @@ const G4double G4XPDGTotal::gammagammaPDGFit[5] = { 3., 300., 0.000156, 0.00
G4XPDGTotal::G4XPDGTotal()
{
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> pp(G4Proton::ProtonDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> pp(G4Proton::ProtonDefinition(),
G4Proton::ProtonDefinition());
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> pn(G4Proton::ProtonDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> pn(G4Proton::ProtonDefinition(),
G4Neutron::NeutronDefinition());
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> piPlusp(G4PionPlus::PionPlusDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> piPlusp(G4PionPlus::PionPlusDefinition(),
G4Proton::ProtonDefinition());
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> piMinusp(G4PionMinus::PionMinusDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> piMinusp(G4PionMinus::PionMinusDefinition(),
G4Proton::ProtonDefinition());
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KPlusp(G4KaonPlus::KaonPlusDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> KPlusp(G4KaonPlus::KaonPlusDefinition(),
G4Proton::ProtonDefinition());
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KPlusn(G4KaonPlus::KaonPlusDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> KPlusn(G4KaonPlus::KaonPlusDefinition(),
G4Neutron::NeutronDefinition());
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KMinusp(G4KaonMinus::KaonMinusDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> KMinusp(G4KaonMinus::KaonMinusDefinition(),
G4Proton::ProtonDefinition());
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> KMinusn(G4KaonMinus::KaonMinusDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> KMinusn(G4KaonMinus::KaonMinusDefinition(),
G4Neutron::NeutronDefinition());
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> gp(G4Gamma::GammaDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> gp(G4Gamma::GammaDefinition(),
G4Proton::ProtonDefinition());
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> gg(G4Gamma::GammaDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> gg(G4Gamma::GammaDefinition(),
G4Gamma::GammaDefinition());
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> nn(G4Neutron::NeutronDefinition(),
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> nn(G4Neutron::NeutronDefinition(),
G4Neutron::NeutronDefinition());
std::vector<G4double> nnData;
@@ -161,8 +161,8 @@ G4double G4XPDGTotal::CrossSection(const G4KineticTrack& trk1,
G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
G4ParticleDefinition* def1 = trk1.GetDefinition();
G4ParticleDefinition* def2 = trk2.GetDefinition();
const G4ParticleDefinition* def1 = trk1.GetDefinition();
const G4ParticleDefinition* def2 = trk2.GetDefinition();
G4double enc1 = def1->GetPDGEncoding();
G4double enc2 = def2->GetPDGEncoding();
@@ -170,10 +170,10 @@ G4double G4XPDGTotal::CrossSection(const G4KineticTrack& trk1,
if ( (enc1 < 0 && enc2 >0) || (enc2 < 0 && enc1 >0) ) coeff = 1.;
// Order the pair: first is the lower mass particle, second is the higher mass one
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> trkPair(def1,def2);
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> trkPair(def1,def2);
if (def1->GetPDGMass() > def2->GetPDGMass())
trkPair = std::pair<G4ParticleDefinition *,G4ParticleDefinition *>(def2,def1);
trkPair = std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *>(def2,def1);
std::vector<G4double> data;
@@ -183,7 +183,7 @@ G4double G4XPDGTotal::CrossSection(const G4KineticTrack& trk1,
PairDoubleMap::const_iterator iter;
for (iter = xMap.begin(); iter != xMap.end(); ++iter)
{
std::pair<G4ParticleDefinition *,G4ParticleDefinition *> thePair = (*iter).first;
std::pair<const G4ParticleDefinition *,const G4ParticleDefinition *> thePair = (*iter).first;
if (thePair == trkPair)
{
data = (*iter).second;
@@ -197,9 +197,9 @@ G4double G4XPDGTotal::CrossSection(const G4KineticTrack& trk1,
// Total Cross-section fit, 1998 Review of Particle Properties, European Phys. J. 3(1998), 1
// Parameters from the PDG fit
const G4double epsilon = 0.095;
const G4double eta1 = -0.34;
const G4double eta2 = -0.55;
static const G4double epsilon = 0.095;
static const G4double eta1 = -0.34;
static const G4double eta2 = -0.55;
if (sqrtS < eMinFit || sqrtS > eMaxFit)
{
@@ -52,7 +52,7 @@ G4XResonance::G4XResonance(const G4ParticleDefinition* in1,
G4XResonance::~G4XResonance()
{
{
delete table;
table = 0;
}
@@ -50,7 +50,6 @@
#include "G4ParticleDefinition.hh"
#include "G4PhysicsVector.hh"
#include "G4PhysicsLnVector.hh"
#include "G4ParticleDefinition.hh"
#include "G4Proton.hh"
#include "G4Neutron.hh"
@@ -112,7 +111,8 @@ G4XnpElasticLowE::G4XnpElasticLowE()
G4XnpElasticLowE::~G4XnpElasticLowE()
{
delete _sigma;
delete _sigma;
_sigma = 0;
}
@@ -134,11 +134,11 @@ G4double G4XnpElasticLowE::CrossSection(const G4KineticTrack& trk1, const G4Kine
G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
G4bool dummy = false;
G4ParticleDefinition* proton = G4Proton::ProtonDefinition();
G4ParticleDefinition* neutron = G4Neutron::NeutronDefinition();
const G4ParticleDefinition* proton = G4Proton::ProtonDefinition();
const G4ParticleDefinition* neutron = G4Neutron::NeutronDefinition();
G4ParticleDefinition* def1 = trk1.GetDefinition();
G4ParticleDefinition* def2 = trk2.GetDefinition();
const G4ParticleDefinition* def1 = trk1.GetDefinition();
const G4ParticleDefinition* def2 = trk2.GetDefinition();
if ( (def1 == proton && def2 == neutron) ||
(def1 == neutron && def2 == proton) )
{
@@ -50,7 +50,6 @@
#include "G4ParticleDefinition.hh"
#include "G4PhysicsVector.hh"
#include "G4PhysicsLnVector.hh"
#include "G4ParticleDefinition.hh"
#include "G4Proton.hh"
#include "G4Neutron.hh"
@@ -112,7 +111,8 @@ G4XnpTotalLowE::G4XnpTotalLowE()
G4XnpTotalLowE::~G4XnpTotalLowE()
{
delete _sigma;
if (_sigma) delete _sigma;
_sigma=0;
}
@@ -134,11 +134,11 @@ G4double G4XnpTotalLowE::CrossSection(const G4KineticTrack& trk1, const G4Kineti
G4double sqrtS = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
G4bool dummy = false;
G4ParticleDefinition* proton = G4Proton::ProtonDefinition();
G4ParticleDefinition* neutron = G4Neutron::NeutronDefinition();
const G4ParticleDefinition* proton = G4Proton::ProtonDefinition();
const G4ParticleDefinition* neutron = G4Neutron::NeutronDefinition();
G4ParticleDefinition* def1 = trk1.GetDefinition();
G4ParticleDefinition* def2 = trk2.GetDefinition();
const G4ParticleDefinition* def1 = trk1.GetDefinition();
const G4ParticleDefinition* def2 = trk2.GetDefinition();
if ( (def1 == proton && def2 == neutron) ||
(def1 == neutron && def2 == proton) )
{