Import Geant4 5.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 10:15:15 +02:00
parent 37fff30d2e
commit fbd4999cf7
4396 changed files with 56662 additions and 52446 deletions
@@ -1,2 +0,0 @@
The tuning of resonances can still improve in a iteration on short-lived particles.
@@ -1,11 +0,0 @@
scattering-baseline-0:
nucleon nucleon and pion nucleon scattering included, and technically tested to run.
nucleon nucleon:
- elastic for pp, np, pn, nn
- resonance creation: ND, DD, ND*, DD*, NN*, DN* channels included
pion nucleon:
- elastic pi+-0 n/p scattering
- piN->Resonance: D, D*, N* included.
@@ -1,31 +0,0 @@
done - G4CollisionNNElastic.hh
done - G4CollisionnpElastic.hh
done - G4CollisionNDeltaElastic.hh
done - G4CollisionMesonBaryonElastic.hh
not needed G4CollisionNDeltastarElastic.hh
G4CollisionDeltaDeltaElastic.hh
G4CollisionDeltaDeltastarElastic.hh
G4CollisionMesonMesonElastic.hh
G4CollisionBaryonAntiBaryonElastic.hh
G4CollisionBaryonBaryonElastic.hh
G4CollisionDeltaNstarElastic.hh
G4CollisionNNstarElastic.hh
G4CollisionStarStarElastic.hh
delta(1600)", "delta(1620)", "delta(1700)", "delta(1900)", "delta(1905)",
"delta(1910)", "delta(1920)", "delta(1930)", "delta(1950)"
"N(1440)", "N(1520)", "N(1535)", "N(1650)", "N(1675)",
"N(1680)", "N(1700)", "N(1710)", "N(1720)", "N(1900)",
"N(1990)", "N(2090)", "N(2190)", "N(2220)", "N(2250)"
{ "b1(1235)", "h1(1170)", "h1(1380)", "k1(1270)", "k1(1270)" },
{ "a0(1450)", "f0(1370)", "", "k0_star(1430)", "k0_star(1430)" },
{ "a1(1260)", "f1(1285)", "f1(1420)", "k1(1400)", "k1(1400)" },
{ "a2(1320)", "f2(1270)","f2_prime(1525)","k2_star(1430)","k2_star(1430)"},
{"pi2(1670)", "eta2(1645)", "eta2(1870)", "k2(1770)", "k2(1770)" },
{"rho(1700)", "omega(1600)", "", "k_star(1680)", "k_star(1680)" },
{"rho3(1690)","omega3(1670)","phi3(1850)", "k3_star(1780)", "k3_star(1780)" },
{ "pi(1300)", "eta(1295)", "eta(1440)", "k(1460)", "k(1460)" },
{"rho(1450)","omega(1420)", "phi(1680)", "k_star(1410)", "k_star(1410)" },
{ "", "f2(1810)", "f2(2010)", "k2_star(1980)", "k2_star(1980)" }
@@ -22,7 +22,7 @@
//
//
// $Id: G4CollisionInitialState.hh,v 1.2 2002/12/12 19:17:37 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
// GEANT4 tag $Name: geant4-05-01 $
//
// $Id: G4CollisionInitialState.hh,v 1.0 1998/06/30
// -----------------------------------------------------------------------------
@@ -22,7 +22,7 @@
//
//
// $Id: G4ListOfCollisions.hh,v 1.2 2002/12/12 19:17:41 gunter Exp $
// GEANT4 tag $Name: geant4-05-00 $
// GEANT4 tag $Name: geant4-05-01 $
//
// $Id: G4ListOfCollisions.hh,v 1.0 1998/06/30
// -----------------------------------------------------------------------------
@@ -24,7 +24,6 @@
#include "globals.hh"
#include "G4AngularDistribution.hh"
#include "Randomize.hh"
#include "PhysicalConstants.h"
G4AngularDistribution::G4AngularDistribution(G4bool symmetrize)
: sym(symmetrize)
@@ -40,9 +40,21 @@ void G4CollisionManager::AddCollision(G4double time, G4KineticTrack * proj,
G4KineticTrack * target)
{
G4CollisionInitialState *
collision = new G4CollisionInitialState(time, proj, target);
theCollisionList->push_back(collision);
if ( time < DBL_MAX )
{
G4CollisionInitialState *
collision = new G4CollisionInitialState(time, proj, target);
theCollisionList->push_back(collision);
} else {
G4cerr << "G4Scatterer invalid TimeTo Interaction : " << time;
G4cerr <<" projectile "<<proj->Get4Momentum()<<" "
<<proj->GetDefinition()->GetParticleName()<<G4endl;
if (target) G4cerr <<" target "
<<target->Get4Momentum()<<" "
<<target->GetDefinition()->GetParticleName()<<G4endl;
G4cerr <<"G4Scatterer error message end"<< G4endl;
G4Exception("G4Scatterer::AddCollision()");
}
}
@@ -128,7 +140,7 @@ G4CollisionInitialState * G4CollisionManager::GetNextCollision()
G4cerr <<" Time to collision "<<(*i)->GetCollisionTime()<<" "<<G4endl;
G4cerr <<" projectile "<<(*i)->GetPrimary()->Get4Momentum()<<" "
<<(*i)->GetPrimary()->GetDefinition()->GetParticleName()<<G4endl;
G4cerr <<" target "<<(*i)->GetTarget()->Get4Momentum()<<" "
if ((*i)->GetTarget()) G4cerr <<" target "<<(*i)->GetTarget()->Get4Momentum()<<" "
<<(*i)->GetTarget()->GetDefinition()->GetParticleName()<<G4endl;
}
G4cerr <<"G4CollisionManager::GetNextCollision - End of message"<<G4endl;
@@ -20,7 +20,7 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4Scatterer.cc,v 1.18 2002/12/12 19:17:52 gunter Exp $ //
// $Id: G4Scatterer.cc,v 1.19 2003/04/15 15:15:48 gunter Exp $ //
//
#include "globals.hh"
@@ -78,7 +78,8 @@ G4double G4Scatterer::GetTimeToInteraction(const G4KineticTrack& trk1,
// Check whether there is enough energy for elastic scattering
// (to put the particles on to mass shell
if (trk1.GetDefinition()->GetPDGMass() + trk2.GetDefinition()->GetPDGMass() < sqrtS)
// if (trk1.GetDefinition()->GetPDGMass() + trk2.GetDefinition()->GetPDGMass() < sqrtS)
if (trk1.GetActualMass() + trk2.GetActualMass() < sqrtS)
{
G4LorentzVector mom1 = trk1.Get4Momentum();
// The nucleons of the nucleus are FROZEN, ie. do not move..
@@ -247,6 +248,7 @@ G4double G4Scatterer::GetTimeToInteraction(const G4KineticTrack& trk1,
<< ", mass1 = " << trk1.GetDefinition()->GetPDGMass()
<< ", mass2 = " << trk2.GetDefinition()->GetPDGMass()
<< G4endl;
G4Exception("G4Scatterer TimeToInteraction is INF");
// End of debugging
*/
}
@@ -20,7 +20,7 @@
// * statement, and all its terms. *
// ********************************************************************
//
// $Id: G4VAngularDistribution.cc,v 1.2 2002/12/12 19:17:52 gunter Exp $ //
// $Id: G4VAngularDistribution.cc,v 1.3 2003/02/05 15:43:42 gcosmo Exp $ //
//
//
// -------------------------------------------------------------------
@@ -43,7 +43,6 @@
#include "globals.hh"
#include "G4VAngularDistribution.hh"
#include "Randomize.hh"
#include "PhysicalConstants.h"
G4double G4VAngularDistribution::Phi() const
{
@@ -76,12 +76,12 @@ G4KineticTrackVector* G4VScatteringCollision::FinalState(const G4KineticTrack& t
G4double outm2 = OutputDefinitions[1]->GetPDGMass();
if (OutputDefinitions[0]->IsShortLived())
outm1 = SampleResonanceMass(outm1, OutputDefinitions[0]->GetPDGWidth(),
outm1 = SampleResonanceMass(outm1, OutputDefinitions[0]->GetPDGWidth(),
G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass(),
sqrtS-outm2);
sqrtS-(G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass()));
if (OutputDefinitions[1]->IsShortLived())
outm2 = SampleResonanceMass(outm2, OutputDefinitions[1]->GetPDGWidth(),
outm2 = SampleResonanceMass(outm2, OutputDefinitions[1]->GetPDGWidth(),
G4Neutron::NeutronDefinition()->GetPDGMass()+G4PionPlus::PionPlus()->GetPDGMass(),
sqrtS-outm1);
@@ -100,15 +100,15 @@ G4KineticTrackVector* G4VScatteringCollision::FinalState(const G4KineticTrack& t
G4ThreeVector pFinal1(sin(acos(cosTheta))*cos(phi), sin(acos(cosTheta))*sin(phi), cosTheta);
// Three momentum in cm system
// Three momentum in cm system
G4double pCM = sqrt( (s-(outm1+outm2)*(outm1+outm2)) * (s-(outm1-outm2)*(outm1-outm2)) /(4.*s));
pFinal1 = pFinal1 * pCM;
pFinal1 = pFinal1 * pCM;
G4ThreeVector pFinal2 = -pFinal1;
G4double eFinal1 = sqrt(pFinal1.mag2() + outm1*outm1);
G4double eFinal2 = sqrt(pFinal2.mag2() + outm2*outm2);
G4LorentzVector p4Final1(pFinal1, eFinal1);
G4LorentzVector p4Final1(pFinal1, eFinal1);
G4LorentzVector p4Final2(pFinal2, eFinal2);
p4Final1 = toCMS*p4Final1;
p4Final2 = toCMS*p4Final2;
@@ -120,12 +120,12 @@ G4KineticTrackVector* G4VScatteringCollision::FinalState(const G4KineticTrack& t
p4Final2 *= toLabFrame;
// Final tracks are copies of incoming ones, with modified 4-momenta
G4KineticTrack* final1 = new G4KineticTrack(const_cast<G4ParticleDefinition *>(OutputDefinitions[0]), 0.0,
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,
G4KineticTrack* final2 = new G4KineticTrack(const_cast<G4ParticleDefinition *>(OutputDefinitions[1]), 0.0,
trk2.GetPosition(), p4Final2);
G4KineticTrackVector* finalTracks = new G4KineticTrackVector;
finalTracks->push_back(final1);
@@ -146,17 +146,16 @@ double G4VScatteringCollision::SampleResonanceMass(const double poleMass,
// width gamma and pole poleMass
G4double minMass = aMinMass;
if (minMass > maxMass) G4cerr << "##################### SampleResonanceMass: particle out of mass range" << G4endl;
if(minMass > maxMass) minMass -= G4PionPlus::PionPlus()->GetPDGMass();
if(minMass > maxMass) minMass = 0;
// if (poleMass > maxMass || poleMass < minMass)
// G4cerr << "SampleResonanceMass: particle out of mass range" << G4endl;
if (gamma < 1E-10*GeV)
return G4std::max(minMass,G4std::min(maxMass, poleMass));
else {
double fmin = BrWigInt0(minMass, gamma, poleMass);
double fmax = BrWigInt0(maxMass, gamma, poleMass);
double f = fmin + (fmax-fmin)*G4UniformRand();
return BrWigInv(f, gamma, poleMass);
return BrWigInv(f, gamma, poleMass);
}
}