Import Geant4 10.5.0 source tree

This commit is contained in:
Gabriele Cosmo
2018-12-07 15:15:39 +01:00
parent 6aa23be517
commit db49709b53
11370 changed files with 187480 additions and 160142 deletions
@@ -7,7 +7,6 @@
#
# Generated on : 12-Jan-2013
#
# $Id: CMakeLists.txt 66704 2013-01-10 18:20:17Z gunter $
#
#------------------------------------------------------------------------------
@@ -1,4 +1,3 @@
# $Id: GNUmakefile 104019 2017-05-08 07:34:08Z gcosmo $
# ---------------------------------------------------------------------------
# GNUmakefile for physics_lists/constructors/electromagnetic library.
# Gunter Folger 10-Jan-2012.
@@ -1,4 +1,3 @@
$Id: History 107437 2017-11-13 07:37:11Z gcosmo $
-------------------------------------------------------------------
=========================================================
@@ -14,8 +13,38 @@ introduced in the code and keeptrack of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
26-Nov-2018, A. Ribon (phys-ctor-helastic-V10-04-05)
- README : updated this file. No changes to anything else.
22-Nov-2018, V. Ivanchenko (phys-ctor-helastic-V10-04-04)
- G4HadronElasticPhysics, G4HadronElasticPhysicsXS - use
G4BGGNucleonElasticXS x-section for protons
17-Oct-2018, A. Ribon (phys-ctor-helastic-V10-04-03)
- G4HadronHElasticPhysics : for hyperon elastic cross sections,
replaced Chips cross sections with Glauber-Gribov ones.
19-Jul-2018, V. Ivanchenko (phys-ctor-helastic-V10-04-02)
- G4HadronElasticPhysics - fixed problem introduced in previous tags
for Hadr06 and Hadr07 extended examples
17-Jul-2018, V. Ivanchenko (phys-ctor-helastic-V10-04-01)
- G4ChargeExchangePhysics, G4IonElasticPhysics, G4ThermalNeutrons
removed static members; use C++11 keywards
17-Jul-2018, V. Ivanchenko (phys-ctor-helastic-V10-04-00)
- G4HadronElasticPhysics - added service methods GetElasticProcess(..),
GetElasticModel(..) , AddXSection(..); use C++11 keywards;
removed unnecessary statics
- G4HadronElasticPhysicsHP, G4HadronElasticPhysicsPHP,
G4HadronElasticPhysicsXS, G4HadronElasticPhysicsLEND - use inheritance
from G4HadronElasticPhysics; removed most of static members; use
C++11 keywards
- G4HadronElasticPhysicsXS - fix problem #2057
- G4HadronDElasticPhysics, G4HadronHElasticPhysics - use C++11 keywards
10-Nov-2017, T. Koi (phys-ctor-helastic-V10-03-04)
-Dumpping LEND target information in G4HadronElasticPhysicsLEND
- Dumpping LEND target information in G4HadronElasticPhysicsLEND
7-Nov-2017, T. Koi (phys-ctor-helastic-V10-03-03)
- G4HadronElasticPhysicsLEND: Modify setting of selection of target data
@@ -1,4 +1,3 @@
$Id: $
-------------------------------------------------------------------
@@ -31,7 +30,7 @@ $Id: $
----------------------
Hadron nuclear elastic process for all hadrons:
- proton
- cross section: Chips
- cross section: Barashenkov-Glauber-Gribov
- final-state: Chips
- neutron:
- cross section: G4NeutronElasticXS
@@ -40,7 +39,7 @@ $Id: $
- cross section: Barashenkov-Glauber-Gribov
- final-state: Starkov's model above 1 GeV, Gheisha below.
- kaons
- cross section: Gheisha
- cross section: Glauber-Gribov
- final-state: Gheisha
- hyperons, anti-hyperons, deuteron, triton, alpha
- cross section: Gheisha
@@ -67,8 +66,7 @@ $Id: $
G4HadronElasticPhysicsXS
------------------------
As G4HadronElasticPhysics, with only difference in the proton elastic
cross section: Barashenkov-Glauber-Gribov is used (instead of Chips).
Now exactly as G4HadronElasticPhysics.
G4HadronHElasticPhysics
-----------------------
@@ -82,11 +80,11 @@ $Id: $
- cross section: Barashenkov-Glauber-Gribov
- final-state: Diffuse model, except for Hydrogen where Chips is used
- kaons, hyperons, anti-hyperons
- cross section: Chips
- final-state: Chips
- deuteron, triton, He3, alpha
- cross section: Glauber-Gribov
- final-state: Gheisha
- final-state: Chips
- deuteron, triton, He3, alpha, and generic ions
- cross section: Glauber-Gribov
- final-state: Diffuse
- anti_proton, anti_neutron
- cross section: Galoyan-Uzhinsky-Glauber-Gribov
- final-state: Galoyan-Uzhinsky model above 100 MeV/nucleon,
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4ChargeExchangePhysics.hh 71037 2013-06-10 09:20:54Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -42,27 +41,25 @@
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
class G4ChargeExchange;
class G4ChargeExchangePhysics : public G4VPhysicsConstructor
{
public:
G4ChargeExchangePhysics(G4int ver = 0);
explicit G4ChargeExchangePhysics(G4int ver = 0);
virtual ~G4ChargeExchangePhysics();
public:
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
void ConstructParticle() override;
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
void ConstructProcess() override;
private:
G4int verbose;
static G4ThreadLocal G4bool wasActivated;
};
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronDElasticPhysics.hh 71037 2013-06-10 09:20:54Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -46,26 +45,26 @@ class G4HadronDElasticPhysics : public G4VPhysicsConstructor
{
public:
G4HadronDElasticPhysics(G4int ver = 1);
explicit G4HadronDElasticPhysics(G4int ver = 1);
virtual ~G4HadronDElasticPhysics();
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
void ConstructParticle() override;
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
void ConstructProcess() override;
private:
G4HadronDElasticPhysics(G4HadronDElasticPhysics &);
G4HadronDElasticPhysics & operator=(const G4HadronDElasticPhysics &right);
G4HadronDElasticPhysics(G4HadronDElasticPhysics &) = delete;
G4HadronDElasticPhysics & operator=
(const G4HadronDElasticPhysics &right) = delete;
G4int verbose;
static G4ThreadLocal G4bool wasActivated;
G4int verbose;
};
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysics.hh 81758 2014-06-05 08:12:06Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -49,39 +48,45 @@
#include "G4HadronElastic.hh"
#include "G4HadronicProcess.hh"
class G4VCrossSectionDataSet;
class G4ParticleDefinition;
class G4HadronElasticPhysics : public G4VPhysicsConstructor
{
public:
G4HadronElasticPhysics(G4int ver = 0);
explicit G4HadronElasticPhysics(G4int ver = 0,
const G4String& nam = "hElasticWEL_CHIPS_XS");
virtual ~G4HadronElasticPhysics();
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
void ConstructParticle() override;
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
void ConstructProcess() override;
G4HadronElastic* GetNeutronModel();
G4HadronicProcess* GetElasticProcess(const G4ParticleDefinition* part) const;
G4HadronicProcess* GetNeutronProcess();
G4HadronElastic* GetElasticModel(const G4ParticleDefinition* part) const;
G4HadronicProcess* GetNeutronProcess() const;
G4HadronElastic* GetNeutronModel() const;
void AddXSection(const G4ParticleDefinition*, G4VCrossSectionDataSet*) const;
private:
// copy constructor and hide assignment operator
G4HadronElasticPhysics(G4HadronElasticPhysics &);
G4HadronElasticPhysics & operator=(const G4HadronElasticPhysics &right);
G4int verbose;
static G4ThreadLocal G4bool wasActivated;
static G4ThreadLocal G4HadronElastic* neutronModel;
static G4ThreadLocal G4HadronicProcess* neutronProcess;
G4HadronElasticPhysics(G4HadronElasticPhysics &) = delete;
G4HadronElasticPhysics & operator=(const G4HadronElasticPhysics &right) = delete;
protected:
G4int verbose;
};
#endif
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysicsHP.hh 71037 2013-06-10 09:20:54Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -39,36 +38,26 @@
#ifndef G4HadronElasticPhysicsHP_h
#define G4HadronElasticPhysicsHP_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronElasticPhysics.hh"
class G4HadronElasticPhysics;
class G4HadronElasticPhysicsHP : public G4VPhysicsConstructor
class G4HadronElasticPhysicsHP : public G4HadronElasticPhysics
{
public:
G4HadronElasticPhysicsHP(G4int ver = 1);
explicit G4HadronElasticPhysicsHP(G4int ver = 1);
virtual ~G4HadronElasticPhysicsHP();
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
void ConstructProcess() final;
private:
G4HadronElasticPhysicsHP(G4HadronElasticPhysicsHP &);
G4HadronElasticPhysicsHP & operator=(const G4HadronElasticPhysicsHP &right);
G4HadronElasticPhysicsHP(G4HadronElasticPhysicsHP &) = delete;
G4HadronElasticPhysicsHP & operator=(const G4HadronElasticPhysicsHP &right) = delete;
G4int verbose;
static G4ThreadLocal G4bool wasActivated;
static G4ThreadLocal G4HadronElasticPhysics* mainElasticBuilder;
};
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysicsLEND.hh 71037 2013-06-10 09:20:54Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -39,36 +38,28 @@
#ifndef G4HadronElasticPhysicsLEND_h
#define G4HadronElasticPhysicsLEND_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronElasticPhysics.hh"
class G4HadronElasticPhysics;
class G4HadronElasticPhysicsLEND : public G4VPhysicsConstructor
class G4HadronElasticPhysicsLEND : public G4HadronElasticPhysics
{
public:
G4HadronElasticPhysicsLEND(G4int ver = 1,G4String evaluation="");
explicit G4HadronElasticPhysicsLEND(G4int ver = 1,
const G4String& eval="");
virtual ~G4HadronElasticPhysicsLEND();
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
void ConstructProcess() final;
private:
G4HadronElasticPhysicsLEND(G4HadronElasticPhysicsLEND &);
G4HadronElasticPhysicsLEND & operator=(const G4HadronElasticPhysicsLEND &right);
G4HadronElasticPhysicsLEND(G4HadronElasticPhysicsLEND &) = delete;
G4HadronElasticPhysicsLEND & operator=
(const G4HadronElasticPhysicsLEND &right) = delete;
G4int verbose;
static G4ThreadLocal G4bool wasActivated;
static G4ThreadLocal G4HadronElasticPhysics* mainElasticBuilder;
G4String evaluation;
};
@@ -37,35 +37,24 @@
#ifndef G4HadronElasticPhysicsPHP_h
#define G4HadronElasticPhysicsPHP_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronElasticPhysics.hh"
class G4HadronElasticPhysics;
class G4HadronElasticPhysicsPHP : public G4VPhysicsConstructor
class G4HadronElasticPhysicsPHP : public G4HadronElasticPhysics
{
public:
G4HadronElasticPhysicsPHP(G4int ver = 1);
explicit G4HadronElasticPhysicsPHP(G4int ver = 1);
virtual ~G4HadronElasticPhysicsPHP();
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
void ConstructProcess() final;
private:
G4HadronElasticPhysicsPHP(const G4HadronElasticPhysicsPHP&);
G4HadronElasticPhysicsPHP& operator=(const G4HadronElasticPhysicsPHP&);
G4int verbose;
static G4ThreadLocal G4bool wasActivated;
static G4ThreadLocal G4HadronElasticPhysics* mainElasticBuilder;
G4HadronElasticPhysicsPHP(const G4HadronElasticPhysicsPHP&) = delete;
G4HadronElasticPhysicsPHP& operator=(const G4HadronElasticPhysicsPHP&) = delete;
};
#endif
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysicsXS.hh 71037 2013-06-10 09:20:54Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -39,41 +38,25 @@
#ifndef G4HadronElasticPhysicsXS_h
#define G4HadronElasticPhysicsXS_h 1
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronElasticPhysics.hh"
class G4HadronElasticPhysics;
class G4VCrossSectionDataSet;
class G4ParticleDefinition;
class G4HadronElasticPhysicsXS : public G4VPhysicsConstructor
class G4HadronElasticPhysicsXS : public G4HadronElasticPhysics
{
public:
G4HadronElasticPhysicsXS(G4int ver = 1);
explicit G4HadronElasticPhysicsXS(G4int ver = 1);
virtual ~G4HadronElasticPhysicsXS();
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
void AddXSection(const G4ParticleDefinition*,
G4VCrossSectionDataSet*);
void ConstructProcess() final;
private:
G4HadronElasticPhysicsXS(G4HadronElasticPhysicsXS &);
G4HadronElasticPhysicsXS & operator=(const G4HadronElasticPhysicsXS &right);
G4int verbose;
static G4ThreadLocal G4bool wasActivated;
static G4ThreadLocal G4HadronElasticPhysics* mainElasticBuilder;
G4HadronElasticPhysicsXS(G4HadronElasticPhysicsXS &) = delete;
G4HadronElasticPhysicsXS & operator=(const G4HadronElasticPhysicsXS &right) = delete;
};
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronHElasticPhysics.hh 90757 2015-06-09 07:45:14Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -54,19 +53,20 @@ public:
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
void ConstructParticle() override;
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
void ConstructProcess() override;
inline void SetDiffraction(G4bool val) {fDiffraction = val;};
private:
G4HadronHElasticPhysics(G4HadronHElasticPhysics &);
G4HadronHElasticPhysics & operator=(const G4HadronHElasticPhysics &right);
G4HadronHElasticPhysics(G4HadronHElasticPhysics &) = delete;
G4HadronHElasticPhysics & operator=
(const G4HadronHElasticPhysics &right) = delete;
G4int verbose;
G4bool fDiffraction;
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4IonElasticPhysics.hh 73281 2013-08-23 08:21:37Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -41,34 +40,32 @@
#include "globals.hh"
#include "G4VPhysicsConstructor.hh"
#include "G4HadronicProcess.hh"
class G4IonElasticPhysics : public G4VPhysicsConstructor
{
public:
G4IonElasticPhysics(G4int ver = 0);
explicit G4IonElasticPhysics(G4int ver = 0);
virtual ~G4IonElasticPhysics();
// This method will be invoked in the Construct() method.
// each particle type will be instantiated
virtual void ConstructParticle();
void ConstructParticle() override;
// This method will be invoked in the Construct() method.
// each physics process will be instantiated and
// registered to the process manager of each particle type
virtual void ConstructProcess();
void ConstructProcess() override;
private:
// copy constructor and hide assignment operator
G4IonElasticPhysics(G4IonElasticPhysics &);
G4IonElasticPhysics & operator=(const G4IonElasticPhysics &right);
G4IonElasticPhysics(G4IonElasticPhysics &) = delete;
G4IonElasticPhysics & operator=
(const G4IonElasticPhysics &right) = delete;
G4int verbose;
static G4ThreadLocal G4bool wasActivated;
};
#endif
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4ThermalNeutrons.hh 70995 2013-06-09 00:56:34Z adotti $
//
//---------------------------------------------------------------------------
//
@@ -46,10 +45,10 @@
class G4ThermalNeutrons : public G4VHadronPhysics {
public:
G4ThermalNeutrons(G4int ver);
explicit G4ThermalNeutrons(G4int ver);
virtual ~G4ThermalNeutrons();
virtual void ConstructProcess();
void ConstructProcess() override;
private:
G4int verbose;
@@ -11,7 +11,6 @@
#
# Generated on : 10/01/2013
#
# $Id: sources.cmake 104019 2017-05-08 07:34:08Z gcosmo $
#
#------------------------------------------------------------------------------
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4ChargeExchangePhysics.cc 99978 2016-10-13 07:28:13Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -53,8 +52,6 @@
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4ChargeExchangePhysics);
G4ThreadLocal G4bool G4ChargeExchangePhysics::wasActivated = false;
G4ChargeExchangePhysics::G4ChargeExchangePhysics(G4int ver)
: G4VPhysicsConstructor("chargeExchange"), verbose(ver)
{
@@ -62,8 +59,7 @@ G4ChargeExchangePhysics::G4ChargeExchangePhysics(G4int ver)
}
G4ChargeExchangePhysics::~G4ChargeExchangePhysics()
{
}
{}
void G4ChargeExchangePhysics::ConstructParticle()
{
@@ -77,9 +73,6 @@ void G4ChargeExchangePhysics::ConstructParticle()
void G4ChargeExchangePhysics::ConstructProcess()
{
if(wasActivated) return;
wasActivated = true;
G4ChargeExchange* model = new G4ChargeExchange();
if(verbose > 1) {
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronDElasticPhysics.cc 99978 2016-10-13 07:28:13Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -85,7 +84,6 @@
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronDElasticPhysics);
G4ThreadLocal G4bool G4HadronDElasticPhysics::wasActivated = false;
G4HadronDElasticPhysics::G4HadronDElasticPhysics(G4int ver)
: G4VPhysicsConstructor("hElasticDIFFUSE"), verbose(ver)
{
@@ -114,9 +112,6 @@ void G4HadronDElasticPhysics::ConstructParticle()
void G4HadronDElasticPhysics::ConstructProcess()
{
if(wasActivated) return;
wasActivated = true;
const G4double elimitAntiNuc = 100.1*MeV;
if(verbose > 1) {
G4cout << "### HadronDElasticPhysics Construct Processes "
@@ -135,7 +130,8 @@ void G4HadronDElasticPhysics::ConstructProcess()
G4HadronElastic* lhep2 = new G4HadronElastic();
lhep2->SetMaxEnergy(elimitAntiNuc);
G4DiffuseElastic* model = 0;
G4DiffuseElastic* model = nullptr;
G4HadronElasticProcess* hel = nullptr;
auto myParticleIterator=GetParticleIterator();
myParticleIterator->reset();
@@ -161,7 +157,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
pname == "triton"
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->RegisterMe(lhep0);
pmanager->AddDiscreteProcess(hel);
if(verbose > 1) {
@@ -171,7 +167,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
} else if(pname == "proton") {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
//hel->AddDataSet(new G4CHIPSElasticXS());
model = new G4DiffuseElastic();
@@ -185,7 +181,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
} else if(pname == "neutron") {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronElasticXS::Default_Name()));
model = new G4DiffuseElastic();
hel->RegisterMe(lhep1);
@@ -199,7 +195,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
} else if (pname == "pi+" || pname == "pi-") {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet(new G4BGGPionElasticXS(particle));
model = new G4DiffuseElastic();
hel->RegisterMe(lhep1);
@@ -212,7 +208,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
} else if(pname == "kaon-") {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonMinusElasticXS::Default_Name()));
model = new G4DiffuseElastic();
hel->RegisterMe(lhep1);
@@ -224,7 +220,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
}
} else if(pname == "kaon+") {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonPlusElasticXS::Default_Name()));
model = new G4DiffuseElastic();
hel->RegisterMe(lhep1);
@@ -238,7 +234,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
pname == "kaon0L"
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonZeroElasticXS::Default_Name()));
model = new G4DiffuseElastic();
hel->RegisterMe(lhep1);
@@ -255,7 +251,7 @@ void G4HadronDElasticPhysics::ConstructProcess()
pname == "anti_triton" ||
pname == "anti_He3" ) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet(anucxs);
hel->RegisterMe(lhep2);
hel->RegisterMe(anuc);
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysics.cc 105730 2017-08-16 12:51:52Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -82,12 +81,9 @@
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronElasticPhysics);
//
G4ThreadLocal G4bool G4HadronElasticPhysics::wasActivated = false;
G4ThreadLocal G4HadronElastic* G4HadronElasticPhysics::neutronModel = 0;
G4ThreadLocal G4HadronicProcess* G4HadronElasticPhysics::neutronProcess = 0;
G4HadronElasticPhysics::G4HadronElasticPhysics(G4int ver)
: G4VPhysicsConstructor("hElasticWEL_CHIPS"), verbose(ver)
G4HadronElasticPhysics::G4HadronElasticPhysics(G4int ver, const G4String& nam)
: G4VPhysicsConstructor(nam), verbose(ver)
{
if(verbose > 1) {
G4cout << "### G4HadronElasticPhysics: " << GetPhysicsName()
@@ -113,9 +109,6 @@ void G4HadronElasticPhysics::ConstructParticle()
void G4HadronElasticPhysics::ConstructProcess()
{
if(wasActivated) { return; }
wasActivated = true;
const G4double elimitPi = 1.0*GeV;
const G4double elimitAntiNuc = 100.*MeV;
const G4double delta = 0.1*MeV;
@@ -137,15 +130,14 @@ void G4HadronElasticPhysics::ConstructProcess()
lhep1->SetMaxEnergy(elimitPi+delta);
lhep2->SetMaxEnergy(elimitAntiNuc+delta);
G4ChipsElasticModel* chipsp = new G4ChipsElasticModel();
neutronModel = new G4ChipsElasticModel();
G4ElasticHadrNucleusHE* he = new G4ElasticHadrNucleusHE();
he->SetMinEnergy(elimitPi);
G4VCrossSectionDataSet* theComponentGGHadronNucleusData =
new G4CrossSectionElastic( new G4ComponentGGHadronNucleusXsc );
G4HadronElasticProcess* hel = nullptr;
auto myParticleIterator=GetParticleIterator();
myParticleIterator->reset();
while( (*myParticleIterator)() )
@@ -170,7 +162,7 @@ void G4HadronElasticPhysics::ConstructProcess()
pname == "triton"
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->RegisterMe(lhep0);
pmanager->AddDiscreteProcess(hel);
if(verbose > 1) {
@@ -179,7 +171,7 @@ void G4HadronElasticPhysics::ConstructProcess()
}
} else if(pname == "He3") {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
G4VCrossSectionDataSet* theComponentGGNuclNuclData =
new G4CrossSectionElastic(new G4ComponentGGNuclNuclXsc());
hel->AddDataSet(theComponentGGNuclNuclData);
@@ -192,13 +184,12 @@ void G4HadronElasticPhysics::ConstructProcess()
} else if(pname == "proton") {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
//hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
hel = new G4HadronElasticProcess();
hel->AddDataSet(new G4BGGNucleonElasticXS(particle));
// hel->AddDataSet(new G4ChipsProtonElasticXS());
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsProtonElasticXS::Default_Name()));
//hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsProtonElasticXS::Default_Name()));
hel->RegisterMe(chipsp);
hel->RegisterMe(new G4ChipsElasticModel());
pmanager->AddDiscreteProcess(hel);
if(verbose > 1) {
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
@@ -207,19 +198,18 @@ void G4HadronElasticPhysics::ConstructProcess()
} else if(pname == "neutron") {
neutronProcess = new G4HadronElasticProcess();
neutronProcess->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronElasticXS::Default_Name()));
neutronProcess->RegisterMe(neutronModel);
pmanager->AddDiscreteProcess(neutronProcess);
hel = new G4HadronElasticProcess();
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronElasticXS::Default_Name()));
hel->RegisterMe(new G4ChipsElasticModel());
pmanager->AddDiscreteProcess(hel);
if(verbose > 1) {
G4cout << "### HadronElasticPhysics: "
<< neutronProcess->GetProcessName()
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
<< " added for " << particle->GetParticleName() << G4endl;
}
} else if (pname == "pi+" || pname == "pi-") {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet(new G4BGGPionElasticXS(particle));
hel->RegisterMe(lhep1);
hel->RegisterMe(he);
@@ -235,7 +225,7 @@ void G4HadronElasticPhysics::ConstructProcess()
pname == "kaon0L"
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
//AR-14Aug2017 : Replaced Gheisha elastic kaon cross sections with
// Grichine's Glauber-Gribov ones. In this way, the
// total (elastic + inelastic) kaon cross sections
@@ -257,7 +247,7 @@ void G4HadronElasticPhysics::ConstructProcess()
pname == "anti_triton" ||
pname == "anti_He3" ) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet(anucxs);
hel->RegisterMe(lhep2);
hel->RegisterMe(anuc);
@@ -266,15 +256,48 @@ void G4HadronElasticPhysics::ConstructProcess()
}
}
G4HadronElastic* G4HadronElasticPhysics::GetNeutronModel()
G4HadronicProcess*
G4HadronElasticPhysics::GetElasticProcess(const G4ParticleDefinition* part) const
{
return neutronModel;
G4HadronicProcess* hp = nullptr;
G4ProcessVector* pv = part->GetProcessManager()->GetPostStepProcessVector();
size_t n = pv->size();
for(size_t i=0; i<n; ++i) {
if((*pv)[i]->GetProcessSubType() == fHadronElastic) {
hp = static_cast<G4HadronicProcess*>((*pv)[i]);
break;
}
}
return hp;
}
G4HadronicProcess* G4HadronElasticPhysics::GetNeutronProcess()
G4HadronElastic*
G4HadronElasticPhysics::GetElasticModel(const G4ParticleDefinition* part) const
{
return neutronProcess;
G4HadronElastic* mod = nullptr;
G4HadronicProcess* hel = GetElasticProcess(part);
if(hel) {
std::vector<G4HadronicInteraction*>& hi = hel->GetHadronicInteractionList();
if(hi.size() > 0) { mod = static_cast<G4HadronElastic*>(hi[0]); }
}
return mod;
}
G4HadronicProcess* G4HadronElasticPhysics::GetNeutronProcess() const
{
return GetElasticProcess(G4Neutron::Neutron());
}
G4HadronElastic* G4HadronElasticPhysics::GetNeutronModel() const
{
return GetElasticModel(G4Neutron::Neutron());
}
void G4HadronElasticPhysics::AddXSection(const G4ParticleDefinition* part,
G4VCrossSectionDataSet* cross) const
{
G4HadronicProcess* hel = GetElasticProcess(part);
if(hel) { hel->AddDataSet(cross); }
}
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysicsHP.cc 93877 2015-11-03 08:17:08Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -41,7 +40,6 @@
#include "G4HadronElasticPhysicsHP.hh"
#include "G4SystemOfUnits.hh"
#include "G4HadronElasticPhysics.hh"
#include "G4Neutron.hh"
#include "G4HadronicProcess.hh"
#include "G4HadronElastic.hh"
@@ -53,44 +51,30 @@
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsHP);
G4ThreadLocal G4bool G4HadronElasticPhysicsHP::wasActivated = false;
G4ThreadLocal G4HadronElasticPhysics* G4HadronElasticPhysicsHP::mainElasticBuilder = 0;
G4HadronElasticPhysicsHP::G4HadronElasticPhysicsHP(G4int ver)
: G4VPhysicsConstructor("hElasticWEL_CHIPS_HP"), verbose(ver)
: G4HadronElasticPhysics(ver, "hElasticWEL_CHIPS_HP")
{
if(verbose > 1) {
G4cout << "### G4HadronElasticPhysicsHP: " << GetPhysicsName()
<< G4endl;
}
mainElasticBuilder = new G4HadronElasticPhysics(verbose);
}
G4HadronElasticPhysicsHP::~G4HadronElasticPhysicsHP()
{
delete mainElasticBuilder;
}
void G4HadronElasticPhysicsHP::ConstructParticle()
{
// G4cout << "G4HadronElasticPhysics::ConstructParticle" << G4endl;
mainElasticBuilder->ConstructParticle();
}
{}
void G4HadronElasticPhysicsHP::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();
G4HadronElasticPhysics::ConstructProcess();
mainElasticBuilder->GetNeutronModel()->SetMinEnergy(19.5*MeV);
G4HadronicProcess* hel = mainElasticBuilder->GetNeutronProcess();
G4ParticleHPElastic* hp = new G4ParticleHPElastic();
hel->RegisterMe(hp);
hel->AddDataSet(new G4ParticleHPElasticData());
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
G4HadronElastic* he = GetElasticModel(neutron);
G4HadronicProcess* hel = GetElasticProcess(neutron);
if(he && hel) {
he->SetMinEnergy(19.5*MeV);
hel->RegisterMe(new G4ParticleHPElastic());
hel->AddDataSet(new G4ParticleHPElasticData());
}
if(verbose > 1) {
G4cout << "### HadronElasticPhysicsHP is constructed "
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysicsLEND.cc 107437 2017-11-13 07:37:11Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -42,7 +41,6 @@
#include "G4HadronElasticPhysicsLEND.hh"
#include "G4SystemOfUnits.hh"
#include "G4HadronElasticPhysics.hh"
#include "G4Neutron.hh"
#include "G4HadronicProcess.hh"
#include "G4HadronElastic.hh"
@@ -55,54 +53,41 @@
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsLEND);
G4ThreadLocal G4bool G4HadronElasticPhysicsLEND::wasActivated = false;
G4ThreadLocal G4HadronElasticPhysics* G4HadronElasticPhysicsLEND::mainElasticBuilder = 0;
G4HadronElasticPhysicsLEND::G4HadronElasticPhysicsLEND(G4int ver,G4String eva)
: G4VPhysicsConstructor("hElasticWEL_CHIPS_LEND"), verbose(ver),
evaluation(eva)
G4HadronElasticPhysicsLEND::G4HadronElasticPhysicsLEND(G4int ver, const G4String& eva)
: G4HadronElasticPhysics(ver, "hElasticWEL_CHIPS_LEND"), evaluation(eva)
{
if(verbose > 1) {
G4cout << "### G4HadronElasticPhysicsLEND: " << GetPhysicsName()
<< G4endl;
}
mainElasticBuilder = new G4HadronElasticPhysics(verbose);
}
G4HadronElasticPhysicsLEND::~G4HadronElasticPhysicsLEND()
{
delete mainElasticBuilder;
}
void G4HadronElasticPhysicsLEND::ConstructParticle()
{
// G4cout << "G4HadronElasticPhysics::ConstructParticle" << G4endl;
mainElasticBuilder->ConstructParticle();
}
{}
void G4HadronElasticPhysicsLEND::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();
G4HadronElasticPhysics::ConstructProcess();
mainElasticBuilder->GetNeutronModel()->SetMinEnergy(19.5*MeV);
G4HadronicProcess* hel = mainElasticBuilder->GetNeutronProcess();
G4LENDElastic* lend = new G4LENDElastic( G4Neutron::Neutron() );
if ( evaluation.size() > 0 ) lend->ChangeDefaultEvaluation( evaluation );
lend->AllowNaturalAbundanceTarget();
//lend->AllowAnyCandidateTarget();
lend->DumpLENDTargetInfo(true);
hel->RegisterMe(lend);
G4LENDElasticCrossSection* lend_XS = new G4LENDElasticCrossSection( G4Neutron::Neutron() );
if ( evaluation.size() > 0 ) lend_XS->ChangeDefaultEvaluation( evaluation );
lend_XS->AllowNaturalAbundanceTarget();
//lend_XS->AllowAnyCandidateTarget();
hel->AddDataSet( lend_XS );
G4ParticleDefinition* neutron = G4Neutron::Neutron();
G4HadronElastic* he = GetElasticModel(neutron);
G4HadronicProcess* hel = GetElasticProcess(neutron);
if(he && hel) {
he->SetMinEnergy(19.5*MeV);
G4LENDElastic* lend = new G4LENDElastic(neutron);
G4LENDElasticCrossSection* lend_XS = new G4LENDElasticCrossSection(neutron);
if ( evaluation.size() > 0 ) {
lend->ChangeDefaultEvaluation( evaluation );
lend_XS->ChangeDefaultEvaluation( evaluation );
}
lend->AllowNaturalAbundanceTarget();
//lend->AllowAnyCandidateTarget();
lend->DumpLENDTargetInfo(true);
hel->RegisterMe(lend);
lend_XS->AllowNaturalAbundanceTarget();
//lend_XS->AllowAnyCandidateTarget();
hel->AddDataSet( lend_XS );
}
if(verbose > 1) {
G4cout << "### HadronElasticPhysicsLEND is constructed"
@@ -34,7 +34,6 @@
// particle HP model for n with E < 20 MeV
#include "G4HadronElasticPhysicsPHP.hh"
#include "G4HadronElasticPhysics.hh"
#include "G4Neutron.hh"
#include "G4HadronicProcess.hh"
#include "G4HadronElastic.hh"
@@ -47,44 +46,31 @@
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsPHP);
//
G4ThreadLocal G4bool G4HadronElasticPhysicsPHP::wasActivated = false;
G4ThreadLocal G4HadronElasticPhysics* G4HadronElasticPhysicsPHP::mainElasticBuilder = 0;
G4HadronElasticPhysicsPHP::G4HadronElasticPhysicsPHP(G4int ver)
: G4VPhysicsConstructor("hElasticPhysics_PHP"), verbose(ver)
: G4HadronElasticPhysics(ver, "hElasticPhysics_PHP")
{
if(verbose > 1) {
G4cout << "### G4HadronElasticPhysicsPHP: " << GetPhysicsName()
<< G4endl;
}
mainElasticBuilder = new G4HadronElasticPhysics(verbose);
}
G4HadronElasticPhysicsPHP::~G4HadronElasticPhysicsPHP()
{
delete mainElasticBuilder; mainElasticBuilder = 0;
}
void G4HadronElasticPhysicsPHP::ConstructParticle()
{
// G4cout << "G4HadronElasticPhysics::ConstructParticle" << G4endl;
mainElasticBuilder->ConstructParticle();
}
{}
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();
G4HadronElasticPhysics::ConstructProcess();
mainElasticBuilder->GetNeutronModel()->SetMinEnergy(19.5*MeV);
G4HadronicProcess* hel = mainElasticBuilder->GetNeutronProcess();
G4ParticleHPElastic* hp = new G4ParticleHPElastic();
hel->RegisterMe(hp);
hel->AddDataSet(new G4ParticleHPElasticData());
const G4ParticleDefinition* neutron = G4Neutron::Neutron();
G4HadronElastic* he = GetElasticModel(neutron);
G4HadronicProcess* hel = GetElasticProcess(neutron);
if(he && hel) {
he->SetMinEnergy(19.5*MeV);
hel->RegisterMe(new G4ParticleHPElastic());
hel->AddDataSet(new G4ParticleHPElasticData());
}
if(verbose > 1) {
G4cout << "### HadronElasticPhysicsHP is constructed "
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronElasticPhysicsXS.cc 83699 2014-09-10 07:18:25Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -40,10 +39,6 @@
// XS cross sections for neutrons
#include "G4HadronElasticPhysicsXS.hh"
#include "G4HadronElasticPhysics.hh"
#include "G4HadronicProcessType.hh"
#include "G4HadronicProcess.hh"
#include "G4ProcessManager.hh"
#include "G4VCrossSectionDataSet.hh"
#include "G4Neutron.hh"
#include "G4Proton.hh"
@@ -53,78 +48,34 @@
#include "G4BGGPionElasticXS.hh"
#include "G4NeutronElasticXS.hh"
#include "G4CrossSectionDataSetRegistry.hh"
// factory
#include "G4PhysicsConstructorFactory.hh"
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4HadronElasticPhysicsXS);
G4ThreadLocal G4bool G4HadronElasticPhysicsXS::wasActivated = false;
G4ThreadLocal G4HadronElasticPhysics* G4HadronElasticPhysicsXS::mainElasticBuilder = 0;
G4HadronElasticPhysicsXS::G4HadronElasticPhysicsXS(G4int ver)
: G4VPhysicsConstructor("hElasticWEL_CHIPS_XS"), verbose(ver)
: G4HadronElasticPhysics(ver, "hElasticWEL_CHIPS_XS")
{
if(verbose > 1) {
G4cout << "### G4HadronElasticPhysicsHP: " << GetPhysicsName()
<< G4endl;
}
mainElasticBuilder = new G4HadronElasticPhysics(verbose);
}
G4HadronElasticPhysicsXS::~G4HadronElasticPhysicsXS()
{
delete mainElasticBuilder;
}
void G4HadronElasticPhysicsXS::ConstructParticle()
{
// G4cout << "G4HadronElasticPhysics::ConstructParticle" << G4endl;
mainElasticBuilder->ConstructParticle();
}
{}
void G4HadronElasticPhysicsXS::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->GetNeutronProcess()->
AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronElasticXS::Default_Name()));
G4HadronElasticPhysics::ConstructProcess();
/*
const G4ParticleDefinition* part = G4Proton::Proton();
AddXSection(part, new G4BGGNucleonElasticXS(part));
/*
part = G4PionPlus::PionPlus();
AddXSection(part, new G4BGGPionElasticXS(part));
part = G4PionMinus::PionMinus();
AddXSection(part, new G4BGGPionElasticXS(part));
*/
if(verbose > 1) {
G4cout << "### G4HadronElasticPhysicsXS is constructed "
<< G4endl;
}
}
void
G4HadronElasticPhysicsXS::AddXSection(const G4ParticleDefinition* part,
G4VCrossSectionDataSet* cross)
{
G4ProcessVector* pv = part->GetProcessManager()->GetPostStepProcessVector();
size_t n = pv->size();
if(0 < n) {
for(size_t i=0; i<n; ++i) {
if((*pv)[i]->GetProcessSubType() == fHadronElastic) {
G4HadronicProcess* hp = static_cast<G4HadronicProcess*>((*pv)[i]);
hp->AddDataSet(cross);
return;
}
}
}
*/
}
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HadronHElasticPhysics.cc 106721 2017-10-20 09:46:54Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -85,7 +84,7 @@
//
G4_DECLARE_PHYSCONSTR_FACTORY( G4HadronHElasticPhysics );
G4ThreadLocal G4DiffElasticRatio* G4HadronHElasticPhysics::diffRatio = 0;
G4ThreadLocal G4DiffElasticRatio* G4HadronHElasticPhysics::diffRatio = nullptr;
G4HadronHElasticPhysics::G4HadronHElasticPhysics( G4int ver, G4bool diffraction)
: G4VPhysicsConstructor( "hElastic_BEST" ), verbose( ver ),
@@ -156,12 +155,13 @@ void G4HadronHElasticPhysics::ConstructProcess() {
G4VCrossSectionDataSet* theComponentGGNuclNuclData =
new G4CrossSectionElastic( new G4ComponentGGNuclNuclXsc() );
G4LMsdGenerator* diffGen = 0;
G4LMsdGenerator* diffGen = nullptr;
if(fDiffraction) {
diffGen = new G4LMsdGenerator("LMsdDiffraction");
diffRatio = new G4DiffElasticRatio();
G4AutoDelete::Register(diffRatio);
}
G4HadronElasticProcess* hel = nullptr;
auto myParticleIterator=GetParticleIterator();
myParticleIterator->reset();
@@ -179,7 +179,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
pname == "anti_xi0" ||
pname == "anti_omega-"
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet( G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet( G4ChipsAntiBaryonElasticXS::Default_Name() ) );
hel->RegisterMe( chips1 );
pmanager->AddDiscreteProcess( hel );
@@ -196,8 +196,8 @@ void G4HadronHElasticPhysics::ConstructProcess() {
pname == "xi0" ||
pname == "omega-"
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel->AddDataSet( G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet( G4ChipsHyperonElasticXS::Default_Name() ) );
hel = new G4HadronElasticProcess();
hel->AddDataSet( theComponentGGHadronNucleusData );
hel->RegisterMe( chips1 );
pmanager->AddDiscreteProcess( hel );
if ( verbose > 1 ) {
@@ -206,7 +206,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
}
} else if ( pname == "proton" ) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet( new G4BGGNucleonElasticXS( particle ) );
// To preserve reproducibility, a different instance of
// G4DiffuseElastic must be used for each particle type.
@@ -222,7 +222,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
}
} else if ( pname == "neutron" ) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet(G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4NeutronElasticXS::Default_Name()) );
// To preserve reproducibility, a different instance of
// G4DiffuseElastic must be used for each particle type.
@@ -239,7 +239,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
}
} else if ( pname == "pi-" ) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet( new G4BGGPionElasticXS( particle ) );
// To preserve reproducibility, a different instance of
// G4DiffuseElastic must be used for each particle type.
@@ -255,7 +255,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
}
} else if ( pname == "pi+" ) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet( new G4BGGPionElasticXS( particle ) );
// To preserve reproducibility, a different instance of
// G4DiffuseElastic must be used for each particle type.
@@ -275,7 +275,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
pname == "kaon0S" ||
pname == "kaon0L"
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
//AR-14Aug2017 : Replaced Chips elastic kaon cross sections with
// Grichine's Glauber-Gribov ones. In this way, the
// total (elastic + inelastic) kaon cross sections
@@ -297,7 +297,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
pname == "He3" ||
pname == "alpha"
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet( theComponentGGNuclNuclData );
hel->RegisterMe( diffuseNuclNuclElastic );
pmanager->AddDiscreteProcess( hel );
@@ -307,7 +307,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
}
} else if ( pname == "anti_proton" || pname == "anti_neutron" ) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet( anucxs );
hel->RegisterMe( chips2 );
hel->RegisterMe( anuc );
@@ -322,7 +322,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
pname == "anti_He3" ||
pname == "anti_alpha"
) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet( anucxs );
hel->RegisterMe( lhep );
hel->RegisterMe( anuc );
@@ -333,7 +333,7 @@ void G4HadronHElasticPhysics::ConstructProcess() {
}
} else if ( pname == "GenericIon" ) {
G4HadronElasticProcess* hel = new G4HadronElasticProcess();
hel = new G4HadronElasticProcess();
hel->AddDataSet( theComponentGGNuclNuclData );
hel->RegisterMe( diffuseNuclNuclElastic );
pmanager->AddDiscreteProcess( hel );
@@ -341,9 +341,6 @@ void G4HadronHElasticPhysics::ConstructProcess() {
G4cout << "### HadronElasticPhysics: " << hel->GetProcessName()
<< " added for " << particle->GetParticleName() << G4endl;
}
}
}
}
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4IonElasticPhysics.cc 73281 2013-08-23 08:21:37Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -42,9 +41,7 @@
#include "G4ParticleDefinition.hh"
#include "G4ProcessManager.hh"
#include "G4MesonConstructor.hh"
#include "G4BaryonConstructor.hh"
#include "G4IonConstructor.hh"
#include "G4GenericIon.hh"
#include "G4HadronElasticProcess.hh"
#include "G4NuclNuclDiffuseElastic.hh"
@@ -56,7 +53,6 @@
//
G4_DECLARE_PHYSCONSTR_FACTORY(G4IonElasticPhysics);
//
G4ThreadLocal G4bool G4IonElasticPhysics::wasActivated = false;
G4IonElasticPhysics::G4IonElasticPhysics(G4int ver)
: G4VPhysicsConstructor("IonElasticPhysics"), verbose(ver)
@@ -72,41 +68,30 @@ G4IonElasticPhysics::~G4IonElasticPhysics()
void G4IonElasticPhysics::ConstructParticle()
{
// G4cout << "G4IonElasticPhysics::ConstructParticle" << G4endl;
G4MesonConstructor pMesonConstructor;
pMesonConstructor.ConstructParticle();
G4BaryonConstructor pBaryonConstructor;
pBaryonConstructor.ConstructParticle();
G4IonConstructor pConstructor;
pConstructor.ConstructParticle();
G4GenericIon::GenericIon();
}
void G4IonElasticPhysics::ConstructProcess()
{
if(wasActivated) { return; }
wasActivated = true;
// Elastic process for other ions
G4HadronElasticProcess* ionElasticProcess = new G4HadronElasticProcess("ionElastic");
// Elastic process for other ions
G4HadronElasticProcess* ionElasticProcess = new G4HadronElasticProcess("ionElastic");
//Model
G4NuclNuclDiffuseElastic* ionElastic = new G4NuclNuclDiffuseElastic;
ionElastic->SetMinEnergy(0.0);
ionElasticProcess->RegisterMe(ionElastic);
//Model
G4NuclNuclDiffuseElastic* ionElastic = new G4NuclNuclDiffuseElastic;
ionElastic->SetMinEnergy(0.0);
ionElasticProcess->RegisterMe(ionElastic);
//Cross Section
G4ComponentGGNuclNuclXsc* ionElasticXS = new G4ComponentGGNuclNuclXsc;
G4VCrossSectionDataSet* ionElasticXSDataSet = new G4CrossSectionElastic(ionElasticXS);
ionElasticXSDataSet->SetMinKinEnergy(0.0);
ionElasticProcess->AddDataSet(ionElasticXSDataSet);
//Cross Section
G4ComponentGGNuclNuclXsc* ionElasticXS = new G4ComponentGGNuclNuclXsc;
G4VCrossSectionDataSet* ionElasticXSDataSet = new G4CrossSectionElastic(ionElasticXS);
ionElasticXSDataSet->SetMinKinEnergy(0.0);
ionElasticProcess->AddDataSet(ionElasticXSDataSet);
G4ProcessManager* ionManager = G4GenericIon::GenericIon()->GetProcessManager();
ionManager->AddDiscreteProcess( ionElasticProcess );
G4ProcessManager* ionManager = G4GenericIon::GenericIon()->GetProcessManager();
ionManager->AddDiscreteProcess( ionElasticProcess );
if ( verbose > 1 ) {
G4cout << "### IonElasticPhysics: " << ionElasticProcess->GetProcessName()
<< " added for " << G4GenericIon::GenericIon()->GetParticleName() << G4endl;
}
if ( verbose > 1 ) {
G4cout << "### IonElasticPhysics: " << ionElasticProcess->GetProcessName()
<< " added for " << G4GenericIon::GenericIon()->GetParticleName() << G4endl;
}
}
@@ -23,7 +23,6 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4ThermalNeutrons.cc 70995 2013-06-09 00:56:34Z adotti $
//
//---------------------------------------------------------------------------
//