Import Geant4 10.7.2 source tree
This commit is contained in:
@@ -37,6 +37,7 @@
|
||||
// interactions with the wrapper hadronic model around CRMC.
|
||||
//
|
||||
// Modified:
|
||||
// - 21-May-2021 Alberto Ribon : Used the latest Geant4-CRMC interface.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -46,26 +47,26 @@
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4VKaonBuilder.hh"
|
||||
#include "G4CRMCModel.hh"
|
||||
|
||||
class HadronicInelasticModelCRMC;
|
||||
|
||||
|
||||
class CRMCKaonBuilder : public G4VKaonBuilder {
|
||||
public:
|
||||
CRMCKaonBuilder();
|
||||
CRMCKaonBuilder( const G4int crmcModelId, const std::string & crmcModelName );
|
||||
virtual ~CRMCKaonBuilder();
|
||||
virtual void Build( G4HadronElasticProcess* aP ) final override;
|
||||
virtual void Build( G4KaonPlusInelasticProcess* aP ) final override;
|
||||
virtual void Build( G4KaonMinusInelasticProcess* aP ) final override;
|
||||
virtual void Build( G4KaonZeroLInelasticProcess* aP ) final override;
|
||||
virtual void Build( G4KaonZeroSInelasticProcess* aP ) final override;
|
||||
virtual void Build( G4KaonZeroSInelasticProcess* aP ) final override;
|
||||
inline void SetMinEnergy( G4double aM ) final override { fMin = aM; }
|
||||
inline void SetMaxEnergy( G4double aM ) final override { fMax = aM; }
|
||||
using G4VKaonBuilder::Build; // Prevent compiler warning
|
||||
private:
|
||||
G4CRMCModel* fModel;
|
||||
HadronicInelasticModelCRMC* fModel;
|
||||
G4double fMin;
|
||||
G4double fMax;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -33,11 +33,12 @@
|
||||
//
|
||||
// Author: 2018 Alberto Ribon
|
||||
//
|
||||
// Physics builder to treat the final state of inelastic proton-nuclear
|
||||
// Physics builder to treat the final state of inelastic neutron-nuclear
|
||||
// interactions with the wrapper hadronic model around CRMC.
|
||||
// For fission and capture the usual Geant4 models are used.
|
||||
//
|
||||
// Modified:
|
||||
// - 21-May-2021 Alberto Ribon : Used the latest Geant4-CRMC interface.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -47,29 +48,29 @@
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4VNeutronBuilder.hh"
|
||||
#include "G4CRMCModel.hh"
|
||||
#include "G4NeutronRadCapture.hh"
|
||||
#include "G4LFission.hh"
|
||||
|
||||
class HadronicInelasticModelCRMC;
|
||||
|
||||
|
||||
class CRMCNeutronBuilder : public G4VNeutronBuilder {
|
||||
public:
|
||||
CRMCNeutronBuilder();
|
||||
CRMCNeutronBuilder( const G4int crmcModelId, const std::string & crmcModelName );
|
||||
virtual ~CRMCNeutronBuilder();
|
||||
virtual void Build( G4HadronElasticProcess* aP ) final override;
|
||||
virtual void Build( G4HadronFissionProcess* aP ) final override;
|
||||
virtual void Build( G4HadronCaptureProcess* aP ) final override;
|
||||
virtual void Build( G4NeutronInelasticProcess* aP ) final override;
|
||||
virtual void Build( G4NeutronInelasticProcess* aP ) final override;
|
||||
inline void SetMinEnergy( G4double aM ) final override { fMin = aM; }
|
||||
inline void SetMaxEnergy( G4double aM ) final override { fMax = aM; }
|
||||
using G4VNeutronBuilder::Build; // Prevent compiler warning
|
||||
private:
|
||||
G4double fMin;
|
||||
G4double fMax;
|
||||
G4CRMCModel* fModel;
|
||||
G4NeutronRadCapture* captureModel;
|
||||
G4LFission* fissionModel;
|
||||
HadronicInelasticModelCRMC* fModel;
|
||||
G4NeutronRadCapture* fCaptureModel;
|
||||
G4LFission* fFissionModel;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -33,10 +33,11 @@
|
||||
//
|
||||
// Author: 2018 Alberto Ribon
|
||||
//
|
||||
// Physics builder to treat the final state of inelastic kaon- and
|
||||
// pion-nuclear interactions with the wrapper hadronic model around CRMC.
|
||||
// Physics builder to treat the final state of inelastic pion- and kaon-
|
||||
// nuclear interactions with the wrapper hadronic model around CRMC.
|
||||
//
|
||||
// Modified:
|
||||
// - 21-May-2021 Alberto Ribon : Used the latest Geant4-CRMC interface.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -46,12 +47,13 @@
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4VPiKBuilder.hh"
|
||||
#include "G4CRMCModel.hh"
|
||||
|
||||
class HadronicInelasticModelCRMC;
|
||||
|
||||
|
||||
class CRMCPiKBuilder : public G4VPiKBuilder {
|
||||
public:
|
||||
CRMCPiKBuilder();
|
||||
CRMCPiKBuilder( const G4int crmcModelId, const std::string & crmcModelName );
|
||||
virtual ~CRMCPiKBuilder();
|
||||
virtual void Build( G4HadronElasticProcess* aP ) final override;
|
||||
virtual void Build( G4PionPlusInelasticProcess* aP ) final override;
|
||||
@@ -59,15 +61,14 @@ class CRMCPiKBuilder : public G4VPiKBuilder {
|
||||
virtual void Build( G4KaonPlusInelasticProcess* aP ) final override;
|
||||
virtual void Build( G4KaonMinusInelasticProcess* aP ) final override;
|
||||
virtual void Build( G4KaonZeroLInelasticProcess* aP ) final override;
|
||||
virtual void Build( G4KaonZeroSInelasticProcess* aP ) final override;
|
||||
virtual void Build( G4KaonZeroSInelasticProcess* aP ) final override;
|
||||
inline void SetMinEnergy( G4double aM ) final override { fMin = aM; }
|
||||
inline void SetMaxEnergy( G4double aM ) final override { fMax = aM; }
|
||||
using G4VPiKBuilder::Build; // Prevent compiler warning
|
||||
private:
|
||||
G4CRMCModel* fModel;
|
||||
HadronicInelasticModelCRMC* fModel;
|
||||
G4double fMin;
|
||||
G4double fMax;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
// interactions with the wrapper hadronic model around CRMC.
|
||||
//
|
||||
// Modified:
|
||||
// - 21-May-2021 Alberto Ribon : Used the latest Geant4-CRMC interface.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -46,12 +47,13 @@
|
||||
#include "globals.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
#include "G4VPionBuilder.hh"
|
||||
#include "G4CRMCModel.hh"
|
||||
|
||||
class HadronicInelasticModelCRMC;
|
||||
|
||||
|
||||
class CRMCPionBuilder : public G4VPionBuilder {
|
||||
public:
|
||||
CRMCPionBuilder();
|
||||
CRMCPionBuilder( const G4int crmcModelId, const std::string & crmcModelName );
|
||||
virtual ~CRMCPionBuilder();
|
||||
virtual void Build( G4HadronElasticProcess* aP ) final override;
|
||||
virtual void Build( G4PionPlusInelasticProcess* aP ) final override;
|
||||
@@ -60,10 +62,9 @@ class CRMCPionBuilder : public G4VPionBuilder {
|
||||
inline void SetMaxEnergy( G4double aM ) final override { fMax = aM; }
|
||||
using G4VPionBuilder::Build; // Prevent compiler warning
|
||||
private:
|
||||
G4CRMCModel* fModel;
|
||||
HadronicInelasticModelCRMC* fModel;
|
||||
G4double fMin;
|
||||
G4double fMax;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
// interactions with the wrapper hadronic model around CRMC.
|
||||
//
|
||||
// Modified:
|
||||
// - 21-May-2021 Alberto Ribon : Used the latest Geant4-CRMC interface.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
@@ -45,12 +46,13 @@
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VProtonBuilder.hh"
|
||||
#include "G4CRMCModel.hh"
|
||||
|
||||
class HadronicInelasticModelCRMC;
|
||||
|
||||
|
||||
class CRMCProtonBuilder : public G4VProtonBuilder {
|
||||
public:
|
||||
CRMCProtonBuilder();
|
||||
CRMCProtonBuilder( const G4int crmcModelId, const std::string & crmcModelName );
|
||||
virtual ~CRMCProtonBuilder();
|
||||
virtual void Build( G4HadronElasticProcess* aP ) final override;
|
||||
virtual void Build( G4ProtonInelasticProcess* aP ) final override;
|
||||
@@ -58,10 +60,9 @@ class CRMCProtonBuilder : public G4VProtonBuilder {
|
||||
inline void SetMaxEnergy( G4double aM ) final override { fMax = aM; }
|
||||
using G4VProtonBuilder::Build; // Prevent compiler warning
|
||||
private:
|
||||
G4CRMCModel* fModel;
|
||||
HadronicInelasticModelCRMC* fModel;
|
||||
G4double fMin;
|
||||
G4double fMax;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -40,51 +40,28 @@
|
||||
// For the remaining inelastic interactions (i.e. hyperon- , antihyperon- ,
|
||||
// antinucleon- and light anti-ion-nuclear interactions, as well as
|
||||
// for all elastic final-state interactions, and for all elastic and
|
||||
// inelastic hadronic cross sections, the usual Geant4 approach, as in
|
||||
// inelastic hadronic cross sections), the usual Geant4 approach, as in
|
||||
// FTFP_BERT is used.
|
||||
//
|
||||
// Modified:
|
||||
// - 18-May-2021 Alberto Ribon : Migrated to non-templated physics list.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef TCRMC_FTFP_BERT_h
|
||||
#define TCRMC_FTFP_BERT_h 1
|
||||
#ifndef CRMC_FTFP_BERT_h
|
||||
#define CRMC_FTFP_BERT_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
|
||||
|
||||
template<class T>
|
||||
class TCRMC_FTFP_BERT: public T {
|
||||
class CRMC_FTFP_BERT : public G4VModularPhysicsList {
|
||||
public:
|
||||
TCRMC_FTFP_BERT( G4int ver = 1 );
|
||||
virtual ~TCRMC_FTFP_BERT();
|
||||
virtual void SetCuts();
|
||||
private:
|
||||
enum { ok = CompileTimeConstraints::IsA< T, G4VModularPhysicsList >::ok };
|
||||
CRMC_FTFP_BERT( G4int ver = 1 );
|
||||
virtual ~CRMC_FTFP_BERT() = default;
|
||||
|
||||
CRMC_FTFP_BERT( const CRMC_FTFP_BERT & ) = delete;
|
||||
CRMC_FTFP_BERT & operator=( const CRMC_FTFP_BERT & ) = delete;
|
||||
};
|
||||
|
||||
|
||||
#ifdef G4_USE_CRMC
|
||||
#include "CRMC_FTFP_BERT.icc"
|
||||
#else
|
||||
template<class T>
|
||||
TCRMC_FTFP_BERT<T>::TCRMC_FTFP_BERT( G4int ) : T() {
|
||||
G4ExceptionDescription de;
|
||||
de << "Support for CRMC_FTFP_BERT not enabled" << G4endl;
|
||||
G4Exception( __FILE__, "CRMC_FTFP_BERT-01", FatalException, de,
|
||||
"Code should be compiled with G4_USE_CRMC environment variable set.");
|
||||
}
|
||||
|
||||
template<class T>
|
||||
TCRMC_FTFP_BERT<T>::~TCRMC_FTFP_BERT() { }
|
||||
template<class T>
|
||||
void TCRMC_FTFP_BERT<T>::SetCuts() {}
|
||||
#endif
|
||||
|
||||
|
||||
typedef TCRMC_FTFP_BERT< G4VModularPhysicsList > CRMC_FTFP_BERT;
|
||||
|
||||
#endif //TCRMC_FTFP_BERT_h
|
||||
|
||||
|
||||
@@ -1,79 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file hadronic/Hadr02/include/CRMC_FTFP_BERT.icc
|
||||
/// \brief Implementation of the CRMC_FTFP_BERT class inline functions
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: CRMC_FTFP_BERT
|
||||
//
|
||||
// Author: 2018 Alberto Ribon
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
#include "G4EmStandardPhysics.hh"
|
||||
#include "G4EmExtraPhysics.hh"
|
||||
#include "G4DecayPhysics.hh"
|
||||
#include "G4HadronElasticPhysics.hh"
|
||||
#include "HadronPhysicsCRMC_FTFP_BERT.hh"
|
||||
#include "G4StoppingPhysics.hh"
|
||||
#include "IonCRMCPhysics.hh"
|
||||
#include "G4NeutronTrackingCut.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
|
||||
template<class T> TCRMC_FTFP_BERT<T>::TCRMC_FTFP_BERT( G4int ver ): T() {
|
||||
G4cout << "<<< Geant4 Physics List simulation engine: CRMC_FTFP_BERT 0.1" << G4endl;
|
||||
G4cout << G4endl;
|
||||
this->defaultCutValue = 0.7*CLHEP::mm;
|
||||
this->SetVerboseLevel( ver );
|
||||
|
||||
this->RegisterPhysics( new G4EmStandardPhysics( ver ) ); // EM physics
|
||||
this->RegisterPhysics( new G4EmExtraPhysics( ver ) ); // Synchroton & GN physics
|
||||
this->RegisterPhysics( new G4DecayPhysics( ver ) ); // Decays
|
||||
this->RegisterPhysics( new G4HadronElasticPhysics( ver ) ); // Hadron Elastic scattering
|
||||
this->RegisterPhysics( new HadronPhysicsCRMC_FTFP_BERT( ver ) ); // Hadron Inelastic scattering
|
||||
this->RegisterPhysics( new G4StoppingPhysics( ver ) ); // Stopping physics
|
||||
this->RegisterPhysics( new IonCRMCPhysics( ver ) ); // Ion physics
|
||||
this->RegisterPhysics( new G4NeutronTrackingCut( ver ) ); // Neutron tracking cut
|
||||
}
|
||||
|
||||
template<class T> TCRMC_FTFP_BERT<T>::~TCRMC_FTFP_BERT() {}
|
||||
|
||||
template<class T> void TCRMC_FTFP_BERT<T>::SetCuts() {
|
||||
if ( this->verboseLevel > 1 ) {
|
||||
G4cout << "CRMC_FTFP_BERT::SetCuts:";
|
||||
}
|
||||
this->SetCutsWithDefault();
|
||||
}
|
||||
|
||||
@@ -1,115 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// * *
|
||||
// * Parts of this code which have been developed by Abdel-Waged *
|
||||
// * et al under contract (31-465) to the King Abdul-Aziz City for *
|
||||
// * Science and Technology (KACST), the National Centre of *
|
||||
// * Mathematics and Physics (NCMP), Saudi Arabia. *
|
||||
// * *
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file hadronic/Hadr02/include/G4CRMCModel.hh
|
||||
/// \brief Definition of the G4CRMCModel class
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName: G4CRMCModel
|
||||
//
|
||||
// Author: 2018 Alberto Ribon
|
||||
//
|
||||
// Geant4 wrapper hadronic model around CRMC.
|
||||
// By changing a single number (model) it is possible to use one of the
|
||||
// following 4 CRMC generators: 0 : EPOS LHC
|
||||
// 1 : EPOS 1.99
|
||||
// 6 : SIBYLL 2.3c
|
||||
// 12 : DPMJET 3
|
||||
//
|
||||
// We are pleased to acknowledge the contribution of Andrii Tykhonov
|
||||
// (Universite' de Geneve, and member of the DAMPE Collaboration)
|
||||
// who made the first prototype interface between Geant4 and CRMC,
|
||||
// and shared his expertise and implementation with us.
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4CRMCModel_hh
|
||||
#define G4CRMCModel_hh
|
||||
|
||||
#include "G4Nucleus.hh"
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "G4HadFinalState.hh"
|
||||
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
|
||||
class G4IonTable;
|
||||
|
||||
#ifdef G4_USE_CRMC
|
||||
#include "CRMCinterface.h"
|
||||
extern CRMCdata gCRMC_data;
|
||||
#else
|
||||
class CRMCinterface;
|
||||
#endif
|
||||
|
||||
|
||||
class G4CRMCModel : public G4HadronicInteraction {
|
||||
public:
|
||||
// ***LOOKHERE*** Select default model:
|
||||
// EPOS LHC (0), EPOS 1.99 (1), SIBYLL 2.3c (6), DPMJET 3 (12)
|
||||
G4CRMCModel( const G4int model = 0 );
|
||||
virtual ~G4CRMCModel ();
|
||||
G4HadFinalState* ApplyYourself( const G4HadProjectile &theProjectile, G4Nucleus &theNucleus );
|
||||
G4ParticleDefinition* GetParticleDefinition( long particle_id );
|
||||
|
||||
// The following virtual method can be used to override the default check levels
|
||||
// (relative energy violation value of 2% and absolute energy violation value of 1 GeV)
|
||||
// used to check (by the hadronic process, in the method G4HadronicProcess::CheckResult)
|
||||
// whether the (inelastic) final state is acceptable or not in terms of energy
|
||||
// conservation. If it is not, then the final-state is rejected, a "JustWarning"
|
||||
// exception is thrown, and another attempt is done to find an acceptable final-state.
|
||||
// Only in the case of 100 consecutive failed attempts, the program crashes.
|
||||
// In the case of EPOS-LHC, there are some cases of final-states that are rejected
|
||||
// because they do not pass the default energy conservation. The number of these
|
||||
// cases is relatively low and harmless (because these final-states are rejected),
|
||||
// therefore we suggest to keep using the default. If you want instead to keep
|
||||
// more final-states, i.e. be more tolerant on the energy violations, then uncomment
|
||||
// the following line and its implementation (in the source file).
|
||||
//virtual const std::pair< G4double, G4double > GetFatalEnergyCheckLevels() const;
|
||||
|
||||
private:
|
||||
G4bool operator==( G4CRMCModel& right );
|
||||
G4bool operator!=( G4CRMCModel& right );
|
||||
void WelcomeMessage () const;
|
||||
G4int CurrentEvent;
|
||||
G4int verbose;
|
||||
G4int fModel;
|
||||
G4HadFinalState fFinalState;
|
||||
CRMCinterface* fInterface;
|
||||
G4ParticleTable* fParticleTable;
|
||||
G4IonTable* fIonTable;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -35,50 +35,24 @@
|
||||
// created from FTFP_BERT
|
||||
//
|
||||
// Modified:
|
||||
// - 18-May-2021 Alberto Ribon : Migrated to non-templated physics list.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef THIJING_h
|
||||
#define THIJING_h 1
|
||||
#ifndef HIJING_h
|
||||
#define HIJING_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template<class T>
|
||||
class THIJING: public T
|
||||
{
|
||||
public:
|
||||
THIJING(G4int ver = 1);
|
||||
virtual ~THIJING();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
class HIJING : public G4VModularPhysicsList {
|
||||
public:
|
||||
HIJING( G4int ver = 1 );
|
||||
virtual ~HIJING() = default;
|
||||
|
||||
HIJING( const HIJING & ) = delete;
|
||||
HIJING & operator=( const HIJING & ) = delete;
|
||||
};
|
||||
#ifdef G4_USE_HIJING
|
||||
#include "HIJING.icc"
|
||||
#else
|
||||
template<class T>
|
||||
THIJING<T>::THIJING(G4int) : T()
|
||||
{
|
||||
G4ExceptionDescription de;
|
||||
de<<"Support for HIJING not enabled"<<G4endl;
|
||||
G4Exception(__FILE__,"HIJING-01",FatalException,de,
|
||||
"Code should be compiled with G4_USE_HIJING environment variable set.");
|
||||
}
|
||||
|
||||
template<class T>
|
||||
THIJING<T>::~THIJING() { }
|
||||
template<class T>
|
||||
void THIJING<T>::SetCuts() { }
|
||||
#endif
|
||||
|
||||
typedef THIJING<G4VModularPhysicsList> HIJING;
|
||||
|
||||
#endif //THIJING_h
|
||||
|
||||
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file hadronic/Hadr02/include/HIJING.icc
|
||||
/// \brief Implementation of the HIJING class inline functions
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName:
|
||||
//
|
||||
// Author: 2012 Andrea Dotti
|
||||
//
|
||||
// created from FTFP_BERT
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
//#include "G4ProcessManager.hh"
|
||||
//#include "G4ProcessVector.hh"
|
||||
//#include "G4ParticleTypes.hh"
|
||||
//#include "G4ParticleTable.hh"
|
||||
|
||||
//#include "G4Material.hh"
|
||||
//#include "G4MaterialTable.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "G4DecayPhysics.hh"
|
||||
#include "G4EmStandardPhysics.hh"
|
||||
#include "G4EmExtraPhysics.hh"
|
||||
#include "IonHIJINGPhysics.hh"
|
||||
#include "G4HadronElasticPhysics.hh"
|
||||
#include "G4NeutronTrackingCut.hh"
|
||||
#include "G4StoppingPhysics.hh"
|
||||
|
||||
#include "HadronPhysicsHIJING.hh"
|
||||
|
||||
template<class T> THIJING<T>::THIJING(G4int ver): T()
|
||||
{
|
||||
// default cut value (1.0mm)
|
||||
// defaultCutValue = 1.0*mm;
|
||||
G4cout << "<<< Geant4 Physics List simulation engine: HIJING 0.1"<<G4endl;
|
||||
G4cout <<G4endl;
|
||||
this->defaultCutValue = 0.7*mm;
|
||||
this->SetVerboseLevel(ver);
|
||||
|
||||
// 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 HadronPhysicsHIJING(ver));
|
||||
|
||||
// Stopping Physics
|
||||
this->RegisterPhysics( new G4StoppingPhysics(ver) );
|
||||
|
||||
// Ion Physics
|
||||
this->RegisterPhysics( new IonHIJINGPhysics(ver));
|
||||
|
||||
// Neutron tracking cut
|
||||
this->RegisterPhysics( new G4NeutronTrackingCut(ver));
|
||||
|
||||
}
|
||||
|
||||
template<class T> THIJING<T>::~THIJING()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void THIJING<T>::SetCuts()
|
||||
{
|
||||
if (this->verboseLevel >1){
|
||||
G4cout << "HIJING::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
this->SetCutsWithDefault();
|
||||
}
|
||||
@@ -1,4 +1,3 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * License and Disclaimer *
|
||||
// * *
|
||||
@@ -23,6 +22,9 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file hadronic/Hadr02/include/HadronPhysicsCRMC_FTFP_BERT.hh
|
||||
/// \brief Definition of the HadronPhysicsCRMC_FTFP_BERT class
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
@@ -31,54 +33,46 @@
|
||||
// Author: 2018 Alberto Ribon
|
||||
//
|
||||
// This is a variant of HadronPhysicsFTFP_BERT whereby CRMC is used
|
||||
// for modeling final-state for pion- , kaon- , proton- and neutron-nuclear
|
||||
// inelastic interactions at very high energies.
|
||||
// for modeling final-state for pion- , kaon- , proton- and neutron-
|
||||
// nuclear inelastic interactions at very high energies.
|
||||
// For other hadron projectile types (e.g. hyperons, antinucleons and
|
||||
// antihyperons) the usual FTFP_BERT approach is used at all energies.
|
||||
// The inelastic hadronic cross sections are, for all hadron projectiles
|
||||
// and energies, the usual ones (exactly as in FTFP_BERT).
|
||||
//
|
||||
// Modified:
|
||||
// - 18-May-2021 Alberto Ribon : Migrated to newer physics constructor
|
||||
// and used the latest Geant4-CRMC interface.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef HadronPhysicsCRMC_FTFP_BERT_h
|
||||
#define HadronPhysicsCRMC_FTFP_BERT_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include "G4VPhysicsConstructor.hh"
|
||||
#include "G4Cache.hh"
|
||||
|
||||
class G4ComponentGGHadronNucleusXsc;
|
||||
class G4VCrossSectionDataSet;
|
||||
#include "G4HadronPhysicsFTFP_BERT.hh"
|
||||
|
||||
|
||||
class HadronPhysicsCRMC_FTFP_BERT : public G4VPhysicsConstructor {
|
||||
public:
|
||||
class HadronPhysicsCRMC_FTFP_BERT : public G4HadronPhysicsFTFP_BERT {
|
||||
public:
|
||||
HadronPhysicsCRMC_FTFP_BERT( G4int verbose = 1 );
|
||||
HadronPhysicsCRMC_FTFP_BERT( const G4String& name );
|
||||
virtual ~HadronPhysicsCRMC_FTFP_BERT();
|
||||
virtual void ConstructParticle() override;
|
||||
virtual void ConstructProcess() override;
|
||||
HadronPhysicsCRMC_FTFP_BERT( const G4String& name, G4bool quasiElastic = false );
|
||||
~HadronPhysicsCRMC_FTFP_BERT() override;
|
||||
|
||||
// copy constructor and hide assignment operator
|
||||
HadronPhysicsCRMC_FTFP_BERT( HadronPhysicsCRMC_FTFP_BERT & ) = delete;
|
||||
HadronPhysicsCRMC_FTFP_BERT & operator=( const HadronPhysicsCRMC_FTFP_BERT &right ) = delete;
|
||||
|
||||
protected:
|
||||
void CreateModels();
|
||||
virtual void Neutron();
|
||||
virtual void Proton();
|
||||
virtual void Pion();
|
||||
virtual void Kaon();
|
||||
virtual void Others();
|
||||
virtual void DumpBanner();
|
||||
// This contains extra configurataion specific to this PL
|
||||
virtual void ExtraConfiguration();
|
||||
virtual void Neutron() override;
|
||||
virtual void Proton() override;
|
||||
virtual void Pion() override;
|
||||
virtual void Kaon() override;
|
||||
|
||||
private:
|
||||
G4int model; // 0:EPOS-LHC, 1:EPOS-1.99, 2:QGSJET:01, 6:SIBYLL-2.3,
|
||||
static const std::array< std::string, 13 > modelNames; // 7:QGSJETII-04, 11:QGSJETII-03, 12:DPMJET-3.06
|
||||
G4double minCRMC;
|
||||
G4double minFTFP;
|
||||
G4double maxFTFP;
|
||||
G4double minBERT;
|
||||
G4double maxBERT;
|
||||
// Thread-private data write them here to delete them
|
||||
G4VectorCache< G4VCrossSectionDataSet* > xs_ds;
|
||||
G4Cache< G4ComponentGGHadronNucleusXsc* > xs_k;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file hadronic/Hadr02/include/HadronicInelasticModelCRMC.hh
|
||||
/// \brief Definition of the HadronicInelasticModelCRMC class
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
//
|
||||
// CRMC interface to GEANT4
|
||||
// for more details on CRMC, see:
|
||||
// https://web.ikp.kit.edu/rulrich/crmc.html
|
||||
//
|
||||
//
|
||||
// Author: Andrii Tykhonov (University of Geneva)
|
||||
// Email: andrii.tykhonov@cern.ch
|
||||
// Created: 14.02.2018
|
||||
//
|
||||
//
|
||||
// (
|
||||
// A few, trivial modifications made by A. Ribon in May 2021
|
||||
// in order to use it inside the Geant4 example Hadr02 :
|
||||
// - Copied here, instead of using the original class
|
||||
// G4HadronicInelasticModelCRMC as it is distributed
|
||||
// with crmc-svn-geant4, to avoid some problems with CMake
|
||||
// which is unable to find the library libGeantCrmc.
|
||||
// - Renamed the class as HadronicInelasticModelCRMC,
|
||||
// to follow the Geant4 convention that classes whose
|
||||
// names start with "G4" are only those distributed in
|
||||
// source/ .
|
||||
// - Fixed a few compilation warnings .
|
||||
// - Set the seed by hand, because the method
|
||||
// CLHEP::HepRandom::getTheSeed()
|
||||
// returns 0 which is not accepted.
|
||||
// )
|
||||
// ------------------------------------------------------------
|
||||
|
||||
#ifndef HadronicInelasticModelCRMC_h
|
||||
#define HadronicInelasticModelCRMC_h
|
||||
|
||||
#include "G4HadronicInteraction.hh"
|
||||
#include "G4HadFinalState.hh"
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
#include "CRMCinterface.h"
|
||||
#include <string>
|
||||
|
||||
|
||||
extern CRMCdata gCRMC_data;
|
||||
|
||||
class G4HadFinalState;
|
||||
class G4ParticleTable;
|
||||
class G4IonTable;
|
||||
|
||||
|
||||
class G4ParticleDefinition; //class G4DynamicParticle;
|
||||
|
||||
|
||||
class HadronicInelasticModelCRMC : public G4HadronicInteraction
|
||||
{
|
||||
public:
|
||||
//! model:
|
||||
//! 0 : EPOS LHC
|
||||
//! 1 : EPOS 1.99
|
||||
//! 12 : DPMJET3
|
||||
HadronicInelasticModelCRMC(int model, const G4String& modelName);
|
||||
~HadronicInelasticModelCRMC();
|
||||
|
||||
G4HadFinalState * ApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus);
|
||||
G4bool IsApplicable (const G4HadProjectile &, G4Nucleus &);
|
||||
|
||||
void SetPrintDebug(bool printdebug) {fPrintDebug = printdebug;}
|
||||
G4ParticleDefinition* GetParticleDefinition(long particle_id,int& error_code);
|
||||
void SplitMultiNeutrons(CRMCdata& CRMC_data);
|
||||
bool IsMultiNeutron(int Z, int A);
|
||||
|
||||
virtual const std::pair<G4double, G4double> GetFatalEnergyCheckLevels() const {
|
||||
// possible energy non-coservations of up to 1 TeV are ignored
|
||||
return std::pair<G4double, G4double>( 10.0*perCent, 1000.0*GeV );
|
||||
}
|
||||
private:
|
||||
CRMCinterface* fInterface;
|
||||
//CRMCdata fCRMCdata;
|
||||
int fTypeOutput;
|
||||
G4HadFinalState* finalState;
|
||||
G4ParticleTable* fParticleTable;
|
||||
G4IonTable* fIonTable;
|
||||
|
||||
//std::vector<G4ParticleDefinition*> fParticleDefinitions;
|
||||
//std::vector<G4DynamicParticle*> fDynamicParticles;
|
||||
bool fPrintDebug;
|
||||
|
||||
//
|
||||
std::string GetCrmcParamPath();
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
@@ -38,8 +38,9 @@
|
||||
// The inelastic hadronic cross sections are the same as in G4IonPhysics.
|
||||
//
|
||||
// Modified:
|
||||
// - 18-May-2021 Alberto Ribon : Used the latest Geant4-CRMC interface.
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef G4IonCRMCPhysics_h
|
||||
#define G4IonCRMCPhysics_h 1
|
||||
@@ -49,29 +50,20 @@
|
||||
|
||||
class G4HadronicInteraction;
|
||||
class G4VCrossSectionDataSet;
|
||||
class G4VComponentCrossSection;
|
||||
class G4FTFBuilder;
|
||||
class G4BinaryLightIonReaction;
|
||||
class G4CRMCModel;
|
||||
|
||||
|
||||
class IonCRMCPhysics : public G4VPhysicsConstructor {
|
||||
public:
|
||||
IonCRMCPhysics( G4int ver = 0 );
|
||||
virtual ~IonCRMCPhysics();
|
||||
void ConstructParticle();
|
||||
void ConstructProcess();
|
||||
void ConstructParticle() override;
|
||||
void ConstructProcess() override;
|
||||
private:
|
||||
void AddProcess( const G4String& , G4ParticleDefinition* , G4bool isIon );
|
||||
static G4ThreadLocal G4VCrossSectionDataSet* theNuclNuclData;
|
||||
static G4ThreadLocal G4VComponentCrossSection* theGGNuclNuclXS;
|
||||
static G4ThreadLocal G4BinaryLightIonReaction* theIonBC;
|
||||
static G4ThreadLocal G4HadronicInteraction* theFTFP;
|
||||
static G4ThreadLocal G4FTFBuilder* theBuilder;
|
||||
static G4ThreadLocal G4CRMCModel* theCRMC;
|
||||
G4int verbose;
|
||||
static G4ThreadLocal G4bool wasActivated;
|
||||
void AddProcess( const G4String& , G4ParticleDefinition* , G4HadronicInteraction* ,
|
||||
G4HadronicInteraction* , G4HadronicInteraction* , G4VCrossSectionDataSet* );
|
||||
int fModel; // 0:EPOS-LHC, 1:EPOS-1.99, 2:QGSJET:01, 6:SIBYLL-2.3,
|
||||
static const std::array< std::string, 13 > fModelNames; // 7:QGSJETII-04, 11:QGSJETII-03, 12:DPMJET-3.06
|
||||
G4int fVerbose;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -35,50 +35,24 @@
|
||||
// created from FTFP_BERT
|
||||
//
|
||||
// Modified:
|
||||
// - 18-May-2021 Alberto Ribon : Migrated to non-templated physics list.
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
#ifndef TUrQMD_h
|
||||
#define TUrQMD_h 1
|
||||
#ifndef UrQMD_h
|
||||
#define UrQMD_h 1
|
||||
|
||||
#include "G4VModularPhysicsList.hh"
|
||||
#include "globals.hh"
|
||||
#include "CompileTimeConstraints.hh"
|
||||
|
||||
template<class T>
|
||||
class TUrQMD: public T
|
||||
{
|
||||
public:
|
||||
TUrQMD(G4int ver = 1);
|
||||
virtual ~TUrQMD();
|
||||
|
||||
public:
|
||||
// SetCuts()
|
||||
virtual void SetCuts();
|
||||
|
||||
private:
|
||||
enum {ok = CompileTimeConstraints::IsA<T, G4VModularPhysicsList>::ok };
|
||||
class UrQMD : public G4VModularPhysicsList {
|
||||
public:
|
||||
UrQMD( G4int ver = 1 );
|
||||
virtual ~UrQMD() = default;
|
||||
|
||||
UrQMD( const UrQMD & ) = delete;
|
||||
UrQMD & operator=( const UrQMD & ) = delete;
|
||||
};
|
||||
#ifdef G4_USE_URQMD
|
||||
#include "UrQMD.icc"
|
||||
#else
|
||||
template<class T>
|
||||
TUrQMD<T>::TUrQMD(G4int) : T()
|
||||
{
|
||||
G4ExceptionDescription de;
|
||||
de<<"Support for UrQMD not enabled"<<G4endl;
|
||||
G4Exception(__FILE__,"UrQMD-01",FatalException,de,
|
||||
"Code should be compiled with G4_USE_URQMD environment variable set.");
|
||||
}
|
||||
|
||||
template<class T>
|
||||
TUrQMD<T>::~TUrQMD() { }
|
||||
template<class T>
|
||||
void TUrQMD<T>::SetCuts() { }
|
||||
#endif
|
||||
|
||||
typedef TUrQMD<G4VModularPhysicsList> UrQMD;
|
||||
|
||||
#endif //TUrQMD_h
|
||||
|
||||
|
||||
|
||||
@@ -1,105 +0,0 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// ********************************************************************
|
||||
//
|
||||
/// \file hadronic/Hadr02/include/UrQMD.icc
|
||||
/// \brief Implementation of the UrQMD class inline functions
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// ClassName:
|
||||
//
|
||||
// Author: 2012 Andrea Dotti
|
||||
//
|
||||
// created from FTFP_BERT
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
//
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4ios.hh"
|
||||
#include <iomanip>
|
||||
|
||||
#include "G4DecayPhysics.hh"
|
||||
#include "G4EmStandardPhysics.hh"
|
||||
#include "G4EmExtraPhysics.hh"
|
||||
#include "IonUrQMDPhysics.hh"
|
||||
#include "G4StoppingPhysics.hh"
|
||||
#include "G4HadronElasticPhysics.hh"
|
||||
#include "G4NeutronTrackingCut.hh"
|
||||
|
||||
#include "HadronPhysicsUrQMD.hh"
|
||||
|
||||
#include "G4SystemOfUnits.hh"
|
||||
|
||||
template<class T> TUrQMD<T>::TUrQMD(G4int ver): T()
|
||||
{
|
||||
G4cout << "<<< Geant4 Physics List simulation engine: UrQMD 0.1"<<G4endl;
|
||||
G4cout <<G4endl;
|
||||
this->defaultCutValue = 0.7*CLHEP::mm;
|
||||
this->SetVerboseLevel(ver);
|
||||
|
||||
// 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 HadronPhysicsUrQMD(ver));
|
||||
|
||||
// Stopping Physics
|
||||
this->RegisterPhysics( new G4StoppingPhysics(ver) );
|
||||
|
||||
// Ion Physics
|
||||
this->RegisterPhysics( new IonUrQMDPhysics(ver));
|
||||
|
||||
// Neutron tracking cut
|
||||
this->RegisterPhysics( new G4NeutronTrackingCut(ver));
|
||||
|
||||
}
|
||||
|
||||
template<class T> TUrQMD<T>::~TUrQMD()
|
||||
{
|
||||
}
|
||||
|
||||
template<class T> void TUrQMD<T>::SetCuts()
|
||||
{
|
||||
if (this->verboseLevel >1){
|
||||
G4cout << "UrQMD::SetCuts:";
|
||||
}
|
||||
// " G4VUserPhysicsList::SetCutsWithDefault" method sets
|
||||
// the default cut value for all particle types
|
||||
|
||||
this->SetCutsWithDefault();
|
||||
}
|
||||
Reference in New Issue
Block a user