Import Geant4 10.7.0.beta source tree
This commit is contained in:
@@ -32,31 +32,43 @@
|
||||
//
|
||||
// Description: Singleton to keep global hadronic parameters.
|
||||
//
|
||||
// For the time being, at least, offers only "getters" but
|
||||
// not "setters", i.e. a recompilation is needed to change
|
||||
// the default parameters.
|
||||
//
|
||||
// Modified:
|
||||
//
|
||||
//----------------------------------------------------------------------------
|
||||
|
||||
#include "G4HadronicParameters.hh"
|
||||
#include <CLHEP/Units/PhysicalConstants.h>
|
||||
#include "G4ApplicationState.hh"
|
||||
#include "G4StateManager.hh"
|
||||
#include "G4HadronicParametersMessenger.hh"
|
||||
|
||||
|
||||
G4HadronicParameters* G4HadronicParameters::sInstance = nullptr;
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
G4Mutex G4HadronicParameters::paramMutex = G4MUTEX_INITIALIZER;
|
||||
#endif
|
||||
|
||||
G4HadronicParameters* G4HadronicParameters::Instance() {
|
||||
if ( sInstance == nullptr ) {
|
||||
static G4HadronicParameters theHadronicParametersObject;
|
||||
sInstance = &theHadronicParametersObject;
|
||||
#ifdef G4MULTITHREADED
|
||||
G4MUTEXLOCK( ¶mMutex );
|
||||
if ( sInstance == nullptr ) {
|
||||
#endif
|
||||
static G4HadronicParameters theHadronicParametersObject;
|
||||
sInstance = &theHadronicParametersObject;
|
||||
#ifdef G4MULTITHREADED
|
||||
}
|
||||
G4MUTEXUNLOCK(¶mMutex);
|
||||
#endif
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
|
||||
G4HadronicParameters::~G4HadronicParameters() {}
|
||||
G4HadronicParameters::~G4HadronicParameters() {
|
||||
delete fMessenger;
|
||||
}
|
||||
|
||||
|
||||
G4HadronicParameters::G4HadronicParameters() {
|
||||
@@ -65,5 +77,56 @@ G4HadronicParameters::G4HadronicParameters() {
|
||||
fMaxEnergyTransitionFTF_Cascade = 6.0*CLHEP::GeV;
|
||||
fMinEnergyTransitionQGS_FTF = 12.0*CLHEP::GeV;
|
||||
fMaxEnergyTransitionQGS_FTF = 25.0*CLHEP::GeV;
|
||||
fVerboseLevel = 1;
|
||||
fEnableBC = false;
|
||||
fMessenger = new G4HadronicParametersMessenger( this );
|
||||
}
|
||||
|
||||
|
||||
G4bool G4HadronicParameters::IsLocked() const {
|
||||
return ( ! G4Threading::IsMasterThread() ||
|
||||
G4StateManager::GetStateManager()->GetCurrentState() != G4State_PreInit );
|
||||
}
|
||||
|
||||
|
||||
void G4HadronicParameters::SetMaxEnergy( const G4double val ) {
|
||||
if ( ! IsLocked() && val > 0.0 ) {
|
||||
fMaxEnergy = val;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void G4HadronicParameters::SetMinEnergyTransitionFTF_Cascade( const G4double val ) {
|
||||
if ( ! IsLocked() && val > 0.0 ) {
|
||||
fMinEnergyTransitionFTF_Cascade = val;
|
||||
}
|
||||
}
|
||||
|
||||
void G4HadronicParameters::SetMaxEnergyTransitionFTF_Cascade( const G4double val ) {
|
||||
if ( ! IsLocked() && val > fMinEnergyTransitionFTF_Cascade ) {
|
||||
fMaxEnergyTransitionFTF_Cascade = val;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void G4HadronicParameters::SetMinEnergyTransitionQGS_FTF( const G4double val ) {
|
||||
if ( ! IsLocked() && val > 0.0 ) {
|
||||
fMinEnergyTransitionQGS_FTF = val;
|
||||
}
|
||||
}
|
||||
|
||||
void G4HadronicParameters::SetMaxEnergyTransitionQGS_FTF( const G4double val ) {
|
||||
if ( ! IsLocked() && val > fMinEnergyTransitionQGS_FTF ) {
|
||||
fMaxEnergyTransitionQGS_FTF = val;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void G4HadronicParameters::SetEnableBCParticles( G4bool val ) {
|
||||
if ( ! IsLocked() ) fEnableBC = val;
|
||||
}
|
||||
|
||||
|
||||
void G4HadronicParameters::SetVerboseLevel( const G4int val ) {
|
||||
if ( ! IsLocked() && val >= 0 ) fVerboseLevel = val;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user