Import Geant4 6.0.0 source tree
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4AlphaDecayChannel_h
|
||||
#define G4AlphaDecayChannel_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4AlphaDecayChannel.hh
|
||||
//
|
||||
// Version: 0.b.3
|
||||
// Date: 29/02/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4AlphaDecayChannel : public G4NuclearDecayChannel
|
||||
{
|
||||
// class description
|
||||
//
|
||||
// Derived class from G4NuclearDecayChannel. It is specific for
|
||||
// Alpha decay proceess.
|
||||
//
|
||||
// class description - end
|
||||
public:
|
||||
G4AlphaDecayChannel (G4int Verbose,
|
||||
const G4ParticleDefinition *theParentNucleus,
|
||||
G4double theBR,
|
||||
G4double theEndPointEnergy=0.0,
|
||||
G4double theDaughterExcitation=0.0) :
|
||||
G4NuclearDecayChannel (Alpha, Verbose, theParentNucleus, theBR,
|
||||
theEndPointEnergy,
|
||||
(theParentNucleus->GetBaryonNumber())-4,
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)-2,
|
||||
theDaughterExcitation, "alpha")
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel()>1)
|
||||
G4cout <<"G4AlphaDecayChannel constructor" << G4endl;
|
||||
#endif
|
||||
}
|
||||
~G4AlphaDecayChannel () {;}
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,83 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4BetaFermiFunction_h
|
||||
#define G4BetaFermiFunction_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
|
||||
class G4BetaFermiFunction
|
||||
{
|
||||
// class description
|
||||
// It is to calculate the Coulomb correction to beta particles
|
||||
//
|
||||
|
||||
public: // with description
|
||||
|
||||
G4BetaFermiFunction(G4int const fA, G4int const fZ) :
|
||||
A(fA), Z(fZ)
|
||||
{};
|
||||
// constructor: fA the daughter nucleus mass.
|
||||
// fZ the daughter nucleus charge. Negative value for
|
||||
// beta+ decays.
|
||||
//
|
||||
~G4BetaFermiFunction()
|
||||
// desctructor
|
||||
//
|
||||
{};
|
||||
G4double GetFF(const G4double E);
|
||||
// Returns the BetaFermi factor at energy E.
|
||||
// E kinetic energy of the beta particle in unit of Me.
|
||||
//
|
||||
G4double GetFFN(const G4double E0);
|
||||
// Returns the BetaFermi factor normalisation, i.e. the maximum
|
||||
// value for beta decay with end-point energy E0.
|
||||
// E0 dose not including beta particle rest mass in unit
|
||||
// of Me.
|
||||
//
|
||||
private:
|
||||
|
||||
G4int A;
|
||||
G4int Z;
|
||||
|
||||
static const G4double PI;
|
||||
|
||||
private:
|
||||
|
||||
G4double Gamma(G4double X);
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,86 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4BetaMinusDecayChannel_h
|
||||
#define G4BetaMinusDecayChannel_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4BetaMinusDecayChannel.hh
|
||||
//
|
||||
// Version: 0.b.3
|
||||
// Date: 29/02/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4BetaMinusDecayChannel : public G4NuclearDecayChannel
|
||||
{
|
||||
// class description
|
||||
//
|
||||
// Derived class from G4NuclearDecayChannel. It is specific for
|
||||
// Beta- decay proceess.
|
||||
//
|
||||
// class description - end
|
||||
public:
|
||||
G4BetaMinusDecayChannel (G4int Verbose,
|
||||
const G4ParticleDefinition *theParentNucleus,
|
||||
G4double theBR,
|
||||
G4double theEndPointEnergy=0.0,
|
||||
G4double theDaughterExcitation=0.0,
|
||||
G4double theFFN=1.0,
|
||||
G4bool theBetaSimple = false,
|
||||
RandGeneral* theRandEnergy = NULL):
|
||||
G4NuclearDecayChannel (BetaMinus, Verbose, theParentNucleus, theBR,
|
||||
theFFN,
|
||||
theBetaSimple,
|
||||
theRandEnergy,
|
||||
theEndPointEnergy,
|
||||
theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)+1,
|
||||
theDaughterExcitation, "e-", "anti_nu_e")
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel()>1)
|
||||
G4cout <<"G4BetaMinusDecayChannel constructor" <<G4endl;
|
||||
#endif
|
||||
}
|
||||
~G4BetaMinusDecayChannel () {;}
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4BetaPlusDecayChannel_h
|
||||
#define G4BetaPlusDecayChannel_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4BetaPlusDecayChannel.hh
|
||||
//
|
||||
// Version: 0.b.3
|
||||
// Date: 29/02/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4BetaPlusDecayChannel : public G4NuclearDecayChannel
|
||||
{
|
||||
// class description
|
||||
//
|
||||
// Derived class from G4NuclearDecayChannel. It is specific for
|
||||
// Beta+ decay proceess.
|
||||
//
|
||||
// class description - end
|
||||
//
|
||||
//
|
||||
public:
|
||||
G4BetaPlusDecayChannel (G4int Verbose,
|
||||
const G4ParticleDefinition *theParentNucleus,
|
||||
G4double theBR,
|
||||
G4double theEndPointEnergy=0.0,
|
||||
G4double theDaughterExcitation=0.0,
|
||||
G4double theFFN=0.0,
|
||||
G4bool theBetaSimple = false,
|
||||
RandGeneral* theRandEnergy = NULL) :
|
||||
G4NuclearDecayChannel (BetaPlus,
|
||||
Verbose,
|
||||
theParentNucleus,
|
||||
theBR,
|
||||
theFFN,
|
||||
theBetaSimple,
|
||||
theRandEnergy,
|
||||
theEndPointEnergy,
|
||||
theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)-1,
|
||||
theDaughterExcitation, "e+", "nu_e")
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel()>1)
|
||||
G4cout <<"G4BetaPlusDecayChannel constructor" <<G4endl;
|
||||
#endif
|
||||
}
|
||||
~G4BetaPlusDecayChannel () {;}
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4ITDecayChannel_h
|
||||
#define G4ITDecayChannel_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4ITDecayChannel : public G4NuclearDecayChannel
|
||||
{
|
||||
|
||||
// class description
|
||||
//
|
||||
// Derived class from G4NuclearDecayChannel. It is specific for
|
||||
// Isomeric Transitions
|
||||
//
|
||||
// class description - end
|
||||
public:
|
||||
G4ITDecayChannel (G4int Verbose,
|
||||
const G4Ions *theParentNucleus,
|
||||
G4double theBR) :
|
||||
G4NuclearDecayChannel (IT, Verbose, theParentNucleus, theBR, 0.0,
|
||||
theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus),
|
||||
theParentNucleus->GetExcitationEnergy())
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel()>1)
|
||||
G4cout <<"G4ITDecayChannel constructor" << G4endl;
|
||||
#endif
|
||||
}
|
||||
~G4ITDecayChannel () {;}
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,80 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4KshellECDecayChannel_h
|
||||
#define G4KshellECDecayChannel_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4KshellECDecayChannel.hh
|
||||
//
|
||||
// Version: 0.b.3
|
||||
// Date: 29/02/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4KshellECDecayChannel : public G4NuclearDecayChannel
|
||||
{
|
||||
// class description
|
||||
//
|
||||
// Derived class from G4NuclearDecayChannel. It is specific for
|
||||
// Electron Capture proceess with electron from the K shell
|
||||
//
|
||||
// class description - end
|
||||
|
||||
public:
|
||||
G4KshellECDecayChannel (G4int Verbose,
|
||||
const G4ParticleDefinition *theParentNucleus,
|
||||
G4double theBR,
|
||||
G4double theQtransit=0.0,
|
||||
G4double theDaughterExcitation=0.0) :
|
||||
G4NuclearDecayChannel (KshellEC, Verbose, theParentNucleus, theBR,
|
||||
theQtransit, theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)-1,
|
||||
theDaughterExcitation, "nu_e")
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel()>1)
|
||||
G4cout <<"G4KshellECDecayChannel constructor" << G4endl;
|
||||
#endif
|
||||
}
|
||||
~G4KshellECDecayChannel () {;}
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4LshellECDecayChannel_h
|
||||
#define G4LshellECDecayChannel_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4NuclearDecayChannel.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4LshellECDecayChannel : public G4NuclearDecayChannel
|
||||
{
|
||||
// class description
|
||||
//
|
||||
// Derived class from G4NuclearDecayChannel. It is specific for
|
||||
// Electron Capture proceess with electron from the L shell
|
||||
//
|
||||
// class description - end
|
||||
|
||||
public:
|
||||
G4LshellECDecayChannel (G4int Verbose,
|
||||
const G4ParticleDefinition *theParentNucleus,
|
||||
G4double theBR,G4double theQtransit=0.0,
|
||||
G4double theDaughterExcitation=0.0) :
|
||||
G4NuclearDecayChannel (LshellEC, Verbose, theParentNucleus, theBR,
|
||||
theQtransit, theParentNucleus->GetBaryonNumber(),
|
||||
int(theParentNucleus->GetPDGCharge()/eplus)-1,
|
||||
theDaughterExcitation,
|
||||
"nu_e")
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel()>1)
|
||||
G4cerr <<"G4LshellECDecayChannel constructor" << G4endl;
|
||||
#endif
|
||||
}
|
||||
~G4LshellECDecayChannel () {;}
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,137 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4NuclearDecayChannel_h
|
||||
#define G4NuclearDecayChannel_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
#include "G4Ions.hh"
|
||||
#include "G4IonTable.hh"
|
||||
#include "G4DynamicParticle.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4GeneralPhaseSpaceDecay.hh"
|
||||
#include "G4RadioactiveDecayMode.hh"
|
||||
|
||||
#include "CLHEP/Random/RandGeneral.h"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4NuclearDecayChannel : public G4GeneralPhaseSpaceDecay
|
||||
{
|
||||
// class description
|
||||
//
|
||||
// G4NuclearDecayChannel is a derived class from G4GeneralPhaseSpaceDecay,
|
||||
// itself a derived class from G4VDecayChannel. It provides the required
|
||||
// decay channels for all nuclear decay modes and through the DecayIt()
|
||||
// member function returns the decay products.
|
||||
//
|
||||
// class description - end
|
||||
|
||||
public: // with description
|
||||
|
||||
G4NuclearDecayChannel (const G4RadioactiveDecayMode &, G4int Verbose) :
|
||||
G4GeneralPhaseSpaceDecay (Verbose) {;}
|
||||
// default constructor
|
||||
//
|
||||
G4NuclearDecayChannel (const G4RadioactiveDecayMode &theMode, G4int Verbose,
|
||||
const G4ParticleDefinition *theParentNucleus,
|
||||
G4double theBR, G4double theQtransition, G4int A,
|
||||
G4int Z, G4double theDaughterExcitation);
|
||||
// constructor decay channel with one decay product
|
||||
//
|
||||
G4NuclearDecayChannel (const G4RadioactiveDecayMode &theMode, G4int Verbose,
|
||||
const G4ParticleDefinition *theParentNucleus,
|
||||
G4double theBR, G4double theQtransition, G4int A,
|
||||
G4int Z, G4double theDaughterExcitation,
|
||||
const G4String theDaughterName1);
|
||||
// constructor decay channel with two decay products
|
||||
//
|
||||
G4NuclearDecayChannel (const G4RadioactiveDecayMode &theMode, G4int Verbose,
|
||||
const G4ParticleDefinition *theParentNucleus,
|
||||
G4double theBR, G4double theFFN,
|
||||
G4bool betaS, RandGeneral* randBeta,
|
||||
G4double theQtransition, G4int A, G4int Z,
|
||||
G4double theDaughterExcitation,
|
||||
const G4String theDaughterName1,
|
||||
const G4String theDaughterName2);
|
||||
// constructor decay channel with three decay product
|
||||
//
|
||||
|
||||
~G4NuclearDecayChannel () {;}
|
||||
// destructor
|
||||
//
|
||||
G4DecayProducts *DecayIt (G4double theParentMass);
|
||||
// Returns the decay products
|
||||
//
|
||||
inline G4RadioactiveDecayMode GetDecayMode () {return decayMode;}
|
||||
// Returns the decay mode
|
||||
//
|
||||
inline G4double GetDaughterExcitation () {return daughterExcitation;}
|
||||
// Returns the excitaion energy of the daughter nuclide
|
||||
//
|
||||
inline G4ParticleDefinition* GetDaughterNucleus () {return daughterNucleus;}
|
||||
// Returns the daughter nuclide.
|
||||
//
|
||||
private:
|
||||
G4NuclearDecayChannel (const G4String &theName, const G4String &theParentName,
|
||||
G4double theBR, G4int theNumberOfDaughters,
|
||||
const G4String theDaughterName1,
|
||||
const G4String theDaughterName2,
|
||||
const G4String theDaughterName3,
|
||||
const G4String theDaughterName4);
|
||||
|
||||
G4NuclearDecayChannel (const G4String &theParentName,
|
||||
G4double theBR, G4int theNumberOfDaughters,
|
||||
const G4String& theDaughterName1,
|
||||
const G4String& theDaughterName2 = "",
|
||||
const G4String& theDaughterName3 = "");
|
||||
|
||||
G4NuclearDecayChannel (const G4String &theParentName,
|
||||
G4double theParentMass, G4double theBR,
|
||||
G4int theNumberOfDaughters,
|
||||
const G4String& theDaughterName1,
|
||||
const G4String& theDaughterName2 = "",
|
||||
const G4String& theDaughterName3 = "");
|
||||
|
||||
void FillDaughterNucleus (G4int index, G4int A, G4int Z,
|
||||
G4double theDaughterExcitation);
|
||||
|
||||
G4DecayProducts* BetaDecayIt();
|
||||
// to replace the ThreeBodyDecayIt() to generate the correct beta spectrum
|
||||
|
||||
protected:
|
||||
G4RadioactiveDecayMode decayMode;
|
||||
static const G4double pTolerance;
|
||||
static const G4double levelTolerance;
|
||||
G4double daughterExcitation;
|
||||
G4int daughterA;
|
||||
G4int daughterZ;
|
||||
G4ParticleDefinition *daughterNucleus;
|
||||
G4DynamicParticle *dynamicDaughter;
|
||||
G4double Qtransition;
|
||||
G4double FermiFN;
|
||||
G4bool BetaSimple;
|
||||
RandGeneral* RandomEnergy;
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
@@ -0,0 +1,107 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4NucleusLimits_h
|
||||
#define G4NucleusLimits_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4NucleusLimits.hh
|
||||
//
|
||||
// Version: 0.b.4
|
||||
// Date: 14/04/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// 13 April 2000, F Lei, DERA UK
|
||||
// 0.b.4 release. No change to this file
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include <iostream>
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4NucleusLimits
|
||||
{
|
||||
// class description
|
||||
// The G4NucleusLimits class is used to contain information identifying a
|
||||
// range bounded by A [aMin, aMax], and Z on [zMin, zMax].
|
||||
//
|
||||
// class description - end
|
||||
|
||||
public: // with description
|
||||
G4NucleusLimits ();
|
||||
// Default constructor where: aMin=1, aMax=240, aMin=1, and
|
||||
// zMax=100.
|
||||
//
|
||||
G4NucleusLimits
|
||||
(G4int aMin1, G4int aMax1, G4int zMin1, G4int zMax1);
|
||||
// Constructor defining new values for aMin, aMax, zMin, and zMax
|
||||
// respectively.
|
||||
//
|
||||
~G4NucleusLimits();
|
||||
// Destructor
|
||||
|
||||
private:
|
||||
G4int aMin;
|
||||
G4int aMax;
|
||||
G4int zMin;
|
||||
G4int zMax;
|
||||
|
||||
//
|
||||
//
|
||||
// INLINE DECLARATIONS/DEFINTIONS:
|
||||
//
|
||||
public: // with description
|
||||
|
||||
inline G4int GetAMin () const {return aMin;}
|
||||
// Returns the value of aMin.
|
||||
//
|
||||
inline G4int GetAMax () const {return aMax;}
|
||||
// Returns the value of aMax.
|
||||
//
|
||||
inline G4int GetZMin () const {return zMin;}
|
||||
// Returns the value of zMin.
|
||||
//
|
||||
inline G4int GetZMax () const {return zMax;}
|
||||
// Return the value of zmax.
|
||||
//
|
||||
|
||||
|
||||
friend std::ostream &operator << (std::ostream &s, const G4NucleusLimits &q);
|
||||
|
||||
};
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,142 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4RIsotopeTable_h
|
||||
#define G4RIsotopeTable_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4RIsotopeTable.hh
|
||||
//
|
||||
// Version: 0.b.4
|
||||
// Date: 14/04/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// 13 April 2000, F Lei, DERA UK
|
||||
// 0.b.4 release. No change to this file
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "globals.hh"
|
||||
#include "G4IsotopeProperty.hh"
|
||||
#include "G4VIsotopeTable.hh"
|
||||
#include "G4Ions.hh"
|
||||
#include "G4IonTable.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
#include <vector>
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4RIsotopeTable : public G4VIsotopeTable
|
||||
{
|
||||
// class description
|
||||
// G4RIsotopeTable is the table of pointers to G4IsotopeProperty.
|
||||
// It is derived from the abstract base class G4VIsotopeTable
|
||||
// class description - end
|
||||
public:
|
||||
//
|
||||
typedef std::vector<G4IsotopeProperty*> G4IsotopeList;
|
||||
typedef std::vector<G4String> G4IsotopeNameList;
|
||||
|
||||
public:
|
||||
// constructor
|
||||
//
|
||||
G4RIsotopeTable ();
|
||||
|
||||
protected:
|
||||
// hide copy construictor as protected
|
||||
G4RIsotopeTable(const G4RIsotopeTable &right);
|
||||
|
||||
public:
|
||||
// destructor
|
||||
virtual ~G4RIsotopeTable();
|
||||
|
||||
public:
|
||||
// with description
|
||||
//
|
||||
virtual G4bool FindIsotope(G4IsotopeProperty* property);
|
||||
// The FindIsotope function will replace the pure virtual one defined in the
|
||||
// abstract base class G4VIstopeTable. We don't use this fuction in this
|
||||
// implementation, instead we use the next function.
|
||||
//
|
||||
virtual G4IsotopeProperty* GetIsotope(G4int Z, G4int A, G4double E);
|
||||
//
|
||||
// again it will replace the pure virtual one in the abstract base class.
|
||||
//
|
||||
// Z: Atomic Number
|
||||
// A: Atomic Mass
|
||||
// E: Excitaion energy
|
||||
|
||||
private:
|
||||
|
||||
G4String GetIsotopeName(G4int Z, G4int A, G4double E);
|
||||
//
|
||||
// To generate a name for the isotope
|
||||
G4double GetMeanLifeTime (G4int Z, G4int A, G4double& E);
|
||||
// to get the mean life time and its decaytable from the database
|
||||
//
|
||||
G4IsotopeProperty* GetIsotope(G4int index) const;
|
||||
// Return the pointer of index-th isotope in the table
|
||||
|
||||
G4int GetVerboseLevel() const;
|
||||
// get Verbose Level defined in G4ParticleTable
|
||||
|
||||
G4int Entries() const;
|
||||
|
||||
private:
|
||||
|
||||
G4IsotopeList fIsotopeList;
|
||||
G4IsotopeNameList fIsotopeNameList;
|
||||
static const G4double levelTolerance;
|
||||
};
|
||||
|
||||
inline G4int G4RIsotopeTable::Entries() const
|
||||
{return fIsotopeNameList.size();}
|
||||
|
||||
inline G4IsotopeProperty* G4RIsotopeTable::GetIsotope(G4int index) const
|
||||
{
|
||||
if ( (index >=0 ) && (index < Entries()) ){
|
||||
return fIsotopeList[index];
|
||||
} else {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,283 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4RadioactiveDecay_h
|
||||
#define G4RadioactiveDecay_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4RadioactiveDecay.hh
|
||||
//
|
||||
// Version: 0.b.4
|
||||
// Date: 14/04/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// 13 April 2000, F Lei, DERA UK
|
||||
// 0.b.4 release. No change to this file
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4VRestDiscreteProcess.hh"
|
||||
#include "G4ParticleChangeForRadDecay.hh"
|
||||
#include "G4RadioactiveDecaymessenger.hh"
|
||||
|
||||
#include "G4NucleusLimits.hh"
|
||||
#include "G4RadioactiveDecayRate.hh"
|
||||
#include "G4RadioactiveDecayRateVector.hh"
|
||||
#include "G4RIsotopeTable.hh"
|
||||
#include <vector>
|
||||
|
||||
//class G4UserlimitsForRD;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4RadioactiveDecaymessenger;
|
||||
|
||||
typedef std::vector<G4RadioactiveDecayRateVector> G4RadioactiveDecayRateTable;
|
||||
typedef std::vector<G4RadioactiveDecayRate> G4RadioactiveDecayRates;
|
||||
|
||||
class G4RadioactiveDecay : public G4VRestDiscreteProcess
|
||||
{
|
||||
// class description
|
||||
|
||||
// Implementation of nuclear radioactive decay process.
|
||||
// It simulates the decays of radioactive nuclei, which is submitted to RDM in the form
|
||||
// of G4Ions. Half-liffe and decay schemes are hold in the Radioactivity database
|
||||
// All decay products are submitted back to the particle tracking process through
|
||||
// the G4ParticleChangeForRadDecay object.
|
||||
|
||||
// class description - end
|
||||
|
||||
public: // with description
|
||||
|
||||
G4RadioactiveDecay (const G4String& processName="RadioactiveDecay");
|
||||
~G4RadioactiveDecay();
|
||||
// constructor and destructor
|
||||
//
|
||||
|
||||
G4bool IsApplicable(const G4ParticleDefinition &);
|
||||
// Returns true if the specified isotope is
|
||||
// 1) defined as "nucleus" and
|
||||
// 2) it is within theNucleusLimit
|
||||
//
|
||||
G4bool IsLoaded (const G4ParticleDefinition &);
|
||||
// Returns true if the decay table of the specified nuclei is ready.
|
||||
//
|
||||
void SelectAVolume(const G4String aVolume);
|
||||
// Select a logical volume in which RDM applies.
|
||||
//
|
||||
void DeselectAVolume(const G4String aVolume);
|
||||
// remove a logical volume from the RDM applied list
|
||||
//
|
||||
void SelectAllVolumes();
|
||||
// Select all logical volumes for the application of RDM.
|
||||
//
|
||||
void DeselectAllVolumes();
|
||||
// Remove all logical volumes from RDM applications.
|
||||
//
|
||||
void SetDecayBias (G4String filename);
|
||||
// Sets the decay biasing scheme using the data in "filename"
|
||||
//
|
||||
void SetSourceTimeProfile (G4String filename) ;
|
||||
// Sets source exposure function using histograms in "filename"
|
||||
//
|
||||
G4bool IsRateTableReady(const G4ParticleDefinition &);
|
||||
// Returns true if the coefficient and decay time table for all the
|
||||
// descendants of the specified isotope are ready.
|
||||
//
|
||||
// used in VR decay mode only
|
||||
//
|
||||
void AddDecayRateTable(const G4ParticleDefinition &);
|
||||
// Calculates the coefficient and decay time table for all the descendants
|
||||
// of the specified isotope. Adds the calculated table to the private data
|
||||
// member "theDecayRateTableVector".
|
||||
//
|
||||
//
|
||||
// used in VR decay mode only
|
||||
//
|
||||
void GetDecayRateTable(const G4ParticleDefinition &);
|
||||
// Used to retrieve the coefficient and decay time table for all the
|
||||
// descendants of the specified isotope from "theDecayRateTableVector"
|
||||
// and place it in "theDecayRateTable".
|
||||
//
|
||||
//
|
||||
// used in VR decay mode only
|
||||
//
|
||||
void SetDecayRate(G4int,G4int,G4double, G4int, std::vector<G4double>,
|
||||
std::vector<G4double>);
|
||||
// Sets "theDecayRate" with data supplied in the arguements.
|
||||
//
|
||||
// //
|
||||
// used in VR decay mode only
|
||||
//
|
||||
|
||||
G4DecayTable *LoadDecayTable (G4ParticleDefinition & theParentNucleus);
|
||||
// Load the decay data of isotope theParentNucleus.
|
||||
//
|
||||
inline void SetVerboseLevel(G4int value) {verboseLevel = value;}
|
||||
// Sets the VerboseLevel which controls duggering display.
|
||||
//
|
||||
inline G4int GetVerboseLevel() const {return verboseLevel;}
|
||||
// Returns the VerboseLevel which controls level of debugging output.
|
||||
//
|
||||
inline void SetNucleusLimits(G4NucleusLimits theNucleusLimits1)
|
||||
{theNucleusLimits = theNucleusLimits1 ;}
|
||||
// Sets theNucleusLimits which specifies the range of isotopes
|
||||
// the G4RadioactiveDecay applies.
|
||||
//
|
||||
inline G4NucleusLimits GetNucleusLimits() const
|
||||
{return theNucleusLimits;}
|
||||
// Returns theNucleusLimits which specifies the range of isotopes
|
||||
// the G4RadioactiveDecay applies.
|
||||
//
|
||||
inline void SetAnalogueMonteCarlo (G4bool r ) { AnalogueMC = r; }
|
||||
// Controls whether G4RadioactiveDecay runs in analogue mode or
|
||||
// variance reduction mode.
|
||||
inline void SetFBeta (G4bool r ) { FBeta = r; }
|
||||
// Controls whether G4RadioactiveDecay uses fast beta simulation mode
|
||||
//
|
||||
inline G4bool IsAnalogueMonteCarlo () {return AnalogueMC;}
|
||||
// Returns true if the simulation is an analogue Monte Carlo, and false if
|
||||
// any of the biassing schemes have been selected.
|
||||
//
|
||||
inline void SetBRBias (G4bool r ) { BRBias = r;
|
||||
SetAnalogueMonteCarlo(0);}
|
||||
// Sets whether branching ration bias scheme applies.
|
||||
//
|
||||
inline void SetSplitNuclei (G4int r) { NSplit = r; SetAnalogueMonteCarlo(0); }
|
||||
// Sets the N number for the Nuclei spliting bias scheme
|
||||
//
|
||||
inline G4int GetSplitNuclei () {return NSplit;}
|
||||
// Returns the N number used for the Nuclei spliting bias scheme
|
||||
//
|
||||
public:
|
||||
|
||||
void BuildPhysicsTable(const G4ParticleDefinition &);
|
||||
|
||||
protected:
|
||||
|
||||
G4VParticleChange* DecayIt( const G4Track& theTrack,
|
||||
const G4Step& theStep);
|
||||
|
||||
G4DecayProducts* DoDecay(G4ParticleDefinition& theParticleDef);
|
||||
|
||||
G4double GetMeanFreePath(const G4Track& theTrack,
|
||||
G4double previousStepSize,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
G4double GetMeanLifeTime(const G4Track& theTrack,
|
||||
G4ForceCondition* condition);
|
||||
|
||||
G4double GetTaoTime(G4double,G4double);
|
||||
|
||||
G4double GetDecayTime();
|
||||
|
||||
G4int GetDecayTimeBin(const G4double aDecayTime);
|
||||
|
||||
private:
|
||||
|
||||
G4RadioactiveDecay(const G4RadioactiveDecay &right);
|
||||
G4RadioactiveDecay & operator=(const G4RadioactiveDecay &right);
|
||||
|
||||
private:
|
||||
|
||||
G4RadioactiveDecaymessenger *theRadioactiveDecaymessenger;
|
||||
|
||||
G4PhysicsTable *aPhysicsTable;
|
||||
|
||||
G4RIsotopeTable *theIsotopeTable;
|
||||
|
||||
G4NucleusLimits theNucleusLimits;
|
||||
|
||||
const G4double HighestBinValue;
|
||||
const G4double LowestBinValue;
|
||||
|
||||
const G4int TotBin;
|
||||
|
||||
G4bool AnalogueMC;
|
||||
G4bool BRBias;
|
||||
G4bool FBeta;
|
||||
G4int NSplit;
|
||||
|
||||
G4int NSourceBin;
|
||||
G4double SBin[99];
|
||||
G4double SProfile[99];
|
||||
|
||||
G4int NDecayBin;
|
||||
G4double DBin[99];
|
||||
G4double DProfile[99];
|
||||
|
||||
std::vector<G4String> LoadedNuclei;
|
||||
std::vector<G4String> ValidVolumes;
|
||||
|
||||
G4RadioactiveDecayRate theDecayRate;
|
||||
G4RadioactiveDecayRates theDecayRateVector;
|
||||
G4RadioactiveDecayRateVector theDecayRateTable;
|
||||
G4RadioactiveDecayRateTable theDecayRateTableVector;
|
||||
|
||||
static const G4double levelTolerance;
|
||||
|
||||
// Remainder of life time at rest
|
||||
G4double fRemainderLifeTime;
|
||||
|
||||
G4int verboseLevel;
|
||||
|
||||
|
||||
// ParticleChange for decay process
|
||||
G4ParticleChangeForRadDecay fParticleChangeForRadDecay;
|
||||
|
||||
inline G4double AtRestGetPhysicalInteractionLengt
|
||||
(const G4Track& track, G4ForceCondition* condition)
|
||||
{fRemainderLifeTime = G4VRestDiscreteProcess::
|
||||
AtRestGetPhysicalInteractionLength(track, condition );
|
||||
return fRemainderLifeTime;}
|
||||
|
||||
inline G4VParticleChange* AtRestDoIt
|
||||
(const G4Track& theTrack, const G4Step& theStep)
|
||||
{return DecayIt(theTrack, theStep);}
|
||||
|
||||
inline G4VParticleChange* PostStepDoIt
|
||||
(const G4Track& theTrack, const G4Step& theStep)
|
||||
{return DecayIt(theTrack, theStep);}
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4RadioactiveDecayMode_h
|
||||
#define G4RadioactiveDecayMode_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: RadioactiveDecayMode.hh
|
||||
//
|
||||
// Version: 0.b.4
|
||||
// Date: 14/04/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// DESCRIPTION
|
||||
// -----------
|
||||
//
|
||||
// Identifies a type G4RadioactiveDecayMode to assign a specific decay mode
|
||||
// description to decay channels.
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// 13 April 2000, F Lei, DERA UK
|
||||
// 0.b.4 release. No change to this file
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "globals.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
enum G4RadioactiveDecayMode
|
||||
{ERROR=-1, IT=0, BetaMinus=1, BetaPlus=2, KshellEC=3, LshellEC=4, MshellEC=5, Alpha=6};
|
||||
|
||||
std::istream &operator >> (std::istream &s, G4RadioactiveDecayMode &q);
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,131 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4RadioactiveDecayRate_h
|
||||
#define G4RadioactiveDecayRate_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: RadioactiveDecayRate.hh
|
||||
//
|
||||
// Version: 0.b.4
|
||||
// Date: 14/04/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// 13 April 2000, F Lei, DERA UK
|
||||
// 0.b.4 release. No change to this file
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#include <vector>
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4RadioactiveDecayRate
|
||||
{
|
||||
// class description
|
||||
// This class contains the coefficient and decay times of the
|
||||
// progeny of a give isotope (A,Z,E).
|
||||
//
|
||||
// class description - end
|
||||
public:
|
||||
// Constructors
|
||||
G4RadioactiveDecayRate();
|
||||
|
||||
// Destructor
|
||||
virtual ~G4RadioactiveDecayRate();
|
||||
|
||||
public:
|
||||
// copy constructor and assignment operator
|
||||
G4RadioactiveDecayRate(const G4RadioactiveDecayRate &);
|
||||
G4RadioactiveDecayRate & operator=(const G4RadioactiveDecayRate &);
|
||||
|
||||
public:
|
||||
// equality operators
|
||||
G4int operator==(const G4RadioactiveDecayRate &right) const
|
||||
{return (this == &right);};
|
||||
G4int operator!=(const G4RadioactiveDecayRate &right) const
|
||||
{return (this != &right);};
|
||||
|
||||
// less-than operator is defined for G4DecayTable
|
||||
// G4int operator<(const G4RadioactiveDecayRate &right) const;
|
||||
|
||||
public: // with description
|
||||
//
|
||||
// the inline member functions are self explanatory.
|
||||
//
|
||||
inline G4int GetZ() const {return Z;}
|
||||
inline G4int GetA() const { return A;}
|
||||
inline G4double GetE() const { return E;}
|
||||
inline G4int GetGeneration() const { return generation;}
|
||||
inline std::vector<G4double> GetDecayRateC() const
|
||||
{ return decayRateC; }
|
||||
inline std::vector<G4double> GetTaos() const { return taos; }
|
||||
|
||||
inline void SetZ(G4int value) {Z = value;}
|
||||
inline void SetA(G4int value) {A = value;}
|
||||
inline void SetE(G4double value) {E = value;}
|
||||
inline void SetGeneration(G4int value) {generation = value;}
|
||||
inline void SetDecayRateC(std::vector<G4double> value)
|
||||
{decayRateC = value;}
|
||||
inline void SetTaos(std::vector<G4double> value) {taos = value;}
|
||||
|
||||
protected:
|
||||
|
||||
G4int Z;
|
||||
G4int A;
|
||||
G4double E;
|
||||
G4int generation;
|
||||
std::vector<G4double> decayRateC;
|
||||
std::vector<G4double> taos;
|
||||
|
||||
public:
|
||||
|
||||
inline void SetVerboseLevel(G4int value)
|
||||
{ verboseLevel = value; }
|
||||
inline G4int GetVerboseLevel() const
|
||||
{ return verboseLevel; }
|
||||
void DumpInfo();
|
||||
|
||||
private:
|
||||
G4int verboseLevel;
|
||||
// control flag for output message
|
||||
// G4int verboseLevel;
|
||||
// 0: Silent
|
||||
// 1: Warning message
|
||||
// 2: More
|
||||
|
||||
};
|
||||
#endif
|
||||
+110
@@ -0,0 +1,110 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4RadioactiveDecayRateVector_h
|
||||
#define G4RadioactiveDecayRateVector_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: RadioactiveDecayRateVector.hh
|
||||
//
|
||||
// Version: 0.b.4
|
||||
// Date: 14/04/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// 13 April 2000, F Lei, DERA UK
|
||||
// 0.b.4 release. No change to this file
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "G4ios.hh"
|
||||
#include "globals.hh"
|
||||
#include "G4RadioactiveDecayRate.hh"
|
||||
|
||||
#include <vector>
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4RadioactiveDecayRateVector
|
||||
{
|
||||
// class description
|
||||
// This class contains the decay times and coefficients for calculating
|
||||
// all the descendants of the named isotope. These data can be used to
|
||||
// calculate their radioactivity at any given time
|
||||
// class description - end
|
||||
public:
|
||||
typedef std::vector<G4RadioactiveDecayRate> G4RadioactiveDecayRates;
|
||||
|
||||
public:
|
||||
//Constructors
|
||||
G4RadioactiveDecayRateVector();
|
||||
|
||||
// Destructor
|
||||
virtual ~G4RadioactiveDecayRateVector();
|
||||
|
||||
public:
|
||||
// copy constructor and assignment operatotr
|
||||
G4RadioactiveDecayRateVector(const G4RadioactiveDecayRateVector &);
|
||||
G4RadioactiveDecayRateVector
|
||||
& operator=(const G4RadioactiveDecayRateVector &);
|
||||
|
||||
public:
|
||||
// equality operators
|
||||
G4int operator==(const G4RadioactiveDecayRateVector &right) const
|
||||
{return (this == &right);}
|
||||
G4int operator!=(const G4RadioactiveDecayRateVector &right) const
|
||||
{return (this != &right);}
|
||||
|
||||
public: // with description
|
||||
|
||||
inline G4String GetIonName() const {return ionName;}
|
||||
//
|
||||
// To retrieve the name of the isotope.
|
||||
inline G4RadioactiveDecayRates GetItsRates() const {return itsRates; }
|
||||
//
|
||||
// To retrieve the coefficients and decays of all its descendants along the
|
||||
// decay chain.
|
||||
inline void SetIonName(G4String name) {ionName = name;}
|
||||
//
|
||||
// To set the name of the isotope.
|
||||
inline void SetItsRates(G4RadioactiveDecayRates arate) {itsRates = arate;}
|
||||
//
|
||||
// To fill the coefficient and decay time table
|
||||
|
||||
protected:
|
||||
|
||||
G4String ionName;
|
||||
G4RadioactiveDecayRates itsRates;
|
||||
|
||||
};
|
||||
#endif
|
||||
|
||||
+109
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4RadioactiveDecaymessenger_h
|
||||
#define G4RadioactiveDecaymessenger_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: RadioactiveDecaymessenger.hh
|
||||
//
|
||||
// Version: 0.b.4
|
||||
// Date: 14/04/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
// 13 April 2000, F Lei, DERA UK
|
||||
// 0.b.4 release. No change to this file
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "G4UImessenger.hh"
|
||||
#include "G4UIdirectory.hh"
|
||||
#include "G4UIcmdWith3VectorAndUnit.hh"
|
||||
#include "G4UIcmdWith3Vector.hh"
|
||||
#include "G4UIcmdWithABool.hh"
|
||||
#include "G4UIcmdWithAnInteger.hh"
|
||||
#include "G4UIcmdWithADoubleAndUnit.hh"
|
||||
#include "G4UIcmdWithAString.hh"
|
||||
#include "G4UIcmdWithoutParameter.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4RadioactiveDecay.hh"
|
||||
#include "G4UIcmdWithNucleusLimits.hh"
|
||||
|
||||
class G4RadioactiveDecay;
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4RadioactiveDecaymessenger: public G4UImessenger
|
||||
{
|
||||
// class description
|
||||
// The G4RadioactiveDecaymessenger is instantiated by the G4RadioactiveDecay
|
||||
// process and introduces into the UI menu commands to control the running
|
||||
// of G4RadioactiveDecay
|
||||
|
||||
public: //with description
|
||||
G4RadioactiveDecaymessenger (G4RadioactiveDecay*
|
||||
theRadioactiveDecayContainer);
|
||||
// Constructor introduces commands into the UI menu to control
|
||||
// G4RadioactiveDecay. theRadioactiveDecayContainer1 is used to identify
|
||||
// to this class (when instatiated) the associated G4RadioactiveDecay
|
||||
// process whose parameters are going to be changed as a result
|
||||
// of the UI commands.
|
||||
~G4RadioactiveDecaymessenger ();
|
||||
// Destructor deletes G4UIdirectory and G4UIcommand objects.
|
||||
//
|
||||
void SetNewValue (G4UIcommand *command, G4String newValues);
|
||||
// Identifies the command which has been invoked by the user, extracts the
|
||||
// parameters associated with that command (held in newValues, and uses
|
||||
// these values with the appropriate member function of G4RadioactiveDecay.
|
||||
//
|
||||
private:
|
||||
G4RadioactiveDecay *theRadioactiveDecayContainer;
|
||||
|
||||
G4UIdirectory *grdmDirectory;
|
||||
G4UIcmdWithNucleusLimits *nucleuslimitsCmd;
|
||||
G4UIcmdWithAString *sourcetimeprofileCmd;
|
||||
G4UIcmdWithAString *decaybiasprofileCmd;
|
||||
G4UIcmdWithABool *analoguemcCmd;
|
||||
G4UIcmdWithABool *fbetaCmd;
|
||||
G4UIcmdWithABool *brbiasCmd;
|
||||
G4UIcmdWithAnInteger *splitnucleiCmd;
|
||||
G4UIcmdWithAnInteger *verboseCmd;
|
||||
G4UIcmdWithAString *avolumeCmd;
|
||||
G4UIcmdWithAString *deavolumeCmd;
|
||||
G4UIcmdWithoutParameter *allvolumesCmd;
|
||||
G4UIcmdWithoutParameter *deallvolumesCmd;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
+101
@@ -0,0 +1,101 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4UIcmdWithNucleusLimits_h
|
||||
#define G4UIcmdWithNucleusLimits_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4UIcmdWithNucleusAndUnit.hh
|
||||
//
|
||||
// Version: 0.b.4
|
||||
// Date: 14/04/00
|
||||
// Author: F Lei & P R Truscott
|
||||
// Organisation: DERA UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 12115/96/JG/NL Work Order No. 3
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// Class Description
|
||||
//
|
||||
// The G4UIcmdWithNucleusLimits permits input of the range of nuclides
|
||||
// that will be treated in the G4RadioactiveDecay Class. Input is expected in
|
||||
// the form:
|
||||
//
|
||||
// AMin AMax ZMin ZMax
|
||||
//
|
||||
// where AMin, AMax, ZMin, ZMax are respectively the upper and lower limits
|
||||
// in A (atomic mass), and the upper and lower limits in Z (atomic number)
|
||||
// which define the range of nuclides treated by the G4RadioactiveDecay.
|
||||
//
|
||||
// Class Description - end:
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 29 February 2000, P R Truscott, DERA UK
|
||||
// 0.b.3 release.
|
||||
//
|
||||
//
|
||||
// 13 April 2000, F Lei, DERA UK
|
||||
// 0.b.4 release. No change to this file
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "G4UIcommand.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4NucleusLimits.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4UIcmdWithNucleusLimits : public G4UIcommand
|
||||
{
|
||||
public: // With description
|
||||
G4UIcmdWithNucleusLimits
|
||||
(const char * theCommandPath,G4UImessenger * theMessenger);
|
||||
// Constructor identifying the command path in the User Interface and the
|
||||
// associated G4UImessenger which will use this G4UIcommand object.
|
||||
//
|
||||
~G4UIcmdWithNucleusLimits();
|
||||
// Destructor
|
||||
//
|
||||
G4NucleusLimits GetNewNucleusLimitsValue(G4String paramString);
|
||||
// Extracts the values aMin, aMax, zMin, zMax from paramString.
|
||||
// Values returned have aMin, aMax, zMin, and zMax (within the
|
||||
// G4NucleusLimits variable).
|
||||
G4String ConvertToString(G4NucleusLimits nuclimit);
|
||||
// Converts the G4NucleusLimits defined by vec into a G4String.
|
||||
void SetParameterName(const char * theNameAMin,const char * theNameAMax,
|
||||
const char * theNameZMin, const char * theNameZMax,
|
||||
G4bool omittable, G4bool currentAsDefault=true);
|
||||
// Identifies the parameter names associated with each of the G4doubles
|
||||
// used to define the G4NucleusLimits variable.
|
||||
void SetDefaultValue(G4NucleusLimits defVal);
|
||||
// Sets the default G4NucleusLimits if the command is invoked without any
|
||||
// parameters.
|
||||
};
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * DISCLAIMER *
|
||||
// * *
|
||||
// * The following disclaimer summarizes all the specific disclaimers *
|
||||
// * of contributors to this software. The specific disclaimers,which *
|
||||
// * govern, are listed with their locations in: *
|
||||
// * http://cern.ch/geant4/license *
|
||||
// * *
|
||||
// * Neither the authors of this software system, nor their employing *
|
||||
// * institutes,nor the agencies providing financial support for this *
|
||||
// * work make any representation or warranty, express or implied, *
|
||||
// * regarding this software system or assume any liability for its *
|
||||
// * use. *
|
||||
// * *
|
||||
// * This code implementation is the intellectual property of the *
|
||||
// * GEANT4 collaboration. *
|
||||
// * By copying, distributing or modifying the Program (or any work *
|
||||
// * based on the Program) you indicate your acceptance of this *
|
||||
// * statement, and all its terms. *
|
||||
// ********************************************************************
|
||||
//
|
||||
#ifndef G4UserLimitsForRD_h
|
||||
#define G4UserLimitsForRD_h 1
|
||||
|
||||
#include "globals.hh"
|
||||
#include "G4UserLimits.hh"
|
||||
|
||||
class G4Track;
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4UserLimitsForRD : public G4UserLimits
|
||||
{
|
||||
// class description
|
||||
//
|
||||
// Derived class from G4UserLimits. It is specific for
|
||||
// RDM to select and deselect volumes in which RDM is applied
|
||||
//
|
||||
// class description - end
|
||||
|
||||
public:
|
||||
G4UserLimitsForRD ( const G4String aType="RD") :
|
||||
G4UserLimits (aType)
|
||||
{
|
||||
#ifdef G4VERBOSE
|
||||
if (GetVerboseLevel()>1)
|
||||
G4cerr <<"G4UserLimitsForRD constructor" <<endl;
|
||||
#endif
|
||||
}
|
||||
~G4UserLimitsForRD () {;}
|
||||
|
||||
// G4bool IsRDActive(const G4Track&);
|
||||
};
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user