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
+35 -1
View File
@@ -1,4 +1,4 @@
$Id: History 94096 2015-11-05 15:19:03Z gcosmo $
$Id: History 97750 2016-06-08 12:20:28Z gcosmo $
-------------------------------------------------------------------
=========================================================
@@ -14,6 +14,40 @@ introduced in the code and keeptrack of all tags.
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
26-May-2016, Alberto Ribon (phys-lists-V10-02-06)
- QGSP_BIC_AllHP : use new, specialized ion constructor, G4IonPhysicsPHP.
10-May-2016, Robert Hatcher (phys-lists-V10-02-05)
- mv src/G4RegisterPhysLists.cc to include/G4RegisterPhysLists.icc
so that it gets compiled as part of the G4PhysListRegistry compilation
unit. This ensures that all the physics lists declared to the
registry are referenced by it such that the linker will include
them if libraries are built statically, even when the loader
doesn't force whole-archive (not possible for MS Visual Studio) loading.
- Fix exception label so it is unique.
06-Apr-2016, Alberto Ribon (phys-lists-V10-02-04)
- FTFP_BERT_ATL : created new, experimental physics list for ATLAS,
similar to FTFP_BERT but with the transition between BERT and FTFP
in the energy region [9, 12] GeV.
09-Mar-2016, Alberto Ribon (phys-lists-V10-02-03)
- FTFP_BERT_TRV : Use GS multiple scattering with the most precise
"error-free" stepping. This is done for the purpose of studying
the impact of multiple scattering on hadronic showers.
23-Feb-2016, Alberto Ribon (phys-lists-V10-02-02)
- FTFP_BERT_TRV : Use GS multiple scattering with the more precise option,
(Opt3), instead of the default (Opt0). This is done for the purpose of
studying the impact of multiple scattering on hadronic showers.
14-Jan-2016, Alberto Ribon (phys-lists-V10-02-01)
- Re-submitting the previous tag (that was rejected).
04-Dec-2015, Alberto Ribon (phys-lists-V10-02-00)
- FTFP_BERT_TRV : Switch on (again) the low-mass diffraction dissociation
used in G4HadronHElasticPhysics
05-Nov-2015, Alberto Ribon (phys-lists-V10-01-13)
- Removed neutron_hp/ .
@@ -0,0 +1,66 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id:$
//
//---------------------------------------------------------------------------
// Author: Alberto Ribon
// Date: April 2016
//
// New physics list FTFP_BERT_ATL.
// This is a modified version of the FTFP_BERT physics list for ATLAS.
// The physics list FTFP_BERT_ATL has the transition between Bertini (BERT)
// intra-nuclear cascade model and Fritiof (FTF) string model in the
// energy region [9, 12] GeV (instead of [4, 5] GeV as in FTFP_BERT).
//----------------------------------------------------------------------------
//
#ifndef TFTFP_BERT_ATL_h
#define TFTFP_BERT_ATL_h 1
#include <CLHEP/Units/SystemOfUnits.h>
#include "globals.hh"
#include "G4VModularPhysicsList.hh"
#include "CompileTimeConstraints.hh"
template<class T>
class TFTFP_BERT_ATL: public T
{
public:
TFTFP_BERT_ATL(G4int ver = 1);
virtual ~TFTFP_BERT_ATL();
public:
// SetCuts()
virtual void SetCuts();
private:
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
};
#include "FTFP_BERT_ATL.icc"
typedef TFTFP_BERT_ATL<G4VModularPhysicsList> FTFP_BERT_ATL;
#endif
@@ -0,0 +1,119 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id:$
//
//---------------------------------------------------------------------------
// Author: Alberto Ribon
// Date: April 2016
//
// New physics list FTFP_BERT_ATL.
// This is a modified version of the FTFP_BERT physics list for ATLAS.
// The physics list FTFP_BERT_ATL has the transition between Bertini (BERT)
// intra-nuclear cascade model and Fritiof (FTF) string model in the
// energy region [9, 12] GeV (instead of [4, 5] GeV as in FTFP_BERT).
//----------------------------------------------------------------------------
//
#include <iomanip>
#include "globals.hh"
#include "G4ios.hh"
#include "G4ProcessManager.hh"
#include "G4ProcessVector.hh"
#include "G4ParticleTypes.hh"
#include "G4ParticleTable.hh"
#include "G4Material.hh"
#include "G4MaterialTable.hh"
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4StoppingPhysics.hh"
#include "G4HadronElasticPhysics.hh"
#include "G4NeutronTrackingCut.hh"
#include "G4DataQuestionaire.hh"
#include "G4HadronPhysicsFTFP_BERT_ATL.hh"
#include "G4WarnPLStatus.hh"
template<class T> TFTFP_BERT_ATL<T>::TFTFP_BERT_ATL(G4int ver): T()
{
// default cut value (1.0mm)
// defaultCutValue = 1.0*CLHEP::mm;
G4DataQuestionaire it(photon);
G4cout << "<<< Geant4 Physics List simulation engine: FTFP_BERT_ATL 2.0"<<G4endl;
G4cout <<G4endl;
this->defaultCutValue = 0.7*CLHEP::mm;
this->SetVerboseLevel(ver);
G4WarnPLStatus exp;
exp.Experimental("FTFP_BERT_ATL");
// EM Physics
this->RegisterPhysics( new G4EmStandardPhysics(ver));
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics(ver) );
// Decays
this->RegisterPhysics( new G4DecayPhysics(ver) );
// Hadron Elastic scattering
this->RegisterPhysics( new G4HadronElasticPhysics(ver) );
// Hadron Physics
this->RegisterPhysics( new G4HadronPhysicsFTFP_BERT_ATL(ver) );
// Stopping Physics
this->RegisterPhysics( new G4StoppingPhysics(ver) );
// Ion Physics
this->RegisterPhysics( new G4IonPhysics(ver));
// Neutron tracking cut
this->RegisterPhysics( new G4NeutronTrackingCut(ver));
}
template<class T> TFTFP_BERT_ATL<T>::~TFTFP_BERT_ATL()
{
}
template<class T> void TFTFP_BERT_ATL<T>::SetCuts()
{
if (this->verboseLevel >1){
G4cout << "FTFP_BERT_ATL::SetCuts:";
}
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
// the default cut value for all particle types
this->SetCutsWithDefault();
// if (this->verboseLevel > 0)
// G4VUserPhysicsList::DumpCutValuesTable();
}
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: FTFP_BERT_TRV.icc 92960 2015-09-23 08:41:04Z gcosmo $
// $Id: FTFP_BERT_TRV.icc 96038 2016-03-09 13:13:59Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -70,6 +70,9 @@
#include "G4WarnPLStatus.hh"
#include "G4EmParameters.hh"
template<class T> TFTFP_BERT_TRV<T>::TFTFP_BERT_TRV(G4int ver): T()
{
// default cut value (1.0mm)
@@ -84,7 +87,9 @@ template<class T> TFTFP_BERT_TRV<T>::TFTFP_BERT_TRV(G4int ver): T()
exp.Experimental("FTFP_BERT_TRV");
// EM Physics
this->RegisterPhysics( new G4EmStandardPhysicsGS(ver) );
G4EmStandardPhysicsGS* gsPhysics = new G4EmStandardPhysicsGS( ver );
G4EmParameters::Instance()->SetMscStepLimitType( fUseSafety );
this->RegisterPhysics( gsPhysics );
// Synchroton Radiation & GN Physics
this->RegisterPhysics( new G4EmExtraPhysics(ver) );
@@ -93,7 +98,7 @@ template<class T> TFTFP_BERT_TRV<T>::TFTFP_BERT_TRV(G4int ver): T()
this->RegisterPhysics( new G4DecayPhysics(ver) );
// Hadron Elastic scattering
this->RegisterPhysics( new G4HadronHElasticPhysics(ver, false) );
this->RegisterPhysics( new G4HadronHElasticPhysics(ver, true) );
// Hadron Physics
this->RegisterPhysics( new G4HadronPhysicsFTFP_BERT_TRV(ver));
@@ -46,6 +46,9 @@ G4_DECLARE_PHYSLIST_FACTORY(FTFP_BERT_HP);
#include "FTFP_BERT_TRV.hh"
G4_DECLARE_PHYSLIST_FACTORY(FTFP_BERT_TRV);
#include "FTFP_BERT_ATL.hh"
G4_DECLARE_PHYSLIST_FACTORY(FTFP_BERT_ATL);
#include "FTFP_INCLXX.hh"
G4_DECLARE_PHYSLIST_FACTORY(FTFP_INCLXX);
@@ -47,7 +47,7 @@
#include "G4DecayPhysics.hh"
#include "G4EmStandardPhysics.hh"
#include "G4EmExtraPhysics.hh"
#include "G4IonPhysics.hh"
#include "G4IonPhysicsPHP.hh"
#include "G4StoppingPhysics.hh"
#include "G4HadronElasticPhysicsPHP.hh"
@@ -86,7 +86,7 @@ template<class T> TQGSP_BIC_AllHP<T>::TQGSP_BIC_AllHP(G4int ver): T()
this->RegisterPhysics( new G4StoppingPhysics(ver) );
// Ion Physics
this->RegisterPhysics( new G4IonPhysics(ver));
this->RegisterPhysics( new G4IonPhysicsPHP(ver));
}
+4 -2
View File
@@ -11,7 +11,7 @@
#
# Generated on : 24/9/2010
#
# $Id: sources.cmake 94096 2015-11-05 15:19:03Z gcosmo $
# $Id: sources.cmake 97176 2016-05-27 12:42:50Z gcosmo $
#
#------------------------------------------------------------------------------
@@ -114,6 +114,8 @@ GEANT4_DEFINE_MODULE(NAME G4phys_lists
FTFP_BERT.icc
FTFP_BERT_TRV.hh
FTFP_BERT_TRV.icc
FTFP_BERT_ATL.hh
FTFP_BERT_ATL.icc
G4GenericPhysicsList.hh
G4GenericPhysicsList.icc
G4PhysListFactory.hh
@@ -147,12 +149,12 @@ GEANT4_DEFINE_MODULE(NAME G4phys_lists
G4PhysListFactoryAlt.hh
QGSP_BIC_AllHP.hh
QGSP_BIC_AllHP.icc
G4RegisterPhysLists.icc
SOURCES
G4PhysListFactory.cc
QBBC.cc
G4PhysListRegistry.cc
G4PhysListFactoryAlt.cc
G4RegisterPhysLists.cc
GRANULAR_DEPENDENCIES
G4baryons
G4bosons
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4PhysListFactory.cc 92863 2015-09-18 12:44:13Z gcosmo $
// $Id: G4PhysListFactory.cc 96327 2016-04-06 15:50:53Z gcosmo $
//
//---------------------------------------------------------------------------
//
@@ -43,6 +43,7 @@
#include "FTFP_BERT.hh"
#include "FTFP_BERT_HP.hh"
#include "FTFP_BERT_TRV.hh"
#include "FTFP_BERT_ATL.hh"
#include "FTFP_INCLXX.hh"
#include "FTFP_INCLXX_HP.hh"
#include "FTF_BIC.hh"
@@ -72,9 +73,9 @@
G4PhysListFactory::G4PhysListFactory()
: defName("FTFP_BERT"),verbose(1)
{
nlists_hadr = 21;
G4String ss[21] = {
"FTFP_BERT","FTFP_BERT_TRV","FTFP_BERT_HP","FTFP_INCLXX",
nlists_hadr = 22;
G4String ss[22] = {
"FTFP_BERT","FTFP_BERT_TRV","FTFP_BERT_ATL","FTFP_BERT_HP","FTFP_INCLXX",
"FTFP_INCLXX_HP","FTF_BIC", "LBE","QBBC",
"QGSP_BERT","QGSP_BERT_HP","QGSP_BIC","QGSP_BIC_HP","QGSP_BIC_AllHP",
"QGSP_FTFP_BERT","QGSP_INCLXX","QGSP_INCLXX_HP","QGS_BIC",
@@ -147,6 +148,7 @@ G4PhysListFactory::GetReferencePhysList(const G4String& name)
if(had_name == "FTFP_BERT") {p = new FTFP_BERT(verbose);}
else if(had_name == "FTFP_BERT_HP") {p = new FTFP_BERT_HP(verbose);}
else if(had_name == "FTFP_BERT_TRV") {p = new FTFP_BERT_TRV(verbose);}
else if(had_name == "FTFP_BERT_ATL") {p = new FTFP_BERT_ATL(verbose);}
else if(had_name == "FTFP_INCLXX") {p = new FTFP_INCLXX(verbose);}
else if(had_name == "FTFP_INCLXX_HP") {p = new FTFP_INCLXX_HP(verbose);}
else if(had_name == "FTF_BIC") {p = new FTF_BIC(verbose);}
@@ -47,6 +47,9 @@
#include "G4PhysListStamper.hh"
#include "G4PhysicsConstructorRegistry.hh"
// include this with this compilation unit so static builds pull them in
#include "G4RegisterPhysLists.icc"
G4ThreadLocal G4PhysListRegistry* G4PhysListRegistry::theInstance = 0;
G4PhysListRegistry* G4PhysListRegistry::Instance()
@@ -142,7 +145,7 @@ G4PhysListRegistry::GetModularPhysicsList(const G4String& name)
ED << "]" << G4endl;
}
G4Exception("G4PhysListRegistry::GetModularPhysicsList",
"PhysicsList001", FatalException, ED);
"PhysicsList002", FatalException, ED);
return 0;
}
@@ -161,13 +164,13 @@ G4PhysListRegistry::GetModularPhysicsList(const G4String& name)
G4String pcname = physicsExtensions[extName];
// this doesn't have a verbose option ... it should
// but G4PhysicsConstructorFactory doesn't support it
G4VPhysicsConstructor* pc = pcRegistry->GetPhysicsConstructor(pcname);
G4VPhysicsConstructor* pctor = pcRegistry->GetPhysicsConstructor(pcname);
G4String reporreg = "";
if ( physReplace[ipc] > 0 ) {
pl->ReplacePhysics(pc);
pl->ReplacePhysics(pctor);
reporreg = "ReplacePhysics ";
} else {
pl->RegisterPhysics(pc);
pl->RegisterPhysics(pctor);
reporreg = "RegisterPhysics";
}
if ( verbose > 0 ) G4cout << "<<< " << reporreg << " with " << pcname