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
@@ -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));
@@ -0,0 +1,127 @@
//
// ********************************************************************
// * 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: RegisterPhysLists.icc 66704 2013-01-10 18:20:17Z rhatcher $
//
//---------------------------------------------------------------------------
//
// ClassName: RegisterPhysLists
//
// Author: R. Hatcher 2014-10-15
//
// Modified:
//
//----------------------------------------------------------------------------
#include "G4PhysListStamper.hh"
#include "FTFP_BERT.hh"
G4_DECLARE_PHYSLIST_FACTORY(FTFP_BERT);
#include "FTFP_BERT_HP.hh"
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);
#include "FTFP_INCLXX_HP.hh"
G4_DECLARE_PHYSLIST_FACTORY(FTFP_INCLXX_HP);
#include "FTF_BIC.hh"
G4_DECLARE_PHYSLIST_FACTORY(FTF_BIC);
#include "LBE.hh"
G4_DECLARE_PHYSLIST_FACTORY(LBE);
#include "QBBC.hh"
G4_DECLARE_PHYSLIST_FACTORY(QBBC);
#include "QGSP_BERT.hh"
G4_DECLARE_PHYSLIST_FACTORY(QGSP_BERT);
#include "QGSP_BERT_HP.hh"
G4_DECLARE_PHYSLIST_FACTORY(QGSP_BERT_HP);
#include "QGSP_BIC.hh"
G4_DECLARE_PHYSLIST_FACTORY(QGSP_BIC);
#include "QGSP_BIC_HP.hh"
G4_DECLARE_PHYSLIST_FACTORY(QGSP_BIC_HP);
#include "QGSP_FTFP_BERT.hh"
G4_DECLARE_PHYSLIST_FACTORY(QGSP_FTFP_BERT);
#include "QGS_BIC.hh"
G4_DECLARE_PHYSLIST_FACTORY(QGS_BIC);
#include "QGSP_INCLXX.hh"
G4_DECLARE_PHYSLIST_FACTORY(QGSP_INCLXX);
#include "QGSP_INCLXX_HP.hh"
G4_DECLARE_PHYSLIST_FACTORY(QGSP_INCLXX_HP);
#include "Shielding.hh"
G4_DECLARE_PHYSLIST_FACTORY(Shielding);
// some extra hoops because the physlist factory expects to be able
// to construct a list using just a verbosity argument
// but
// "ShieldingLEND" is Shielding(verbose,"LEND");
// "ShieldingM" is Shielding(verbose,"HP","M");
class ShieldingLEND : public Shielding
{
public:
explicit ShieldingLEND(G4int verbose = 1) : Shielding(verbose,"LEND","") { ; }
virtual ~ShieldingLEND() { ; }
};
G4_DECLARE_PHYSLIST_FACTORY(ShieldingLEND);
class ShieldingM : public Shielding
{
public:
explicit ShieldingM(G4int verbose = 1) : Shielding(verbose,"HP","M") { ; }
virtual ~ShieldingM() { ; }
};
G4_DECLARE_PHYSLIST_FACTORY(ShieldingM);
#include "NuBeam.hh"
G4_DECLARE_PHYSLIST_FACTORY(NuBeam);
// for __clang__ this this needs intercoms/include/G4AnyMethod.hh
// to not attempt to defined remove_reference templates, but use std C++11
#include "G4GenericPhysicsList.hh"
G4_DECLARE_PHYSLIST_FACTORY(G4GenericPhysicsList);
#include "QGSP_BIC_AllHP.hh"
G4_DECLARE_PHYSLIST_FACTORY(QGSP_BIC_AllHP);
//
@@ -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));
}