Import Geant4 9.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 15:58:43 +02:00
parent 96c8bcd0af
commit b79225fb37
7544 changed files with 245407 additions and 91099 deletions
@@ -25,7 +25,7 @@
//
//
// $Id: G4DalitzDecayChannel.hh,v 1.5 2006/06/29 19:22:43 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DecayProducts.hh,v 1.12 2006/06/29 19:22:45 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DecayTable.hh,v 1.9 2006/06/29 19:22:47 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DecayTableMessenger.hh,v 1.8 2006/06/29 19:22:52 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
//---------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DynamicParticle.hh,v 1.18 2007/03/11 07:17:35 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DynamicParticle.icc,v 1.16 2007/03/11 07:17:35 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DynamicParticleFastVector.hh,v 1.4 2006/06/29 19:23:06 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4ElectronOccupancy.hh,v 1.9 2006/06/29 19:23:08 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4HyperNucleiProperties.hh,v 1.1 2007/09/14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4IonTable.hh,v 1.25 2007/09/14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4IonTable.hh,v 1.26 2008/03/20 02:23:30 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -34,6 +34,7 @@
// History: first implementation,
// based on object model of June 27, 98 H.Kurashige
// ------------------------------------------------------------
// added clear() 20 Mar., 08 H.Kurashige
// modified GetIon 02 Aug., 98 H.Kurashige
// added Remove() 06 Nov.,98 H.Kurashige
// add GetNucleusMass 15 Mar. 99 H.Kurashige
@@ -189,6 +190,12 @@ class G4IonTable
void Remove(G4ParticleDefinition* particle);
// Insert/Remove an ion in the table
void clear();
// erase all contents in the list (not delete just remove)
G4int size() const;
// Return number of ions in the table
void DumpTable(const G4String &particle_name = "ALL") const;
// dump information of particles specified by name
@@ -243,6 +250,16 @@ inline G4int G4IonTable::Entries() const
return fIonList->size();
}
inline G4int G4IonTable::size() const
{
return fIonList->size();
}
inline void G4IonTable::clear()
{
fIonList->clear();
}
inline G4ParticleDefinition* G4IonTable::GetParticle(G4int index) const
{
if ( (index >=0 ) && (index < Entries()) ){
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4Ions.hh,v 1.14 2007/03/11 07:17:35 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4Ions.hh,v 1.15 2008/06/08 12:43:19 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -80,7 +80,7 @@ class G4Ions : public G4ParticleDefinition
);
public:
virtual ~G4Ions(){};
virtual ~G4Ions();
G4Ions* IonsDefinition();
G4Ions* Ions();
@@ -25,7 +25,7 @@
//
//
// $Id: G4IsotopeProperty.hh,v 1.5 2007/03/15 06:53:27 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4KL3DecayChannel.hh,v 1.5 2006/06/29 19:23:33 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4MuonDecayChannel.hh,v 1.6 2006/06/29 19:23:35 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4NeutronBetaDecayChannel.hh,v 1.2 2006/06/29 19:23:51 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiProperties.hh,v 1.14 2006/06/29 19:23:54 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4NucleiProperties.hh,v 1.18 2008/10/28 07:12:31 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -53,7 +53,6 @@ class G4NucleiProperties
// G4NucleiProperties is an utility class to provide mass formula of nuclei
// (i.e. it has static member function only)
public:
// Destructor
@@ -65,27 +64,48 @@ public:
public: // With Description
// Calculate Mass Excess of nucleus A,Z
static G4double GetMassExcess(const G4int A, const G4int Z);
// Give mass of nucleus A,Z
static G4double GetNuclearMass(const G4double A, const G4double Z);
static G4double GetAtomicMass(const G4double A, const G4double Z);
static G4double GetBindingEnergy(const G4int A, const G4int Z);
static G4double GetNuclearMass(const G4double A, const G4double Z);
// return 'true' if the nucleus in the stable table
// (i.e.in G4NucleiPropertiesTable)
static bool IsInStableTable(const G4double A, const G4double Z);
// Give binding energy
static G4double GetBindingEnergy(const G4int A, const G4int Z);
static G4double GetBindingEnergy(const G4double A, const G4double Z);
// Calculate Mass Excess of nucleus A,Z
static G4double GetMassExcess(const G4int A, const G4int Z);
static G4double GetMassExcess(const G4double A, const G4double Z);
private:
// hidie methods to enforce using GetNuclearMass
// Give mass of Atom A,Z
static G4double GetAtomicMass(const G4double A, const G4double Z);
private:
static G4double AtomicMass(G4double A, G4double Z);
static G4double BindingEnergy(G4double A, G4double Z);
static G4double MassExcess(G4double A, G4double Z);
// Calculate Mass Excess according to Cameron's liquid drop formula
// static G4double CameronMassExcess(const G4int A, const G4int Z);
private:
// table of orbit electrons mass - binding energy
enum {MaxZ = 120};
static G4double electronMass[MaxZ];
static G4double AtomicMass(G4double A, G4double Z);
static G4double BindingEnergy(G4double A, G4double Z);
static G4double MassExcess(G4double A, G4double Z);
private:
static G4bool isIntialized;
static G4double mass_proton;
static G4double mass_neutron;
static G4double mass_deuteron;
static G4double mass_triton;
static G4double mass_alpha;
static G4double mass_He3;
};
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiPropertiesTable.hh,v 1.13 2006/06/29 19:23:56 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4NucleiPropertiesTable.hh,v 1.14 2008/10/22 12:35:46 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// -------------------------------------------------------------------
// GEANT 4 class file --- Copyright CERN 1997
@@ -66,6 +66,7 @@
// Beta Decay Energy
// Atomic Mass
class G4NucleiProperties;
class G4NucleiPropertiesTable
{
@@ -82,7 +83,11 @@ public:
enum {nEntries = 2931,MaxA = 273};
// Other Operations
public: // With Description
// all methods are private and can be used only by G4NucleiProperties
friend class G4NucleiProperties;
private:
// Operation: GetMassExcess
static G4double GetMassExcess(G4int Z, G4int A);
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiPropertiesTheoreticalTable.hh,v 1.7 2006/06/29 19:23:58 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4NucleiPropertiesTheoreticalTable.hh,v 1.8 2008/10/22 12:35:46 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -45,6 +45,8 @@
#include "globals.hh"
class G4NucleiProperties;
class G4NucleiPropertiesTheoreticalTable
{
private:
@@ -60,8 +62,11 @@ public:
enum {nEntries = 8979, shortTableSize = 137};
// Other Operations
// all methods are private and can be used only by G4NucleiProperties
friend class G4NucleiProperties;
public: // With Description
private: // With Description
// Operation: GetMassExcess
static G4double GetMassExcess(G4int Z, G4int A);
@@ -25,7 +25,7 @@
//
//
// $Id: G4PDGCodeChecker.hh,v 1.9 2007/09/14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleDefinition.hh,v 1.31 2007/03/11 07:17:35 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4ParticleDefinition.hh,v 1.32 2008/03/22 06:03:40 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -79,7 +79,7 @@ class G4ParticleDefinition
// at construction. Most of members seen as arguments of the constructor
// (except last 3 arguments concerning with decay ) are "constant"
// and can not be changed later. (No "SET" methods are available)
// Each type of particle must be constructed as a unique static object
// Each type of particle must be constructed as a unique object
// of special class derived from G4ParticleDefinition.
// see G4ParticleTypes for detail
@@ -25,7 +25,7 @@
//
//
// $Id: G4ParticleDefinition.icc,v 1.12 2007/03/11 07:17:35 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
inline
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleMessenger.hh,v 1.7 2006/06/29 19:24:06 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4ParticleMessenger.hh,v 1.8 2008/06/08 12:43:19 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
//---------------------------------------------------------------
@@ -43,7 +43,9 @@
// /particle/ Paricle control commands.
// Commands :
// select * Select particle
// List * List name of particles.
// list * List name of particles.
// find * find particle by PDG encoding.
// verbose * Set Verbose level of Particle Table
//
// G4ParticlePropertyMessenger
// /particle/property/ Paricle Table control commands.
@@ -51,7 +53,7 @@
// dump * dump particle properties.
// stable * Set stable flag.
// lifetime * Set life time.
// Verbose * Set Verbose level
// verbose * Set Verbose level
//
// G4DecayTableMessenger
// /particle/property/decay/ Decay Table control commands.
@@ -67,6 +69,7 @@
// 08 Jan. 1998, H. Kurashige : new UIcommand
// 08 June 1998, H. Kurashige : remove fProcessManagerMessenger
// 25 Nov. 1998, H. Kurashige : add /particle/find
// 08 Jun. 2008, H. Kurashige : add /particle/verbose
//---------------------------------------------------------------
#ifndef G4ParticleMessenger_h
@@ -104,6 +107,7 @@ class G4ParticleMessenger: public G4UImessenger
G4UIcmdWithAString * listCmd;
G4UIcmdWithAString * selectCmd;
G4UIcmdWithAnInteger * findCmd;
G4UIcmdWithAnInteger * verboseCmd;
G4ParticleTable* theParticleTable;
G4ParticleDefinition* currentParticle;
@@ -25,7 +25,7 @@
//
//
// $Id: G4ParticleMomentum.hh,v 1.6 2006/06/29 19:24:08 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4ParticlePropertyData.hh,v 1.3 2007/03/11 07:17:35 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4ParticlePropertyMessenger.hh,v 1.7 2006/06/29 19:24:14 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
//---------------------------------------------------------------
@@ -24,7 +24,7 @@
// ********************************************************************
//
// $Id: G4ParticlePropertyTable.hh,v 1.4 2006/06/29 19:24:18 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleTable.hh,v 1.19 2007/09/14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4ParticleTable.hh,v 1.21 2008/03/22 06:03:40 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -44,6 +44,7 @@
// modified FindIon/GetIon methods 17 AUg., 99 H.Kurashige
// implement new version for using STL map instaed of RW PtrHashedDictionary
// 28 ct., 99 H.Kurashige
// modified implementation of Remove 21 Mar.,08 H.Kurashige
#ifndef G4ParticleTable_h
#define G4ParticleTable_h 1
@@ -152,26 +153,6 @@ class G4ParticleTable
void DumpTable(const G4String &particle_name = "ALL");
// dump information of particles specified by name
public:
G4ParticleDefinition* Insert(G4ParticleDefinition *particle);
// insert the particle into ParticleTable
// return value is same as particle if successfully inserted
// or pointer to another G4ParticleDefinition object
// which has same name of particle
// or 0 if fail to insert by another reason
protected:
G4ParticleDefinition* Remove(G4ParticleDefinition *particle);
// Remove Particle
G4PTblDictionary* GetDictionary();
const G4String& GetKey(const G4ParticleDefinition *particle) const;
// return key value of the particle (i.e. particle name)
const G4PTblEncodingDictionary* GetEncodingDictionary();
// return the pointer to EncodingDictionary
public: //With Description
G4IonTable* GetIonTable();
@@ -180,15 +161,36 @@ class G4ParticleTable
const G4ShortLivedTable* GetShortLivedTable();
// return the pointer to G4ShortLivedTable object
public: // With Description
G4ParticleDefinition* Insert(G4ParticleDefinition *particle);
// insert the particle into ParticleTable
// return value is same as particle if successfully inserted
// or pointer to another G4ParticleDefinition object
// which has same name of particle
// or 0 if fail to insert by another reason
G4ParticleDefinition* Remove(G4ParticleDefinition *particle);
// Remove the particle from the table (not delete)
void RemoveAllParticles();
// remove all particles from G4ParticleTable
void DeleteAllParticles();
// remove and delete all particles from G4ParticleTable
public:
G4UImessenger* CreateMessenger();
void DeleteMessenger();
// create/delete messenger for the particle table
protected:
void RemoveAllParticles();
// remove all particles from G4ParticleTable and
// delete them if they were created dynamically (i.e. not static objects)
protected:
G4PTblDictionary* GetDictionary();
const G4String& GetKey(const G4ParticleDefinition *particle) const;
// return key value of the particle (i.e. particle name)
const G4PTblEncodingDictionary* GetEncodingDictionary();
// return the pointer to EncodingDictionary
private:
G4int verboseLevel;
@@ -25,7 +25,7 @@
//
//
// $Id: G4ParticleTable.icc,v 1.11 2007/09/14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4ParticleTableIterator.hh,v 1.7 2006/06/29 19:24:36 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4ParticleWithCuts.hh,v 1.19 2006/06/29 19:24:38 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// --------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4PhaseSpaceDecayChannel.hh,v 1.6 2006/06/29 19:24:40 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4PrimaryParticle.hh,v 1.4 2006/09/28 14:29:43 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
@@ -25,7 +25,7 @@
//
//
// $Id: G4PrimaryVertex.hh,v 1.4 2006/07/20 15:14:43 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ShortLivedTable.hh,v 1.12 2006/06/29 19:24:46 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4ShortLivedTable.hh,v 1.13 2008/03/20 02:23:31 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -34,6 +34,7 @@
// History: first implementation,
// based on object model of June 27, 98 H.Kurashige
// ------------------------------------------------------------
// added clear() 20 Mar.,08 H.Kurashige
// added Remove() 06 Nov.,98 H.Kurashige
#ifndef G4ShortLivedTable_h
@@ -74,12 +75,27 @@ class G4ShortLivedTable
// dump information of particles specified by name
G4int Entries() const;
G4bool Contains(const G4ParticleDefinition *particle) const;
void Insert(G4ParticleDefinition* particle);
void Remove(G4ParticleDefinition* particle);
G4ParticleDefinition* GetParticle(G4int index) const;
// return number of particles in the list
protected:
G4bool Contains(const G4ParticleDefinition *particle) const;
// return true if the list contains the specified particle
void Insert(G4ParticleDefinition* particle);
// add the particle in the list
void Remove(G4ParticleDefinition* particle);
// remove the particle (not delete) from the list
G4ParticleDefinition* GetParticle(G4int index) const;
// return the i-th particle in the list
G4int size() const;
// return number of particles in the list
void clear();
// remove all particles (not delete) from the list
protected://Without Description
G4int GetVerboseLevel() const;
private:
@@ -101,6 +117,15 @@ inline G4int G4ShortLivedTable::Entries() const
return fShortLivedList->size();
}
inline G4int G4ShortLivedTable::size() const
{
return fShortLivedList->size();
}
inline void G4ShortLivedTable::clear()
{
fShortLivedList->clear();
}
inline
G4ParticleDefinition* G4ShortLivedTable::GetParticle(G4int index) const
@@ -25,7 +25,7 @@
//
//
// $Id: G4TauLeptonicDecayChannel.hh,v 1.2 2006/06/29 19:24:48 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4VDecayChannel.hh,v 1.12 2006/06/29 19:24:50 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4VIsotopeTable.hh,v 1.6 2006/06/29 19:24:52 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4VUserPrimaryParticleInformation.hh,v 1.2 2006/06/29 19:24:54 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
//---------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4VUserPrimaryVertexInformation.hh,v 1.2 2006/06/29 19:24:56 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
//---------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DalitzDecayChannel.cc,v 1.8 2006/06/29 19:24:58 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DecayProducts.cc,v 1.16 2007/10/06 06:49:29 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DecayTable.cc,v 1.8 2006/06/29 19:25:02 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DecayTableMessenger.cc,v 1.6 2006/06/29 19:25:04 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
//---------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4DynamicParticle.cc,v 1.25 2007/03/11 07:17:35 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// --------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4ElectronOccupancy.cc,v 1.9 2006/06/29 19:25:24 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ----------------------------------------------------------------------
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HyperNucleiProperties.cc,v 1.3 2007/12/10 16:30:47 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4HyperNucleiProperties.cc,v 1.4 2008/10/22 12:35:46 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// ------------------------------------------------------------
// GEANT 4 class header file
@@ -100,8 +100,6 @@ G4double G4HyperNucleiProperties::GetNuclearMass(G4int A, G4int Z, G4int L)
G4double G4HyperNucleiProperties::GetAtomicMass(G4int A, G4int Z, G4int L)
{
if (L==0) return G4NucleiProperties::GetAtomicMass(A,Z);
if (A < 1 || Z < 0 || Z > A-L || L > A || L <0 ) {
#ifdef G4VERBOSE
if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) {
+29 -20
View File
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4IonTable.cc,v 1.48 2007/11/14 02:23:03 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4IonTable.cc,v 1.53 2008/10/15 02:41:37 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// --------------------------------------------------------------
@@ -80,8 +80,8 @@ G4IonTable::~G4IonTable()
delete fIsotopeTable;
}
fIsotopeTableList->clear();
delete fIsotopeTableList;
}
delete fIsotopeTableList;
fIsotopeTableList =0;
@@ -614,23 +614,38 @@ G4bool G4IonTable::IsLightIon(G4ParticleDefinition* particle) const
G4ParticleDefinition* G4IonTable::GetLightIon(G4int Z, G4int A) const
{
// returns pointer to pre-defined ions
static G4bool isInitialized = false;
static G4ParticleDefinition* p_proton=0;
static G4ParticleDefinition* p_neutron=0;
static G4ParticleDefinition* p_deuteron=0;
static G4ParticleDefinition* p_triton=0;
static G4ParticleDefinition* p_alpha=0;
static G4ParticleDefinition* p_He3=0;
if (!isInitialized) {
p_proton = G4ParticleTable::GetParticleTable()->FindParticle("proton"); // proton
p_neutron = G4ParticleTable::GetParticleTable()->FindParticle("neutron"); // neutron
p_deuteron = G4ParticleTable::GetParticleTable()->FindParticle("deuteron"); // deuteron
p_triton = G4ParticleTable::GetParticleTable()->FindParticle("triton"); // tritoon
p_alpha = G4ParticleTable::GetParticleTable()->FindParticle("alpha"); // alpha
p_He3 = G4ParticleTable::GetParticleTable()->FindParticle("He3"); // He3
isInitialized = true;
}
G4ParticleDefinition* ion=0;
if ( (Z<=2) ) {
if ( (Z==1)&&(A==1) ) {
ion = G4ParticleTable::GetParticleTable()->FindParticle("proton"); // proton
ion = p_proton;
} else if ( (Z==0)&&(A==1) ) {
ion = G4ParticleTable::GetParticleTable()->FindParticle("neutron"); // neutron
ion = p_neutron;
} else if ( (Z==1)&&(A==2) ) {
ion = G4ParticleTable::GetParticleTable()->FindParticle("deuteron"); // deuteron
ion = p_deuteron;
} else if ( (Z==1)&&(A==3) ) {
ion = G4ParticleTable::GetParticleTable()->FindParticle("triton"); // tritoon
ion = p_triton;
} else if ( (Z==2)&&(A==4) ) {
ion = G4ParticleTable::GetParticleTable()->FindParticle("alpha"); // alpha
ion = p_alpha;
} else if ( (Z==2)&&(A==3) ) {
ion = G4ParticleTable::GetParticleTable()->FindParticle("He3"); // He3
ion = p_He3;
}
}
return ion;
@@ -685,13 +700,6 @@ void G4IonTable::Insert(G4ParticleDefinition* particle)
{
if (IsIon(particle)) {
fIonList->push_back(particle);
} else {
//#ifdef G4VERBOSE
//if (GetVerboseLevel()>1) {
// G4cout << "G4IonTable::Insert :" << particle->GetParticleName() ;
// G4cout << " is not ions" << G4endl;
//}
//#endif
}
}
@@ -703,17 +711,18 @@ void G4IonTable::Remove(G4ParticleDefinition* particle)
for (idx = fIonList->begin(); idx!= fIonList->end(); ++idx) {
if ( particle == *idx) {
fIonList->erase(idx);
break;
}
}
} else {
#ifdef G4VERBOSE
if (GetVerboseLevel()>0) {
if (GetVerboseLevel()>1) {
G4cout << "G4IonTable::Remove :" << particle->GetParticleName() ;
G4cout << " is not ions" << G4endl;
}
#endif
}
}
+12 -2
View File
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4Ions.cc,v 1.12 2007/03/11 07:17:35 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4Ions.cc,v 1.13 2008/06/08 12:43:19 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ----------------------------------------------------------------------
@@ -67,8 +67,18 @@ G4Ions::G4Ions(
SetAtomicNumber( G4int(GetPDGCharge()/eplus) );
SetAtomicMass( GetBaryonNumber() );
//G4cout << "G4Ions::" << GetParticleName() << G4endl;
}
G4Ions::~G4Ions()
{
//G4cout << "G4Ions::" << GetParticleName() << G4endl;
}
G4Ions* G4Ions::IonsDefinition()
{
return this;
@@ -25,7 +25,7 @@
//
//
// $Id: G4IsotopeProperty.cc,v 1.7 2007/03/16 05:25:08 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ----------------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4KL3DecayChannel.cc,v 1.8 2006/06/29 19:25:32 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4MuonDecayChannel.cc,v 1.17 2006/06/29 19:25:34 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4NeutronBetaDecayChannel.cc,v 1.7 2006/06/29 19:25:38 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiProperties.cc,v 1.13 2007/09/14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4NucleiProperties.cc,v 1.18 2008/11/06 13:17:36 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -42,7 +42,15 @@
#include "G4NucleiProperties.hh"
G4bool G4NucleiProperties::isIntialized = false;
G4double G4NucleiProperties::mass_proton = -1.;
G4double G4NucleiProperties::mass_neutron = -1.;
G4double G4NucleiProperties::mass_deuteron = -1.;
G4double G4NucleiProperties::mass_triton = -1.;
G4double G4NucleiProperties::mass_alpha = -1.;
G4double G4NucleiProperties::mass_He3 = -1.;
G4double G4NucleiProperties::electronMass[MaxZ];
G4double G4NucleiProperties::AtomicMass(G4double A, G4double Z)
{
@@ -75,6 +83,28 @@ G4double G4NucleiProperties::BindingEnergy(G4double A, G4double Z)
G4double G4NucleiProperties::GetNuclearMass(const G4double A, const G4double Z)
{
if (!isIntialized) {
isIntialized = true;
G4ParticleDefinition * nucleus = 0;
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("proton"); // proton
if (nucleus!=0) mass_proton = nucleus->GetPDGMass();
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("neutron"); // neutron
if (nucleus!=0) mass_neutron = nucleus->GetPDGMass();
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("deuteron"); // deuteron
if (nucleus!=0) mass_deuteron = nucleus->GetPDGMass();
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("triton"); // triton
if (nucleus!=0) mass_triton = nucleus->GetPDGMass();
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("alpha"); // alpha
if (nucleus!=0) mass_alpha = nucleus->GetPDGMass();
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("He3"); // He3
if (nucleus!=0) mass_He3 = nucleus->GetPDGMass();
for (int iz=1; iz<MaxZ; iz+=1){
electronMass[iz] = iz*electron_mass_c2
- 1.433e-5*MeV*std::pow(G4double(iz),2.39); ;
}
}
if (A < 1 || Z < 0 || Z > A) {
#ifdef G4VERBOSE
if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) {
@@ -84,133 +114,58 @@ G4double G4NucleiProperties::GetNuclearMass(const G4double A, const G4double Z)
#endif
return 0.0;
} else {
G4ParticleDefinition * nucleus = 0;
G4double mass= -1.;
if ( (Z<=2) ) {
if ( (Z==1)&&(A==1) ) {
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("proton"); // proton
mass = mass_proton;
} else if ( (Z==0)&&(A==1) ) {
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("neutron"); // neutron
mass = mass_neutron;
} else if ( (Z==1)&&(A==2) ) {
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("deuteron"); // deuteron
mass = mass_deuteron;
} else if ( (Z==1)&&(A==3) ) {
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("triton"); // triton
mass = mass_triton;
} else if ( (Z==2)&&(A==4) ) {
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("alpha"); // alpha
mass = mass_alpha;
} else if ( (Z==2)&&(A==3) ) {
nucleus = G4ParticleTable::GetParticleTable()->FindParticle("He3"); // He3
mass = mass_He3;
}
}
if (nucleus!=0) {
return nucleus->GetPDGMass();
}else {
return GetAtomicMass(A,Z) - Z*electron_mass_c2 + 1.433e-5*MeV*std::pow(Z,2.39);
if (mass < 0.) {
if (Z >= MaxZ) {
mass = GetAtomicMass(A,Z) - Z*electron_mass_c2 + 1.433e-5*MeV*std::pow(Z,2.39);
} else {
mass = GetAtomicMass(A,Z) - electronMass[G4int(Z)];
}
}
if (mass < 0.) mass = 0.0;
return mass;
}
}
G4bool G4NucleiProperties::IsInStableTable(const G4double A, const G4double Z)
{
if (Z < 0 || Z > A) {
#ifdef G4VERBOSE
if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>0) {
G4cout << "G4NucleiProperties::IsInStableTable: Wrong values for A = "
<< A << " and Z = " << Z << G4endl;
}
#endif
return false;
// G4double G4NucleiProperties::CameronMassExcess(const G4int A, const G4int Z)
// {
// const G4double alpha = -17.0354*MeV;
// const G4double beta = -31.4506*MeV;
// const G4double phi = 44.2355*MeV;
// const G4double gamma = 25.8357*MeV;
//
// const G4double A13 = std::pow(G4double(A),1.0/3.0);
// const G4double A23 = A13*A13;
// const G4double A43 = A23*A23;
// const G4double Z43 = std::pow(G4double(Z),4.0/3.0);
// G4double D = (G4double(A) - 2.0*G4double(Z))/G4double(A);
// D *= D; // D = std::pow((A-2Z)/A,2)
//
//
// // Surface term
// G4double SurfaceEnergy = (gamma - phi*D)*(1.0 - 0.62025/A23)*(1.0 - 0.62025/A23)*A23;
//
// // Coulomb term
// G4double CoulombEnergy = 0.779*MeV*(G4double(Z*(Z-1))/A13)*(1.0-1.5849/A23+1.2273/A+1.5772/A43);
//
// // Exchange term
// G4double ExchangeEnergy = -0.4323*MeV*(Z43/A13)*(1.0-0.57811/A13-0.14518/A23+0.49597/A);
//
// // Volume term
// G4double VolumeEnergy = G4double(A)*(alpha-beta*D);
//
// // Shell+Pairing corrections for protons
// G4double SPcorrectionZ;
// if (Z <= TableSize) SPcorrectionZ = SPZTable[Z-1]*MeV;
// else SPcorrectionZ = 0.0;
//
// // Shell+Pairing corrections for protons
// G4int N = A - Z;
// G4double SPcorrectionN;
// if (N <= TableSize) SPcorrectionN = SPNTable[N-1]*MeV;
// else SPcorrectionN = 0.0;
//
//
// // Mass Excess
// // First two terms give the mass excess of the neutrons and protons in the nucleus
// // (see Cameron, Canadian Journal of Physics, 35, 1957 page 1022)
// G4double MassExcess = 8.367*MeV*A - 0.783*MeV*Z +
// SurfaceEnergy + CoulombEnergy + ExchangeEnergy + VolumeEnergy +
// SPcorrectionZ + SPcorrectionN;
//
// return MassExcess;
// }
// S(Z)+P(Z) from Tab. 1 from A.G.W. Cameron, Canad. J. Phys., 35(1957)1021
// or Delta M(Z) from Tab. 97 of book [1]
// const G4double G4NucleiProperties::SPZTable[TableSize] = {
// 20.80, 15.80, 21.00, 16.80, 19.80, 16.50, 18.80, 16.50, 18.50, 17.20, // 1 - 10
// 18.26, 15.05, 16.01, 12.04, 13.27, 11.09, 12.17, 10.26, 11.04, 8.41, // 11 - 20
// 9.79, 7.36, 8.15, 5.63, 5.88, 3.17, 3.32, .82, 1.83, .97, // 21 - 30
// 2.33, 1.27, 2.92, 1.61, 2.91, 1.35, 2.40, .89, 1.74, .36, // 31
// 0.95, -0.65, -0.04, -1.73, -0.96, -2.87, -2.05, -4.05, -3.40, -5.72, // 41
// -3.75, -4.13, -2.42, -2.85, -1.01, -1.33, 0.54, -0.02, 1.74, 0.75, // 51
// 2.24, 1.00, 1.98, 0.79, 1.54, 0.39, 1.08, 0.00, 0.78, -0.35, // 61
// 0.58, -0.55, 0.59, -0.61, 0.59, -0.35, 0.32, -0.96, -0.52, -2.08, // 71
// -2.46, -3.64, -1.55, -0.96, 0.97, 0.88, 2.37, 1.75, 2.72, 1.90, // 81
// 2.55, 1.46, 1.93, 0.86, 1.17, 0.08, 0.39, -0.76, -0.39, -1.51, // 91 - 100
// -1.17, -2.36, -1.95, -3.06, -2.62, -3.55, -2.95, -3.75, -3.07, -3.79, // 101 - 110
// -3.06, -3.77, -3.05, -3.78, -3.12, -3.90, -3.35, -4.24, -3.86, -4.92, // 111 - 120
// -5.06, -6.77, -7.41, -9.18,-10.16,-11.12, -9.76, -9.23, -7.96, -7.65, // 121 - 130
// // --------- from this point there are not tabulated values -----------------------
// 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, // 131 - 140
// 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, // 141 - 150
// 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, // 151
// 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, // 161
// 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, // 171
// 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, // 181
// 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00, 0.00 // 191 - 200
// };
// S(N)+P(N) from Tab. 1 from A.G.W. Cameron, Canad. J. Phys., 35(1957)1021
// or Delta M(N) from Tab. 97 of book [1]
// const G4double G4NucleiProperties::SPNTable[TableSize] = {
// -8.40,-12.90, -8.00, 11.90, -9.20,-12.50,-10.80,-13.60,-11.20,-12.20, // 1 - 10
// -12.81,-15.40,-13.07,-15.80,-13.81,-14.98,-12.63,-13.76,-11.37,-12.38, // 11 - 20
// -9.23, -9.65, -7.64, -9.17, -8.05, -9.72, -8.87,-10.76, -8.64, -8.89, // 21 - 30
// -6.60, -7.13, -4.77, -5.33, -3.06, -3.79, -1.72, -2.79, -0.93, -2.19, // 31
// -0.52, -1.90, -0.45, -2.20, -1.22, -3.07, -2.42, -4.37, -3.94, -6.08, // 41
// -4.49, -4.50, -3.14, -2.93, -1.04, -1.36, 0.69, 0.21, 2.11, 1.33, // 51
// 3.29, 2.46, 4.30, 3.32, 4.79, 3.62, 4.97, 3.64, 4.63, 3.07, // 61
// 4.06, 2.49, 3.30, 1.46, 2.06, 0.51, 0.74, -1.18, -1.26, -3.54, // 71
// -3.97, -5.26, -4.18, -3.71, -2.10, -1.70, -0.08, -0.18, 0.94, 0.27, // 81
// 1.13, 0.08, 0.91, -0.31, 0.49, -0.78, 0.08, -1.15, -0.23, -1.41, // 91 - 100
// -0.42, -1.55, -0.55, -1.66, -0.66, -1.73, -0.75, -1.74, -0.78, -1.69, // 101 - 110
// -0.78, -1.60, -0.75, -1.46, -0.67, -1.26, -0.51, -1.04, -0.53, -1.84, // 111 - 120
// -2.42, -4.52, -4.76, -6.33, -6.76, -7.81, -5.80, -5.37, -3.63, -3.35, // 121 - 130
// -1.75, -1.88, -0.61, -0.90, 0.09, -0.32, 0.55, -0.13, 0.70, -0.06, // 131 - 140
// 0.49, -0.20, 0.40, -0.22, 0.36, -0.09, 0.58, 0.12, 0.75, 0.15, // 141 - 150
// 0.70, 0.17, 1.11, 0.89, 1.85, 1.62, 2.54, 2.29, 3.20, 2.91, // 151
// 3.84, 3.53, 4.48, 4.15, 5.12, 4.78, 5.75, 5.39, 6.31, 5.91, // 161
// 6.87, 6.33, 7.13, 6.61, 7.30, 6.31, 6.27, 4.83, 4.49, 2.85, // 171
// 2.32, 0.58, -0.11, -0.98, 0.81, 1.77, 3.37, 4.13, 5.60, 6.15, // 181
// 7.29, 7.35, 7.95, 7.67, 8.16, 7.83, 8.31, 8.01, 8.53, 8.27 // 191 - 200
// };
} else {
G4int iA = G4int(A);
G4int iZ = G4int(Z);
return G4NucleiPropertiesTable::IsInTable(iZ,iA);
}
}
G4double G4NucleiProperties::GetMassExcess(const G4double A, const G4double Z)
{
G4int iA = G4int(A);
G4int iZ = G4int(Z);
return GetMassExcess(iA,iZ);
}
G4double G4NucleiProperties::GetMassExcess(const G4int A, const G4int Z)
{
@@ -264,6 +219,13 @@ G4double G4NucleiProperties::GetAtomicMass(const G4double A, const G4double Z)
}
}
G4double G4NucleiProperties::GetBindingEnergy(const G4double A, const G4double Z)
{
G4int iA = G4int(A);
G4int iZ = G4int(Z);
return GetBindingEnergy(iA,iZ);
}
G4double G4NucleiProperties::GetBindingEnergy(const G4int A, const G4int Z)
{
if (A < 1 || Z < 0 || Z > A) {
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiPropertiesTableA.cc,v 1.10 2006/06/29 19:25:42 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4NucleiPropertiesTableA.cc,v 1.11 2008/10/23 13:34:59 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// -------------------------------------------------------------------
// GEANT 4 class file --- Copyright CERN 1997
@@ -107,8 +107,6 @@ G4double G4NucleiPropertiesTable::GetNuclearMass(G4int Z, G4int A)
}
G4double G4NucleiPropertiesTable::GetMassExcess(G4int Z, G4int A)
{
G4int i=GetIndex(Z, A);
@@ -25,7 +25,7 @@
//
//
// $Id: G4NucleiPropertiesTableB.cc,v 1.9 2006/06/29 19:25:44 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
// -------------------------------------------------------------------
// GEANT 4 class implementation file
@@ -25,7 +25,7 @@
//
//
// $Id: G4NucleiPropertiesTheoreticalTableA.cc,v 1.8 2006/06/29 19:25:46 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4PDGCodeChecker.cc,v 1.10 2007/11/14 02:22:08 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4PDGCodeChecker.cc,v 1.11 2008/06/08 12:43:19 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ----------------------------------------------------------------------
@@ -44,7 +44,7 @@
G4PDGCodeChecker::G4PDGCodeChecker()
{
code = 0;
verboseLevel = 3;
verboseLevel = 1;
}
/////////////
@@ -100,7 +100,7 @@ G4int G4PDGCodeChecker::CheckForBaryons()
if ((quark1==0)||(quark2==0)||(quark3==0)){
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckPDGCode : ";
G4cout << " meson has three quark ";
G4cout << " PDG code=" << code <<G4endl;
@@ -160,7 +160,7 @@ G4int G4PDGCodeChecker::CheckForBaryons()
// check quark flavor
if ((quark1<quark2)||(quark2<quark3)||(quark1<quark3)) {
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckPDGCode : ";
G4cout << " illegal code for baryon ";
G4cout << " PDG code=" << code <<G4endl;
@@ -170,7 +170,7 @@ G4int G4PDGCodeChecker::CheckForBaryons()
}
if (quark1> NumberOfQuarkFlavor) {
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckPDGCode : ";
G4cout << " ??? unknown quark ";
G4cout << " PDG code=" << code <<G4endl;
@@ -210,7 +210,7 @@ G4int G4PDGCodeChecker::CheckForMesons()
//
if ((quark1 !=0)||(quark2==0)||(quark3==0)){
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckPDGCode : ";
G4cout << " meson has only quark and anti-quark pair";
G4cout << " PDG code=" << code <<G4endl;
@@ -220,7 +220,7 @@ G4int G4PDGCodeChecker::CheckForMesons()
}
if (quark2<quark3) {
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckPDGCode : ";
G4cout << " illegal code for meson ";
G4cout << " PDG code=" << code <<G4endl;
@@ -232,7 +232,7 @@ G4int G4PDGCodeChecker::CheckForMesons()
// check quark flavor
if (quark2> NumberOfQuarkFlavor){
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckPDGCode : ";
G4cout << " ??? unknown quark ";
G4cout << " PDG code=" << code <<G4endl;
@@ -281,7 +281,7 @@ G4int G4PDGCodeChecker::CheckForDiQuarks()
} else if (quark2>NumberOfQuarkFlavor){
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckPDGCode : ";
G4cout << " ??? unknown quark ";
G4cout << " PDG code=" << code <<G4endl;
@@ -308,7 +308,7 @@ G4int G4PDGCodeChecker::CheckForQuarks()
{
if ( std::abs(quark1)>NumberOfQuarkFlavor ) {
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckPDGCode : ";
G4cout << " ??? unknown quark ";
G4cout << " PDG code=" << code <<G4endl;
@@ -344,7 +344,7 @@ G4bool G4PDGCodeChecker::CheckCharge(G4double thePDGCharge) const
if (std::abs(totalCharge-thePDGCharge)>0.1*eplus) {
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckCharge : ";
G4cout << " illegal electric charge " << thePDGCharge/eplus;
G4cout << " PDG code=" << code <<G4endl;
@@ -373,7 +373,7 @@ G4int G4PDGCodeChecker::CheckForNuclei()
if (A < 2 || Z > A-L || L>A || Z<=0 ) {
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckPDGCode : ";
G4cout << " ??? Illegal PDG encoding for nucleus ";
G4cout << " PDG code=" << code <<G4endl;
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleDefinition.cc,v 1.30 2007/11/14 02:22:08 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4ParticleDefinition.cc,v 1.31 2008/06/08 12:43:19 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// --------------------------------------------------------------
@@ -112,6 +112,9 @@ G4ParticleDefinition::G4ParticleDefinition(
// check name and register this particle into ParticleTable
theParticleTable = G4ParticleTable::GetParticleTable();
theParticleTable->Insert(this);
//set verboseLevel equal to ParticleTable
verboseLevel = theParticleTable->GetVerboseLevel();
if (anti_encoding !=0) theAntiPDGEncoding = anti_encoding;
@@ -179,6 +182,7 @@ G4int G4ParticleDefinition::FillQuarkContents()
}
G4PDGCodeChecker checker;
checker.SetVerboseLevel(verboseLevel);
G4int temp = checker.CheckPDGCode(thePDGEncoding, theParticleType);
@@ -192,7 +196,7 @@ G4int G4ParticleDefinition::FillQuarkContents()
if (!checker.CheckCharge(thePDGCharge) ){
temp = 0;
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << "G4ParticleDefinition::FillQuarkContents : ";
G4cout << " illegal charge (" << thePDGCharge/eplus;
G4cout << " PDG code=" << thePDGEncoding <<G4endl;
@@ -203,7 +207,7 @@ G4int G4ParticleDefinition::FillQuarkContents()
if (checker.GetSpin() != thePDGiSpin) {
temp=0;
#ifdef G4VERBOSE
if (verboseLevel>1) {
if (verboseLevel>0) {
G4cout << "G4ParticleDefinition::FillQuarkContents : ";
G4cout << " illegal SPIN (" << thePDGiSpin << "/2";
G4cout << " PDG code=" << thePDGEncoding <<G4endl;
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleMessenger.cc,v 1.9 2007/03/15 06:53:27 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4ParticleMessenger.cc,v 1.10 2008/06/08 12:43:19 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
//---------------------------------------------------------------
@@ -89,6 +89,16 @@ G4ParticleMessenger::G4ParticleMessenger(G4ParticleTable* pTable)
findCmd->SetDefaultValue(0);
findCmd->SetParameterName("encoding", false);
// -- particle/property/Verbose ---
verboseCmd = new G4UIcmdWithAnInteger("/particle/verbose",this);
verboseCmd->SetGuidance("Set Verbose level of particle table.");
verboseCmd->SetGuidance(" 0 : Silent (default)");
verboseCmd->SetGuidance(" 1 : Display warning messages");
verboseCmd->SetGuidance(" 2 : Display more");
verboseCmd->SetParameterName("verbose_level",true);
verboseCmd->SetDefaultValue(0);
verboseCmd->SetRange("verbose_level >=0");
currentParticle = 0;
//UI messenger for Particle Properties
@@ -99,10 +109,13 @@ G4ParticleMessenger::G4ParticleMessenger(G4ParticleTable* pTable)
G4ParticleMessenger::~G4ParticleMessenger()
{
delete fParticlePropertyMessenger;
delete listCmd;
delete selectCmd;
delete thisDirectory;
delete findCmd;
delete verboseCmd;
delete thisDirectory;
}
@@ -153,6 +166,9 @@ void G4ParticleMessenger::SetNewValue(G4UIcommand * command,G4String newValues)
G4cout << tmp->GetParticleName() << G4endl;
tmp->DumpTable();
}
} else if( command==verboseCmd ) {
//Commnad /particle/verbose
theParticleTable->SetVerboseLevel(verboseCmd->GetNewIntValue(newValues));
}
}
@@ -178,6 +194,9 @@ G4String G4ParticleMessenger::GetCurrentValue(G4UIcommand * command)
} else {
return currentParticle->GetParticleName();
}
} else if( command==verboseCmd ){
//Commnad /particle/verbose
return verboseCmd->ConvertToString(theParticleTable->GetVerboseLevel());
}
return "";
}
@@ -25,7 +25,7 @@
//
//
// $Id: G4ParticlePropertyMessenger.cc,v 1.7 2006/06/29 19:25:59 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
//---------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleTable.cc,v 1.29 2007/10/06 06:49:29 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4ParticleTable.cc,v 1.33 2008/06/08 12:55:45 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
// class G4ParticleTable
//
@@ -56,10 +56,9 @@
#include "G4IonTable.hh"
#include "G4ShortLivedTable.hh"
////////////////////
G4ParticleTable::G4ParticleTable()
:verboseLevel(0),fParticleMessenger(0),
:verboseLevel(1),fParticleMessenger(0),
noName(" "),
readyToUse(false)
{
@@ -99,11 +98,12 @@ G4ParticleTable::~G4ParticleTable()
}
if(fDictionary){
if (fIterator!=0 )delete fIterator;
fIterator =0;
fDictionary->clear();
delete fDictionary;
fDictionary =0;
if (fIterator!=0 )delete fIterator;
fIterator =0;
}
if (fParticleMessenger!=0) delete fParticleMessenger;
@@ -155,10 +155,34 @@ void G4ParticleTable::DeleteMessenger()
//UI messenger
delete fParticleMessenger;
fParticleMessenger= 0;
// remove all items from G4ParticleTable
// temporaly comment out
// RemoveAllParticles();
}
}
////////////////////
void G4ParticleTable::DeleteAllParticles()
{
#ifdef G4VERBOSE
if (verboseLevel>1){
G4cout << "G4ParticleTable::DeleteAllParticles() " << G4endl;
}
#endif
// delete all particles
G4PTblDicIterator *piter = fIterator;
piter -> reset();
while( (*piter)() ){
#ifdef G4VERBOSE
if (verboseLevel>2){
G4cout << "Delete " << (piter->value())->GetParticleName()
<< " " << (piter->value()) << G4endl;
}
#endif
delete (piter->value());
}
RemoveAllParticles();
}
////////////////////
@@ -170,42 +194,26 @@ void G4ParticleTable::RemoveAllParticles()
G4cout << "G4ParticleTable::RemoveAllParticles() " << G4endl;
}
#endif
// delete all particles
G4PTblDicIterator *piter = fIterator;
piter -> reset();
while( (*piter)() ){
delete (piter->value());
}
//delete Ion Table and contents
//remove all contnts in Ion Table
if (fIonTable!=0) {
delete fIonTable;
fIonTable = 0;
fIonTable->clear();
}
// delete Short Lived table and contents
// remomve all contents in hort Lived table
if (fShortLivedTable!=0) {
delete fShortLivedTable;
fShortLivedTable = 0;
fShortLivedTable->clear();
}
// delete dictionary for encoding
if (fEncodingDictionary)
{
// clear dictionary for encoding
if (fEncodingDictionary) {
fEncodingDictionary->clear();
delete fEncodingDictionary;
fEncodingDictionary = 0;
}
}
// delete dictionary
if (fDictionary)
{
if (fIterator!=0 )delete fIterator;
fIterator =0;
fDictionary->clear();
delete fDictionary;
fDictionary = 0;
}
// clear dictionary
if (fDictionary) {
fDictionary->clear();
}
}
////////////////////
@@ -238,11 +246,13 @@ G4ParticleDefinition* G4ParticleTable::Insert(G4ParticleDefinition *particle)
G4PTblDictionary *pdic = fDictionary;
G4PTblEncodingDictionary *pedic = fEncodingDictionary;
(*pdic)[GetKey(particle)] = particle;
// insert into Dictionary
pdic->insert( std::pair<G4String, G4ParticleDefinition*>(GetKey(particle), particle) );
// insert into EncodingDictionary
G4int code = particle->GetPDGEncoding();
if (code !=0 ) {
(*pedic)[code] = particle;
pedic->insert( std::pair<G4int, G4ParticleDefinition*>(code ,particle) );
}
// insert it in IonTable if "nucleus"
@@ -255,6 +265,16 @@ G4ParticleDefinition* G4ParticleTable::Insert(G4ParticleDefinition *particle)
fShortLivedTable->Insert(particle);
}
// set Verbose Level same as ParticleTable
particle->SetVerboseLevel(verboseLevel);
#ifdef G4VERBOSE
if (verboseLevel>3){
G4cout << "The particle "<< particle->GetParticleName()
<< " is inserted in the ParticleTable " << G4endl;
}
#endif
return particle;
}
}
@@ -285,6 +305,14 @@ G4ParticleDefinition* G4ParticleTable::Remove(G4ParticleDefinition* particle)
if (particle->IsShortLived() ){
fShortLivedTable->Remove(particle);
}
#ifdef G4VERBOSE
if (verboseLevel>3){
G4cout << "The particle "<< particle->GetParticleName()
<< " is removed from the ParticleTable " << G4endl;
}
#endif
return particle;
}
@@ -351,9 +379,9 @@ G4ParticleDefinition* G4ParticleTable::GetParticle(G4int index)
if ( counter == index ) return piter->value();
counter++;
}
}
}
#ifdef G4VERBOSE
if (verboseLevel>0){
if (verboseLevel>1){
G4cout << " G4ParticleTable::GetParticle";
G4cout << " invalid index (=" << index << ")" << G4endl;
}
@@ -364,7 +392,7 @@ G4ParticleDefinition* G4ParticleTable::GetParticle(G4int index)
////////////////////
G4ParticleDefinition* G4ParticleTable::FindParticle(const G4ParticleDefinition *particle)
{
CheckReadiness();
CheckReadiness();
G4String key = GetKey(particle);
return FindParticle(key);
}
@@ -376,13 +404,13 @@ G4ParticleDefinition* G4ParticleTable::FindParticle(G4int aPDGEncoding )
// check aPDGEncoding is valid
if (aPDGEncoding == 0){
#ifdef G4VERBOSE
if (verboseLevel>0){
if (verboseLevel>1){
G4cout << "PDGEncoding [" << aPDGEncoding << "] is not valid " << G4endl;
}
#endif
return 0;
}
G4PTblEncodingDictionary *pedic = fEncodingDictionary;
G4ParticleDefinition* particle =0;
@@ -392,7 +420,7 @@ G4ParticleDefinition* G4ParticleTable::FindParticle(G4int aPDGEncoding )
}
#ifdef G4VERBOSE
if ((particle == 0) && (verboseLevel>0) ){
if ((particle == 0) && (verboseLevel>1) ){
G4cout << "CODE:" << aPDGEncoding << " does not exist in ParticleTable " << G4endl;
}
#endif
@@ -445,3 +473,4 @@ void G4ParticleTable::CheckReadiness()
@@ -25,7 +25,7 @@
//
//
// $Id: G4PhaseSpaceDecayChannel.cc,v 1.13 2007/10/06 06:49:29 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4PrimaryParticle.cc,v 1.5 2007/10/06 06:49:29 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
#include "G4PrimaryParticle.hh"
@@ -25,7 +25,7 @@
//
//
// $Id: G4PrimaryVertex.cc,v 1.4 2007/10/06 06:49:29 kurasige Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
#include "G4PrimaryVertex.hh"
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ShortLivedTable.cc,v 1.14 2006/06/29 19:26:16 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// $Id: G4ShortLivedTable.cc,v 1.16 2008/06/08 12:55:45 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// --------------------------------------------------------------
@@ -88,11 +88,12 @@ void G4ShortLivedTable::Remove(G4ParticleDefinition* particle)
for (idx = fShortLivedList->begin(); idx!= fShortLivedList->end(); ++idx) {
if ( particle == *idx) {
fShortLivedList->erase(idx);
break;
}
}
} else {
#ifdef G4VERBOSE
if (GetVerboseLevel()>0) {
if (GetVerboseLevel()>1) {
G4cout << "G4ShortLivedTable::Remove :" << particle->GetParticleName() ;
G4cout << " is not short lived" << G4endl;
}
@@ -25,7 +25,7 @@
//
//
// $Id: G4TauLeptonicDecayChannel.cc,v 1.5 2006/06/29 19:26:18 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4VDecayChannel.cc,v 1.18 2006/06/29 19:26:20 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
// ------------------------------------------------------------
@@ -25,7 +25,7 @@
//
//
// $Id: G4VUserPrimaryParticleInformation.cc,v 1.2 2006/06/29 19:26:22 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
#include "G4VUserPrimaryParticleInformation.hh"
G4VUserPrimaryParticleInformation::G4VUserPrimaryParticleInformation() {;}
@@ -25,7 +25,7 @@
//
//
// $Id: G4VUserPrimaryVertexInformation.cc,v 1.2 2006/06/29 19:26:24 gunter Exp $
// GEANT4 tag $Name: geant4-09-01 $
// GEANT4 tag $Name: geant4-09-02 $
//
//
//---------------------------------------------------------------