Import Geant4 9.6.0 source tree
This commit is contained in:
@@ -47,6 +47,8 @@
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
@@ -69,7 +71,7 @@ class G4AlphaDecayChannel : public G4NuclearDecayChannel
|
||||
G4NuclearDecayChannel (Alpha, Verbose, theParentNucleus, theBR,
|
||||
theEndPointEnergy,
|
||||
(theParentNucleus->GetBaryonNumber())-4,
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)-2,
|
||||
int(theParentNucleus->GetPDGCharge()/CLHEP::eplus)-2,
|
||||
theDaughterExcitation, "alpha")
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
|
||||
+3
-1
@@ -47,6 +47,8 @@
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
@@ -75,7 +77,7 @@ class G4BetaMinusDecayChannel : public G4NuclearDecayChannel
|
||||
theRandEnergy,
|
||||
theEndPointEnergy,
|
||||
theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)+1,
|
||||
int(theParentNucleus->GetPDGCharge()/CLHEP::eplus)+1,
|
||||
theDaughterExcitation, "e-", "anti_nu_e")
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
|
||||
+4
-2
@@ -47,11 +47,13 @@
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4BetaPlusDecayChannel : public G4NuclearDecayChannel
|
||||
@@ -82,7 +84,7 @@ class G4BetaPlusDecayChannel : public G4NuclearDecayChannel
|
||||
theRandEnergy,
|
||||
theEndPointEnergy,
|
||||
theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)-1,
|
||||
int(theParentNucleus->GetPDGCharge()/CLHEP::eplus)-1,
|
||||
theDaughterExcitation, "e+", "nu_e")
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
|
||||
@@ -26,6 +26,8 @@
|
||||
#ifndef G4ITDecayChannel_h
|
||||
#define G4ITDecayChannel_h 1
|
||||
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
@@ -45,7 +47,7 @@ class G4ITDecayChannel : public G4NuclearDecayChannel
|
||||
G4double theBR) :
|
||||
G4NuclearDecayChannel (IT, Verbose, theParentNucleus, theBR, 0.0,
|
||||
theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus),
|
||||
int(theParentNucleus->GetPDGCharge()/CLHEP::eplus),
|
||||
theParentNucleus->GetExcitationEnergy())
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
|
||||
+3
-1
@@ -47,6 +47,8 @@
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
@@ -69,7 +71,7 @@ class G4KshellECDecayChannel : public G4NuclearDecayChannel
|
||||
G4double theDaughterExcitation=0.0) :
|
||||
G4NuclearDecayChannel (KshellEC, Verbose, theParentNucleus, theBR,
|
||||
theQtransit, theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)-1,
|
||||
int(theParentNucleus->GetPDGCharge()/CLHEP::eplus)-1,
|
||||
theDaughterExcitation, "nu_e")
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
|
||||
+3
-1
@@ -26,6 +26,8 @@
|
||||
#ifndef G4LshellECDecayChannel_h
|
||||
#define G4LshellECDecayChannel_h 1
|
||||
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
@@ -47,7 +49,7 @@ public:
|
||||
G4double theDaughterExcitation=0.0) :
|
||||
G4NuclearDecayChannel (LshellEC, Verbose, theParentNucleus, theBR,
|
||||
theQtransit, theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)-1,
|
||||
int(theParentNucleus->GetPDGCharge()/CLHEP::eplus)-1,
|
||||
theDaughterExcitation,
|
||||
"nu_e")
|
||||
{
|
||||
|
||||
+3
-1
@@ -26,6 +26,8 @@
|
||||
#ifndef G4MshellECDecayChannel_h
|
||||
#define G4MshellECDecayChannel_h 1
|
||||
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
@@ -47,7 +49,7 @@ public:
|
||||
G4double theDaughterExcitation=0.0) :
|
||||
G4NuclearDecayChannel (MshellEC, Verbose, theParentNucleus, theBR,
|
||||
theQtransit, theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)-1,
|
||||
int(theParentNucleus->GetPDGCharge()/CLHEP::eplus)-1,
|
||||
theDaughterExcitation,
|
||||
"nu_e")
|
||||
{
|
||||
|
||||
@@ -140,12 +140,12 @@ protected:
|
||||
G4int daughterA;
|
||||
G4int daughterZ;
|
||||
G4ParticleDefinition *daughterNucleus;
|
||||
G4DynamicParticle *dynamicDaughter;
|
||||
G4DynamicParticle* dynamicDaughter;
|
||||
G4double Qtransition;
|
||||
G4double halflifethreshold;
|
||||
G4bool applyICM;
|
||||
G4bool applyARM;
|
||||
CLHEP::RandGeneral* RandomEnergy;
|
||||
CLHEP::RandGeneral* RandomEnergy;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -70,16 +70,16 @@ class G4RIsotopeTable : public G4VIsotopeTable
|
||||
public:
|
||||
//
|
||||
typedef std::vector<G4IsotopeProperty*> G4IsotopeList;
|
||||
typedef std::vector<G4String> G4IsotopeNameList;
|
||||
typedef std::vector<G4String> G4IsotopeNameList;
|
||||
|
||||
public:
|
||||
// constructor
|
||||
//
|
||||
G4RIsotopeTable ();
|
||||
G4RIsotopeTable();
|
||||
|
||||
protected:
|
||||
// hide copy construictor as protected
|
||||
G4RIsotopeTable(const G4RIsotopeTable &right);
|
||||
// Hide copy constructor and assignment operator as protected
|
||||
G4RIsotopeTable(const G4RIsotopeTable& right);
|
||||
G4RIsotopeTable& operator = (const G4RIsotopeTable& right);
|
||||
|
||||
public:
|
||||
// destructor
|
||||
@@ -101,6 +101,12 @@ public:
|
||||
// A: Atomic Mass
|
||||
// E: Excitaion energy
|
||||
|
||||
|
||||
void AddUserDecayDataFile(G4int Z, G4int A,G4String filename);
|
||||
//Allow the user to replace the radio-active decay data provided in Geant4
|
||||
// by its own data file for a given isotope
|
||||
|
||||
|
||||
private:
|
||||
|
||||
G4String GetIsotopeName(G4int Z, G4int A, G4double E);
|
||||
@@ -122,6 +128,10 @@ private:
|
||||
G4IsotopeList fIsotopeList;
|
||||
G4IsotopeNameList fIsotopeNameList;
|
||||
static const G4double levelTolerance;
|
||||
|
||||
//User define radioactive decay data files replacing some files in the G4RADECAY database
|
||||
std::map<G4int, G4String> theUserRadioactiveDataFiles;
|
||||
|
||||
};
|
||||
|
||||
inline G4int G4RIsotopeTable::Entries() const
|
||||
|
||||
@@ -54,11 +54,15 @@
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include <vector>
|
||||
#include <map>
|
||||
#include <CLHEP/Units/SystemOfUnits.h>
|
||||
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VRestDiscreteProcess.hh"
|
||||
#include "G4ParticleChangeForRadDecay.hh"
|
||||
#include "G4RadioactiveDecaymessenger.hh"
|
||||
// #include "G4RadioactiveDecaymessenger.hh"
|
||||
|
||||
#include "G4NucleusLimits.hh"
|
||||
#include "G4RadioactiveDecayRate.hh"
|
||||
@@ -67,9 +71,6 @@
|
||||
#include "G4RadioactivityTable.hh"
|
||||
#include "G4ThreeVector.hh"
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
class G4RadioactiveDecaymessenger;
|
||||
|
||||
typedef std::vector<G4RadioactiveDecayRateVector> G4RadioactiveDecayRateTable;
|
||||
@@ -182,7 +183,7 @@ class G4RadioactiveDecay : public G4VRestDiscreteProcess
|
||||
|
||||
inline void SetAnalogueMonteCarlo (G4bool r ) {
|
||||
AnalogueMC = r;
|
||||
if (!AnalogueMC) halflifethreshold = 1e-6*s;
|
||||
if (!AnalogueMC) halflifethreshold = 1e-6*CLHEP::s;
|
||||
}
|
||||
// Controls whether G4RadioactiveDecay runs in analogue mode or
|
||||
// variance reduction mode.
|
||||
@@ -217,14 +218,14 @@ class G4RadioactiveDecay : public G4VRestDiscreteProcess
|
||||
return forceDecayDirection;
|
||||
}
|
||||
|
||||
inline void SetDecayHalfAngle(G4double halfAngle=0.*deg) {
|
||||
forceDecayHalfAngle = std::min(std::max(0.*deg,halfAngle),180.*deg);
|
||||
inline void SetDecayHalfAngle(G4double halfAngle=0.*CLHEP::deg) {
|
||||
forceDecayHalfAngle = std::min(std::max(0.*CLHEP::deg,halfAngle),180.*CLHEP::deg);
|
||||
}
|
||||
|
||||
inline G4double GetDecayHalfAngle() const {return forceDecayHalfAngle;}
|
||||
|
||||
inline void SetDecayCollimation(const G4ThreeVector& theDir,
|
||||
G4double halfAngle = 0.*deg) {
|
||||
G4double halfAngle = 0.*CLHEP::deg) {
|
||||
SetDecayDirection(theDir);
|
||||
SetDecayHalfAngle(halfAngle);
|
||||
}
|
||||
@@ -252,7 +253,7 @@ class G4RadioactiveDecay : public G4VRestDiscreteProcess
|
||||
G4double GetMeanLifeTime(const G4Track& theTrack,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
G4double GetTaoTime(G4double,G4double);
|
||||
G4double GetTaoTime(const G4double,const G4double);
|
||||
|
||||
G4double GetDecayTime();
|
||||
|
||||
@@ -264,16 +265,13 @@ class G4RadioactiveDecay : public G4VRestDiscreteProcess
|
||||
G4RadioactiveDecay & operator=(const G4RadioactiveDecay &right);
|
||||
|
||||
G4RadioactiveDecaymessenger* theRadioactiveDecaymessenger;
|
||||
G4PhysicsTable* aPhysicsTable;
|
||||
G4RIsotopeTable* theIsotopeTable;
|
||||
|
||||
G4NucleusLimits theNucleusLimits;
|
||||
|
||||
const G4double HighestBinValue;
|
||||
const G4double LowestBinValue;
|
||||
|
||||
const G4int TotBin;
|
||||
G4double HighestValue;
|
||||
|
||||
G4bool isInitialised;
|
||||
G4bool AnalogueMC;
|
||||
G4bool BRBias;
|
||||
G4bool FBeta;
|
||||
@@ -297,6 +295,7 @@ class G4RadioactiveDecay : public G4VRestDiscreteProcess
|
||||
|
||||
std::vector<G4String> LoadedNuclei;
|
||||
std::vector<G4String> ValidVolumes;
|
||||
bool isAllVolumesMode;
|
||||
|
||||
G4RadioactiveDecayRate theDecayRate;
|
||||
G4RadioactiveDecayRates theDecayRateVector;
|
||||
|
||||
@@ -49,6 +49,7 @@
|
||||
#include "globals.hh"
|
||||
#include <map>
|
||||
#include "G4ThreeVector.hh"
|
||||
#include "G4TwoVector.hh"
|
||||
|
||||
using std::map;
|
||||
|
||||
@@ -74,21 +75,21 @@ public:
|
||||
public:
|
||||
// with description
|
||||
//
|
||||
void AddIsotope( G4int, G4int, G4double, G4double);
|
||||
void AddIsotope( G4int, G4int, G4double, G4double, G4double);
|
||||
// Add an isotope (Z,A,E) of rate to the table.
|
||||
//
|
||||
G4double GetRate(G4int, G4int, G4double);
|
||||
G4TwoVector GetRate(G4int, G4int, G4double);
|
||||
// Get the rate of isotoe (Z,A,E)
|
||||
//
|
||||
G4int Entries() const;
|
||||
// Get the total number of isotope spieces in the table
|
||||
//
|
||||
map<G4ThreeVector,G4double>* GetTheMap();
|
||||
map<G4ThreeVector,G4TwoVector>* GetTheMap();
|
||||
// Return the stl map! Mainly for printing.
|
||||
//
|
||||
private:
|
||||
|
||||
map<G4ThreeVector,G4double> fRadioactivity;
|
||||
map<G4ThreeVector,G4TwoVector> fRadioactivity;
|
||||
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user