Import Geant4 10.4.1 source tree
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
$Id: History 105924 2017-08-29 12:28:09Z gcosmo $
|
||||
$Id: History 108676 2018-02-27 07:38:33Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,18 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
|
||||
February 26th, 2018 Alexander Howard (procbiasing-V10-03-04)
|
||||
- G4ImportanceConfigurator: cleaned up unnecessary G4cout and removed
|
||||
copy of G4String - thanks to Gabriele
|
||||
|
||||
February 21st, 2018 Alexander Howard
|
||||
- G4ImportanceConfigurator: put back clear() in the destructor
|
||||
|
||||
February 21st, 2018 Alexander Howard
|
||||
- G4ImportanceConfigurator: introduced AutoLock (G4Mutex) to protect
|
||||
instantiation of the biasing process against a threadrace
|
||||
|
||||
August 29th, 2017 Gabriele Cosmo (procbiasing-V10-03-03)
|
||||
- Removed duplicate class definition G4TrackTerminator.hh, which is part
|
||||
of the processes/transportation module.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 103005 2017-03-08 08:08:35Z gcosmo $
|
||||
$Id: History 108676 2018-02-27 07:38:33Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -18,6 +18,17 @@ committal in the CVS repository !
|
||||
----------------------------------------------------------
|
||||
|
||||
|
||||
February 26th, 2018 A.Howard
|
||||
- G4ImportanceConfigurator: cleaned up unnecessary G4cout and removed
|
||||
copy of G4String - thanks to Gabriele
|
||||
|
||||
February 21st, 2018 A.Howard
|
||||
- G4ImportanceConfigurator: put back clear in the destructor
|
||||
|
||||
February 21st, 2018 A.Howard
|
||||
- G4ImportanceConfigurator: introduced AutoLock (G4Mutex) to protect
|
||||
instantiation of the biasing process against a threadrace
|
||||
|
||||
March 7th, 2017 A.Howard
|
||||
- G4GeometrySampler: removed unnecessary ClearSampling from the destructor
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ImportanceConfigurator.hh 77477 2013-11-25 09:42:24Z gcosmo $
|
||||
// $Id: G4ImportanceConfigurator.hh 108676 2018-02-27 07:38:33Z gcosmo $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4ImportanceConfigurator
|
||||
@@ -60,7 +60,7 @@ public: // with description
|
||||
const G4VImportanceAlgorithm *ialg,
|
||||
G4bool paraflag);
|
||||
|
||||
G4ImportanceConfigurator(const G4String worldvolumeName,
|
||||
G4ImportanceConfigurator(const G4String &worldvolumeName,
|
||||
const G4String &particlename,
|
||||
G4VIStore &istore,
|
||||
const G4VImportanceAlgorithm *ialg,
|
||||
@@ -70,7 +70,7 @@ public: // with description
|
||||
virtual void Configure(G4VSamplerConfigurator *preConf);
|
||||
virtual const G4VTrackTerminator *GetTrackTerminator() const;
|
||||
|
||||
void SetWorldName(G4String Name);
|
||||
void SetWorldName(const G4String& Name);
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ImportanceConfigurator.cc 105159 2017-07-14 09:17:32Z gcosmo $
|
||||
// $Id: G4ImportanceConfigurator.cc 108676 2018-02-27 07:38:33Z gcosmo $
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// Class G4ImportanceConfigurator
|
||||
@@ -39,6 +39,13 @@
|
||||
#include "G4ImportanceAlgorithm.hh"
|
||||
|
||||
#include "G4TransportationManager.hh"
|
||||
#include "G4AutoLock.hh"
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
namespace {
|
||||
G4Mutex BiasConfigMutex = G4MUTEX_INITIALIZER;
|
||||
}
|
||||
#endif
|
||||
|
||||
G4ImportanceConfigurator::
|
||||
G4ImportanceConfigurator(const G4VPhysicalVolume* worldvolume,
|
||||
@@ -57,7 +64,7 @@ G4ImportanceConfigurator(const G4VPhysicalVolume* worldvolume,
|
||||
{;}
|
||||
|
||||
G4ImportanceConfigurator::
|
||||
G4ImportanceConfigurator(G4String worldvolumeName,
|
||||
G4ImportanceConfigurator(const G4String &worldvolumeName,
|
||||
const G4String &particlename,
|
||||
G4VIStore &istore,
|
||||
const G4VImportanceAlgorithm *ialg, G4bool para)
|
||||
@@ -71,7 +78,7 @@ G4ImportanceConfigurator(G4String worldvolumeName,
|
||||
paraflag(para)
|
||||
{
|
||||
fWorld = G4TransportationManager::GetTransportationManager()->GetNavigatorForTracking()->GetWorldVolume();
|
||||
if(paraflag) fWorld = G4TransportationManager::GetTransportationManager()->GetParallelWorld(fWorldName);
|
||||
if(paraflag) fWorld = G4TransportationManager::GetTransportationManager()->GetParallelWorld(fWorldName);
|
||||
}
|
||||
|
||||
G4ImportanceConfigurator::~G4ImportanceConfigurator()
|
||||
@@ -97,10 +104,15 @@ G4ImportanceConfigurator::Configure(G4VSamplerConfigurator *preConf)
|
||||
terminator = preConf->GetTrackTerminator();
|
||||
};
|
||||
|
||||
|
||||
#ifdef G4MULTITHREADED
|
||||
G4AutoLock l(&BiasConfigMutex);
|
||||
#endif
|
||||
fImportanceProcess =
|
||||
new G4ImportanceProcess(*fIalgorithm,
|
||||
fIStore,
|
||||
terminator,"ImportanceProcess",paraflag);
|
||||
|
||||
if (!fImportanceProcess)
|
||||
{
|
||||
G4Exception("G4ImportanceConfigurator::Configure()",
|
||||
@@ -110,10 +122,13 @@ G4ImportanceConfigurator::Configure(G4VSamplerConfigurator *preConf)
|
||||
|
||||
// G4cout << "G4ImportanceConfigurator:: setting parallel World " << paraflag << G4endl;
|
||||
if(paraflag) fImportanceProcess->SetParallelWorld(fWorld->GetName());
|
||||
#ifdef G4MULTITHREADED
|
||||
l.unlock();
|
||||
// G4MUTEXUNLOCK(&G4ImportanceConfigurator::BiasConfigMutex);
|
||||
#endif
|
||||
// if(paraflag) fImportanceProcess->SetParallelWorld(fWorldName);
|
||||
// G4cout << "G4ImportanceConfigurator:: set " << paraflag << " name: " << fWorld->GetName() << G4endl;
|
||||
// getchar();
|
||||
|
||||
fPlacer.AddProcessAsSecondDoIt(fImportanceProcess);
|
||||
}
|
||||
|
||||
@@ -123,7 +138,8 @@ GetTrackTerminator() const
|
||||
return fImportanceProcess;
|
||||
}
|
||||
|
||||
void G4ImportanceConfigurator::SetWorldName(G4String name)
|
||||
void G4ImportanceConfigurator::SetWorldName(const G4String& name)
|
||||
{
|
||||
G4cout << " G4ImportanceConfigurator:: setting world name: " << name << G4endl;
|
||||
fWorldName = name;
|
||||
}
|
||||
|
||||
@@ -14,6 +14,24 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------*
|
||||
|
||||
09-02-2018, M.Asai tag emdna-V10-03-31
|
||||
- G4DNAMolecularMaterial.cc :
|
||||
GetDensityTableFor() and GetNumMolPerVolTableFor() methods are accepted
|
||||
at G4State_Init rather than G4State_Idle.
|
||||
- Co-works with run-V10-04-01 and global-V10-04-01.
|
||||
|
||||
21-12-2017, G.Cosmo
|
||||
- Fixed self-consistency in headers (missing #include) in G4IosFlagsSaver,
|
||||
G4KDNode, G4MoleculeIterator and G4LEPTSDiffXS.
|
||||
Fixed spurious definition of G4IT namespace in G4ITMultiNavigator header.
|
||||
Thanks to Raphael Isemann for reporting these.
|
||||
|
||||
01-11-2017, MK tag emdna-V10-03-30
|
||||
- remove models/test directory
|
||||
|
||||
31-10-2017, JA ( tag missing )
|
||||
- G4KDNode.hh: Add missing included file - needed in test
|
||||
|
||||
16-08-2017, SI tag emdna-V10-03-28
|
||||
- updated variable types in models
|
||||
|
||||
|
||||
@@ -62,7 +62,7 @@
|
||||
#include "G4TrackState.hh"
|
||||
#include "G4MultiNavigator.hh"
|
||||
|
||||
namespace G4IT
|
||||
namespace G4ITMN
|
||||
{
|
||||
enum ELimited
|
||||
{
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
#ifndef G4IosFlagsSaver_
|
||||
#define G4IosFlagsSaver_
|
||||
|
||||
#include <iostream>
|
||||
|
||||
class G4IosFlagsSaver
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4KDNode.hh 102616 2017-02-10 07:57:14Z gcosmo $
|
||||
// $Id: G4KDNode.hh 108498 2018-02-15 15:33:07Z gcosmo $
|
||||
//
|
||||
// Author: Mathieu Karamitros
|
||||
|
||||
@@ -48,13 +48,13 @@
|
||||
#define G4KDNODE_HH
|
||||
|
||||
#include <list>
|
||||
//#include <map>
|
||||
#include <vector>
|
||||
#include <deque>
|
||||
#include <ostream>
|
||||
|
||||
// geant4
|
||||
#include <G4Allocator.hh>
|
||||
#include "G4Types.hh"
|
||||
#include "G4Allocator.hh"
|
||||
|
||||
class G4KDTree;
|
||||
class G4KDMap;
|
||||
|
||||
+3
-3
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNAOneStepThermalizationModel.hh 101354 2016-11-15 08:27:51Z gcosmo $
|
||||
// $Id: G4DNAOneStepThermalizationModel.hh 108498 2018-02-15 15:33:07Z gcosmo $
|
||||
//
|
||||
// Author: Mathieu Karamitros
|
||||
|
||||
@@ -44,8 +44,8 @@
|
||||
// J. Comput. Phys. 274 (2014) 841-882
|
||||
// Prog. Nucl. Sci. Tec. 2 (2011) 503-508
|
||||
|
||||
#ifndef G4DNAOneStepThermalizationModel_
|
||||
#define G4DNAOneStepThermalizationModel_
|
||||
#ifndef G4DNAOneStepThermalizationModel_hh
|
||||
#define G4DNAOneStepThermalizationModel_hh
|
||||
|
||||
#include "G4VEmModel.hh"
|
||||
|
||||
|
||||
+2
-2
@@ -23,12 +23,12 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNAOneStepThermalizationModel.cc 96841 2016-05-12 13:40:37Z matkara $
|
||||
// $Id:$
|
||||
//
|
||||
// Author: Mathieu Karamitros
|
||||
//
|
||||
// WARNING : This class is released as a prototype.
|
||||
// It might strongly evolve or even disapear in the next releases.
|
||||
// It might strongly evolve or even disappear in the next releases.
|
||||
//
|
||||
// History:
|
||||
// -----------
|
||||
|
||||
@@ -26,8 +26,8 @@
|
||||
#ifndef G4LEPTSDiffXS_h
|
||||
#define G4LEPTSDiffXS_h 1
|
||||
|
||||
|
||||
#include <string>
|
||||
#include "G4Types.hh"
|
||||
|
||||
class G4LEPTSDiffXS {
|
||||
|
||||
|
||||
+1
@@ -46,6 +46,7 @@
|
||||
#define G4MOLECULEITERATOR_HH_
|
||||
|
||||
#include <map>
|
||||
#include "globals.hh"
|
||||
|
||||
template<typename MOLECULE>
|
||||
class G4MoleculeIterator
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4DNAMolecularMaterial.cc 103042 2017-03-10 11:50:07Z gcosmo $
|
||||
// $Id: G4DNAMolecularMaterial.cc 108498 2018-02-15 15:33:07Z gcosmo $
|
||||
//
|
||||
// Author: Mathieu Karamitros
|
||||
//
|
||||
@@ -376,14 +376,14 @@ GetDensityTableFor(const G4Material* lookForMaterial) const
|
||||
exceptionDescription);
|
||||
}
|
||||
|
||||
if (G4StateManager::GetStateManager()->GetCurrentState() == G4State_Idle){
|
||||
if (G4StateManager::GetStateManager()->GetCurrentState() == G4State_Init){
|
||||
const_cast<G4DNAMolecularMaterial*>(this)->Initialize();
|
||||
}
|
||||
else{
|
||||
G4ExceptionDescription exceptionDescription;
|
||||
exceptionDescription
|
||||
<< "The geant4 application is at the wrong state. State must be: "
|
||||
"G4State_Idle."
|
||||
"G4State_Init."
|
||||
<< G4endl;
|
||||
G4Exception("G4DNAMolecularMaterial::GetDensityTableFor",
|
||||
"G4DNAMolecularMaterial_WRONG_STATE_APPLICATION",
|
||||
@@ -450,14 +450,14 @@ const std::vector<double>* G4DNAMolecularMaterial::GetNumMolPerVolTableFor(
|
||||
exceptionDescription);
|
||||
}
|
||||
|
||||
if (G4StateManager::GetStateManager()->GetCurrentState() == G4State_Idle){
|
||||
if (G4StateManager::GetStateManager()->GetCurrentState() == G4State_Init){
|
||||
const_cast<G4DNAMolecularMaterial*>(this)->Initialize();
|
||||
}
|
||||
else{
|
||||
G4ExceptionDescription exceptionDescription;
|
||||
exceptionDescription
|
||||
<< "The geant4 application is at the wrong state. State must be : "
|
||||
"G4State_Idle."
|
||||
"G4State_Init."
|
||||
<< G4endl;
|
||||
G4Exception("G4DNAMolecularMaterial::GetNumMolPerVolTableFor",
|
||||
"G4DNAMolecularMaterial_WRONG_STATE_APPLICATION",
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 107157 2017-11-03 11:27:29Z gcosmo $
|
||||
$Id: History 108500 2018-02-15 15:38:58Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,10 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
19.12.2017 G.Cosmo, emlowen-V10-03-20
|
||||
- Fixed self-consistency in G4ecpssrFormFactorMixsModel header (missing #include).
|
||||
Thanks to Raphael Isemann for reporting this.
|
||||
|
||||
03.11.1017 V.Ivanchenko, emlowen-V10-03-19
|
||||
- G4RayleighScattering - added C++11 keywords to fix compilation warning at clang
|
||||
|
||||
|
||||
@@ -37,9 +37,11 @@
|
||||
#ifndef G4ecpssrFormFactorMixsModel_HH
|
||||
#define G4ecpssrFormFactorMixsModel_HH 1
|
||||
|
||||
#include "G4VecpssrMiModel.hh"
|
||||
#include "globals.hh"
|
||||
#include <map>
|
||||
#include <vector>
|
||||
|
||||
#include "G4Types.hh"
|
||||
#include "G4VecpssrMiModel.hh"
|
||||
|
||||
class G4VDataSetAlgorithm;
|
||||
class G4VEMDataSet;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 105740 2017-08-16 13:05:44Z gcosmo $
|
||||
$Id: History 108502 2018-02-15 15:41:45Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,9 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
12 February 18: V.Ivanchenko (empolar-V10-03-02)
|
||||
- G4StokesVector - moved static inline method to the source
|
||||
|
||||
05 August 17: V.Ivanchenko (empolar-V10-03-01)
|
||||
03 August 17: V.Ivanchenko (empolar-V10-03-00)
|
||||
- G4PolarizedCompton, G4PolarizedGammaConversion, G4ePolarizedIonisation
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4StokesVector.hh 68046 2013-03-13 14:31:38Z gcosmo $
|
||||
// $Id: G4StokesVector.hh 108502 2018-02-15 15:41:45Z gcosmo $
|
||||
//
|
||||
// GEANT4 Class header file
|
||||
//
|
||||
@@ -69,13 +69,14 @@ class G4StokesVector: public G4ThreeVector
|
||||
public:
|
||||
G4StokesVector();
|
||||
G4StokesVector(const G4ThreeVector & v);
|
||||
virtual ~G4StokesVector();
|
||||
public:
|
||||
~G4StokesVector() = default;
|
||||
|
||||
G4bool IsZero() const;
|
||||
|
||||
inline G4double p1() const { return x(); }
|
||||
inline G4double p2() const { return y(); }
|
||||
inline G4double p3() const { return z(); }
|
||||
|
||||
inline G4bool IsZero() const { return *this==ZERO; }
|
||||
inline G4double Transverse() const { return perp(); }
|
||||
|
||||
inline G4ThreeVector PolSqr() const {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4StokesVector.cc 96114 2016-03-16 18:51:33Z gcosmo $
|
||||
// $Id: G4StokesVector.cc 108502 2018-02-15 15:41:45Z gcosmo $
|
||||
//
|
||||
// GEANT4 Class file
|
||||
//
|
||||
@@ -64,9 +64,10 @@ G4StokesVector::G4StokesVector(const G4ThreeVector & v)
|
||||
{
|
||||
}
|
||||
|
||||
G4StokesVector::~G4StokesVector()
|
||||
{
|
||||
}
|
||||
G4bool G4StokesVector::IsZero() const
|
||||
{
|
||||
return *this==ZERO;
|
||||
}
|
||||
|
||||
void G4StokesVector::RotateAz(G4ThreeVector nInteractionFrame,
|
||||
G4ThreeVector particleDirection)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 107365 2017-11-09 10:54:29Z gcosmo $
|
||||
$Id: History 108504 2018-02-15 15:46:37Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -18,6 +18,11 @@ committal in the CVS repository !
|
||||
|
||||
----------------------------------------------------------
|
||||
|
||||
09 December 17: V.Ivanchenko (emstand-V10-03-52)
|
||||
- G4PairProductionRelModel - fixed misuse of G4Pow (A13(..) should
|
||||
be used instead of Z13(..)), add initialisation of an element
|
||||
cache before sampling of final state (partly fix problem #2017)
|
||||
|
||||
08 November 17: D.Sawkey (emstand-V10-03-51)
|
||||
- G4CoulombScattering, G4eMultipleScattering, G4hMultipleScattering
|
||||
modify ProcessDescription text
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4PairProductionRelModel.cc 106628 2017-10-17 06:25:38Z gcosmo $
|
||||
// $Id: G4PairProductionRelModel.cc 108504 2018-02-15 15:46:37Z gcosmo $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -350,6 +350,7 @@ G4PairProductionRelModel::SampleSecondaries(std::vector<G4DynamicParticle*>* fve
|
||||
// select randomly one element constituing the material
|
||||
const G4Element* anElement =
|
||||
SelectRandomAtom(aMaterial, theGamma, GammaEnergy);
|
||||
SetCurrentElement(anElement->GetZasInt());
|
||||
|
||||
CLHEP::HepRandomEngine* rndmEngine = G4Random::getTheEngine();
|
||||
|
||||
@@ -388,7 +389,7 @@ G4PairProductionRelModel::SampleSecondaries(std::vector<G4DynamicParticle*>* fve
|
||||
|
||||
do {
|
||||
if ( NormF1/(NormF1+NormF2) > rndmEngine->flat() ) {
|
||||
epsil = 0.5 - epsilrange*g4calc->Z13(rndmEngine->flat());
|
||||
epsil = 0.5 - epsilrange*g4calc->A13(rndmEngine->flat());
|
||||
screenvar = screenfac/(epsil*(1-epsil));
|
||||
if (fLPMflag && GammaEnergy > Eghigh) {
|
||||
CalcLPMFunctions(GammaEnergy,GammaEnergy*epsil);
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 107364 2017-11-09 10:53:25Z gcosmo $
|
||||
$Id: History 108506 2018-02-15 15:50:39Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,20 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
14 December 17: V.Ivant (emutils-V10-03-32)
|
||||
- G4EmParametersMessenger - use G4Exception for warnings instead
|
||||
of G4cout, review G4State for UI commands and make a signal to
|
||||
the RunManager about modification of physics if a command
|
||||
is issued in Idle state
|
||||
- G4EmParameters, G4VEmProcess, G4VEnergyLossProcess - define the
|
||||
same default values for few internal members (this is a
|
||||
cleanup, which does not affect results)
|
||||
|
||||
13 December 17: V.Ivant
|
||||
- G4EmParameters, G4EmParametersMessenger - fixed printout format
|
||||
and add lock and protection in commands defining physics
|
||||
pre region
|
||||
|
||||
08 November 17: D.Sawkey (emutils-V10-03-31)
|
||||
- G4LossTableManager, G4VEmProcess, G4VEnergyLossProcess,
|
||||
G4VMultipleScattering - fix html documentation
|
||||
|
||||
@@ -158,7 +158,7 @@ void G4EmParameters::Initialise()
|
||||
finalRangeMuHad = 0.1*CLHEP::mm;
|
||||
factorScreen = 1.0;
|
||||
|
||||
nbins = 77;
|
||||
nbins = 84;
|
||||
nbinsPerDecade = 7;
|
||||
verbose = 1;
|
||||
workerVerbose = 0;
|
||||
@@ -927,6 +927,7 @@ void G4EmParameters::AddPAIModel(const G4String& particle,
|
||||
const G4String& region,
|
||||
const G4String& type)
|
||||
{
|
||||
if(IsLocked()) { return; }
|
||||
G4String r = CheckRegion(region);
|
||||
G4int nreg = m_regnamesPAI.size();
|
||||
for(G4int i=0; i<nreg; ++i) {
|
||||
@@ -965,6 +966,7 @@ const std::vector<G4String>& G4EmParameters::TypesPAI() const
|
||||
|
||||
void G4EmParameters::AddMicroElec(const G4String& region)
|
||||
{
|
||||
if(IsLocked()) { return; }
|
||||
G4String r = CheckRegion(region);
|
||||
G4int nreg = m_regnamesME.size();
|
||||
for(G4int i=0; i<nreg; ++i) {
|
||||
@@ -980,6 +982,7 @@ const std::vector<G4String>& G4EmParameters::RegionsMicroElec() const
|
||||
|
||||
void G4EmParameters::AddDNA(const G4String& region, const G4String& type)
|
||||
{
|
||||
if(IsLocked()) { return; }
|
||||
G4String r = CheckRegion(region);
|
||||
G4int nreg = m_regnamesDNA.size();
|
||||
for(G4int i=0; i<nreg; ++i) {
|
||||
@@ -1001,13 +1004,7 @@ const std::vector<G4String>& G4EmParameters::TypesDNA() const
|
||||
|
||||
void G4EmParameters::AddMsc(const G4String& region, const G4String& type)
|
||||
{
|
||||
G4String r = CheckRegion(region);
|
||||
G4int nreg = m_regnamesMsc.size();
|
||||
for(G4int i=0; i<nreg; ++i) {
|
||||
if(r == m_regnamesMsc[i]) { return; }
|
||||
}
|
||||
m_regnamesMsc.push_back(r);
|
||||
m_typesMsc.push_back(type);
|
||||
AddPhysics(region, type);
|
||||
}
|
||||
|
||||
const std::vector<G4String>& G4EmParameters::RegionsMsc() const
|
||||
@@ -1022,6 +1019,7 @@ const std::vector<G4String>& G4EmParameters::TypesMsc() const
|
||||
|
||||
void G4EmParameters::AddPhysics(const G4String& region, const G4String& type)
|
||||
{
|
||||
if(IsLocked()) { return; }
|
||||
G4String r = CheckRegion(region);
|
||||
G4int nreg = m_regnamesMsc.size();
|
||||
for(G4int i=0; i<nreg; ++i) {
|
||||
@@ -1255,36 +1253,37 @@ std::ostream& G4EmParameters::StreamInfo(std::ostream& os) const
|
||||
os << "=======================================================================" << "\n";
|
||||
os << "====== Electromagnetic Physics Parameters ========" << "\n";
|
||||
os << "=======================================================================" << "\n";
|
||||
os << "Fluctuations of dE/dx are enabled " <<lossFluctuation << "\n";
|
||||
os << "Build CSDA range enabled " <<buildCSDARange << "\n";
|
||||
os << "LPM effect enabled " <<flagLPM << "\n";
|
||||
os << "Spline of EM tables enabled " <<spline << "\n";
|
||||
os << "Use cut as a final range enabled " <<finalRange << "\n";
|
||||
os << "Apply cuts on all EM processes " <<applyCuts << "\n";
|
||||
os << "Fluorescence enabled " <<fluo << "\n";
|
||||
os << "Fluorescence Bearden data files enabled " <<beardenFluoDir << "\n";
|
||||
os << "Auger electron production enabled " <<auger << "\n";
|
||||
os << "Auger cascade enabled " <<augerCascade << "\n";
|
||||
os << "PIXE atomic de-excitation enabled " <<pixe << "\n";
|
||||
os << "De-excitation module ignores cuts " <<deexIgnoreCut << "\n";
|
||||
os << "Msc lateral displacement for e+- enabled " <<lateralDisplacement << "\n";
|
||||
os << "Msc lateral displacement for muons and hadrons " <<muhadLateralDisplacement << "\n";
|
||||
os << "Msc lateral displacement alg96 for e+- " <<lateralDisplacementAlg96 << "\n";
|
||||
os << "Msc lateral displacement beyond geometry safety " <<latDisplacementBeyondSafety << "\n";
|
||||
os << "Enable angular generator interface "
|
||||
<<useAngGeneratorForIonisation << "\n";
|
||||
os << "Use Mott correction for e- scattering " << useMottCorrection << "\n";
|
||||
os << "Use integral approach for tracking " << integral << "\n";
|
||||
os << "X-section factor for integral approach " <<lambdaFactor << "\n";
|
||||
os << "Use built-in Birks satuaration " << birks << "\n";
|
||||
os << "Use fast sampling in DNA models " << dnaFast << "\n";
|
||||
os << "Use Stationary option in DNA models " << dnaStationary << "\n";
|
||||
os << "Use DNA with multiple scattering of e- " << dnaMsc << "\n";
|
||||
|
||||
os << "Factor of cut reduction for sub-cutoff method " << minSubRange << "\n";
|
||||
os << "Min kinetic energy for tables "
|
||||
<<G4BestUnit(minKinEnergy,"Energy") << "\n";
|
||||
os << "Max kinetic energy for tables "
|
||||
<<G4BestUnit(maxKinEnergy,"Energy") << "\n";
|
||||
os << "Number of bins in tables " <<nbins << "\n";
|
||||
os << "Number of bins per decade of a table " <<nbinsPerDecade << "\n";
|
||||
os << "Verbose level " <<verbose << "\n";
|
||||
os << "Verbose level for worker thread " <<workerVerbose << "\n";
|
||||
os << "Bremsstrahlung energy threshold above which \n"
|
||||
<< " primary is added to the list of secondary "
|
||||
<<G4BestUnit(bremsTh,"Energy") << "\n";
|
||||
|
||||
os << "=======================================================================" << "\n";
|
||||
os << "====== Ionisation Parameters ========" << "\n";
|
||||
os << "=======================================================================" << "\n";
|
||||
os << "Step function for e+- " <<"("<< dRoverRange
|
||||
<< ", " << finalRange << " mm)\n";
|
||||
os << "Step function for muons/hadrons " <<"("<< dRoverRangeMuHad
|
||||
<< ", " << finalRangeMuHad << " mm)\n";
|
||||
os << "Fluctuations of dE/dx are enabled " <<lossFluctuation << "\n";
|
||||
os << "Build CSDA range enabled " <<buildCSDARange << "\n";
|
||||
os << "Use cut as a final range enabled " <<finalRange << "\n";
|
||||
os << "Enable angular generator interface "
|
||||
<<useAngGeneratorForIonisation << "\n";
|
||||
os << "Factor of cut reduction for sub-cutoff method " << minSubRange << "\n";
|
||||
os << "Max kinetic energy for CSDA tables "
|
||||
<<G4BestUnit(maxKinEnergyCSDA,"Energy") << "\n";
|
||||
os << "Lowest e+e- kinetic energy "
|
||||
@@ -1294,36 +1293,47 @@ std::ostream& G4EmParameters::StreamInfo(std::ostream& os) const
|
||||
os << "Lowest triplet kinetic energy "
|
||||
<<G4BestUnit(lowestTripletEnergy,"Energy") << "\n";
|
||||
os << "Linear loss limit " <<linLossLimit << "\n";
|
||||
os << "Bremsstrahlung energy threshold above which \n"
|
||||
<< " primary is added to the list of secondary "
|
||||
<<G4BestUnit(bremsTh,"Energy") << "\n";
|
||||
os << "X-section factor for integral approach " <<lambdaFactor << "\n";
|
||||
|
||||
os << "=======================================================================" << "\n";
|
||||
os << "====== Multiple Scattering Parameters ========" << "\n";
|
||||
os << "=======================================================================" << "\n";
|
||||
os << "Type of msc step limit algorithm for e+- " <<mscStepLimit << "\n";
|
||||
os << "Type of msc step limit algorithm for muons/hadrons " <<mscStepLimitMuHad << "\n";
|
||||
os << "Msc lateral displacement for e+- enabled " <<lateralDisplacement << "\n";
|
||||
os << "Msc lateral displacement for muons and hadrons " <<muhadLateralDisplacement << "\n";
|
||||
os << "Msc lateral displacement alg96 for e+- " <<lateralDisplacementAlg96 << "\n";
|
||||
os << "Msc lateral displacement beyond geometry safety " <<latDisplacementBeyondSafety << "\n";
|
||||
os << "Range factor for msc step limit for e+- " <<rangeFactor << "\n";
|
||||
os << "Range factor for msc step limit for muons/hadrons " <<rangeFactorMuHad << "\n";
|
||||
os << "Geometry factor for msc step limitation of e+- " <<geomFactor << "\n";
|
||||
os << "Skin parameter for msc step limitation of e+- " <<skin << "\n";
|
||||
os << "Use Mott correction for e- scattering " << useMottCorrection << "\n";
|
||||
os << "Factor used for dynamic computation of angular \n"
|
||||
<< " limit between single and multiple scattering " << factorForAngleLimit << "\n";
|
||||
os << "Fixed angular limit between single \n"
|
||||
<< " and multiple scattering "
|
||||
<<thetaLimit/rad << " rad" << "\n";
|
||||
os << "Range factor for msc step limit for e+- " <<rangeFactor << "\n";
|
||||
os << "Range factor for msc step limit for muons/hadrons " <<rangeFactorMuHad << "\n";
|
||||
os << "Geometry factor for msc step limitation of e+- " <<geomFactor << "\n";
|
||||
os << "Skin parameter for msc step limitation of e+- " <<skin << "\n";
|
||||
os << "Screening factor " <<factorScreen << "\n";
|
||||
os << "Step function for e+- " <<"("<< dRoverRange
|
||||
<< ", " << finalRange << " mm)\n";
|
||||
os << "Step function for muons/hadrons " <<"("<< dRoverRangeMuHad
|
||||
<< ", " << finalRangeMuHad << " mm)\n";
|
||||
|
||||
os << "Number of bins in tables " <<nbins << "\n";
|
||||
os << "Number of bins per decade of a table " <<nbinsPerDecade << "\n";
|
||||
os << "Verbose level " <<verbose << "\n";
|
||||
os << "Verbose level for worker thread " <<workerVerbose << "\n";
|
||||
|
||||
os << "Type of msc step limit algorithm for e+- " <<mscStepLimit << "\n";
|
||||
os << "Type of msc step limit algorithm for muons/hadrons " <<mscStepLimitMuHad << "\n";
|
||||
os << "Type of nuclear form-factor " <<nucFormfactor << "\n";
|
||||
os << "Screening factor " <<factorScreen << "\n";
|
||||
|
||||
os << "=======================================================================" << "\n";
|
||||
os << "====== Atomic Deexcitation Parameters ========" << "\n";
|
||||
os << "=======================================================================" << "\n";
|
||||
os << "Fluorescence enabled " <<fluo << "\n";
|
||||
os << "Fluorescence Bearden data files enabled " <<beardenFluoDir << "\n";
|
||||
os << "Auger electron production enabled " <<auger << "\n";
|
||||
os << "Auger cascade enabled " <<augerCascade << "\n";
|
||||
os << "PIXE atomic de-excitation enabled " <<pixe << "\n";
|
||||
os << "De-excitation module ignores cuts " <<deexIgnoreCut << "\n";
|
||||
os << "Type of PIXE cross section for hadrons " <<namePIXE << "\n";
|
||||
os << "Type of PIXE cross section for e+- " <<nameElectronPIXE << "\n";
|
||||
|
||||
os << "=======================================================================" << "\n";
|
||||
os << "====== DNA Physics Parameters ========" << "\n";
|
||||
os << "=======================================================================" << "\n";
|
||||
os << "Use fast sampling in DNA models " << dnaFast << "\n";
|
||||
os << "Use Stationary option in DNA models " << dnaStationary << "\n";
|
||||
os << "Use DNA with multiple scattering of e- " << dnaMsc << "\n";
|
||||
os << "=======================================================================" << "\n";
|
||||
os.precision(prec);
|
||||
return os;
|
||||
@@ -1348,4 +1358,3 @@ G4bool G4EmParameters::IsLocked() const
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo.....
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
splCmd->SetGuidance("Enable/disable usage spline for Physics Vectors");
|
||||
splCmd->SetParameterName("spl",true);
|
||||
splCmd->SetDefaultValue(false);
|
||||
splCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
splCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
rsCmd = new G4UIcmdWithABool("/process/eLoss/useCutAsFinalRange",this);
|
||||
rsCmd->SetGuidance("Enable/disable use of cut in range as a final range");
|
||||
@@ -168,7 +168,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
catCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
|
||||
delCmd = new G4UIcmdWithABool("/process/eLoss/UseAngularGenerator",this);
|
||||
delCmd->SetGuidance("Enable usage of angular generator");
|
||||
delCmd->SetGuidance("Enable usage of angular generator for ionisation");
|
||||
delCmd->SetParameterName("del",true);
|
||||
delCmd->SetDefaultValue(false);
|
||||
delCmd->AvailableForStates(G4State_PreInit);
|
||||
@@ -224,19 +224,19 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
minEnCmd->SetGuidance("Set the min kinetic energy for EM tables");
|
||||
minEnCmd->SetParameterName("emin",true);
|
||||
minEnCmd->SetUnitCategory("Energy");
|
||||
minEnCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
minEnCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
maxEnCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/maxKinEnergy",this);
|
||||
maxEnCmd->SetGuidance("Set the max kinetic energy for EM tables");
|
||||
maxEnCmd->SetParameterName("emax",true);
|
||||
maxEnCmd->SetUnitCategory("Energy");
|
||||
maxEnCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
maxEnCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
cenCmd = new G4UIcmdWithADoubleAndUnit("/process/eLoss/maxKinEnergyCSDA",this);
|
||||
cenCmd->SetGuidance("Set the max kinetic energy for CSDA table");
|
||||
cenCmd->SetParameterName("emaxCSDA",true);
|
||||
cenCmd->SetUnitCategory("Energy");
|
||||
cenCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
cenCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
lowEnCmd = new G4UIcmdWithADoubleAndUnit("/process/em/lowestElectronEnergy",this);
|
||||
lowEnCmd->SetGuidance("Set the lowest kinetic energy for e+-");
|
||||
@@ -277,7 +277,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
mscfCmd->SetParameterName("Fact",true);
|
||||
mscfCmd->SetRange("Fact>0");
|
||||
mscfCmd->SetDefaultValue(1.);
|
||||
mscfCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
mscfCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
angCmd = new G4UIcmdWithADoubleAndUnit("/process/msc/ThetaLimit",this);
|
||||
angCmd->SetGuidance("Set the limit on the polar angle for msc and single scattering");
|
||||
@@ -319,20 +319,20 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
dedxCmd = new G4UIcmdWithAnInteger("/process/eLoss/binsDEDX",this);
|
||||
dedxCmd->SetGuidance("Set number of bins for EM tables");
|
||||
dedxCmd->SetParameterName("binsDEDX",true);
|
||||
dedxCmd->SetDefaultValue(77);
|
||||
dedxCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
dedxCmd->SetDefaultValue(84);
|
||||
dedxCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
lamCmd = new G4UIcmdWithAnInteger("/process/eLoss/binsLambda",this);
|
||||
lamCmd->SetGuidance("Set number of bins for EM tables");
|
||||
lamCmd->SetParameterName("binsL",true);
|
||||
lamCmd->SetDefaultValue(77);
|
||||
lamCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
lamCmd->SetDefaultValue(84);
|
||||
lamCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
amCmd = new G4UIcmdWithAnInteger("/process/eLoss/binsPerDecade",this);
|
||||
amCmd->SetGuidance("Set number of bins per decade for EM tables");
|
||||
amCmd->SetParameterName("bins",true);
|
||||
amCmd->SetDefaultValue(7);
|
||||
amCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
amCmd->AvailableForStates(G4State_PreInit);
|
||||
|
||||
verCmd = new G4UIcmdWithAnInteger("/process/eLoss/verbose",this);
|
||||
verCmd->SetGuidance("Set verbose level for EM physics");
|
||||
@@ -560,7 +560,7 @@ G4EmParametersMessenger::G4EmParametersMessenger(G4EmParameters* ptr)
|
||||
nffCmd->SetGuidance("Define typy of nuclear form-factor");
|
||||
nffCmd->SetParameterName("NucFF",true);
|
||||
nffCmd->SetCandidates("None Exponential Gaussian Flat");
|
||||
nffCmd->AvailableForStates(G4State_PreInit,G4State_Idle);
|
||||
nffCmd->AvailableForStates(G4State_PreInit);
|
||||
}
|
||||
|
||||
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
|
||||
@@ -659,7 +659,6 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
physicsModified = true;
|
||||
} else if (command == splCmd) {
|
||||
theParameters->SetSpline(splCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == rsCmd) {
|
||||
theParameters->SetUseCutAsFinalRange(rsCmd->GetNewBoolValue(newValue));
|
||||
physicsModified = true;
|
||||
@@ -717,10 +716,8 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
theParameters->SetMinSubRange(minSubSecCmd->GetNewDoubleValue(newValue));
|
||||
} else if (command == minEnCmd) {
|
||||
theParameters->SetMinEnergy(minEnCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == maxEnCmd) {
|
||||
theParameters->SetMaxEnergy(maxEnCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == cenCmd) {
|
||||
theParameters->SetMaxEnergyForCSDARange(cenCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
@@ -744,7 +741,6 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
physicsModified = true;
|
||||
} else if (command == mscfCmd) {
|
||||
theParameters->SetFactorForAngleLimit(mscfCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == angCmd) {
|
||||
theParameters->SetMscThetaLimit(angCmd->GetNewDoubleValue(newValue));
|
||||
physicsModified = true;
|
||||
@@ -765,19 +761,18 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
|
||||
} else if (command == dedxCmd) {
|
||||
theParameters->SetNumberOfBins(dedxCmd->GetNewIntValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == lamCmd) {
|
||||
theParameters->SetNumberOfBins(lamCmd->GetNewIntValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == amCmd) {
|
||||
theParameters->SetNumberOfBinsPerDecade(amCmd->GetNewIntValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == verCmd) {
|
||||
theParameters->SetVerbose(verCmd->GetNewIntValue(newValue));
|
||||
} else if (command == ver1Cmd) {
|
||||
theParameters->SetVerbose(ver1Cmd->GetNewIntValue(newValue));
|
||||
physicsModified = true;
|
||||
} else if (command == ver2Cmd) {
|
||||
theParameters->SetWorkerVerbose(ver2Cmd->GetNewIntValue(newValue));
|
||||
physicsModified = true;
|
||||
|
||||
} else if (command == mscCmd || command == msc1Cmd) {
|
||||
G4MscStepLimitType msctype = fUseSafety;
|
||||
@@ -790,8 +785,9 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
} else if(newValue == "UseSafetyPlus") {
|
||||
msctype = fUseSafetyPlus;
|
||||
} else {
|
||||
G4cout << "### G4EmParametersMessenger WARNING: StepLimit type <"
|
||||
<< newValue << "> unknown!" << G4endl;
|
||||
G4ExceptionDescription ed;
|
||||
ed << " StepLimit type <" << newValue << "> unknown!";
|
||||
G4Exception("G4EmParametersMessenger", "em0044", JustWarning, ed);
|
||||
return;
|
||||
}
|
||||
if (command == mscCmd) {
|
||||
@@ -886,8 +882,13 @@ void G4EmParametersMessenger::SetNewValue(G4UIcommand* command,
|
||||
if(newValue == "Exponential") { x = fExponentialNF; }
|
||||
else if(newValue == "Gaussian") { x = fGaussianNF; }
|
||||
else if(newValue == "Flat") { x = fFlatNF; }
|
||||
else if(newValue != "None") {
|
||||
G4ExceptionDescription ed;
|
||||
ed << " NuclearFormFactor type <" << newValue << "> unknown!";
|
||||
G4Exception("G4EmParametersMessenger", "em0044", JustWarning, ed);
|
||||
return;
|
||||
}
|
||||
theParameters->SetNuclearFormfactorType(x);
|
||||
physicsModified = true;
|
||||
}
|
||||
if(physicsModified) {
|
||||
G4UImanager::GetUIpointer()->ApplyCommand("/run/physicsModified");
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VEmProcess.cc 107364 2017-11-09 10:53:25Z gcosmo $
|
||||
// $Id: G4VEmProcess.cc 108506 2018-02-15 15:50:39Z gcosmo $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -113,7 +113,7 @@ G4VEmProcess::G4VEmProcess(const G4String& name, G4ProcessType type):
|
||||
// Size of tables assuming spline
|
||||
minKinEnergy = 0.1*keV;
|
||||
maxKinEnergy = 100.0*TeV;
|
||||
nLambdaBins = 77;
|
||||
nLambdaBins = 84;
|
||||
minKinEnergyPrim = DBL_MAX;
|
||||
actBinning = actSpline = actMinKinEnergy = actMaxKinEnergy = false;
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4VEnergyLossProcess.cc 107364 2017-11-09 10:53:25Z gcosmo $
|
||||
// $Id: G4VEnergyLossProcess.cc 108506 2018-02-15 15:50:39Z gcosmo $
|
||||
//
|
||||
// -------------------------------------------------------------------
|
||||
//
|
||||
@@ -209,7 +209,7 @@ G4VEnergyLossProcess::G4VEnergyLossProcess(const G4String& name,
|
||||
// Size of tables assuming spline
|
||||
minKinEnergy = 0.1*keV;
|
||||
maxKinEnergy = 100.0*TeV;
|
||||
nBins = 77;
|
||||
nBins = 84;
|
||||
maxKinEnergyCSDA = 1.0*GeV;
|
||||
nBinsCSDA = 35;
|
||||
actMinKinEnergy = actMaxKinEnergy = actBinning = actLinLossLimit
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 106116 2017-09-13 10:19:06Z gcosmo $
|
||||
$Id: History 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,19 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
12 February 18: V.Ivanchenko (xrays-V10-03-01)
|
||||
- G4VTransitionRadiation, G4TransitionRadiation, G4SynchrotronRadiationInMat,
|
||||
G4Scintillation, G4ForwardXrayTR, G4Cerenkov - moved static and virtual
|
||||
methods from inline to the source, removed extra empty and commented lines
|
||||
|
||||
26 January 18: V.Ivanchenko
|
||||
- G4VXTRenergyLoss - V.Grichine exteded XTR angle limit up to 250/gamma
|
||||
(ATLAS requirements)
|
||||
|
||||
21 December 17: G.Cosmo
|
||||
- Fixed self-consistency in G4VTRModel header (missing #include).
|
||||
Thanks to Raphael Isemann for reporting this.
|
||||
|
||||
11 September 17: S.Y.Jun (xrays-V10-03-00)
|
||||
- Change material property keys by the enum (index) type defined in
|
||||
G4MaterialPropertiesIndex
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Cerenkov.hh 98002 2016-06-30 13:03:36Z gcosmo $
|
||||
// $Id: G4Cerenkov.hh 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
@@ -265,18 +265,6 @@ G4int G4Cerenkov::GetNumPhotons() const
|
||||
return fNumPhotons;
|
||||
}
|
||||
|
||||
inline
|
||||
void G4Cerenkov::DumpPhysicsTable() const
|
||||
{
|
||||
G4int PhysicsTableSize = thePhysicsTable->entries();
|
||||
G4PhysicsOrderedFreeVector *v;
|
||||
|
||||
for (G4int i = 0 ; i < PhysicsTableSize ; i++ ) {
|
||||
v = (G4PhysicsOrderedFreeVector*)(*thePhysicsTable)[i];
|
||||
v->DumpValues();
|
||||
}
|
||||
}
|
||||
|
||||
inline
|
||||
G4PhysicsTable* G4Cerenkov::GetPhysicsTable() const
|
||||
{
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ForwardXrayTR.hh 97385 2016-06-02 09:59:53Z gcosmo $
|
||||
// $Id: G4ForwardXrayTR.hh 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
// G4ForwardXrayTR
|
||||
//
|
||||
@@ -125,15 +125,15 @@ G4double EnergySum( G4double energy1,
|
||||
|
||||
/////////////////////////// Access functions ////////////////////////////
|
||||
|
||||
G4PhysicsTable* GetAngleDistrTable() { return fAngleDistrTable; };
|
||||
G4PhysicsTable* GetEnergyDistrTable() { return fEnergyDistrTable; };
|
||||
G4PhysicsTable* GetAngleDistrTable();
|
||||
G4PhysicsTable* GetEnergyDistrTable();
|
||||
|
||||
static G4int GetSympsonNumber() { return fSympsonNumber; };
|
||||
static G4int GetBinTR() { return fBinTR; };
|
||||
static G4int GetSympsonNumber();
|
||||
static G4int GetBinTR();
|
||||
|
||||
static G4double GetMinProtonTkin() { return fMinProtonTkin; };
|
||||
static G4double GetMaxProtonTkin() { return fMaxProtonTkin; };
|
||||
static G4int GetTotBin() { return fTotBin; };
|
||||
static G4double GetMinProtonTkin();
|
||||
static G4double GetMaxProtonTkin();
|
||||
static G4int GetTotBin();
|
||||
|
||||
|
||||
protected: // for access from X-ray TR fast simulation models
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Scintillation.hh 98002 2016-06-30 13:03:36Z gcosmo $
|
||||
// $Id: G4Scintillation.hh 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
@@ -276,15 +276,6 @@ private:
|
||||
// Inline methods
|
||||
////////////////////
|
||||
|
||||
inline
|
||||
G4bool G4Scintillation::IsApplicable(const G4ParticleDefinition& aParticleType)
|
||||
{
|
||||
if (aParticleType.GetParticleName() == "opticalphoton") return false;
|
||||
if (aParticleType.IsShortLived()) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
inline
|
||||
void G4Scintillation::SetTrackSecondariesFirst(const G4bool state)
|
||||
{
|
||||
@@ -399,31 +390,6 @@ G4int G4Scintillation::GetNumPhotons() const
|
||||
return fNumPhotons;
|
||||
}
|
||||
|
||||
inline
|
||||
void G4Scintillation::DumpPhysicsTable() const
|
||||
{
|
||||
if (fFastIntegralTable) {
|
||||
G4int PhysicsTableSize = fFastIntegralTable->entries();
|
||||
G4PhysicsOrderedFreeVector *v;
|
||||
|
||||
for (G4int i = 0 ; i < PhysicsTableSize ; i++ )
|
||||
{
|
||||
v = (G4PhysicsOrderedFreeVector*)(*fFastIntegralTable)[i];
|
||||
v->DumpValues();
|
||||
}
|
||||
}
|
||||
|
||||
if (fSlowIntegralTable) {
|
||||
G4int PhysicsTableSize = fSlowIntegralTable->entries();
|
||||
G4PhysicsOrderedFreeVector *v;
|
||||
|
||||
for (G4int i = 0 ; i < PhysicsTableSize ; i++ )
|
||||
{
|
||||
v = (G4PhysicsOrderedFreeVector*)(*fSlowIntegralTable)[i];
|
||||
v->DumpValues();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
inline
|
||||
G4double G4Scintillation::single_exp(G4double t, G4double tau2)
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4SynchrotronRadiationInMat.hh 97385 2016-06-02 09:59:53Z gcosmo $
|
||||
// $Id: G4SynchrotronRadiationInMat.hh 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
// GEANT 4 class header file
|
||||
@@ -107,8 +107,8 @@ public: ///////////////// Post Step functions //////////////////////////
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition&) override;
|
||||
|
||||
static G4double GetLambdaConst(){ return fLambdaConst; };
|
||||
static G4double GetEnergyConst(){ return fEnergyConst; };
|
||||
static G4double GetLambdaConst();
|
||||
static G4double GetEnergyConst();
|
||||
|
||||
void SetRootNumber(G4int rn){ fRootNumber = rn; };
|
||||
void SetVerboseLevel(G4int v){ fVerboseLevel = v; };
|
||||
@@ -128,23 +128,12 @@ private:
|
||||
const G4double
|
||||
LowestKineticEnergy; // low energy limit of the cross-section formula
|
||||
|
||||
//const G4double
|
||||
//HighestKineticEnergy; // high energy limit of the cross-section formula
|
||||
|
||||
//G4int TotBin; // number of bins in the tables
|
||||
|
||||
G4double CutInRange;
|
||||
|
||||
const G4ParticleDefinition* theGamma;
|
||||
const G4ParticleDefinition* theElectron;
|
||||
const G4ParticleDefinition* thePositron;
|
||||
|
||||
//const G4double* GammaCutInKineticEnergy;
|
||||
//const G4double* ElectronCutInKineticEnergy;
|
||||
//const G4double* PositronCutInKineticEnergy;
|
||||
//const G4double* ParticleCutInKineticEnergy;
|
||||
|
||||
|
||||
G4double GammaCutInKineticEnergyNow;
|
||||
G4double ElectronCutInKineticEnergyNow;
|
||||
G4double PositronCutInKineticEnergyNow;
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4TransitionRadiation.hh 97385 2016-06-02 09:59:53Z gcosmo $
|
||||
// $Id: G4TransitionRadiation.hh 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
// G4TransitionRadiation -- header file
|
||||
//
|
||||
@@ -52,7 +52,6 @@
|
||||
|
||||
#include "G4VDiscreteProcess.hh"
|
||||
#include "G4Material.hh"
|
||||
// #include "G4OpBoundaryProcess.hh"
|
||||
|
||||
class G4TransitionRadiation : public G4VDiscreteProcess
|
||||
{
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VTRModel.hh 97385 2016-06-02 09:59:53Z gcosmo $
|
||||
// $Id: G4VTRModel.hh 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
// G4VTRModel -- header file
|
||||
//
|
||||
@@ -38,24 +38,24 @@
|
||||
#ifndef G4VTRModel_h
|
||||
#define G4VTRModel_h
|
||||
|
||||
#include <vector>
|
||||
|
||||
#include "globals.hh"
|
||||
#include <vector>
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
class G4Material;
|
||||
class G4Track;
|
||||
class G4VParticleChange;
|
||||
|
||||
|
||||
class G4VTRModel
|
||||
{
|
||||
public:
|
||||
|
||||
// Constructors
|
||||
// Constructors
|
||||
|
||||
explicit G4VTRModel( const G4String& modelName) {fName = modelName;};
|
||||
|
||||
// Destructor
|
||||
// Destructor
|
||||
|
||||
virtual ~G4VTRModel() {};
|
||||
|
||||
@@ -70,19 +70,14 @@ public:
|
||||
|
||||
virtual void PrintInfo() { return; };
|
||||
|
||||
// private :
|
||||
|
||||
// hide assignment operator
|
||||
// disable assignment operator & copy constructor
|
||||
|
||||
G4VTRModel & operator=(const G4VTRModel &right) = delete;
|
||||
G4VTRModel(const G4VTRModel&) = delete;
|
||||
|
||||
protected:
|
||||
|
||||
|
||||
G4String fName;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#endif // G4VTRModel_h
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VTransitionRadiation.hh 97385 2016-06-02 09:59:53Z gcosmo $
|
||||
// $Id: G4VTransitionRadiation.hh 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
// G4VTransitionRadiation -- header file
|
||||
//
|
||||
@@ -102,21 +102,4 @@ public:
|
||||
|
||||
};
|
||||
|
||||
inline G4double G4VTransitionRadiation::GetMeanFreePath(
|
||||
const G4Track& track, G4double,
|
||||
G4ForceCondition* condition)
|
||||
{
|
||||
if(nSteps > 0) {
|
||||
*condition = StronglyForced;
|
||||
} else {
|
||||
*condition = NotForced;
|
||||
if(track.GetKineticEnergy()/track.GetDefinition()->GetPDGMass() + 1.0 > gammaMin &&
|
||||
track.GetVolume()->GetLogicalVolume()->GetRegion() == region) {
|
||||
*condition = StronglyForced;
|
||||
}
|
||||
}
|
||||
return DBL_MAX; // so TR doesn't limit mean free path
|
||||
}
|
||||
|
||||
|
||||
#endif // G4VTransitionRadiation_h
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Cerenkov.cc 106116 2017-09-13 10:19:06Z gcosmo $
|
||||
// $Id: G4Cerenkov.cc 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// Cerenkov Radiation Class Implementation
|
||||
@@ -679,3 +679,15 @@ G4double
|
||||
|
||||
return NumPhotons;
|
||||
}
|
||||
|
||||
void G4Cerenkov::DumpPhysicsTable() const
|
||||
{
|
||||
G4int PhysicsTableSize = thePhysicsTable->entries();
|
||||
G4PhysicsOrderedFreeVector *v;
|
||||
|
||||
for (G4int i = 0 ; i < PhysicsTableSize ; i++ ) {
|
||||
v = (G4PhysicsOrderedFreeVector*)(*thePhysicsTable)[i];
|
||||
v->DumpValues();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ForwardXrayTR.cc 97385 2016-06-02 09:59:53Z gcosmo $
|
||||
// $Id: G4ForwardXrayTR.cc 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
// G4ForwardXrayTR class -- implementation file
|
||||
//
|
||||
@@ -800,16 +800,36 @@ G4ForwardXrayTR::GetEnergyTR(G4int iMat, G4int jMat, G4int iTkin) const
|
||||
// theta angle relative to particle direction
|
||||
//
|
||||
|
||||
|
||||
G4double
|
||||
G4ForwardXrayTR::GetThetaTR(G4int, G4int, G4int) const
|
||||
{
|
||||
G4double theta = 0.0;
|
||||
|
||||
return theta;
|
||||
return 0.0;
|
||||
}
|
||||
|
||||
G4int G4ForwardXrayTR::GetSympsonNumber()
|
||||
{
|
||||
return fSympsonNumber;
|
||||
}
|
||||
|
||||
G4int G4ForwardXrayTR::GetBinTR()
|
||||
{
|
||||
return fBinTR;
|
||||
}
|
||||
|
||||
G4double G4ForwardXrayTR::GetMinProtonTkin()
|
||||
{
|
||||
return fMinProtonTkin;
|
||||
}
|
||||
|
||||
G4double G4ForwardXrayTR::GetMaxProtonTkin()
|
||||
{
|
||||
return fMaxProtonTkin;
|
||||
}
|
||||
|
||||
G4int G4ForwardXrayTR::GetTotBin()
|
||||
{
|
||||
return fTotBin;
|
||||
}
|
||||
|
||||
// end of G4ForwardXrayTR implementation file
|
||||
//
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4Scintillation.cc 107824 2017-12-05 15:47:44Z gunter $
|
||||
// $Id: G4Scintillation.cc 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
////////////////////////////////////////////////////////////////////////
|
||||
// Scintillation Light Class Implementation
|
||||
@@ -155,6 +155,14 @@ G4Scintillation::~G4Scintillation()
|
||||
// Methods
|
||||
////////////
|
||||
|
||||
G4bool G4Scintillation::IsApplicable(const G4ParticleDefinition& aParticleType)
|
||||
{
|
||||
if (aParticleType.GetParticleName() == "opticalphoton") return false;
|
||||
if (aParticleType.IsShortLived()) return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
void G4Scintillation::BuildPhysicsTable(const G4ParticleDefinition&)
|
||||
{
|
||||
if (fFastIntegralTable != nullptr) {
|
||||
@@ -854,3 +862,28 @@ GetScintillationYieldByParticleType(const G4Track &aTrack, const G4Step &aStep)
|
||||
|
||||
return ScintillationYield;
|
||||
}
|
||||
|
||||
void G4Scintillation::DumpPhysicsTable() const
|
||||
{
|
||||
if (fFastIntegralTable) {
|
||||
G4int PhysicsTableSize = fFastIntegralTable->entries();
|
||||
G4PhysicsOrderedFreeVector *v;
|
||||
|
||||
for (G4int i = 0 ; i < PhysicsTableSize ; i++ )
|
||||
{
|
||||
v = (G4PhysicsOrderedFreeVector*)(*fFastIntegralTable)[i];
|
||||
v->DumpValues();
|
||||
}
|
||||
}
|
||||
|
||||
if (fSlowIntegralTable) {
|
||||
G4int PhysicsTableSize = fSlowIntegralTable->entries();
|
||||
G4PhysicsOrderedFreeVector *v;
|
||||
|
||||
for (G4int i = 0 ; i < PhysicsTableSize ; i++ )
|
||||
{
|
||||
v = (G4PhysicsOrderedFreeVector*)(*fSlowIntegralTable)[i];
|
||||
v->DumpValues();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4SynchrotronRadiationInMat.cc 97385 2016-06-02 09:59:53Z gcosmo $
|
||||
// $Id: G4SynchrotronRadiationInMat.cc 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
@@ -123,15 +123,9 @@ G4SynchrotronRadiationInMat::fIntegralProbabilityOfSR[200] =
|
||||
G4SynchrotronRadiationInMat::G4SynchrotronRadiationInMat(const G4String& processName,
|
||||
G4ProcessType type):G4VDiscreteProcess (processName, type),
|
||||
LowestKineticEnergy (10.*keV),
|
||||
//HighestKineticEnergy (100.*TeV),
|
||||
//TotBin(200),
|
||||
theGamma (G4Gamma::Gamma() ),
|
||||
theElectron ( G4Electron::Electron() ),
|
||||
thePositron ( G4Positron::Positron() ),
|
||||
//GammaCutInKineticEnergy(nullptr),
|
||||
//ElectronCutInKineticEnergy(nullptr),
|
||||
//PositronCutInKineticEnergy(nullptr),
|
||||
//ParticleCutInKineticEnergy(nullptr),
|
||||
fAlpha(0.0), fRootNumber(80),
|
||||
fVerboseLevel( verboseLevel )
|
||||
{
|
||||
@@ -156,10 +150,18 @@ G4SynchrotronRadiationInMat::~G4SynchrotronRadiationInMat()
|
||||
G4bool
|
||||
G4SynchrotronRadiationInMat::IsApplicable( const G4ParticleDefinition& particle )
|
||||
{
|
||||
|
||||
return ( ( &particle == (const G4ParticleDefinition *)theElectron ) ||
|
||||
( &particle == (const G4ParticleDefinition *)thePositron ) );
|
||||
( &particle == (const G4ParticleDefinition *)thePositron ));
|
||||
}
|
||||
|
||||
G4double G4SynchrotronRadiationInMat::GetLambdaConst()
|
||||
{
|
||||
return fLambdaConst;
|
||||
}
|
||||
|
||||
G4double G4SynchrotronRadiationInMat::GetEnergyConst()
|
||||
{
|
||||
return fEnergyConst;
|
||||
}
|
||||
|
||||
/////////////////////////////// METHODS /////////////////////////////////
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
// * acceptance of all terms of the Geant4 Software license. *
|
||||
// ********************************************************************
|
||||
//
|
||||
// $Id: G4TransitionRadiation.cc 68037 2013-03-13 14:15:08Z gcosmo $
|
||||
// $Id: G4TransitionRadiation.cc 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
// G4TransitionRadiation class -- implementation file
|
||||
|
||||
@@ -228,7 +228,4 @@ EnergyIntegralDistribution( G4double energy1,
|
||||
+ 4.0*sumOdd + 2.0*sumEven )/3.0 ;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// end of G4TransitionRadiation implementation file --------------------------
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VTransitionRadiation.cc 97385 2016-06-02 09:59:53Z gcosmo $
|
||||
// $Id: G4VTransitionRadiation.cc 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
// G4VTransitionRadiation class -- implementation file
|
||||
|
||||
@@ -167,3 +167,21 @@ void G4VTransitionRadiation::PrintInfoDefinition()
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
G4double G4VTransitionRadiation::GetMeanFreePath(
|
||||
const G4Track& track, G4double,
|
||||
G4ForceCondition* condition)
|
||||
{
|
||||
if(nSteps > 0) {
|
||||
*condition = StronglyForced;
|
||||
} else {
|
||||
*condition = NotForced;
|
||||
if(track.GetKineticEnergy()/track.GetDefinition()->GetPDGMass() + 1.0 > gammaMin &&
|
||||
track.GetVolume()->GetLogicalVolume()->GetRegion() == region) {
|
||||
*condition = StronglyForced;
|
||||
}
|
||||
}
|
||||
return DBL_MAX; // so TR doesn't limit mean free path
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VXTRenergyLoss.cc 97385 2016-06-02 09:59:53Z gcosmo $
|
||||
// $Id: G4VXTRenergyLoss.cc 108508 2018-02-15 15:54:35Z gcosmo $
|
||||
//
|
||||
// History:
|
||||
// 2001-2002 R&D by V.Grichine
|
||||
@@ -85,13 +85,16 @@ G4VXTRenergyLoss::G4VXTRenergyLoss(G4LogicalVolume *anEnvelope,
|
||||
// Initialization of local constants
|
||||
fTheMinEnergyTR = 1.0*keV;
|
||||
fTheMaxEnergyTR = 100.0*keV;
|
||||
fTheMaxAngle = 1.0e-2;
|
||||
fTheMinAngle = 5.0e-6;
|
||||
fBinTR = 50;
|
||||
|
||||
fTheMaxAngle = 1.0e-2; // 100 mrad
|
||||
|
||||
fTheMinAngle = 2.5e-5;
|
||||
|
||||
fBinTR = 200; // 100; // 50;
|
||||
|
||||
fMinProtonTkin = 100.0*GeV;
|
||||
fMaxProtonTkin = 100.0*TeV;
|
||||
fTotBin = 50;
|
||||
fTotBin = 50; // 100; //
|
||||
|
||||
// Proton energy vector initialization
|
||||
fProtonEnergyVector = new G4PhysicsLogVector(fMinProtonTkin,
|
||||
@@ -120,7 +123,7 @@ G4VXTRenergyLoss::G4VXTRenergyLoss(G4LogicalVolume *anEnvelope,
|
||||
// default is XTR dEdx, not flux after radiator
|
||||
|
||||
fExitFlux = false;
|
||||
fAngleRadDistr = false;
|
||||
fAngleRadDistr = true; // false;
|
||||
fCompton = false;
|
||||
|
||||
fLambda = DBL_MAX;
|
||||
@@ -280,7 +283,7 @@ void G4VXTRenergyLoss::BuildPhysicsTable(const G4ParticleDefinition& pd)
|
||||
}
|
||||
BuildEnergyTable();
|
||||
|
||||
if (fAngleRadDistr)
|
||||
if ( fAngleRadDistr )
|
||||
{
|
||||
if(verboseLevel > 0)
|
||||
{
|
||||
@@ -336,7 +339,7 @@ void G4VXTRenergyLoss::BuildEnergyTable()
|
||||
fGamma = 1.0 + (fProtonEnergyVector->
|
||||
GetLowEdgeEnergy(iTkin)/proton_mass_c2);
|
||||
|
||||
fMaxThetaTR = 2500.0/(fGamma*fGamma) ; // theta^2
|
||||
fMaxThetaTR = 25.*2500.0/(fGamma*fGamma) ; // theta^2
|
||||
|
||||
fTheMinAngle = 1.0e-3; // was 5.e-6, e-6 !!!, e-5, e-4
|
||||
|
||||
@@ -428,7 +431,7 @@ void G4VXTRenergyLoss::BuildAngleForEnergyBank()
|
||||
fGamma = 1.0 + (fProtonEnergyVector->
|
||||
GetLowEdgeEnergy(iTkin)/proton_mass_c2);
|
||||
|
||||
fMaxThetaTR = 2500.0/(fGamma*fGamma) ; // theta^2
|
||||
fMaxThetaTR = 25*2500.0/(fGamma*fGamma) ; // theta^2
|
||||
|
||||
fTheMinAngle = 1.0e-3; // was 5.e-6, e-6 !!!, e-5, e-4
|
||||
|
||||
@@ -509,7 +512,7 @@ void G4VXTRenergyLoss::BuildAngleTable()
|
||||
fGamma = 1.0 + (fProtonEnergyVector->
|
||||
GetLowEdgeEnergy(iTkin)/proton_mass_c2);
|
||||
|
||||
fMaxThetaTR = 25.0/(fGamma*fGamma); // theta^2
|
||||
fMaxThetaTR = 25*2500.0/(fGamma*fGamma); // theta^2
|
||||
|
||||
fTheMinAngle = 1.0e-3; // was 5.e-6, e-6 !!!, e-5, e-4
|
||||
|
||||
@@ -585,7 +588,7 @@ G4PhysicsFreeVector* G4VXTRenergyLoss::GetAngleVector(G4double energy, G4int n)
|
||||
for( iTheta = n - 1; iTheta >= 1; iTheta-- )
|
||||
{
|
||||
|
||||
k = iTheta- 1 + kMin;
|
||||
k = iTheta - 1 + kMin;
|
||||
|
||||
tmp = pi*fPlateThick*(k + cof2)/(fPlateThick + fGasThick);
|
||||
|
||||
@@ -793,12 +796,14 @@ G4VParticleChange* G4VXTRenergyLoss::PostStepDoIt( const G4Track& aTrack,
|
||||
{
|
||||
G4cout<<"energyTR = "<<energyTR/keV<<" keV"<<G4endl;
|
||||
}
|
||||
if (fAngleRadDistr)
|
||||
if ( fAngleRadDistr )
|
||||
{
|
||||
// theta = std::fabs(G4RandGauss::shoot(0.0,pi/gamma));
|
||||
|
||||
theta2 = GetRandomAngle(energyTR,iTkin);
|
||||
if(theta2 > 0.) theta = std::sqrt(theta2);
|
||||
else theta = 0.; // theta2;
|
||||
|
||||
if( theta2 > 0.) theta = std::sqrt(theta2);
|
||||
else theta = 0.; // theta2;
|
||||
}
|
||||
else theta = std::fabs(G4RandGauss::shoot(0.0,pi/gamma));
|
||||
|
||||
@@ -990,6 +995,7 @@ G4double G4VXTRenergyLoss::AngleXTRdEdx(G4double varAngle)
|
||||
if( i == 0 )
|
||||
{
|
||||
if (energy1 > fTheMaxEnergyTR || energy1 < fTheMinEnergyTR) continue;
|
||||
|
||||
tmp1 = ( energy1*energy1*(1./fGamma/fGamma + varAngle) + fSigma1 )
|
||||
* fPlateThick/(4*hbarc*energy1);
|
||||
tmp2 = std::sin(tmp1);
|
||||
@@ -999,12 +1005,14 @@ G4double G4VXTRenergyLoss::AngleXTRdEdx(G4double varAngle)
|
||||
tmp *= (tmp1-tmp2)*(tmp1-tmp2);
|
||||
tmp1 = cof1/(4.*hbarc) - cof2/(4.*hbarc*energy1*energy1);
|
||||
tmp2 = std::abs(tmp1);
|
||||
|
||||
if(tmp2 > 0.) tmp /= tmp2;
|
||||
else continue;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (energy2 > fTheMaxEnergyTR || energy2 < fTheMinEnergyTR) continue;
|
||||
|
||||
tmp1 = ( energy2*energy2*(1./fGamma/fGamma + varAngle) + fSigma1 )
|
||||
* fPlateThick/(4.*hbarc*energy2);
|
||||
tmp2 = std::sin(tmp1);
|
||||
@@ -1014,6 +1022,7 @@ G4double G4VXTRenergyLoss::AngleXTRdEdx(G4double varAngle)
|
||||
tmp *= (tmp1-tmp2)*(tmp1-tmp2);
|
||||
tmp1 = cof1/(4.*hbarc) - cof2/(4.*hbarc*energy2*energy2);
|
||||
tmp2 = std::abs(tmp1);
|
||||
|
||||
if(tmp2 > 0.) tmp /= tmp2;
|
||||
else continue;
|
||||
}
|
||||
@@ -1574,9 +1583,9 @@ G4double G4VXTRenergyLoss::GetRandomAngle( G4double energyXTR, G4int iTkin )
|
||||
|
||||
position = (*(*fAngleForEnergyTable)(iTR))(0)*G4UniformRand();
|
||||
|
||||
for(iAngle = 0;;iAngle++)
|
||||
for( iAngle = 0;; iAngle++)
|
||||
{
|
||||
if(position >= (*(*fAngleForEnergyTable)(iTR))(iAngle)) break;
|
||||
if( position >= (*(*fAngleForEnergyTable)(iTR))(iAngle) ) break;
|
||||
}
|
||||
angle = GetAngleXTR(iTR,position,iAngle);
|
||||
return angle;
|
||||
@@ -1588,12 +1597,12 @@ G4double G4VXTRenergyLoss::GetRandomAngle( G4double energyXTR, G4int iTkin )
|
||||
// over integral energy distribution
|
||||
|
||||
G4double G4VXTRenergyLoss::GetAngleXTR( G4int iPlace,
|
||||
G4double position,
|
||||
G4int iTransfer )
|
||||
G4double position,
|
||||
G4int iTransfer )
|
||||
{
|
||||
G4double x1, x2, y1, y2, result;
|
||||
|
||||
if(iTransfer == 0)
|
||||
if( iTransfer == 0 )
|
||||
{
|
||||
result = (*fAngleForEnergyTable)(iPlace)->GetLowEdgeEnergy(iTransfer);
|
||||
}
|
||||
|
||||
@@ -15,6 +15,10 @@ code and to keep track of all tags.
|
||||
* Please list in reverse chronological order (last date on top)
|
||||
---------------------------------------------------------------
|
||||
|
||||
27 February 2018 Alberto Ribon (hadr-casc-V10-03-07)
|
||||
-----------------------------------------------------
|
||||
- G4NucleiModel : replaced obsolete std::bind2nd with std::bind .
|
||||
|
||||
27 November 2017 Dennis Wright (hadr-casc-V10-03-06)
|
||||
-----------------------------------------------------
|
||||
- G4CascadeInterface::createBullet, G4CascadeInterface::ApplyYourself:
|
||||
|
||||
@@ -142,7 +142,7 @@
|
||||
// Check zone argument to inverseMFP() to ensure within range.
|
||||
// 20130611 M. Kelsey -- Undo "spath<=path" change (20130511), replace with
|
||||
// explicit check on spath==0.
|
||||
// 20130619 A. Ribon -- Fixed reproducibility problem in the method
|
||||
// 20130619 A. Ribon -- Fixed reproducibility problem in the method
|
||||
// generateParticleFate
|
||||
// 20130627 M. Kelsey -- Check "path==0.", rather than spath.
|
||||
// 20130628 M. Kelsey -- Print deuteron type code, rather than array index,
|
||||
@@ -158,6 +158,7 @@
|
||||
// 20141001 M. Kelsey -- Change sign of "dv" in boundaryTransition
|
||||
// 20150608 M. Kelsey -- Label all while loops as terminating.
|
||||
// 20150622 M. Kelsey -- Use G4AutoDelete for _TLS_ buffers.
|
||||
// 20180227 A. Ribon -- Replaced obsolete std::bind2nd with std::bind
|
||||
|
||||
#include "G4NucleiModel.hh"
|
||||
#include "G4AutoDelete.hh"
|
||||
@@ -1264,7 +1265,7 @@ void G4NucleiModel::choosePointAlongTraj(G4CascadParticle& cparticle) {
|
||||
|
||||
// Normalize CDF to unit integral
|
||||
std::transform(wtlen.begin(), wtlen.end(), wtlen.begin(),
|
||||
std::bind2nd(std::divides<G4double>(), wtlen.back()));
|
||||
std::bind(std::divides<G4double>(), std::placeholders::_1, wtlen.back()));
|
||||
|
||||
if (verboseLevel > 3) {
|
||||
G4cout << " weights";
|
||||
|
||||
@@ -14,6 +14,11 @@ code and to keep track of all tags.
|
||||
* Please list in reverse chronological order (last date on top)
|
||||
---------------------------------------------------------------
|
||||
|
||||
19 December 2017 Gabriele Cosmo (hadr-deex-V10-03-52)
|
||||
- Fixed self-consistency in G4ChatterjeeCrossSection header (missing #include).
|
||||
Fixed #ifdef guard in G4StatMFMacroBiNucleon header.
|
||||
Thanks to Raphael Isemann for reporting these.
|
||||
|
||||
03 November 2017 Vladimir Ivanchenko (hadr-deex-V10-03-51)
|
||||
- G4DeexPrecoParameters - fixed printout of parameters
|
||||
|
||||
|
||||
+2
-2
@@ -24,12 +24,12 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4StatMFMacroBiNucleon.hh 67983 2013-03-13 10:42:03Z gcosmo $
|
||||
// $Id: G4StatMFMacroBiNucleon.hh 108519 2018-02-16 08:25:29Z gcosmo $
|
||||
//
|
||||
// Hadronic Process: Nuclear De-excitations
|
||||
// by V. Lara
|
||||
|
||||
#ifndef G4StatMFMacroBiBiNucleon_h
|
||||
#ifndef G4StatMFMacroBiNucleon_h_h
|
||||
#define G4StatMFMacroBiNucleon_h 1
|
||||
|
||||
#include "G4VStatMFMacroCluster.hh"
|
||||
|
||||
+1
@@ -33,6 +33,7 @@
|
||||
#ifndef G4ChatterjeeCrossSection_h
|
||||
#define G4ChatterjeeCrossSection_h 1
|
||||
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
#include "globals.hh"
|
||||
#include "G4Pow.hh"
|
||||
|
||||
|
||||
@@ -14,6 +14,12 @@ code and to keep track of all tags.
|
||||
* Please list in reverse chronological order (last date on top)
|
||||
---------------------------------------------------------------
|
||||
|
||||
19 December 2017 Gabriele Cosmo (hadr-fission-V10-03-00)
|
||||
-------------------------------------------------------
|
||||
- Fixed self-consistency in G4LLNLFission header (missing #include).
|
||||
Added missing #ifdef guards in G4fissionEvent header.
|
||||
Thanks to Raphael Isemann for reporting these.
|
||||
|
||||
5 November 2015 Alberto Ribon (hadr-fission-V10-01-07)
|
||||
-------------------------------------------------------
|
||||
- Removed neutron_hp/
|
||||
|
||||
@@ -55,8 +55,10 @@
|
||||
// $Id: G4LLNLFission.hh 67966 2013-03-13 09:38:38Z gcosmo $
|
||||
//
|
||||
|
||||
#include "G4Types.hh"
|
||||
|
||||
//
|
||||
// This class is a copy of Fission.hh, made for use with Geant4.
|
||||
// This file is a copy of Fission.hh, made for use with Geant4.
|
||||
//
|
||||
|
||||
extern void genspfissevt_(G4int *isotope, G4double *time);
|
||||
|
||||
@@ -54,6 +54,8 @@
|
||||
//
|
||||
// $Id: G4fissionEvent.hh 68799 2013-04-05 13:29:46Z gcosmo $
|
||||
//
|
||||
#ifndef G4fissionEvent_hh
|
||||
#define G4fissionEvent_hh
|
||||
|
||||
#include "globals.hh"
|
||||
#include <string>
|
||||
@@ -190,3 +192,5 @@ class G4fissionEvent {
|
||||
static G4double fisslibrng(void);
|
||||
static G4double rngf2d(void);
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -14,18 +14,23 @@ code and to keep track of all tags.
|
||||
* Please list in reverse chronological order (last date on top)
|
||||
---------------------------------------------------------------
|
||||
|
||||
23-December 2017 Vladimir Ivanchenko had-im_r_V10-03-01
|
||||
19-December 2017, Gabriele Cosmo hadr-im_r-V10-03-02
|
||||
- Fixed self-consistency in headers (missing #include) in G4CrossSectionBuffer,
|
||||
G4DeltaNstarBuilder and G4NNstarBuilder.
|
||||
Thanks to Raphael Isemann for reporting these.
|
||||
|
||||
23-November 2017, Vladimir Ivanchenko had-im_r_V10-03-01
|
||||
- G4ParticleTypeConverter - all methods become const
|
||||
- G4ConcreteMesonBaryonToResonance - fixed memory leak, adding
|
||||
static objects with const only methods
|
||||
|
||||
21-December 2016 Gunter Folger had-im_r_V10-03-00
|
||||
21-December 2016, Gunter Folger had-im_r_V10-03-00
|
||||
- G4VScatteringCollision: Fix memory leak in MT, bug report 1905
|
||||
|
||||
13-November 2015 Gunter Folger had-im_r-V10-01-05
|
||||
13-November 2015, Gunter Folger had-im_r-V10-01-05
|
||||
- Revert back to G4float, add 'f' for initialisation.
|
||||
|
||||
13-November 2015 Gunter Folger had-im_r-V10-01-04
|
||||
13-November 2015, Gunter Folger had-im_r-V10-01-04
|
||||
- Replace G4float by G4double
|
||||
|
||||
30-October 2015, Gunter Folger had-im_r-V10-01-03
|
||||
|
||||
@@ -30,8 +30,9 @@
|
||||
#include <vector>
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4KineticTrack.hh"
|
||||
|
||||
class G4CrossSectionBuffer
|
||||
{
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#define G4DeltaNstarBuilder_h
|
||||
|
||||
#include "G4VXResonanceTable.hh"
|
||||
#include "G4XDeltaNstarTable.hh"
|
||||
|
||||
class G4DeltaNstarBuilder : public G4VXResonanceTable
|
||||
{
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
#define G4NNstarBuilder_h
|
||||
|
||||
#include "G4VXResonanceTable.hh"
|
||||
#include "G4XNNstarTable.hh"
|
||||
|
||||
class G4NNstarBuilder : public G4VXResonanceTable
|
||||
{
|
||||
|
||||
@@ -14,6 +14,12 @@ code and to keep track of all tags.
|
||||
* Please list in reverse chronological order (last date on top)
|
||||
---------------------------------------------------------------
|
||||
|
||||
19 December 2017 Gabriele Cosmo (hadr-hpp-V10-03-10)
|
||||
---------------------------------------------------
|
||||
- Fixed self-consistency in headers (missing #include) in G4FFGEnumerations,
|
||||
G4FPYNubarValues, G4ParticleHPAngularP and G4ParticleHPHash.
|
||||
Thanks to Raphael Isemann for reporting these.
|
||||
|
||||
29 November 2017 Tatsumi Koi (hadr-hpp-V10-03-09)
|
||||
---------------------------------------------------
|
||||
- Change tolerance value and implementation in calculation of KallbachZero.
|
||||
|
||||
@@ -33,6 +33,8 @@
|
||||
#ifndef G4FFGENUMAERATIONS_HH
|
||||
#define G4FFGENUMAERATIONS_HH
|
||||
|
||||
#include "G4Types.hh"
|
||||
|
||||
/** G4FFGEnumerations is a namespace that contains all the enumerations that
|
||||
* are used in the fission fragment generator code.
|
||||
*/
|
||||
|
||||
@@ -49,6 +49,8 @@
|
||||
#ifndef G4FPYNUBARVALUES_HH
|
||||
#define G4FPYNUBARVALUES_HH
|
||||
|
||||
#include "G4Types.hh"
|
||||
|
||||
/** Evaluated nubar values for neutron induced fission. The data are represented
|
||||
* as linear regression fits from experimental data in the form: v = mx + b,
|
||||
* where x is the incident neutron energy.
|
||||
|
||||
@@ -34,6 +34,7 @@
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4InterpolationManager.hh"
|
||||
#include "G4ParticleHPInterpolator.hh"
|
||||
|
||||
class G4ParticleHPAngularP
|
||||
{
|
||||
|
||||
@@ -29,8 +29,9 @@
|
||||
#ifndef G4ParticleHPHash_h
|
||||
#define G4ParticleHPHash_h
|
||||
|
||||
#include "globals.hh"
|
||||
#include <vector>
|
||||
#include "globals.hh"
|
||||
#include "G4ParticleHPDataPoint.hh"
|
||||
|
||||
class G4ParticleHPHash
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 107318 2017-11-08 16:27:32Z gcosmo $
|
||||
$Id: History 108528 2018-02-16 08:38:40Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
==========================================================
|
||||
@@ -15,6 +15,10 @@ code and to keep track of all tags.
|
||||
* Please list in reverse chronological order (last date on top)
|
||||
---------------------------------------------------------------
|
||||
|
||||
19-Dec-2017 G. Cosmo hadr-partonstring-mgt-V10-03-05
|
||||
- Fixed self-consistency in G4VertexCode header (missing #include).
|
||||
Thanks to Raphael Isemann for reporting this.
|
||||
|
||||
08-Nov-2017 A. Ribon hadr-partonstring-mgt-V10-03-04
|
||||
- Minor clean-up and indentation: no changes in the random sequence.
|
||||
|
||||
|
||||
@@ -24,11 +24,12 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4VertexCode.hh 100828 2016-11-02 15:25:59Z gcosmo $
|
||||
// $Id: G4VertexCode.hh 108528 2018-02-16 08:38:40Z gcosmo $
|
||||
//
|
||||
#ifndef G4VertexCode_h
|
||||
#define G4VertexCode_h 1
|
||||
|
||||
#include "G4String.hh"
|
||||
|
||||
class G4VertexCode
|
||||
{
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 106980 2017-10-31 09:02:49Z gcosmo $
|
||||
$Id: History 108530 2018-02-16 08:45:20Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
==========================================================
|
||||
@@ -15,6 +15,10 @@ code and to keep track of all tags.
|
||||
* Please list in reverse chronological order (last date on top)
|
||||
---------------------------------------------------------------
|
||||
|
||||
19-Dec-2017 G. Cosmo (hadr-qgsm-V10-03-06)
|
||||
- Fixed self-consistency in G4SPPartonInfo header (missing #include).
|
||||
Thanks to Raphael Isemann for reporting this.
|
||||
|
||||
26-Oct-2017 A. Ribon (hadr-qgsm-V10-03-05)
|
||||
- Brought back the stable, production QGS (as in 10.3).
|
||||
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
#ifndef G4SPPartonInfo_h
|
||||
#define G4SPPartonInfo_h
|
||||
|
||||
#include "G4Types.hh"
|
||||
|
||||
class G4SPPartonInfo
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -14,6 +14,19 @@ track of all tags.
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
14 December 2017 Dennis Wright radioactive_decay-V10-03-22
|
||||
------------------------------------------------------------
|
||||
- re-tag
|
||||
|
||||
12 December 2017 Dennis Wright radioactive_decay-V10-03-21
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecay.hh, .cc: add check that environment variable
|
||||
G4RADIOACTIVEDATA is pointing to correct directory. Moved check from
|
||||
G4RadioactiveDecay::LoadDecayTable() to ctor. Fixes bug #1942.
|
||||
|
||||
- G4RadioactiveDecayBase.hh, .cc: same change as above
|
||||
|
||||
|
||||
15 November 2017 Dennis Wright radioactive_decay-V10-03-20
|
||||
------------------------------------------------------------
|
||||
- G4RadioactiveDecay::DecayIt in the variance reduction branch:
|
||||
|
||||
@@ -316,7 +316,10 @@ class G4RadioactiveDecay : public G4VRestDiscreteProcess
|
||||
G4int decayWindows[100];
|
||||
static const G4double levelTolerance;
|
||||
|
||||
//User define radioactive decay data files replacing some files in the G4RADECAY database
|
||||
// Radioactive decay database directory path
|
||||
G4String dirPath;
|
||||
|
||||
// User-defined radioactive decay data files
|
||||
std::map<G4int, G4String> theUserRadioactiveDataFiles;
|
||||
|
||||
// Library of decay tables
|
||||
|
||||
@@ -204,6 +204,9 @@ class G4RadioactiveDecayBase : public G4VRestDiscreteProcess
|
||||
G4double forceDecayHalfAngle;
|
||||
static const G4ThreeVector origin; // (0,0,0) for convenience
|
||||
|
||||
// Radioactive decay database directory path
|
||||
G4String dirPath;
|
||||
|
||||
//User define radioactive decay data files replacing some files in the G4RADECAY database
|
||||
std::map<G4int, G4String> theUserRadioactiveDataFiles;
|
||||
|
||||
|
||||
@@ -157,7 +157,8 @@ DecayTableMap* G4RadioactiveDecay::master_dkmap = 0;
|
||||
|
||||
G4RadioactiveDecay::G4RadioactiveDecay(const G4String& processName)
|
||||
: G4VRestDiscreteProcess(processName, fDecay), isInitialised(false),
|
||||
forceDecayDirection(0.,0.,0.), forceDecayHalfAngle(0.*deg), verboseLevel(0)
|
||||
forceDecayDirection(0.,0.,0.), forceDecayHalfAngle(0.*deg), dirPath(""),
|
||||
verboseLevel(0)
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel() > 1) {
|
||||
@@ -176,7 +177,23 @@ G4RadioactiveDecay::G4RadioactiveDecay(const G4String& processName)
|
||||
// photonEvaporation->SetVerboseLevel(2);
|
||||
photonEvaporation->RDMForced(true);
|
||||
photonEvaporation->SetICM(true);
|
||||
|
||||
|
||||
// Check data directory
|
||||
char* path_var = getenv("G4RADIOACTIVEDATA");
|
||||
if (!path_var) {
|
||||
G4Exception("G4RadioactiveDecay()","HAD_RDM_200",FatalException,
|
||||
"Environment variable G4RADIOACTIVEDATA is not set");
|
||||
} else {
|
||||
dirPath = path_var; // convert to string
|
||||
std::ostringstream os;
|
||||
os << dirPath << "/z1.a3"; // used as a dummy
|
||||
std::ifstream testFile;
|
||||
testFile.open(os.str() );
|
||||
if (!testFile.is_open() )
|
||||
G4Exception("G4RadioactiveDecay()","HAD_RDM_201",FatalException,
|
||||
"Environment variable G4RADIOACTIVEDATA is set, but does not point to correct directory");
|
||||
}
|
||||
|
||||
// Reset the list of user defined data files
|
||||
theUserRadioactiveDataFiles.clear();
|
||||
|
||||
@@ -816,15 +833,8 @@ G4RadioactiveDecay::LoadDecayTable(const G4ParticleDefinition& theParentNucleus)
|
||||
G4String file = theUserRadioactiveDataFiles[1000*A+Z];
|
||||
|
||||
if (file == "") {
|
||||
if (!getenv("G4RADIOACTIVEDATA") ) {
|
||||
G4cout << "Please setenv G4RADIOACTIVEDATA to point to the radioactive decay data files."
|
||||
<< G4endl;
|
||||
throw G4HadronicException(__FILE__, __LINE__, " Please setenv G4RADIOACTIVEDATA to point to the radioactive decay data files.");
|
||||
}
|
||||
G4String dirName = getenv("G4RADIOACTIVEDATA");
|
||||
|
||||
std::ostringstream os;
|
||||
os << dirName << "/z" << Z << ".a" << A << '\0';
|
||||
os << dirPath << "/z" << Z << ".a" << A << '\0';
|
||||
file = os.str();
|
||||
}
|
||||
|
||||
|
||||
@@ -98,7 +98,8 @@ DecayTableMap* G4RadioactiveDecayBase::master_dkmap = 0;
|
||||
|
||||
G4RadioactiveDecayBase::G4RadioactiveDecayBase(const G4String& processName)
|
||||
: G4VRestDiscreteProcess(processName, fDecay), isInitialised(false),
|
||||
forceDecayDirection(0.,0.,0.), forceDecayHalfAngle(0.*deg), verboseLevel(0)
|
||||
forceDecayDirection(0.,0.,0.), forceDecayHalfAngle(0.*deg), dirPath(""),
|
||||
verboseLevel(0)
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel() > 1) {
|
||||
@@ -119,7 +120,23 @@ G4RadioactiveDecayBase::G4RadioactiveDecayBase(const G4String& processName)
|
||||
|
||||
G4DeexPrecoParameters* deex = G4NuclearLevelData::GetInstance()->GetParameters();
|
||||
deex->SetCorrelatedGamma(true);
|
||||
|
||||
|
||||
// Check data directory
|
||||
char* path_var = getenv("G4RADIOACTIVEDATA");
|
||||
if (!path_var) {
|
||||
G4Exception("G4RadioactiveDecay()","HAD_RDM_200",FatalException,
|
||||
"Environment variable G4RADIOACTIVEDATA is not set");
|
||||
} else {
|
||||
dirPath = path_var; // convert to string
|
||||
std::ostringstream os;
|
||||
os << dirPath << "/z1.a3"; // used as a dummy
|
||||
std::ifstream testFile;
|
||||
testFile.open(os.str() );
|
||||
if (!testFile.is_open() )
|
||||
G4Exception("G4RadioactiveDecay()","HAD_RDM_201",FatalException,
|
||||
"Environment variable G4RADIOACTIVEDATA is set, but does not point to correct directory");
|
||||
}
|
||||
|
||||
// Reset the list of user defined data files
|
||||
theUserRadioactiveDataFiles.clear();
|
||||
|
||||
@@ -446,15 +463,16 @@ G4RadioactiveDecayBase::LoadDecayTable(const G4ParticleDefinition& theParentNucl
|
||||
G4String file = theUserRadioactiveDataFiles[1000*A+Z];
|
||||
|
||||
if (file == "") {
|
||||
/*
|
||||
if (!getenv("G4RADIOACTIVEDATA") ) {
|
||||
G4cout << "Please setenv G4RADIOACTIVEDATA to point to the radioactive decay data files."
|
||||
<< G4endl;
|
||||
throw G4HadronicException(__FILE__, __LINE__, " Please setenv G4RADIOACTIVEDATA to point to the radioactive decay data files.");
|
||||
}
|
||||
G4String dirName = getenv("G4RADIOACTIVEDATA");
|
||||
|
||||
*/
|
||||
std::ostringstream os;
|
||||
os << dirName << "/z" << Z << ".a" << A << '\0';
|
||||
os << dirPath << "/z" << Z << ".a" << A << '\0';
|
||||
file = os.str();
|
||||
}
|
||||
|
||||
|
||||
@@ -14,6 +14,17 @@ code and to keep track of all tags.
|
||||
* Please list in reverse chronological order (last date on top)
|
||||
---------------------------------------------------------------
|
||||
|
||||
09 February 2018 Ben Morgan (hadr-util-V10-03-06)
|
||||
-------------------------------------------------
|
||||
- G4StableIsotopes - Move member function definitions to source file
|
||||
to avoid global data visibility issues in Windows DLLs.
|
||||
|
||||
19 December 2017 Gabriele Cosmo
|
||||
--------------------------------------------------------
|
||||
- Fixed self-consistency in headers (missing #include) in DumpFrame,
|
||||
G4GHEKinematicsVector and G4ping.
|
||||
Thanks to Raphael Isemann for reporting these.
|
||||
|
||||
04 July 2017 Vladimir Ivanchenko (hadr-util-V10-03-05)
|
||||
--------------------------------------------------------
|
||||
- G4NuclearPolarization - added extra members and update the class
|
||||
|
||||
@@ -26,6 +26,9 @@
|
||||
#ifndef DumpFrame_h
|
||||
#define DumpFrame_h
|
||||
|
||||
#include "G4FastVector.hh"
|
||||
#include "G4ReactionProduct.hh"
|
||||
|
||||
class DumpFrames
|
||||
{
|
||||
public:
|
||||
|
||||
@@ -43,9 +43,9 @@
|
||||
#ifndef G4GHEKinematicsVector_h
|
||||
#define G4GHEKinematicsVector_h 1
|
||||
|
||||
#include "G4ios.hh"
|
||||
|
||||
#include <CLHEP/Units/PhysicalConstants.h>
|
||||
#include "G4ios.hh"
|
||||
#include "G4ParticleMomentum.hh"
|
||||
|
||||
class G4GHEKinematicsVector
|
||||
{
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
#define G4StableIsotopes_h 1
|
||||
|
||||
// Class Description
|
||||
// class utility that knows about all naturally occuring isotopes.;
|
||||
// class utility that knows about all naturally occuring isotopes.;
|
||||
// to be used in your process implementation in case you need this.
|
||||
// Class Description - End
|
||||
|
||||
@@ -52,12 +52,12 @@ class G4StableIsotopes
|
||||
|
||||
public:
|
||||
|
||||
G4String GetName(G4int Z) {return elementName[Z-1];}
|
||||
G4int GetNumberOfIsotopes(G4int Z) {return nIsotopes[Z-1];}
|
||||
G4int GetFirstIsotope(G4int Z) {return start[Z-1];}
|
||||
G4int GetIsotopeNucleonCount(G4int number) {return nucleonCount[number];}
|
||||
G4double GetAbundance(G4int number) {return abundance[number];}
|
||||
G4int GetProtonCount(G4int Z) {return protonCount[Z-1];}
|
||||
G4String GetName(G4int Z);
|
||||
G4int GetNumberOfIsotopes(G4int Z);
|
||||
G4int GetFirstIsotope(G4int Z);
|
||||
G4int GetIsotopeNucleonCount(G4int number);
|
||||
G4double GetAbundance(G4int number);
|
||||
G4int GetProtonCount(G4int Z);
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
#ifndef G4ping_h
|
||||
#define G4ping_h
|
||||
|
||||
#include "G4String.hh"
|
||||
#include <vector>
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4LorentzVector.hh"
|
||||
|
||||
|
||||
@@ -33,4 +33,34 @@ const G4String G4StableIsotopes::elementName[92] = {"H", "He", "Li", "Be", "B",
|
||||
const G4int G4StableIsotopes::nIsotopes[92] = {2, 2, 2, 1, 2, 2, 2, 3, 1, 3, 1, 3, 1, 3, 1, 4, 2, 3, 3, 6, 1, 5, 2, 4, 1, 4, 1, 5, 2, 5, 2, 5, 1, 6, 2, 6, 2, 4, 1, 5, 1, 7, 0, 7, 1, 6, 2, 8, 2, 10, 2, 8, 1, 9, 1, 7, 2, 4, 1, 7, 0, 7, 2, 7, 1, 7, 1, 6, 1, 7, 2, 6, 2, 5, 2, 7, 2, 6, 1, 7, 2, 4, 1, 0, 0, 0, 0, 0, 0, 1, 0, 3};
|
||||
const G4int G4StableIsotopes::start[92] = {0, 2, 4, 6, 7, 9, 11, 13, 16, 17, 20, 21, 24, 25, 28, 29, 33, 35, 38, 41, 47, 48, 53, 55, 59, 60, 64, 65, 70, 72, 77, 79, 84, 85, 91, 93, 99, 101, 105, 106, 111, 112, 119, 119, 126, 127, 133, 135, 143, 145, 155, 157, 165, 166, 175, 176, 183, 185, 189, 190, 197, 197, 204, 206, 213, 214, 221, 222, 228, 229, 236, 238, 244, 246, 251, 253, 260, 262, 268, 269, 276, 278, 282, 283, 283, 283, 283, 283, 283, 283, 284, 284};
|
||||
const G4int G4StableIsotopes::nucleonCount[287] = {1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 36, 35, 37, 36, 38, 40, 39, 40, 41, 40, 42, 43, 44, 46, 48, 45, 46, 47, 48, 49, 50, 50, 51, 50, 52, 53, 54, 55, 54, 56, 57, 58, 59, 58, 60, 61, 62, 64, 63, 65, 64, 66, 67, 68, 70, 69, 71, 70, 72, 73, 74, 76, 75, 74, 76, 77, 78, 80, 82, 79, 81, 78, 80, 82, 83, 84, 86, 85, 87, 84, 86, 87, 88, 89, 90, 91, 92, 94, 96, 93, 92, 94, 95, 96, 97, 98, 100, 96, 98, 99, 100, 101, 102, 104, 103, 102, 104, 105, 106, 108, 110, 107, 109, 106, 108, 110, 111, 112, 113, 114, 116, 113, 115, 112, 114, 115, 116, 117, 118, 119, 120, 122, 124, 121, 123, 120, 122, 123, 124, 125, 126, 128, 130, 127, 124, 126, 128, 129, 130, 131, 132, 134, 136, 133, 130, 132, 134, 135, 136, 137, 138, 138, 139, 136, 138, 140, 142, 141, 142, 143, 144, 145, 146, 148, 150, 144, 147, 148, 149, 150, 152, 154, 151, 153, 152, 154, 155, 156, 157, 158, 160, 159, 156, 158, 160, 161, 162, 163, 164, 165, 162, 164, 166, 167, 168, 170, 169, 168, 170, 171, 172, 173, 174, 176, 175, 176, 174, 176, 177, 178, 179, 180, 180, 181, 180, 182, 183, 184, 186, 185, 187, 184, 186, 187, 188, 189, 190, 192, 191, 193, 190, 192, 194, 195, 196, 198, 197, 196, 198, 199, 200, 201, 202, 204, 203, 205, 204, 206, 207, 208, 209, 232, 234, 235, 238};
|
||||
const G4double G4StableIsotopes::abundance[287] = {99.985, 0.015, 0.000137, 99.9999, 7.5, 92.5, 100, 19.9, 80.1, 98.9, 1.1, 99.634, 0.366, 99.762, 0.038, 0.2, 100, 90.48, 0.27, 9.25, 100, 78.99, 10, 11.01, 100, 92.23, 4.67, 3.1, 100, 95.02, 0.75, 4.21, 0.02, 75.77, 24.23, 0.337, 0.063, 99.6, 93.2581, 0.0117, 6.7302, 96.941, 0.647, 0.135, 2.086, 0.004, 0.187, 100, 8, 7.2, 73.8, 5.5, 5.4, 0.25, 99.75, 4.345, 83.789, 9.501, 2.365, 100, 5.8, 91.72, 2.2, 0.28, 100, 68.277, 26.223, 1.14, 3.634, 0.926, 69.17, 30.83, 48.6, 27.9, 4.1, 18.8, 0.6, 60.108, 39.892, 21.23, 27.66, 7.73, 36.94, 7.44, 100, 0.89, 9.36, 7.63, 23.78, 49.61, 8.73, 50.69, 49.31, 0.35, 2.25, 11.6, 11.5, 57, 17.3, 72.165, 27.835, 0.56, 9.86, 7, 82.58, 100, 51.45, 11.22, 17.15, 17.38, 2.8, 100, 14.84, 9.25, 15.92, 16.68, 9.55, 24.13, 9.63, 5.52, 1.88, 12.7, 12.6, 17, 31.6, 18.7, 100, 1.02, 11.14, 22.33, 27.33, 26.46, 11.72, 51.839, 48.161, 1.25, 0.89, 12.49, 12.8, 24.13, 12.22, 28.73, 7.49, 4.3, 95.7, 0.97, 0.65, 0.36, 14.53, 7.68, 24.22, 8.58, 32.59, 4.63, 5.79, 57.36, 42.64, 0.096, 2.6, 0.908, 4.816, 7.14, 18.95, 31.69, 33.8, 100, 0.1, 0.09, 1.91, 26.4, 4.1, 21.2, 26.9, 10.4, 8.9, 100, 0.106, 0.101, 2.417, 6.592, 7.854, 11.23, 71.7, 0.0902, 99.9098, 0.19, 0.25, 88.48, 11.08, 100, 27.13, 12.18, 23.8, 8.3, 17.19, 5.76, 5.64, 3.1, 15, 11.3, 13.8, 7.4, 26.7, 22.7, 47.8, 52.2, 0.2, 2.18, 14.8, 20.47, 15.65, 24.84, 21.86, 100, 0.06, 0.1, 2.34, 18.9, 25.5, 24.9, 28.2, 100, 0.14, 1.61, 33.6, 22.95, 26.8, 14.9, 100, 0.13, 3.05, 14.3, 21.9, 16.12, 31.8, 12.7, 97.41, 2.59, 0.162, 5.206, 18.606, 27.297, 13.629, 35.1, 0.012, 99.988, 0.13, 26.3, 14.3, 30.67, 28.6, 37.4, 62.6, 0.02, 1.58, 1.6, 13.3, 16.1, 26.4, 41, 37.3, 62.7, 0.01, 0.79, 32.9, 33.8, 25.3, 7.2, 100, 0.15, 9.97, 16.87, 23.1, 13.18, 29.86, 6.87, 29.524, 70.476, 1.4, 24.1, 22.1, 52.4, 100, 100, 0.005, 0.72, 99.275};
|
||||
const G4double G4StableIsotopes::abundance[287] = {99.985, 0.015, 0.000137, 99.9999, 7.5, 92.5, 100, 19.9, 80.1, 98.9, 1.1, 99.634, 0.366, 99.762, 0.038, 0.2, 100, 90.48, 0.27, 9.25, 100, 78.99, 10, 11.01, 100, 92.23, 4.67, 3.1, 100, 95.02, 0.75, 4.21, 0.02, 75.77, 24.23, 0.337, 0.063, 99.6, 93.2581, 0.0117, 6.7302, 96.941, 0.647, 0.135, 2.086, 0.004, 0.187, 100, 8, 7.2, 73.8, 5.5, 5.4, 0.25, 99.75, 4.345, 83.789, 9.501, 2.365, 100, 5.8, 91.72, 2.2, 0.28, 100, 68.277, 26.223, 1.14, 3.634, 0.926, 69.17, 30.83, 48.6, 27.9, 4.1, 18.8, 0.6, 60.108, 39.892, 21.23, 27.66, 7.73, 36.94, 7.44, 100, 0.89, 9.36, 7.63, 23.78, 49.61, 8.73, 50.69, 49.31, 0.35, 2.25, 11.6, 11.5, 57, 17.3, 72.165, 27.835, 0.56, 9.86, 7, 82.58, 100, 51.45, 11.22, 17.15, 17.38, 2.8, 100, 14.84, 9.25, 15.92, 16.68, 9.55, 24.13, 9.63, 5.52, 1.88, 12.7, 12.6, 17, 31.6, 18.7, 100, 1.02, 11.14, 22.33, 27.33, 26.46, 11.72, 51.839, 48.161, 1.25, 0.89, 12.49, 12.8, 24.13, 12.22, 28.73, 7.49, 4.3, 95.7, 0.97, 0.65, 0.36, 14.53, 7.68, 24.22, 8.58, 32.59, 4.63, 5.79, 57.36, 42.64, 0.096, 2.6, 0.908, 4.816, 7.14, 18.95, 31.69, 33.8, 100, 0.1, 0.09, 1.91, 26.4, 4.1, 21.2, 26.9, 10.4, 8.9, 100, 0.106, 0.101, 2.417, 6.592, 7.854, 11.23, 71.7, 0.0902, 99.9098, 0.19, 0.25, 88.48, 11.08, 100, 27.13, 12.18, 23.8, 8.3, 17.19, 5.76, 5.64, 3.1, 15, 11.3, 13.8, 7.4, 26.7, 22.7, 47.8, 52.2, 0.2, 2.18, 14.8, 20.47, 15.65, 24.84, 21.86, 100, 0.06, 0.1, 2.34, 18.9, 25.5, 24.9, 28.2, 100, 0.14, 1.61, 33.6, 22.95, 26.8, 14.9, 100, 0.13, 3.05, 14.3, 21.9, 16.12, 31.8, 12.7, 97.41, 2.59, 0.162, 5.206, 18.606, 27.297, 13.629, 35.1, 0.012, 99.988, 0.13, 26.3, 14.3, 30.67, 28.6, 37.4, 62.6, 0.02, 1.58, 1.6, 13.3, 16.1, 26.4, 41, 37.3, 62.7, 0.01, 0.79, 32.9, 33.8, 25.3, 7.2, 100, 0.15, 9.97, 16.87, 23.1, 13.18, 29.86, 6.87, 29.524, 70.476, 1.4, 24.1, 22.1, 52.4, 100, 100, 0.005, 0.72, 99.275};
|
||||
|
||||
G4String G4StableIsotopes::GetName(G4int Z)
|
||||
{
|
||||
return elementName[Z-1];
|
||||
}
|
||||
|
||||
G4int G4StableIsotopes::GetNumberOfIsotopes(G4int Z)
|
||||
{
|
||||
return nIsotopes[Z-1];
|
||||
}
|
||||
|
||||
G4int G4StableIsotopes::GetFirstIsotope(G4int Z)
|
||||
{
|
||||
return start[Z-1];
|
||||
}
|
||||
|
||||
G4int G4StableIsotopes::GetIsotopeNucleonCount(G4int number)
|
||||
{
|
||||
return nucleonCount[number];
|
||||
}
|
||||
|
||||
G4double G4StableIsotopes::GetAbundance(G4int number)
|
||||
{
|
||||
return abundance[number];
|
||||
}
|
||||
|
||||
G4int G4StableIsotopes::GetProtonCount(G4int Z) {
|
||||
return protonCount[Z-1];
|
||||
}
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 105271 2017-07-18 07:35:12Z gcosmo $
|
||||
$Id: History 108536 2018-02-16 09:20:49Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -16,6 +16,24 @@ committal in the CVS repository !
|
||||
----------------------------------------------------------
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
- Dec. 26, 2017 Makoto Asai (procman-V10-03-03)
|
||||
- G4ProcessManagerMessenger, G4ProcessTableMessenger :
|
||||
UI command returns an error message if a command is refused due
|
||||
to incorrect parameter(s).
|
||||
|
||||
- Dec. 18, 2017 Makoto Asai
|
||||
- Following UI commands are now forbidden for G4State_GeomClosed or
|
||||
G4State_EventProc application states.
|
||||
- /process/activate
|
||||
- /process/inactivate
|
||||
- /particle/process/activate
|
||||
- /particle/process/inactivate
|
||||
|
||||
- Dec. 13, 2017 Michel Maire
|
||||
- Add method
|
||||
G4VProcess* G4ProcessManager::GetProcess(const G4String& processName) const;
|
||||
to get a process from its name
|
||||
|
||||
- Jul. 17, 2017 Dennis Wright (procman-V10-03-02)
|
||||
- Add method
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ProcessManager.hh 71231 2013-06-12 13:06:28Z gcosmo $
|
||||
// $Id: G4ProcessManager.hh 108536 2018-02-16 09:20:49Z gcosmo $
|
||||
//
|
||||
//
|
||||
// ------------------------------------------------------------
|
||||
@@ -284,7 +284,10 @@ class G4ProcessManager
|
||||
G4ParticleDefinition* GetParticleType() const;
|
||||
// get the particle type
|
||||
void SetParticleType(const G4ParticleDefinition*);
|
||||
// set the particle type
|
||||
// set the particle type
|
||||
|
||||
G4VProcess* GetProcess (const G4String&) const;
|
||||
// get process by process name
|
||||
|
||||
void StartTracking(G4Track* aTrack=0);
|
||||
void EndTracking();
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ProcessManager.cc 87924 2015-01-21 13:17:25Z gcosmo $
|
||||
// $Id: G4ProcessManager.cc 108536 2018-02-16 09:20:49Z gcosmo $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
@@ -1080,10 +1080,6 @@ void G4ProcessManager::CreateGPILvectors()
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////
|
||||
void G4ProcessManager::StartTracking(G4Track* aTrack)
|
||||
{
|
||||
@@ -1105,6 +1101,17 @@ void G4ProcessManager::EndTracking()
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////
|
||||
G4VProcess* G4ProcessManager::GetProcess(const G4String& processName) const
|
||||
{
|
||||
for (G4int k=0; k<numberOfProcesses; k++) {
|
||||
G4VProcess* process = (*theProcessList)[k];
|
||||
if (process->GetProcessName() == processName) return process;
|
||||
}
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////
|
||||
G4VProcess* G4ProcessManager::SetProcessActivation(G4VProcess *aProcess,
|
||||
G4bool fActive )
|
||||
@@ -1215,5 +1222,3 @@ void G4ProcessManager::CheckOrderingParameters(G4VProcess* aProcess) const
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ProcessManagerMessenger.cc 92125 2015-08-18 14:35:23Z gcosmo $
|
||||
// $Id: G4ProcessManagerMessenger.cc 108536 2018-02-16 09:20:49Z gcosmo $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -100,7 +100,7 @@ G4ProcessManagerMessenger::G4ProcessManagerMessenger(G4ParticleTable* pTable)
|
||||
activateCmd->SetParameterName("index", false);
|
||||
activateCmd->SetDefaultValue(0);
|
||||
activateCmd->SetRange("index >=0");
|
||||
activateCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc);
|
||||
activateCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
//Commnad /particle/process/inactivate
|
||||
inactivateCmd = new G4UIcmdWithAnInteger("/particle/process/inactivate",this);
|
||||
@@ -109,7 +109,7 @@ G4ProcessManagerMessenger::G4ProcessManagerMessenger(G4ParticleTable* pTable)
|
||||
inactivateCmd->SetParameterName("index", false);
|
||||
inactivateCmd->SetDefaultValue(0);
|
||||
inactivateCmd->SetRange("index >=0");
|
||||
inactivateCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc);
|
||||
inactivateCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
}
|
||||
|
||||
@@ -142,8 +142,10 @@ G4ParticleDefinition* G4ProcessManagerMessenger::SetCurrentParticle()
|
||||
|
||||
void G4ProcessManagerMessenger::SetNewValue(G4UIcommand * command,G4String newValue)
|
||||
{
|
||||
G4ExceptionDescription ed;
|
||||
if (SetCurrentParticle()==0) {
|
||||
G4cout << "Particle is not selected yet !! Command ignored." << G4endl;
|
||||
ed << "Particle is not selected yet !! Command ignored.";
|
||||
command->CommandFailed(ed);
|
||||
return;
|
||||
}
|
||||
if( command == dumpCmd ){
|
||||
@@ -154,13 +156,15 @@ void G4ProcessManagerMessenger::SetNewValue(G4UIcommand * command,G4String newVa
|
||||
} else if ( index < theManager->GetProcessListLength()){
|
||||
currentProcess = (*theProcessList)(index);
|
||||
if (currentProcess == 0) {
|
||||
G4cout << " no process at index of " << index;
|
||||
G4cout << "in the Process Vector" << G4endl;
|
||||
ed << " no process at index of " << index
|
||||
<< " in the Process Vector";
|
||||
command->CommandFailed(ed);
|
||||
} else {
|
||||
currentProcess->DumpInfo();
|
||||
}
|
||||
} else {
|
||||
G4cout << " illegal index !!! " << G4endl;
|
||||
ed << " illegal index !!! ";
|
||||
command->CommandFailed(ed);
|
||||
currentProcess = 0;
|
||||
}
|
||||
|
||||
@@ -187,13 +191,15 @@ void G4ProcessManagerMessenger::SetNewValue(G4UIcommand * command,G4String newVa
|
||||
} else if ( index < theManager->GetProcessListLength()){
|
||||
currentProcess = (*theProcessList)(index);
|
||||
if (currentProcess == 0) {
|
||||
G4cout << " no process at index of " << index;
|
||||
G4cout << "in the Process Vector" << G4endl;
|
||||
ed << " no process at index of " << index
|
||||
<< " in the Process Vector";
|
||||
command->CommandFailed(ed);
|
||||
} else {
|
||||
currentProcess->SetVerboseLevel(Verbose);
|
||||
}
|
||||
} else {
|
||||
G4cout << " illegal index !!! " << G4endl;
|
||||
ed << " illegal index !!! ";
|
||||
command->CommandFailed(ed);
|
||||
currentProcess = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
// ********************************************************************
|
||||
//
|
||||
//
|
||||
// $Id: G4ProcessTableMessenger.cc 92125 2015-08-18 14:35:23Z gcosmo $
|
||||
// $Id: G4ProcessTableMessenger.cc 108536 2018-02-16 09:20:49Z gcosmo $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
@@ -130,7 +130,7 @@ G4ProcessTableMessenger::G4ProcessTableMessenger(G4ProcessTable* pTable)
|
||||
dumpCmd->SetParameter(param);
|
||||
dumpCmd->AvailableForStates(G4State_Init,G4State_Idle,G4State_GeomClosed,G4State_EventProc);
|
||||
|
||||
//Commnad /particle/process/activate
|
||||
//Commnad /process/activate
|
||||
activateCmd = new G4UIcommand("/process/activate",this);
|
||||
activateCmd->SetGuidance("Activate processes ");
|
||||
activateCmd->SetGuidance(" Activate name [particle]");
|
||||
@@ -141,9 +141,9 @@ G4ProcessTableMessenger::G4ProcessTableMessenger(G4ProcessTable* pTable)
|
||||
param = new G4UIparameter("particle",'s',true);
|
||||
param->SetDefaultValue("all");
|
||||
activateCmd->SetParameter(param);
|
||||
activateCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc);
|
||||
activateCmd->AvailableForStates(G4State_Idle);
|
||||
|
||||
//Commnad /particle/process/inactivate
|
||||
//Commnad /process/inactivate
|
||||
inactivateCmd = new G4UIcommand("/process/inactivate",this);
|
||||
inactivateCmd->SetGuidance("Inactivate process ");
|
||||
inactivateCmd->SetGuidance("Inactivate processes ");
|
||||
@@ -155,7 +155,7 @@ G4ProcessTableMessenger::G4ProcessTableMessenger(G4ProcessTable* pTable)
|
||||
param = new G4UIparameter("particle",'s',true);
|
||||
param->SetDefaultValue("all");
|
||||
inactivateCmd->SetParameter(param);
|
||||
inactivateCmd->AvailableForStates(G4State_Idle,G4State_GeomClosed,G4State_EventProc);
|
||||
inactivateCmd->AvailableForStates(G4State_Idle);
|
||||
}
|
||||
|
||||
//////////////////
|
||||
@@ -176,8 +176,8 @@ void G4ProcessTableMessenger::SetNewValue(G4UIcommand * command,G4String newValu
|
||||
G4ProcessTable::G4ProcNameVector* procNameVector
|
||||
= theProcessTable->GetNameList();
|
||||
G4int idx;
|
||||
|
||||
G4int type = -1;
|
||||
G4ExceptionDescription ed;
|
||||
|
||||
if( command == listCmd ){
|
||||
//Commnad /process/list
|
||||
@@ -276,7 +276,9 @@ void G4ProcessTableMessenger::SetNewValue(G4UIcommand * command,G4String newValu
|
||||
type = GetProcessType(currentProcessName);
|
||||
if (type <0 ) {
|
||||
// no processes with specifed name
|
||||
G4cout << " illegal process (or type) name " << G4endl;
|
||||
ed << " illegal process (or type) name ["
|
||||
<< currentProcessName << "]";
|
||||
command->CommandFailed(ed);
|
||||
currentProcessName = "";
|
||||
return;
|
||||
}
|
||||
@@ -299,7 +301,8 @@ void G4ProcessTableMessenger::SetNewValue(G4UIcommand * command,G4String newValu
|
||||
|
||||
if ( !isParticleFound ) {
|
||||
// no particle with specifed name
|
||||
G4cout << " illegal particle name " << G4endl;
|
||||
ed << " illegal particle name [" << currentParticleName << "]";
|
||||
command->CommandFailed(ed);
|
||||
currentParticleName = "";
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
$Id: History 101152 2016-11-08 08:07:39Z gcosmo $
|
||||
$Id: History 108538 2018-02-16 09:25:16Z gcosmo $
|
||||
-------------------------------------------------------------------
|
||||
|
||||
=========================================================
|
||||
@@ -17,6 +17,10 @@ committal in the CVS repository !
|
||||
* Reverse chronological order (last date on top), please *
|
||||
----------------------------------------------------------
|
||||
|
||||
December 19, 2017, G. Cosmo (param-V10-03-00)
|
||||
- Fixed self-consistency in G4FastSimulationVector header (missing #include).
|
||||
Thanks to Raphael Isemann for reporting this.
|
||||
|
||||
November 03, 2016, M. Verderi (param-V10-02-01)
|
||||
- New G4FastSimulationManagerHelper utility for
|
||||
adding G4FastSimulationManagerProcess to a
|
||||
|
||||
@@ -44,6 +44,7 @@
|
||||
#define G4FastSimulationVector_h 1
|
||||
|
||||
#include <vector>
|
||||
#include "G4Types.hh"
|
||||
|
||||
template<class T>
|
||||
class G4FastSimulationVector : public std::vector<T*>
|
||||
|
||||
Reference in New Issue
Block a user