Import Geant4 10.3.0.beta source tree

This commit is contained in:
Gabriele Cosmo
2016-06-30 14:12:05 +02:00
parent a654a7ab1f
commit 4ec577e5c4
2021 changed files with 100995 additions and 78277 deletions
@@ -1,4 +1,4 @@
$Id: History 94088 2015-11-05 15:11:00Z gcosmo $
$Id: History 97178 2016-05-27 12:45:30Z gcosmo $
-------------------------------------------------------------------
=========================================================
@@ -14,6 +14,15 @@ introduced in the code and keeptrack of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
26-May-2016, A. Ribon (phys-ctor-helastic-V10-02-01)
- G4HadronElasticPhysicsPHP : made it thread-safe.
23-Feb-2016, A. Ribon (phys-ctor-helastic-V10-02-00)
- G4HadronElasticPhysics : added missing hadron elastic for He3,
using Glauber-Gribov elastic cross section (Gheisha does not have
hadronic (elastic and inelastic) cross sections for He3).
Thanks ALICE for spotting this.
05-Nov-2015, A. Ribon (phys-ctor-helastic-V10-01-05)
- Removed neutron_hp/
@@ -63,8 +63,8 @@ private:
G4HadronElasticPhysicsPHP(const G4HadronElasticPhysicsPHP&);
G4HadronElasticPhysicsPHP& operator=(const G4HadronElasticPhysicsPHP&);
G4int verbose;
G4bool wasActivated;
G4HadronElasticPhysics* mainElasticBuilder;
static G4ThreadLocal G4bool wasActivated;
static G4ThreadLocal G4HadronElasticPhysics* mainElasticBuilder;
};
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysics.cc 88356 2015-02-16 09:00:15Z gcosmo $
// $Id: G4HadronElasticPhysics.cc 95771 2016-02-24 08:23:05Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -63,6 +63,8 @@
#include "G4ElasticHadrNucleusHE.hh"
#include "G4AntiNuclElastic.hh"
#include "G4ComponentGGNuclNuclXsc.hh"
#include "G4BGGNucleonElasticXS.hh"
#include "G4BGGPionElasticXS.hh"
@@ -171,6 +173,18 @@ void G4HadronElasticPhysics::ConstructProcess()
<< " added for " << particle->GetParticleName() << G4endl;
}
} else if(pname == "He3") {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
G4VCrossSectionDataSet* theComponentGGNuclNuclData =
new G4CrossSectionElastic(new G4ComponentGGNuclNuclXsc());
hel->AddDataSet(theComponentGGNuclNuclData);
hel->RegisterMe(lhep0);
pmanager->AddDiscreteProcess(hel);
if(verbose > 1) {
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
<< " added for " << particle->GetParticleName() << G4endl;
}
} else if(pname == "proton") {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
@@ -41,9 +41,16 @@
#include "G4ParticleHPElastic.hh"
#include "G4ParticleHPElasticData.hh"
// factory
#include "G4PhysicsConstructorFactory.hh"
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsPHP);
//
G4ThreadLocal G4bool G4HadronElasticPhysicsPHP::wasActivated = false;
G4ThreadLocal G4HadronElasticPhysics* G4HadronElasticPhysicsPHP::mainElasticBuilder = 0;
G4HadronElasticPhysicsPHP::G4HadronElasticPhysicsPHP(G4int ver)
: G4VPhysicsConstructor("hElasticPhysics_PHP"), verbose(ver),
wasActivated(false)
: G4VPhysicsConstructor("hElasticPhysics_PHP"), verbose(ver)
{
if(verbose > 1) {
G4cout << "### G4HadronElasticPhysicsPHP: " << GetPhysicsName()
@@ -54,7 +61,7 @@ G4HadronElasticPhysicsPHP::G4HadronElasticPhysicsPHP(G4int ver)
G4HadronElasticPhysicsPHP::~G4HadronElasticPhysicsPHP()
{
delete mainElasticBuilder;
delete mainElasticBuilder; mainElasticBuilder = 0;
}
void G4HadronElasticPhysicsPHP::ConstructParticle()
@@ -67,7 +74,8 @@ void G4HadronElasticPhysicsPHP::ConstructProcess()
{
if(wasActivated) { return; }
wasActivated = true;
//Needed because this is a TLS object and this method is called by all threads
if ( ! mainElasticBuilder ) mainElasticBuilder = new G4HadronElasticPhysics(verbose);
mainElasticBuilder->ConstructProcess();
mainElasticBuilder->GetNeutronModel()->SetMinEnergy(19.5*MeV);