Import Geant4 9.5.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 16:46:55 +02:00
parent 89a9605df1
commit b1eb5424d2
10957 changed files with 888481 additions and 160139 deletions
+1 -1
View File
@@ -7,7 +7,7 @@
#
# Generated on : 24/9/2010
#
# $Id: CMakeLists.txt,v 1.1 2010/09/29 18:49:00 bmorgan Exp $
# $Id: CMakeLists.txt,v 1.1 2010-09-29 18:49:00 bmorgan Exp $
#
#------------------------------------------------------------------------------
+1 -1
View File
@@ -1,4 +1,4 @@
# $Id: GNUmakefile,v 1.8 2010/10/27 07:47:04 gcosmo Exp $
# $Id: GNUmakefile,v 1.8 2010-10-27 07:47:04 gcosmo Exp $
# ----------------------------------------------------------------
# GNUmakefile for particle management library. G.Cosmo, 4/4/97.
# ----------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DalitzDecayChannel.hh,v 1.5 2006/06/29 19:22:43 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4DalitzDecayChannel.hh,v 1.5 2006-06-29 19:22:43 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -57,6 +57,14 @@ class G4DalitzDecayChannel :public G4VDecayChannel
// Destructor
virtual ~G4DalitzDecayChannel();
protected:
// Copy constructor and assignment operator
G4DalitzDecayChannel(const G4DalitzDecayChannel &);
G4DalitzDecayChannel & operator=(const G4DalitzDecayChannel &);
private:
G4DalitzDecayChannel();
public: // With Description
virtual G4DecayProducts *DecayIt(G4double);
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DecayProducts.hh,v 1.14 2010/10/27 07:47:04 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4DecayProducts.hh,v 1.14 2010-10-27 07:47:04 gcosmo Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DecayTable.hh,v 1.9 2006/06/29 19:22:47 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4DecayTable.hh,v 1.9 2006-06-29 19:22:47 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DecayTableMessenger.hh,v 1.8 2006/06/29 19:22:52 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4DecayTableMessenger.hh,v 1.8 2006-06-29 19:22:52 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
//---------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DynamicParticle.hh,v 1.22 2010/08/11 17:14:02 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4DynamicParticle.hh,v 1.22 2010-08-11 17:14:02 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DynamicParticle.icc,v 1.21 2010/10/27 07:47:05 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4DynamicParticle.icc,v 1.21 2010-10-27 07:47:05 gcosmo Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DynamicParticleFastVector.hh,v 1.4 2006/06/29 19:23:06 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4DynamicParticleFastVector.hh,v 1.4 2006-06-29 19:23:06 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ElectronOccupancy.hh,v 1.12 2010/10/27 07:47:05 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4ElectronOccupancy.hh,v 1.12 2010-10-27 07:47:05 gcosmo Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4HyperNucleiProperties.hh,v 1.1 2007/09/14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4HyperNucleiProperties.hh,v 1.1 2007-09-14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4IonTable.hh,v 1.31 2010/10/16 06:04:51 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4IonTable.hh,v 1.31 2010-10-16 06:04:51 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4Ions.hh,v 1.15 2008/06/08 12:43:19 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4Ions.hh,v 1.15 2008-06-08 12:43:19 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4IsotopeProperty.hh,v 1.5 2007/03/15 06:53:27 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4IsotopeProperty.hh,v 1.5 2007-03-15 06:53:27 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4KL3DecayChannel.hh,v 1.6 2010/10/30 07:55:00 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4KL3DecayChannel.hh,v 1.6 2010-10-30 07:55:00 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -52,6 +52,14 @@ class G4KL3DecayChannel :public G4VDecayChannel
const G4String& theNutrinoName);
// Destructor
virtual ~G4KL3DecayChannel();
protected:
// Copy constructor and assignment operator
G4KL3DecayChannel(const G4KL3DecayChannel &);
G4KL3DecayChannel & operator=(const G4KL3DecayChannel &);
private:
G4KL3DecayChannel();
public: // With Description
virtual G4DecayProducts *DecayIt(G4double);
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4MuonDecayChannel.hh,v 1.6 2006/06/29 19:23:35 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4MuonDecayChannel.hh,v 1.6 2006-06-29 19:23:35 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -57,6 +57,14 @@ class G4MuonDecayChannel :public G4VDecayChannel
// Destructor
virtual ~G4MuonDecayChannel();
protected:
// Copy constructor and assignment operator
G4MuonDecayChannel(const G4MuonDecayChannel &);
G4MuonDecayChannel & operator=(const G4MuonDecayChannel &);
protected:
G4MuonDecayChannel();
public: // With Description
virtual G4DecayProducts *DecayIt(G4double);
@@ -61,6 +61,14 @@ public: // With Description
// Destructor
virtual ~G4MuonDecayChannelWithSpin();
protected:
// Copy constructor and assignment operator
G4MuonDecayChannelWithSpin(const G4MuonDecayChannelWithSpin &);
G4MuonDecayChannelWithSpin & operator=(const G4MuonDecayChannelWithSpin &);
private:
G4MuonDecayChannelWithSpin();
public: // With Description
virtual G4DecayProducts *DecayIt(G4double);
@@ -27,11 +27,17 @@
// GEANT 4 class header file
//
// History:
// 25 July 2007 P.Gumplinger
// 25 July 2007 P.Gumplinger - Triumf
// 10 August 2011 D. Mingming - Center for HEP, Tsinghua Univ.
//
// Samples Radiative Muon Decay
// Reference:
// TRIUMF/TWIST Technote:
// References:
// TRIUMF/TWIST Technote TN-55:
// "Radiative muon decay" by P. Depommier and A. Vacheret
// ------------------------------------------------------
// Yoshitaka Kuno and Yasuhiro Okada
// "Muon Decays and Physics Beyond the Standard Model"
// Rev. Mod. Phys. 73, 151 (2001)
//
// ------------------------------------------------------------
//
@@ -64,6 +70,14 @@ class G4MuonRadiativeDecayChannelWithSpin : public G4VDecayChannel
// Destructor
virtual ~G4MuonRadiativeDecayChannelWithSpin();
protected:
// Copy constructor and assignment operator
G4MuonRadiativeDecayChannelWithSpin(const G4MuonRadiativeDecayChannelWithSpin &);
G4MuonRadiativeDecayChannelWithSpin & operator=(const G4MuonRadiativeDecayChannelWithSpin &);
private:
G4MuonRadiativeDecayChannelWithSpin();
public: // With Description
virtual G4DecayProducts *DecayIt(G4double);
@@ -86,9 +100,6 @@ class G4MuonRadiativeDecayChannelWithSpin : public G4VDecayChannel
G4double atan4(G4double x, G4double y);
G4double EMMU;
G4double EMASS;
};
inline void G4MuonRadiativeDecayChannelWithSpin::
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NeutronBetaDecayChannel.hh,v 1.2 2006/06/29 19:23:51 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4NeutronBetaDecayChannel.hh,v 1.2 2006-06-29 19:23:51 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -55,6 +55,14 @@ class G4NeutronBetaDecayChannel :public G4VDecayChannel
// Destructor
virtual ~G4NeutronBetaDecayChannel();
protected:
// Copy constructor and assignment operator
G4NeutronBetaDecayChannel(const G4NeutronBetaDecayChannel &);
G4NeutronBetaDecayChannel & operator=(const G4NeutronBetaDecayChannel &);
protected:
G4NeutronBetaDecayChannel();
public: // With Description
virtual G4DecayProducts *DecayIt(G4double);
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiProperties.hh,v 1.20 2009/05/02 11:58:17 kurasige Exp $
// GEANT4 tag $Name: geant4-09-03 $
// $Id: G4NucleiProperties.hh,v 1.20 2009-05-02 11:58:17 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiPropertiesTableAME03.hh,v 1.4 2009/06/04 13:45:43 gunter Exp $
// GEANT4 tag $Name: geant4-09-03 $
// $Id: G4NucleiPropertiesTableAME03.hh,v 1.4 2009-06-04 13:45:43 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
// -------------------------------------------------------------------
//
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiPropertiesTheoreticalTable.hh,v 1.8 2008/10/22 12:35:46 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4NucleiPropertiesTheoreticalTable.hh,v 1.8 2008-10-22 12:35:46 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4PDGCodeChecker.hh,v 1.9 2007/09/14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4PDGCodeChecker.hh,v 1.9 2007-09-14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleDefinition.hh,v 1.34 2010/08/10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4ParticleDefinition.hh,v 1.34 2010-08-10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleDefinition.icc,v 1.15 2010/08/10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4ParticleDefinition.icc,v 1.15 2010-08-10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
inline
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleMessenger.hh,v 1.9 2009/07/31 06:39:22 kurasige Exp $
// GEANT4 tag $Name: geant4-09-03 $
// $Id: G4ParticleMessenger.hh,v 1.9 2009-07-31 06:39:22 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
//---------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleMomentum.hh,v 1.6 2006/06/29 19:24:08 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4ParticleMomentum.hh,v 1.6 2006-06-29 19:24:08 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticlePropertyData.hh,v 1.3 2007/03/11 07:17:35 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4ParticlePropertyData.hh,v 1.3 2007-03-11 07:17:35 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -64,7 +64,7 @@ class G4ParticlePropertyData
virtual ~G4ParticlePropertyData();
const G4ParticlePropertyData & operator=(const G4ParticlePropertyData &right);
G4ParticlePropertyData & operator=(const G4ParticlePropertyData &right);
G4int operator==(const G4ParticlePropertyData &right) const;
G4int operator!=(const G4ParticlePropertyData &right) const;
@@ -24,7 +24,7 @@
// ********************************************************************
//
//
// $Id: G4ParticlePropertyData.icc,v 1.3 2007/03/11 07:17:35 kurasige Exp $
// $Id: G4ParticlePropertyData.icc,v 1.3 2007-03-11 07:17:35 kurasige Exp $
//
inline
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticlePropertyMessenger.hh,v 1.7 2006/06/29 19:24:14 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4ParticlePropertyMessenger.hh,v 1.7 2006-06-29 19:24:14 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
//---------------------------------------------------------------
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4ParticlePropertyTable.hh,v 1.4 2006/06/29 19:24:18 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4ParticlePropertyTable.hh,v 1.4 2006-06-29 19:24:18 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -58,7 +58,7 @@ class G4ParticlePropertyTable
G4ParticlePropertyTable();
G4ParticlePropertyTable(const G4ParticlePropertyTable &right);
const G4ParticlePropertyTable & operator=(const G4ParticlePropertyTable &right);
G4ParticlePropertyTable & operator=(const G4ParticlePropertyTable &right);
public:
G4int operator==(const G4ParticlePropertyTable &right) const;
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleTable.hh,v 1.22 2010/10/30 07:55:00 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4ParticleTable.hh,v 1.22 2010-10-30 07:55:00 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -80,8 +80,11 @@ class G4ParticleTable
typedef G4ParticleTableIterator<G4int, G4ParticleDefinition*> G4PTblEncodingDicIterator;
protected:
// default constructor
G4ParticleTable();
// Copy constructor and assignment operator
G4ParticleTable(const G4ParticleTable &right);
G4ParticleTable & operator=(const G4ParticleTable &);
public:
virtual ~G4ParticleTable();
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleTable.icc,v 1.11 2007/09/14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4ParticleTable.icc,v 1.11 2007-09-14 07:04:09 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -80,18 +80,6 @@ inline
return particle->GetParticleName();
}
inline
G4ParticleDefinition* G4ParticleTable::FindParticle(const G4String &particle_name)
{
G4PTblDictionary::iterator it = fDictionary->find(particle_name);
if (it != fDictionary->end()) {
return (*it).second;
}else {
return 0;
}
}
inline
G4ParticleDefinition* G4ParticleTable::FindAntiParticle(G4int aPDGEncoding)
{
@@ -125,17 +113,6 @@ inline
return contains(GetKey(particle));
}
inline
const G4String& G4ParticleTable::GetParticleName(G4int index)
{
G4ParticleDefinition* aParticle =GetParticle(index);
if (aParticle != 0) {
return aParticle->GetParticleName();
} else {
return noName;
}
}
inline
G4int G4ParticleTable::entries() const
{
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleTableIterator.hh,v 1.7 2006/06/29 19:24:36 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4ParticleTableIterator.hh,v 1.7 2006-06-29 19:24:36 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleWithCuts.hh,v 1.19 2006/06/29 19:24:38 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4ParticleWithCuts.hh,v 1.19 2006-06-29 19:24:38 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// --------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4PhaseSpaceDecayChannel.hh,v 1.6 2006/06/29 19:24:40 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4PhaseSpaceDecayChannel.hh,v 1.6 2006-06-29 19:24:40 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -65,6 +65,14 @@ class G4PionRadiativeDecayChannel : public G4VDecayChannel
// Destructor
virtual ~G4PionRadiativeDecayChannel();
protected:
// Copy constructor and assignment operator
G4PionRadiativeDecayChannel(const G4PionRadiativeDecayChannel &);
G4PionRadiativeDecayChannel & operator=(const G4PionRadiativeDecayChannel &);
protected:
G4PionRadiativeDecayChannel();
public: // With Description
virtual G4DecayProducts *DecayIt(G4double);
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4PrimaryParticle.hh,v 1.8 2010/10/27 07:47:05 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4PrimaryParticle.hh,v 1.8 2010-10-27 07:47:05 gcosmo Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
@@ -66,148 +66,115 @@ class G4VUserPrimaryParticleInformation;
class G4PrimaryParticle
{
public:
inline void *operator new(size_t);
inline void operator delete(void *aStackedTrack);
public:
inline void *operator new(size_t);
inline void operator delete(void *aStackedTrack);
public: // with description
G4PrimaryParticle();
G4PrimaryParticle(G4int Pcode);
G4PrimaryParticle(G4int Pcode,
G4double px,G4double py,G4double pz);
G4PrimaryParticle(G4int Pcode,
G4double px,G4double py,G4double pz,G4double E);
G4PrimaryParticle(const G4ParticleDefinition* Gcode);
G4PrimaryParticle(const G4ParticleDefinition* Gcode,
G4double px,G4double py,G4double pz);
G4PrimaryParticle(const G4ParticleDefinition* Gcode,
G4double px,G4double py,G4double pz,G4double E);
public:
virtual ~G4PrimaryParticle();
// copy constructor and assignment operator
// nextParticle and daughterParticle is copied by object (i.e. deep copy)
// userInfo will nt be copied
G4PrimaryParticle(const G4PrimaryParticle &right);
G4PrimaryParticle & operator=(const G4PrimaryParticle &right);
// equal operator returns 'true' only if the same object (i.e comarison by pointer value)
G4int operator==(const G4PrimaryParticle &right) const;
G4int operator!=(const G4PrimaryParticle &right) const;
public: // with description
void Print() const;
// Print the properties of the particle.
G4PrimaryParticle();
G4PrimaryParticle(G4int Pcode);
G4PrimaryParticle(G4int Pcode,
G4double px,G4double py,G4double pz);
G4PrimaryParticle(G4int Pcode,
G4double px,G4double py,G4double pz,G4double E);
G4PrimaryParticle(const G4ParticleDefinition* Gcode);
G4PrimaryParticle(const G4ParticleDefinition* Gcode,
G4double px,G4double py,G4double pz);
G4PrimaryParticle(const G4ParticleDefinition* Gcode,
G4double px,G4double py,G4double pz,G4double E);
~G4PrimaryParticle();
public: // with description
// followings are get/set methods available.
// "trackID" will be set if this particle is sent to G4EventManager
// and converted to G4Track. Otherwise = -1.
// The mass and charge in G4ParticleDefinition will be used in default.
// "SetMass" and "SetCharge" methods are used to set dynamical mass and charge
// G4DynamicParticle."GetMass" and "GetCharge" methods will return
// those in G4ParticleDefinition if users do not set dynamical ones.
const G4PrimaryParticle & operator=(const G4PrimaryParticle &right);
G4int operator==(const G4PrimaryParticle &right) const;
G4int operator!=(const G4PrimaryParticle &right) const;
G4int GetPDGcode() const;
void SetPDGcode(G4int Pcode);
G4ParticleDefinition * GetG4code() const;
void SetG4code(const G4ParticleDefinition * Gcode);
const G4ParticleDefinition * GetParticleDefinition() const;
void SetParticleDefinition(const G4ParticleDefinition * pdef);
G4double GetMass() const;
void SetMass(G4double mas);
G4double GetCharge() const;
void SetCharge(G4double chg);
G4double GetKineticEnergy() const;
void SetKineticEnergy(G4double eKin);
const G4ThreeVector& GetMomentumDirection() const;
void SetMomentumDirection(const G4ThreeVector& p);
G4double GetTotalMomentum() const;
void Set4Momentum(G4double px, G4double py, G4double pz, G4double E);
G4double GetTotalEnergy() const;
void SetTotalEnergy(G4double eTot );
G4ThreeVector GetMomentum() const;
void SetMomentum(G4double px, G4double py, G4double pz);
G4double GetPx() const;
G4double GetPy() const;
G4double GetPz() const;
G4PrimaryParticle * GetNext() const;
void SetNext(G4PrimaryParticle * np);
G4PrimaryParticle * GetDaughter() const;
void SetDaughter(G4PrimaryParticle * np);
G4int GetTrackID() const;
void SetTrackID(G4int id);
G4ThreeVector GetPolarization() const;
void SetPolarization(const G4ThreeVector& pol);
void SetPolarization(G4double px,G4double py,G4double pz);
G4double GetPolX() const;
G4double GetPolY() const;
G4double GetPolZ() const;
G4double GetWeight() const;
void SetWeight(G4double w);
G4double GetProperTime() const;
void SetProperTime(G4double t);
G4VUserPrimaryParticleInformation* GetUserInformation() const;
void SetUserInformation(G4VUserPrimaryParticleInformation* anInfo);
public: // with description
void Print() const;
// Print the properties of the particle.
private:
G4int PDGcode;
const G4ParticleDefinition * G4code;
G4ThreeVector direction;
G4double kinE;
G4PrimaryParticle * nextParticle;
G4PrimaryParticle * daughterParticle;
G4int trackID; // This will be set if this particle is
// sent to G4EventManager and converted to
// G4Track. Otherwise = -1.
G4double mass;
G4double charge;
G4double polX;
G4double polY;
G4double polZ;
G4double Weight0;
G4double properTime;
G4VUserPrimaryParticleInformation* userInfo;
private:
G4int PDGcode;
const G4ParticleDefinition * G4code;
G4double Px;
G4double Py;
G4double Pz;
G4PrimaryParticle * nextParticle;
G4PrimaryParticle * daughterParticle;
G4int trackID; // This will be set if this particle is
// sent to G4EventManager and converted to
// G4Track. Otherwise = -1.
G4double mass;
G4double charge;
G4double polX;
G4double polY;
G4double polZ;
G4double Weight0;
G4double properTime;
G4VUserPrimaryParticleInformation* userInfo;
public: // with description
// followings are get methods available.
// "trackID" will be set if this particle is sent to G4EventManager
// and converted to G4Track. Otherwise = -1.
// The mass and charge in G4ParticleDefinition will be used in default.
// "SetMass" and "SetCharge" methods are used to set dynamical mass and charge
// G4DynamicParticle."GetMass" and "GetCharge" methods will return
// those in G4ParticleDefinition if users do not set dynamical ones.
G4double GetMass() const;
G4double GetCharge() const;
inline G4int GetPDGcode() const
{ return PDGcode; }
inline G4ParticleDefinition * GetG4code() const
{ return const_cast<G4ParticleDefinition*>(G4code); }
inline const G4ParticleDefinition * GetParticleDefinition() const
{ return G4code; }
inline G4ThreeVector GetMomentum() const
{ return G4ThreeVector(Px,Py,Pz); }
inline G4double GetPx() const
{ return Px; }
inline G4double GetPy() const
{ return Py; }
inline G4double GetPz() const
{ return Pz; }
inline G4PrimaryParticle * GetNext() const
{ return nextParticle; }
inline G4PrimaryParticle * GetDaughter() const
{ return daughterParticle; }
inline G4int GetTrackID() const
{ return trackID; }
inline G4ThreeVector GetPolarization() const
{ return G4ThreeVector(polX,polY,polZ); }
inline G4double GetPolX() const { return polX; }
inline G4double GetPolY() const { return polY; }
inline G4double GetPolZ() const { return polZ; }
inline G4double GetWeight() const { return Weight0; }
inline void SetWeight(G4double w) { Weight0 = w; }
inline void SetProperTime(G4double t) { properTime = t; }
inline G4double GetProperTime() const { return properTime; }
inline void SetUserInformation(G4VUserPrimaryParticleInformation* anInfo)
{ userInfo = anInfo; }
inline G4VUserPrimaryParticleInformation* GetUserInformation() const
{ return userInfo; }
public: // with description
// Followings are available Set methods.
void SetPDGcode(G4int Pcode);
void SetG4code(const G4ParticleDefinition * Gcode);
void SetParticleDefinition(const G4ParticleDefinition * pdef);
inline void SetMomentum(G4double px, G4double py, G4double pz)
{
Px = px;
Py = py;
Pz = pz;
}
inline void Set4Momentum(G4double px, G4double py, G4double pz, G4double E)
{
Px = px;
Py = py;
Pz = pz;
G4double mas2 = E*E - px*px - py*py - pz*pz;
if(mas2>=0.)
{ mass = std::sqrt(mas2); }
else
{ mass = -1.0; }
}
inline void SetNext(G4PrimaryParticle * np)
{
if(nextParticle == 0)
{ nextParticle = np; }
else
{ nextParticle->SetNext(np); }
}
inline void SetDaughter(G4PrimaryParticle * np)
{
if(daughterParticle == 0)
{ daughterParticle = np; }
else
{ daughterParticle->SetNext(np); }
}
inline void SetTrackID(G4int id)
{ trackID = id; }
inline void SetMass(G4double mas)
{ mass = mas; }
inline void SetCharge(G4double chg)
{ charge = chg; }
inline void SetPolarization(G4double px,G4double py,G4double pz)
{
polX = px;
polY = py;
polZ = pz;
}
};
#if defined G4PARTICLES_ALLOC_EXPORT
@@ -228,6 +195,141 @@ inline void G4PrimaryParticle::operator delete(void * aPrimaryParticle)
aPrimaryParticleAllocator.FreeSingle((G4PrimaryParticle *) aPrimaryParticle);
}
inline G4double G4PrimaryParticle::GetMass() const
{ return mass; }
inline G4double G4PrimaryParticle::GetCharge() const
{ return charge; }
inline G4int G4PrimaryParticle::GetPDGcode() const
{ return PDGcode; }
inline G4ParticleDefinition * G4PrimaryParticle::GetG4code() const
{ return const_cast<G4ParticleDefinition*>(G4code); }
inline const G4ParticleDefinition * G4PrimaryParticle::GetParticleDefinition() const
{ return G4code; }
inline G4double G4PrimaryParticle::GetTotalMomentum() const
{
if (mass<0.) return kinE;
else return std::sqrt(kinE*(kinE+2.*mass));
}
inline G4ThreeVector G4PrimaryParticle::GetMomentum() const
{ return GetTotalMomentum()*direction;}
inline const G4ThreeVector& G4PrimaryParticle::GetMomentumDirection() const
{ return direction;}
inline void G4PrimaryParticle::SetMomentumDirection(const G4ThreeVector& p)
{ direction = p;}
inline G4double G4PrimaryParticle::GetPx() const
{ return GetTotalMomentum()*direction.x();}
inline G4double G4PrimaryParticle::GetPy() const
{ return GetTotalMomentum()*direction.y();}
inline G4double G4PrimaryParticle::GetPz() const
{ return GetTotalMomentum()*direction.z();}
inline G4double G4PrimaryParticle::GetTotalEnergy() const
{
if (mass<0.) return kinE;
else return kinE+mass;
}
inline void G4PrimaryParticle::SetTotalEnergy(G4double eTot )
{
if (mass<0.) kinE = eTot;
else kinE = eTot - mass;
}
inline G4double G4PrimaryParticle::GetKineticEnergy() const
{ return kinE; }
inline void G4PrimaryParticle::SetKineticEnergy(G4double eKin)
{ kinE = eKin; }
inline G4PrimaryParticle * G4PrimaryParticle::GetNext() const
{ return nextParticle; }
inline G4PrimaryParticle * G4PrimaryParticle::GetDaughter() const
{ return daughterParticle; }
inline G4int G4PrimaryParticle::GetTrackID() const
{ return trackID; }
inline G4ThreeVector G4PrimaryParticle::GetPolarization() const
{ return G4ThreeVector(polX,polY,polZ); }
inline G4double G4PrimaryParticle::GetPolX() const
{ return polX; }
inline G4double G4PrimaryParticle::GetPolY() const
{ return polY; }
inline G4double G4PrimaryParticle::GetPolZ() const
{ return polZ; }
inline G4double G4PrimaryParticle::GetWeight() const
{ return Weight0; }
inline void G4PrimaryParticle::SetWeight(G4double w)
{ Weight0 = w; }
inline void G4PrimaryParticle::SetProperTime(G4double t)
{ properTime = t; }
inline G4double G4PrimaryParticle::GetProperTime() const
{ return properTime; }
inline void G4PrimaryParticle::SetUserInformation(G4VUserPrimaryParticleInformation* anInfo)
{ userInfo = anInfo; }
inline G4VUserPrimaryParticleInformation* G4PrimaryParticle::GetUserInformation() const
{ return userInfo; }
inline void G4PrimaryParticle::SetG4code(const G4ParticleDefinition* Gcode)
{
SetParticleDefinition(Gcode);
}
inline void G4PrimaryParticle::SetNext(G4PrimaryParticle * np)
{
if (nextParticle == 0) { nextParticle = np; }
else { nextParticle->SetNext(np); }
}
inline void G4PrimaryParticle::SetDaughter(G4PrimaryParticle * np)
{
if(daughterParticle == 0) { daughterParticle = np; }
else { daughterParticle->SetNext(np); }
}
inline void G4PrimaryParticle::SetTrackID(G4int id)
{ trackID = id; }
inline void G4PrimaryParticle::SetMass(G4double mas)
{ mass = mas; }
inline void G4PrimaryParticle::SetCharge(G4double chg)
{ charge = chg; }
inline void G4PrimaryParticle::SetPolarization(G4double px,G4double py,G4double pz)
{
polX = px;
polY = py;
polZ = pz;
}
inline void G4PrimaryParticle::SetPolarization(const G4ThreeVector& pol)
{
polX = pol.x();
polY = pol.y();
polZ = pol.z();
}
#endif
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4PrimaryVertex.hh,v 1.6 2010/10/27 07:47:05 gcosmo Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4PrimaryVertex.hh,v 1.6 2010-10-27 07:47:05 gcosmo Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
@@ -48,95 +48,56 @@ class G4VUserPrimaryVertexInformation;
class G4PrimaryVertex
{
public:
inline void *operator new(size_t);
inline void operator delete(void *aStackedTrack);
public:
inline void *operator new(size_t);
inline void operator delete(void *aStackedTrack);
G4PrimaryVertex();
G4PrimaryVertex(G4double x0,G4double y0,G4double z0,G4double t0);
G4PrimaryVertex(G4ThreeVector xyz0,G4double t0);
~G4PrimaryVertex();
public: // with description
G4PrimaryVertex();
G4PrimaryVertex(G4double x0,G4double y0,G4double z0,G4double t0);
G4PrimaryVertex(G4ThreeVector xyz0,G4double t0);
virtual ~G4PrimaryVertex();
const G4PrimaryVertex & operator=(const G4PrimaryVertex &right);
G4int operator==(const G4PrimaryVertex &right) const;
G4int operator!=(const G4PrimaryVertex &right) const;
public:
G4PrimaryVertex(const G4PrimaryVertex &right);
G4PrimaryVertex & operator=(const G4PrimaryVertex &right);
void Print() const;
G4int operator==(const G4PrimaryVertex &right) const;
G4int operator!=(const G4PrimaryVertex &right) const;
private:
G4double X0;
G4double Y0;
G4double Z0;
G4double T0;
G4PrimaryParticle * theParticle;
G4PrimaryParticle * theTail;
G4PrimaryVertex* nextVertex;
G4PrimaryVertex* tailVertex;
G4int numberOfParticle;
G4double Weight0;
G4VUserPrimaryVertexInformation* userInfo;
public: // with description
G4ThreeVector GetPosition() const;
void SetPosition(G4double x0,G4double y0,G4double z0);
G4double GetX0() const;
G4double GetY0() const;
G4double GetZ0() const;
G4double GetT0() const;
void SetT0(G4double t0);
G4int GetNumberOfParticle() const;
void SetPrimary(G4PrimaryParticle * pp);
G4PrimaryParticle* GetPrimary(G4int i=0) const;
void SetNext(G4PrimaryVertex* nv);
G4PrimaryVertex* GetNext() const;
G4double GetWeight() const;
void SetWeight(G4double w);
void SetUserInformation(G4VUserPrimaryVertexInformation* anInfo);
G4VUserPrimaryVertexInformation* GetUserInformation() const;
void Print() const;
private:
G4double X0;
G4double Y0;
G4double Z0;
G4double T0;
G4PrimaryParticle * theParticle;
G4PrimaryParticle * theTail;
G4PrimaryVertex* nextVertex;
G4PrimaryVertex* tailVertex;
G4int numberOfParticle;
G4double Weight0;
G4VUserPrimaryVertexInformation* userInfo;
public:
inline G4ThreeVector GetPosition() const
{ return G4ThreeVector(X0,Y0,Z0); }
inline void SetPosition(G4double x0,G4double y0,G4double z0)
{ X0 = x0; Y0 = y0; Z0 = z0; }
inline G4double GetX0() const
{ return X0; }
inline G4double GetY0() const
{ return Y0; }
inline G4double GetZ0() const
{ return Z0; }
inline G4double GetT0() const
{ return T0; }
inline void SetT0(G4double t0)
{ T0 = t0; }
inline G4int GetNumberOfParticle() const
{ return numberOfParticle; }
inline void SetPrimary(G4PrimaryParticle * pp)
{
if(theParticle == 0)
{ theParticle = pp; }
else
{ theTail->SetNext(pp); }
theTail = pp;
numberOfParticle++;
}
inline G4PrimaryParticle* GetPrimary(G4int i=0) const
{
if( i == 0 )
{ return theParticle; }
else if( i > 0 && i < numberOfParticle )
{
G4PrimaryParticle* particle = theParticle;
for( G4int j=0; j<i; j++ )
{
if( particle == 0 ) return 0;
particle = particle->GetNext();
}
return particle;
}
else
{ return 0; }
}
inline void SetNext(G4PrimaryVertex* nv)
{
if(nextVertex == 0)
{ nextVertex = nv; }
else
{ tailVertex->SetNext(nv); }
tailVertex = nv;
}
inline G4PrimaryVertex* GetNext() const
{ return nextVertex; }
inline G4double GetWeight() const
{ return Weight0; }
inline void SetWeight(G4double w)
{ Weight0 = w; }
inline void SetUserInformation(G4VUserPrimaryVertexInformation* anInfo)
{ userInfo = anInfo; }
inline G4VUserPrimaryVertexInformation* GetUserInformation() const
{ return userInfo; }
};
#if defined G4PARTICLES_ALLOC_EXPORT
@@ -157,6 +118,59 @@ inline void G4PrimaryVertex::operator delete(void * aPrimaryVertex)
aPrimaryVertexAllocator.FreeSingle((G4PrimaryVertex *) aPrimaryVertex);
}
inline G4ThreeVector G4PrimaryVertex::GetPosition() const
{ return G4ThreeVector(X0,Y0,Z0); }
inline void G4PrimaryVertex::SetPosition(G4double x0,G4double y0,G4double z0)
{ X0 = x0; Y0 = y0; Z0 = z0; }
inline G4double G4PrimaryVertex::GetX0() const
{ return X0; }
inline G4double G4PrimaryVertex::GetY0() const
{ return Y0; }
inline G4double G4PrimaryVertex::GetZ0() const
{ return Z0; }
inline G4double G4PrimaryVertex::GetT0() const
{ return T0; }
inline void G4PrimaryVertex::SetT0(G4double t0)
{ T0 = t0; }
inline G4int G4PrimaryVertex::GetNumberOfParticle() const
{ return numberOfParticle; }
inline void G4PrimaryVertex::SetPrimary(G4PrimaryParticle * pp)
{
if(theParticle == 0) { theParticle = pp; }
else { theTail->SetNext(pp); }
theTail = pp;
numberOfParticle++;
}
inline void G4PrimaryVertex::SetNext(G4PrimaryVertex* nv){
if(nextVertex == 0) { nextVertex = nv; }
else { tailVertex->SetNext(nv); }
tailVertex = nv;
}
inline G4PrimaryVertex* G4PrimaryVertex::GetNext() const
{ return nextVertex; }
inline G4double G4PrimaryVertex::GetWeight() const
{ return Weight0; }
inline void G4PrimaryVertex::SetWeight(G4double w)
{ Weight0 = w; }
inline void G4PrimaryVertex::SetUserInformation(G4VUserPrimaryVertexInformation* anInfo)
{ userInfo = anInfo; }
inline G4VUserPrimaryVertexInformation* G4PrimaryVertex::GetUserInformation() const
{ return userInfo; }
#endif
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ShortLivedTable.hh,v 1.14 2010/08/10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4ShortLivedTable.hh,v 1.14 2010-08-10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -63,8 +63,10 @@ class G4ShortLivedTable
G4ShortLivedTable();
protected:
G4ShortLivedTable(const G4ShortLivedTable &right);
// Copy constructor and assignment operator
G4ShortLivedTable(const G4ShortLivedTable &right);
G4ShortLivedTable & operator=(const G4ShortLivedTable &);
public: // With Description
virtual ~G4ShortLivedTable();
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4TauLeptonicDecayChannel.hh,v 1.2 2006/06/29 19:24:48 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4TauLeptonicDecayChannel.hh,v 1.2 2006-06-29 19:24:48 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -57,6 +57,15 @@ class G4TauLeptonicDecayChannel :public G4VDecayChannel
// Destructor
virtual ~G4TauLeptonicDecayChannel();
protected:
// Copy constructor and assignment operator
G4TauLeptonicDecayChannel(const G4TauLeptonicDecayChannel &);
G4TauLeptonicDecayChannel & operator=(const G4TauLeptonicDecayChannel &);
protected:
G4TauLeptonicDecayChannel();
public: // With Description
virtual G4DecayProducts *DecayIt(G4double);
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VDecayChannel.hh,v 1.13 2010/08/10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4VDecayChannel.hh,v 1.13 2010-08-10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -68,7 +68,9 @@ class G4VDecayChannel
// Destructor
virtual ~G4VDecayChannel();
private:
protected:
// default constructor
G4VDecayChannel();
// copy constructor and assignment operatotr
G4VDecayChannel(const G4VDecayChannel &);
G4VDecayChannel & operator=(const G4VDecayChannel &);
@@ -163,7 +165,7 @@ class G4VDecayChannel
private:
const G4String& GetNoName() const;
private:
protected:
// controle flag for output message
G4int verboseLevel;
// 0: Silent
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VIsotopeTable.hh,v 1.6 2006/06/29 19:24:52 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4VIsotopeTable.hh,v 1.6 2006-06-29 19:24:52 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -48,7 +48,11 @@ class G4VIsotopeTable
public:
// constructor
G4VIsotopeTable(const G4String& name = "");
G4VIsotopeTable();
explicit G4VIsotopeTable(const G4String& );
G4VIsotopeTable(const G4VIsotopeTable& );
G4VIsotopeTable & operator=(const G4VIsotopeTable&);
public:
// destructor
@@ -81,12 +85,34 @@ class G4VIsotopeTable
G4int verboseLevel;
};
inline
G4VIsotopeTable::G4VIsotopeTable()
: fName(""), verboseLevel(0)
{
}
inline
G4VIsotopeTable::G4VIsotopeTable(const G4String& name)
: fName(name), verboseLevel(0)
{
}
inline
G4VIsotopeTable::G4VIsotopeTable(const G4VIsotopeTable & right)
: fName(right.fName), verboseLevel(right.verboseLevel)
{
}
inline
G4VIsotopeTable& G4VIsotopeTable::operator=(const G4VIsotopeTable & right)
{
if (this != &right){
fName = right.fName;
verboseLevel = right.verboseLevel;
}
return *this;
}
inline
G4VIsotopeTable::~G4VIsotopeTable()
{
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VUserPrimaryParticleInformation.hh,v 1.2 2006/06/29 19:24:54 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4VUserPrimaryParticleInformation.hh,v 1.2 2006-06-29 19:24:54 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
//---------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VUserPrimaryVertexInformation.hh,v 1.2 2006/06/29 19:24:56 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4VUserPrimaryVertexInformation.hh,v 1.2 2006-06-29 19:24:56 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
//---------------------------------------------------------------
+1 -1
View File
@@ -11,7 +11,7 @@
#
# Generated on : 24/9/2010
#
# $Id: sources.cmake,v 1.1 2010/09/29 18:49:08 bmorgan Exp $
# $Id: sources.cmake,v 1.1 2010-09-29 18:49:08 bmorgan Exp $
#
#------------------------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DalitzDecayChannel.cc,v 1.9 2009/08/17 14:52:19 kurasige Exp $
// GEANT4 tag $Name: geant4-09-03 $
// $Id: G4DalitzDecayChannel.cc,v 1.9 2009-08-17 14:52:19 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -44,6 +44,11 @@
#include "G4LorentzVector.hh"
#include "G4LorentzRotation.hh"
G4DalitzDecayChannel::G4DalitzDecayChannel()
:G4VDecayChannel()
{
}
G4DalitzDecayChannel::G4DalitzDecayChannel(
const G4String& theParentName,
G4double theBR,
@@ -65,6 +70,38 @@ G4DalitzDecayChannel::~G4DalitzDecayChannel()
{
}
G4DalitzDecayChannel::G4DalitzDecayChannel(const G4DalitzDecayChannel &right):
G4VDecayChannel(right)
{
}
G4DalitzDecayChannel & G4DalitzDecayChannel::operator=(const G4DalitzDecayChannel & right)
{
if (this != &right) {
kinematics_name = right.kinematics_name;
verboseLevel = right.verboseLevel;
rbranch = right.rbranch;
// copy parent name
parent_name = new G4String(*right.parent_name);
// clear daughters_name array
ClearDaughtersName();
// recreate array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
if (daughters_name !=0) ClearDaughtersName();
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++) {
daughters_name[index] = new G4String(*right.daughters_name[index]);
}
}
}
return *this;
}
G4DecayProducts *G4DalitzDecayChannel::DecayIt(G4double)
{
#ifdef G4VERBOSE
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DecayProducts.cc,v 1.19 2010/10/30 07:55:00 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4DecayProducts.cc,v 1.19 2010-10-30 07:55:00 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DecayTable.cc,v 1.9 2010/05/20 01:01:07 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04-beta-01 $
// $Id: G4DecayTable.cc,v 1.9 2010-05-20 01:01:07 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DecayTableMessenger.cc,v 1.6 2006/06/29 19:25:04 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4DecayTableMessenger.cc,v 1.6 2006-06-29 19:25:04 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
//---------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4DynamicParticle.cc,v 1.30 2010/08/10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4DynamicParticle.cc,v 1.30 2010-08-10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// --------------------------------------------------------------
@@ -409,7 +409,8 @@ G4double G4DynamicParticle::GetElectronMass() const
if (electronMass<=0.0) {
G4ParticleDefinition* electron = G4ParticleTable::GetParticleTable()->FindParticle("e-");
if (electron == 0) {
G4Exception("G4DynamicParticle: G4Electron is not defined !!");
G4Exception("G4DynamicParticle::GetElectronMass()","PART021",
FatalException,"G4DynamicParticle: G4Electron is not defined !!");
}
electronMass = electron->GetPDGMass();
}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ElectronOccupancy.cc,v 1.9 2006/06/29 19:25:24 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4ElectronOccupancy.cc,v 1.9 2006-06-29 19:25:24 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ----------------------------------------------------------------------
@@ -23,8 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4HyperNucleiProperties.cc,v 1.4 2008/10/22 12:35:46 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4HyperNucleiProperties.cc,v 1.4 2008-10-22 12:35:46 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
// ------------------------------------------------------------
// GEANT 4 class header file
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4IonTable.cc,v 1.65 2010/10/16 06:04:51 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4IonTable.cc,v 1.66 2010-12-22 07:07:59 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// --------------------------------------------------------------
@@ -114,7 +114,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A,
<< " because the current state is PreInit !!" << G4endl;
}
#endif
G4Exception( "G4IonTable::CreateIon()","Illegal operation",
G4Exception( "G4IonTable::CreateIon()","PART105",
JustWarning, "Can not create ions in PreInit state");
return 0;
}
@@ -200,7 +200,7 @@ G4ParticleDefinition* G4IonTable::CreateIon(G4int Z, G4int A, G4int L,
<< " because the current state is PreInit !!" << G4endl;
}
#endif
G4Exception( "G4IonTable::CreateIon()","Illegal operation",
G4Exception( "G4IonTable::CreateIon()","PART105",
JustWarning, "Can not create ions in PreInit state");
return 0;
}
@@ -280,8 +280,8 @@ G4ParticleDefinition* G4IonTable::GetIon(G4int encoding)
<< " CODE:" << encoding << G4endl;
}
#endif
G4Exception( "G4IonTable::GetIon()","Illegal operation",
JustWarning, "illegal encoding");
G4Exception( "G4IonTable::GetIon()","PART106",
JustWarning, "illegal encoding for an ion");
return 0;
}
// Only ground state is supported
@@ -360,7 +360,7 @@ G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4double E, G4int J)
<< " Z =" << Z << " A = " << A << " E = " << E/keV << G4endl;
}
#endif
G4Exception( "G4IonTable::FindIon()","Illegal operation",
G4Exception( "G4IonTable::FindIon()","PART107",
JustWarning, "illegal atomic number/mass");
return 0;
}
@@ -407,7 +407,7 @@ G4ParticleDefinition* G4IonTable::FindIon(G4int Z, G4int A, G4int L, G4double E,
<<" E = " << E/keV << G4endl;
}
#endif
G4Exception( "G4IonTable::FindIon()","Illegal operation",
G4Exception( "G4IonTable::FindIon()","PART107",
JustWarning, "illegal atomic number/mass");
return 0;
}
@@ -746,7 +746,7 @@ G4double G4IonTable::GetNucleusMass(G4int Z, G4int A, G4int L) const
<< " Z =" << Z << " A = " << A << G4endl;
}
#endif
G4Exception( "G4IonTable::GetNucleusMass()","Illegal operation",
G4Exception( "G4IonTable::GetNucleusMass()","PART107",
EventMustBeAborted, "illegal atomic number/mass");
return -1.0;
}
+2 -2
View File
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4Ions.cc,v 1.18 2010/12/15 07:39:02 gunter Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4Ions.cc,v 1.18 2010-12-15 07:39:02 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ----------------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4IsotopeProperty.cc,v 1.8 2009/08/17 14:52:19 kurasige Exp $
// GEANT4 tag $Name: geant4-09-03 $
// $Id: G4IsotopeProperty.cc,v 1.8 2009-08-17 14:52:19 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ----------------------------------------------------------------------
@@ -114,9 +114,15 @@ void G4IsotopeProperty::DumpInfo() const
} else {
G4cout << "Spin: " << fISpin /2 << G4endl;
}
G4cout << "MagneticMoment: " << fMagneticMoment/MeV*tesla << "[MeV/T]" <<G4endl;
G4cout << "Excited Energy: " << std::setprecision(1) << fEnergy/keV << "[keV]" << G4endl;
G4cout << "Life Time: " << fLifeTime/ns << "[ns]" << G4endl;
G4cout << "MagneticMoment: "
<< fMagneticMoment/MeV*tesla << "[MeV/T]" <<G4endl;
G4cout << "Excited Energy: "
<< std::setprecision(1)
<< fEnergy/keV << "[keV]"
<< std::setprecision(6)
<< G4endl;
G4cout << "Life Time: "
<< fLifeTime/ns << "[ns]" << G4endl;
if (fDecayTable != 0) {
fDecayTable->DumpInfo();
} else {
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4KL3DecayChannel.cc,v 1.10 2010/10/30 07:55:00 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4KL3DecayChannel.cc,v 1.10 2010-10-30 07:55:00 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -43,6 +43,15 @@
#include "G4LorentzVector.hh"
#include "G4LorentzRotation.hh"
G4KL3DecayChannel::G4KL3DecayChannel()
:G4VDecayChannel(),
massK(0.0), pLambda(0.0), pXi0(0.0)
{
daughterM[idPi] = 0.0;
daughterM[idLepton] = 0.0;
daughterM[idNutrino] = 0.0;
}
G4KL3DecayChannel::G4KL3DecayChannel(
const G4String& theParentName,
@@ -106,6 +115,51 @@ G4KL3DecayChannel::~G4KL3DecayChannel()
{
}
G4KL3DecayChannel::G4KL3DecayChannel(const G4KL3DecayChannel &right):
G4VDecayChannel(right),
massK(right.massK),
pLambda(right.pLambda),
pXi0(right.pXi0)
{
daughterM[idPi] = right.daughterM[idPi];
daughterM[idLepton] = right.daughterM[idLepton];
daughterM[idNutrino] = right.daughterM[idNutrino];
}
G4KL3DecayChannel & G4KL3DecayChannel::operator=(const G4KL3DecayChannel & right)
{
if (this != &right) {
kinematics_name = right.kinematics_name;
verboseLevel = right.verboseLevel;
rbranch = right.rbranch;
// copy parent name
parent_name = new G4String(*right.parent_name);
// clear daughters_name array
ClearDaughtersName();
// recreate array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
if (daughters_name !=0) ClearDaughtersName();
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++) {
daughters_name[index] = new G4String(*right.daughters_name[index]);
}
}
massK = right.massK;
pLambda = right.pLambda;
pXi0 = right.pXi0;
daughterM[idPi] = right.daughterM[idPi];
daughterM[idLepton] = right.daughterM[idLepton];
daughterM[idNutrino] = right.daughterM[idNutrino];
}
return *this;
}
G4DecayProducts* G4KL3DecayChannel::DecayIt(G4double)
{
// this version neglects muon polarization
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4MuonDecayChannel.cc,v 1.17 2006/06/29 19:25:34 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4MuonDecayChannel.cc,v 1.17 2006-06-29 19:25:34 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -50,6 +50,10 @@
#include "G4LorentzRotation.hh"
#include "G4RotationMatrix.hh"
G4MuonDecayChannel::G4MuonDecayChannel()
:G4VDecayChannel()
{
}
G4MuonDecayChannel::G4MuonDecayChannel(const G4String& theParentName,
G4double theBR)
@@ -81,10 +85,42 @@ G4MuonDecayChannel::G4MuonDecayChannel(const G4String& theParentName,
}
}
G4MuonDecayChannel::G4MuonDecayChannel(const G4MuonDecayChannel &right):
G4VDecayChannel(right)
{
}
G4MuonDecayChannel::~G4MuonDecayChannel()
{
}
G4MuonDecayChannel & G4MuonDecayChannel::operator=(const G4MuonDecayChannel & right)
{
if (this != &right) {
kinematics_name = right.kinematics_name;
verboseLevel = right.verboseLevel;
rbranch = right.rbranch;
// copy parent name
parent_name = new G4String(*right.parent_name);
// clear daughters_name array
ClearDaughtersName();
// recreate array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
if (daughters_name !=0) ClearDaughtersName();
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++) {
daughters_name[index] = new G4String(*right.daughters_name[index]);
}
}
}
return *this;
}
G4DecayProducts *G4MuonDecayChannel::DecayIt(G4double)
{
// this version neglects muon polarization,and electron mass
@@ -46,18 +46,66 @@
#include "G4DecayProducts.hh"
#include "G4LorentzVector.hh"
G4MuonDecayChannelWithSpin::G4MuonDecayChannelWithSpin()
: G4MuonDecayChannel(),
parent_polarization(),
EMMU( 0.*MeV),
EMASS( 0.*MeV)
{
}
G4MuonDecayChannelWithSpin::G4MuonDecayChannelWithSpin(const G4String& theParentName,
G4double theBR)
: G4MuonDecayChannel(theParentName,theBR)
: G4MuonDecayChannel(theParentName,theBR),
parent_polarization(),
EMMU( 0.*MeV),
EMASS( 0.*MeV)
{
EMMU = 0.*MeV;
EMASS = 0.*MeV;
}
G4MuonDecayChannelWithSpin::~G4MuonDecayChannelWithSpin()
{
}
G4MuonDecayChannelWithSpin::G4MuonDecayChannelWithSpin(const G4MuonDecayChannelWithSpin &right):
G4MuonDecayChannel(right)
{
parent_polarization = right.parent_polarization;
EMMU = right.EMMU;
EMASS = right.EMASS;
}
G4MuonDecayChannelWithSpin & G4MuonDecayChannelWithSpin::operator=(const G4MuonDecayChannelWithSpin & right)
{
if (this != &right) {
kinematics_name = right.kinematics_name;
verboseLevel = right.verboseLevel;
rbranch = right.rbranch;
// copy parent name
parent_name = new G4String(*right.parent_name);
// clear daughters_name array
ClearDaughtersName();
// recreate array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
if (daughters_name !=0) ClearDaughtersName();
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++) {
daughters_name[index] = new G4String(*right.daughters_name[index]);
}
}
parent_polarization = right.parent_polarization;
EMMU = right.EMMU;
EMASS = right.EMASS;
}
return *this;
}
G4DecayProducts *G4MuonDecayChannelWithSpin::DecayIt(G4double)
{
// This version assumes V-A coupling with 1st order radiative correctons,
@@ -28,8 +28,14 @@
//
// History:
// 01 August 2007 P.Gumplinger
// Reference: TRIUMF TWIST Technotes TN-55:
// Pierre Depommier - "Radiative MuonDecay"
// 10 August 2011 D. Mingming - Center for HEP, Tsinghua Univ.
// References:
// TRIUMF/TWIST Technote TN-55:
// "Radiative muon decay" by P. Depommier and A. Vacheret
// ------------------------------------------------------
// Yoshitaka Kuno and Yasuhiro Okada
// "Muon Decays and Physics Beyond the Standard Model"
// Rev. Mod. Phys. 73, 151 (2001)
//
// ------------------------------------------------------------
//
@@ -42,10 +48,17 @@
#include "G4DecayProducts.hh"
#include "G4LorentzVector.hh"
G4MuonRadiativeDecayChannelWithSpin::G4MuonRadiativeDecayChannelWithSpin()
: G4VDecayChannel(),
parent_polarization()
{
}
G4MuonRadiativeDecayChannelWithSpin::
G4MuonRadiativeDecayChannelWithSpin(const G4String& theParentName,
G4double theBR)
: G4VDecayChannel("Radiative Muon Decay",1)
: G4VDecayChannel("Radiative Muon Decay",1),
parent_polarization()
{
// set names for daughter particles
if (theParentName == "mu+") {
@@ -73,14 +86,47 @@ G4MuonRadiativeDecayChannelWithSpin::
}
#endif
}
EMMU = 0.*MeV;
EMASS = 0.*MeV;
}
G4MuonRadiativeDecayChannelWithSpin::~G4MuonRadiativeDecayChannelWithSpin()
{
}
G4MuonRadiativeDecayChannelWithSpin::G4MuonRadiativeDecayChannelWithSpin(const G4MuonRadiativeDecayChannelWithSpin &right):
G4VDecayChannel(right)
{
parent_polarization = right.parent_polarization;
}
G4MuonRadiativeDecayChannelWithSpin & G4MuonRadiativeDecayChannelWithSpin::operator=(const G4MuonRadiativeDecayChannelWithSpin & right)
{
if (this != &right) {
kinematics_name = right.kinematics_name;
verboseLevel = right.verboseLevel;
rbranch = right.rbranch;
// copy parent name
parent_name = new G4String(*right.parent_name);
// clear daughters_name array
ClearDaughtersName();
// recreate array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
if (daughters_name !=0) ClearDaughtersName();
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++) {
daughters_name[index] = new G4String(*right.daughters_name[index]);
}
}
parent_polarization = right.parent_polarization;
}
return *this;
}
G4DecayProducts *G4MuonRadiativeDecayChannelWithSpin::DecayIt(G4double)
{
@@ -95,7 +141,7 @@ G4DecayProducts *G4MuonRadiativeDecayChannelWithSpin::DecayIt(G4double)
// parent mass
G4double parentmass = parent->GetPDGMass();
EMMU = parentmass;
G4double EMMU = parentmass;
//daughters'mass
G4double daughtermass[4];
@@ -105,7 +151,7 @@ G4DecayProducts *G4MuonRadiativeDecayChannelWithSpin::DecayIt(G4double)
sumofdaughtermass += daughtermass[index];
}
EMASS = daughtermass[0];
G4double EMASS = daughtermass[0];
//create parent G4DynamicParticle at rest
G4ThreeVector dummy;
@@ -263,7 +309,7 @@ G4DecayProducts *G4MuonRadiativeDecayChannelWithSpin::DecayIt(G4double)
// Sample the decay rate
//
} while (G4UniformRand()*250000.0 > som0);
} while (G4UniformRand()*177.0 > som0);
/// if(i<10000000)goto leap1:
//
@@ -406,7 +452,7 @@ G4double G4MuonRadiativeDecayChannelWithSpin::fron(G4double Pmu,
-(x*x*x)*y*(4.0+3.0*y));
G4double f2s = 1.5*((x*x*x)*(y*y)*(2.0+y));
G4double f_1se = 12.0*(x*y*(1.0-x)+(x*x)*(2.0-3.0*y)
G4double f_1se = 12.0*(x*y*(1.0-y)+(x*x)*(2.0-3.0*y)
-2.0*(x*x*x));
G4double f0se = 6.0*(-(x*x)*(2.0-y-2.0*(y*y))
+(x*x*x)*(2.0+3.0*y));
@@ -481,7 +527,7 @@ G4double G4MuonRadiativeDecayChannelWithSpin::fron(G4double Pmu,
G4double ntg = term*f_1tg+f0tg+delta*f1tg+(delta*delta)*f2tg;
G4double term1 = nv;
G4double term2 = 2.0*ns-nv-nt;
G4double term2 = 2.0*ns+nv-nt;
G4double term3 = 2.0*ns-2.0*nv+nt;
G4double term1e = 1.0/3.0*(1.0-4.0/3.0*del);
@@ -493,9 +539,11 @@ G4double G4MuonRadiativeDecayChannelWithSpin::fron(G4double Pmu,
G4double term3g = 2.0*nsg-2.0*nvg+ntg;
G4double som00 = term1+(1.0-4.0/3.0*rho)*term2+eps*term3;
G4double som01 = Pmu*ksi*(cthetaE*(nve-term1e*term2e+kap*term3e)
G4double som01 = Pmu*ksi*(cthetaE*(nve-term1e*term2e+kap*term3e)
+cthetaG*(nvg-term1g*term2g+kap*term3g));
G4double som0 = som00+som01;
G4double som0 = (som00+som01)/y;
som0 = fine_structure_const/8./(twopi*twopi*twopi)*som0;
// G4cout << x << " " << y << " " << som00 << " "
// << som01 << " " << som0 << G4endl;
@@ -25,7 +25,7 @@
//
//
// $Id: G4NeutronBetaDecayChannel.cc,v 1.7 2006/06/29 19:25:38 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// GEANT4 tag $Name: geant4-09-04-ref-00 $
//
//
// ------------------------------------------------------------
@@ -33,7 +33,8 @@
//
// History: first implementation, based on object model of
// 18 Sep 2001 H.Kurashige
//
//---
// Fix energy of proton and neutrino May 2011 H.Kurashige
// ------------------------------------------------------------
#include "G4ParticleDefinition.hh"
@@ -45,6 +46,11 @@
#include "G4LorentzVector.hh"
#include "G4LorentzRotation.hh"
G4NeutronBetaDecayChannel::G4NeutronBetaDecayChannel()
:G4VDecayChannel(),
aENuCorr(-0.102)
{
}
G4NeutronBetaDecayChannel::G4NeutronBetaDecayChannel(
const G4String& theParentName,
@@ -60,11 +66,18 @@ G4NeutronBetaDecayChannel::G4NeutronBetaDecayChannel(
SetDaughter(0, "e-");
SetDaughter(1, "anti_nu_e");
SetDaughter(2, "proton");
} else if (theParentName == "anti_neutron") {
SetBR(theBR);
SetParent("anti_neutron");
SetNumberOfDaughters(3);
SetDaughter(0, "e+");
SetDaughter(1, "nu_e");
SetDaughter(2, "anti_proton");
} else {
#ifdef G4VERBOSE
if (GetVerboseLevel()>0) {
G4cout << "G4NeutronBetaDecayChannel:: constructor :";
G4cout << " parent particle is not muon but ";
G4cout << " parent particle is not neutron but ";
G4cout << theParentName << G4endl;
}
#endif
@@ -75,6 +88,40 @@ G4NeutronBetaDecayChannel::~G4NeutronBetaDecayChannel()
{
}
G4NeutronBetaDecayChannel::G4NeutronBetaDecayChannel(const G4NeutronBetaDecayChannel &right)
: G4VDecayChannel(right),
aENuCorr(-0.102)
{
}
G4NeutronBetaDecayChannel & G4NeutronBetaDecayChannel::operator=(const G4NeutronBetaDecayChannel & right)
{
if (this != &right) {
kinematics_name = right.kinematics_name;
verboseLevel = right.verboseLevel;
rbranch = right.rbranch;
// copy parent name
parent_name = new G4String(*right.parent_name);
// clear daughters_name array
ClearDaughtersName();
// recreate array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
if (daughters_name !=0) ClearDaughtersName();
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++) {
daughters_name[index] = new G4String(*right.daughters_name[index]);
}
}
}
return *this;
}
G4DecayProducts *G4NeutronBetaDecayChannel::DecayIt(G4double)
{
// This class describes free neutron beta decay kinemtics.
@@ -126,6 +173,7 @@ G4DecayProducts *G4NeutronBetaDecayChannel::DecayIt(G4double)
r0 = G4UniformRand()*(xmax+m)*(xmax+m)*xmax*xmax*(1.0+aENuCorr);
} while (r < r0);
//create daughter G4DynamicParticle
// rotation materix to lab frame
G4double costheta = 2.*G4UniformRand()-1.0;
@@ -144,7 +192,9 @@ G4DecayProducts *G4NeutronBetaDecayChannel::DecayIt(G4double)
products->PushProducts(daughterparticle0);
// daughter 1 (nutrino) in XZ plane
G4double eNu = xmax-x;
G4double eNu; // Enu
eNu = (parentmass-daughtermass[2])*(parentmass+daughtermass[2])+(m*m)-2.*parentmass*(x+m);
eNu /= 2.*(parentmass+p*w-(x+m));
G4double cosn = w;
G4double sinn = std::sqrt((1.0-cosn)*(1.0+cosn));
@@ -155,8 +205,13 @@ G4DecayProducts *G4NeutronBetaDecayChannel::DecayIt(G4double)
products->PushProducts(daughterparticle1);
// daughter 2 (proton) at REST
G4ThreeVector direction2(0.0, 0.0, 0.0);
G4DynamicParticle * daughterparticle2
G4double eP; // Eproton
eP = parentmass-eNu-(x+m)-daughtermass[2];
G4double pPx = -eNu*sinn;
G4double pPz = -p-eNu*cosn;
G4double pP = std::sqrt(eP*(eP+2.*daughtermass[2]));
G4ThreeVector direction2(pPx/pP, 0.0, pPz/pP);
G4DynamicParticle * daughterparticle2
= new G4DynamicParticle( daughters[2], direction2);
products->PushProducts(daughterparticle2);
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiProperties.cc,v 1.23 2010/08/10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4NucleiProperties.cc,v 1.23 2010-08-10 15:47:42 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiPropertiesTableAME03.cc,v 1.4 2010/10/30 07:55:00 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4NucleiPropertiesTableAME03.cc,v 1.5 2010-12-22 07:07:59 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
// -------------------------------------------------------------------
//
@@ -61,18 +61,18 @@ G4int G4NucleiPropertiesTableAME03::GetIndex(G4int Z, G4int A)
{
if(A>G4NucleiPropertiesTableAME03::MaxA) {
G4Exception("G4NucleiPropertiesTableAME03::GetIndex",
"Illegal arguemnt",
EventMustBeAborted,"Nucleon number larger than 293!");
"PART201",
EventMustBeAborted,"Nucleon number larger than 293");
return -1;
} else if(A<1) {
G4Exception("G4NucleiPropertiesTableAME03::GetIndex",
"Illegal arguemnt",
EventMustBeAborted," Nucleon number is negative!");
"Illegal arguemntPART201",
EventMustBeAborted," Nucleon number is negative");
return -1;
} else if(Z>A) {
G4Exception("G4NucleiPropertiesTableAME03::GetIndex",
"Illegal arguemnt",
EventMustBeAborted, "Nucleon number smaller than Z!");
"PART201",
EventMustBeAborted, "Nucleon number smaller than Z");
return -1;
}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4NucleiPropertiesTheoreticalTableA.cc,v 1.8 2006/06/29 19:25:46 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4NucleiPropertiesTheoreticalTableA.cc,v 1.9 2010-12-22 07:07:59 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -42,24 +42,24 @@ G4int G4NucleiPropertiesTheoreticalTable::GetIndex(G4int Z, G4int A)
if(A>339) {
G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
"Illegal arguemnt",
EventMustBeAborted,"Nucleon number larger than 339!");
"PART202",
EventMustBeAborted,"Nucleon number larger than 339");
} else if(A<16) {
G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
"Illegal arguemnt",
EventMustBeAborted," Nucleon number smaller than 16!");
"PART202",
EventMustBeAborted," Nucleon number smaller than 16");
} else if(Z>136) {
G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
"Illegal arguemnt",
EventMustBeAborted, "Proton number larger than 136!");
"PART202",
EventMustBeAborted, "Proton number larger than 136");
} else if(Z<8) {
G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
"Illegal arguemnt",
EventMustBeAborted, "Proton number smaller than 8!");
"PART202",
EventMustBeAborted, "Proton number smaller than 8");
} else if(Z>A) {
G4Exception("G4NucleiPropertiesTheoreticalTable::GetIndex",
"Illegal arguemnt",
EventMustBeAborted, "Nucleon number smaller than Z!");
"PART202",
EventMustBeAborted, "Nucleon number smaller than Z");
}
G4int i = shortTable[Z-8];
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4PDGCodeChecker.cc,v 1.16 2010/12/15 07:39:05 gunter Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4PDGCodeChecker.cc,v 1.16 2010-12-15 07:39:05 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ----------------------------------------------------------------------
@@ -134,12 +134,21 @@ G4int G4PDGCodeChecker::CheckForBaryons()
} else if (std::abs(tempPDGcode)%10000 == 4122) {
// Lambda_c
quark2=2; quark3 = 1; spin = 1;
} else if (std::abs(tempPDGcode)%10000 == 5122) {
// Lambda_b
quark2=2; quark3 = 1; spin = 1;
} else if (std::abs(tempPDGcode)%10000 == 4132) {
// Xi_c0
quark2=3; quark3 = 1; spin = 1;
} else if (std::abs(tempPDGcode)%10000 == 4232) {
// Xi_c+
quark2=3; quark3 = 2; spin = 1;
} else if (std::abs(tempPDGcode)%10000 == 5132) {
// Xi_b0
quark2=3; quark3 = 1; spin = 1;
} else if (std::abs(tempPDGcode)%10000 == 5232) {
// Xi_b+
quark2=3; quark3 = 2; spin = 1;
} else if (std::abs(tempPDGcode)%10000 == 2122) {
// Delta+ (spin 1/2)
quark2=2; quark3 = 1; spin = 1;
@@ -380,7 +389,9 @@ G4int G4PDGCodeChecker::CheckForNuclei()
pcode -= 10000*Z;
G4int A = pcode/10;
if (A < 2 || Z > A-L || L>A || Z<=0 ) {
// Allow neutron balls
// if (A < 2 || Z > A-L || L>A || Z<=0 ) {
if (A < 2 || Z > A-L || L>A ) {
#ifdef G4VERBOSE
if (verboseLevel>0) {
G4cout << " G4PDGCodeChecker::CheckPDGCode : ";
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleDefinition.cc,v 1.38 2010/12/15 07:39:08 gunter Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4ParticleDefinition.cc,v 1.39 2010-12-22 07:07:59 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// --------------------------------------------------------------
@@ -127,6 +127,9 @@ G4ParticleDefinition::G4ParticleDefinition(
G4cerr << "Particle " << aName << " has a strange PDGEncoding " <<G4endl;
}
#endif
G4Exception( "G4ParticleDefintion::G4ParticleDefintion",
"PART102", JustWarning,
"Strange PDGEncoding ");
}
// check initialization is in Pre_Init state except for ions
@@ -140,7 +143,7 @@ G4ParticleDefinition::G4ParticleDefinition(
}
#endif
G4Exception( "G4ParticleDefintion::G4ParticleDefintion",
"Illegal operation", JustWarning,
"PART101", JustWarning,
"G4ParticleDefinition should be created in PreInit state");
}
@@ -163,15 +166,15 @@ G4ParticleDefinition::G4ParticleDefinition(
G4ParticleDefinition::G4ParticleDefinition(const G4ParticleDefinition &)
{
G4Exception("G4ParticleDefinition::G4ParticleDefinition()",
"illegal constructor call", FatalException,
"You call Copy Constructor of G4ParticleDefinition ");
"PART001", FatalException,
"Illegal call of copy Constructor for G4ParticleDefinition ");
}
G4ParticleDefinition::G4ParticleDefinition()
{
G4Exception("G4ParticleDefinition::G4ParticleDefinition()",
"illegal constructor call", FatalException,
"You call Default Constructor of G4ParticleDefinition ");
"PART001", FatalException,
"Illegal call of default Constructor for G4ParticleDefinition ");
}
@@ -226,6 +229,9 @@ G4int G4ParticleDefinition::FillQuarkContents()
// check charge
if (!checker.CheckCharge(thePDGCharge) ){
temp = 0;
G4Exception( "G4ParticleDefintion::G4ParticleDefintion",
"PART103", JustWarning,
"Inconsistent charge against PDG code ");
#ifdef G4VERBOSE
if (verboseLevel>0) {
G4cerr << "G4ParticleDefinition::FillQuarkContents : "
@@ -237,6 +243,9 @@ G4int G4ParticleDefinition::FillQuarkContents()
// check spin
if (checker.GetSpin() != thePDGiSpin) {
temp=0;
G4Exception( "G4ParticleDefintion::G4ParticleDefintion",
"PART104", JustWarning,
"Inconsistent spin against PDG code ");
#ifdef G4VERBOSE
if (verboseLevel>0) {
G4cerr << "G4ParticleDefinition::FillQuarkContents : "
@@ -312,7 +321,8 @@ void G4ParticleDefinition::SetApplyCutsFlag(G4bool flg)
{
if(theParticleName=="gamma"
|| theParticleName=="e-"
|| theParticleName=="e+")
|| theParticleName=="e+"
|| theParticleName=="proton")
{ fApplyCutsFlag = flg; }
else
{
@@ -321,6 +331,6 @@ void G4ParticleDefinition::SetApplyCutsFlag(G4bool flg)
<< G4endl;
G4cerr
<< "becomes obsolete. Production threshold is applied only for "
<< "gamma, e- and e+." << G4endl;
<< "gamma, e- ,e+ and proton." << G4endl;
}
}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleMessenger.cc,v 1.11 2009/07/31 06:39:22 kurasige Exp $
// GEANT4 tag $Name: geant4-09-03 $
// $Id: G4ParticleMessenger.cc,v 1.11 2009-07-31 06:39:22 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
//---------------------------------------------------------------
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4ParticlePropertyData.cc,v 1.5 2010/10/30 07:55:00 kurasige Exp $
// $Id: G4ParticlePropertyData.cc,v 1.5 2010-10-30 07:55:00 kurasige Exp $
//
// class G4ParticlePropertyData
//
@@ -135,7 +135,7 @@ G4ParticlePropertyData::G4ParticlePropertyData(const G4ParticlePropertyData &rig
}
////////////////////////
const G4ParticlePropertyData & G4ParticlePropertyData::operator=(const G4ParticlePropertyData &right)
G4ParticlePropertyData & G4ParticlePropertyData::operator=(const G4ParticlePropertyData &right)
{
if (this != &right) {
verboseLevel = right.verboseLevel;
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticlePropertyMessenger.cc,v 1.7 2006/06/29 19:25:59 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4ParticlePropertyMessenger.cc,v 1.7 2006-06-29 19:25:59 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
//---------------------------------------------------------------
@@ -23,7 +23,7 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: G4ParticlePropertyTable.cc,v 1.4 2007/03/11 07:17:35 kurasige Exp $
// $Id: G4ParticlePropertyTable.cc,v 1.4 2007-03-11 07:17:35 kurasige Exp $
//
// class G4ParticlePropertyTable
//
@@ -71,11 +71,12 @@ G4ParticlePropertyTable::G4ParticlePropertyTable():
////////////////////////
G4ParticlePropertyTable::G4ParticlePropertyTable(const G4ParticlePropertyTable &right)
{
fParticleTable = G4ParticleTable::GetParticleTable();
*this = right;
}
////////////////////////
const G4ParticlePropertyTable & G4ParticlePropertyTable::operator=(const G4ParticlePropertyTable &right)
G4ParticlePropertyTable & G4ParticlePropertyTable::operator=(const G4ParticlePropertyTable &right)
{
if (this != &right) {
fParticleTable = right.fParticleTable;
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ParticleTable.cc,v 1.37 2010/10/30 07:55:00 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4ParticleTable.cc,v 1.38 2010-12-22 07:07:59 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
// class G4ParticleTable
//
@@ -56,6 +56,19 @@
#include "G4IonTable.hh"
#include "G4ShortLivedTable.hh"
// Static class variable: ptr to single instance of class
G4ParticleTable* G4ParticleTable::fgParticleTable =0;
////////////////////
G4ParticleTable* G4ParticleTable::GetParticleTable()
{
static G4ParticleTable theParticleTable;
if (!fgParticleTable){
fgParticleTable = &theParticleTable;
}
return fgParticleTable;
}
////////////////////
G4ParticleTable::G4ParticleTable()
:verboseLevel(1),fParticleMessenger(0),
@@ -73,7 +86,6 @@ G4ParticleTable::G4ParticleTable()
fShortLivedTable = new G4ShortLivedTable();
}
////////////////////
G4ParticleTable::~G4ParticleTable()
{
@@ -120,25 +132,23 @@ G4ParticleTable::G4ParticleTable(const G4ParticleTable &right)
readyToUse(false)
{
G4Exception("G4ParticleTable::G4ParticleTable()",
"illegal constructor call", JustWarning,
"you call copy constructor of G4ParticleTable");
"PART001", FatalException,
"Illegal call of copy constructor for G4ParticleTable");
fDictionary = new G4PTblDictionary(*(right.fDictionary));
fIterator = new G4PTblDicIterator(*fDictionary);
}
// Static class variable: ptr to single instance of class
G4ParticleTable* G4ParticleTable::fgParticleTable =0;
////////////////////
G4ParticleTable* G4ParticleTable::GetParticleTable()
G4ParticleTable & G4ParticleTable::operator=(const G4ParticleTable & right)
{
static G4ParticleTable theParticleTable;
if (!fgParticleTable){
fgParticleTable = &theParticleTable;
}
return fgParticleTable;
if (this != &right) {
G4Exception("G4ParticleTable::G4ParticleTable()",
"PART001", FatalException,
"Illegal call of assignment operator for G4ParticleTable");
fDictionary = new G4PTblDictionary(*(right.fDictionary));
fIterator = new G4PTblDicIterator(*fDictionary);
}
return *this;
}
////////////////////
@@ -284,7 +294,6 @@ G4ParticleDefinition* G4ParticleTable::Insert(G4ParticleDefinition *particle)
}
}
////////////////////
G4ParticleDefinition* G4ParticleTable::Remove(G4ParticleDefinition* particle)
{
@@ -393,6 +402,28 @@ G4ParticleDefinition* G4ParticleTable::GetParticle(G4int index)
return 0;
}
////////////////////
const G4String& G4ParticleTable::GetParticleName(G4int index)
{
G4ParticleDefinition* aParticle =GetParticle(index);
if (aParticle != 0) {
return aParticle->GetParticleName();
} else {
return noName;
}
}
////////////////////
G4ParticleDefinition* G4ParticleTable::FindParticle(const G4String &particle_name)
{
G4PTblDictionary::iterator it = fDictionary->find(particle_name);
if (it != fDictionary->end()) {
return (*it).second;
} else {
return 0;
}
}
////////////////////
G4ParticleDefinition* G4ParticleTable::FindParticle(const G4ParticleDefinition *particle)
{
@@ -459,7 +490,8 @@ void G4ParticleTable::CheckReadiness()
{
if(!readyToUse) {
G4String msg;
msg = " Access to G4ParticleTable for finding a particle or equivalent\n";
msg = "Illegal use of G4ParticleTable : ";
msg += " Access to G4ParticleTable for finding a particle or equivalent\n";
msg += "operation occurs before G4VUserPhysicsList is instantiated and\n";
msg += "assigned to G4RunManager. Such an access is prohibited by\n";
msg += "Geant4 version 8.0. To fix this problem, please make sure that\n";
@@ -467,7 +499,7 @@ void G4ParticleTable::CheckReadiness()
msg += "G4RunManager before instantiating other user classes such as\n";
msg += "G4VUserPrimaryParticleGeneratorAction.";
G4Exception("G4ParticleTable::CheckReadiness()",
"PartMan0000",FatalException,msg);
"PART002",FatalException,msg);
}
}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4PhaseSpaceDecayChannel.cc,v 1.13 2007/10/06 06:49:29 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4PhaseSpaceDecayChannel.cc,v 1.14 2010-12-22 07:07:59 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -180,8 +180,8 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::TwoBodyDecayIt()
}
#endif
G4Exception("G4PhaseSpaceDecayChannel::TwoBodyDecayIt",
"can not create decay products", JustWarning,
"sum of daughter mass is larger than parent mass");
"PART112", JustWarning,
"Can not create decay products: sum of daughter mass is larger than parent mass");
return products;
}
@@ -243,8 +243,8 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::ThreeBodyDecayIt()
}
#endif
G4Exception("G4PhaseSpaceDecayChannel::ThreeBodyDecayIt",
"can not create decay products", JustWarning,
"sum of daughter mass is larger than parent mass");
"PART112", JustWarning,
"Can not create decay products: sum of daughter mass is larger than parent mass");
return products;
}
@@ -434,8 +434,8 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::ManyBodyDecayIt()
delete [] daughtermomentum;
G4Exception("G4PhaseSpaceDecayChannel::ManyBodyDecayIt",
"can not create decay products", JustWarning,
"sum of daughter mass is larger than parent mass");
"PART112", JustWarning,
"Can not create decay products: sum of daughter mass is larger than parent mass");
return 0; // Error detection
@@ -472,8 +472,8 @@ G4DecayProducts *G4PhaseSpaceDecayChannel::ManyBodyDecayIt()
}
#endif
G4Exception("G4PhaseSpaceDecayChannel::ManyBodyDecayIt: ",
" Cannot decay ", JustWarning,
" Decay Kinematics cannot be calculated ");
"PART113", JustWarning,
" Cannot decay : Decay Kinematics cannot be calculated ");
delete [] sm;
delete [] daughtermass;
@@ -43,6 +43,13 @@
#include "G4DecayProducts.hh"
#include "G4LorentzVector.hh"
G4PionRadiativeDecayChannel::G4PionRadiativeDecayChannel()
: G4VDecayChannel(),
beta(0.),cib(0.),csdp(0.),csdm(0.),cif(0.),cig(0.),
xl(0.), yl(0.), xu(0.), yu(0.), d2wmax(0.)
{
}
G4PionRadiativeDecayChannel::
G4PionRadiativeDecayChannel(const G4String& theParentName,
G4double theBR)
@@ -67,7 +74,7 @@ G4PionRadiativeDecayChannel::
#ifdef G4VERBOSE
if (GetVerboseLevel()>0) {
G4cout << "G4RadiativePionDecayChannel:: constructor :";
G4cout << " parent particle is not muon but ";
G4cout << " parent particle is not charged pion but ";
G4cout << theParentName << G4endl;
}
#endif
@@ -94,6 +101,52 @@ G4PionRadiativeDecayChannel::
G4PionRadiativeDecayChannel::~G4PionRadiativeDecayChannel()
{
}
G4PionRadiativeDecayChannel::G4PionRadiativeDecayChannel(const G4PionRadiativeDecayChannel &right)
:G4VDecayChannel(right),
beta(right.beta),cib(right.cib),csdp(right.csdp),
csdm(right.csdm),cif(right.cif),cig(right.cig),
xl(right.xl), yl(right.yl), xu(right.xu), yu(right.yu),
d2wmax(right.d2wmax)
{
}
G4PionRadiativeDecayChannel & G4PionRadiativeDecayChannel::operator=(const G4PionRadiativeDecayChannel & right)
{
if (this != &right) {
kinematics_name = right.kinematics_name;
verboseLevel = right.verboseLevel;
rbranch = right.rbranch;
// copy parent name
parent_name = new G4String(*right.parent_name);
// clear daughters_name array
ClearDaughtersName();
// recreate array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
if (daughters_name !=0) ClearDaughtersName();
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++) {
daughters_name[index] = new G4String(*right.daughters_name[index]);
}
}
beta = right.beta;
cib = right.cib;
csdp = right.csdp;
csdm = right.csdm;
cif = right.cif;
cig = right.cig;
xl = right.xl;
yl = right.yl;
xu = right.xu;
yu = right.yu;
d2wmax = right.d2wmax;
}
return *this;
}
G4DecayProducts *G4PionRadiativeDecayChannel::DecayIt(G4double)
{
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4PrimaryParticle.cc,v 1.7 2010/08/11 17:14:02 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4PrimaryParticle.cc,v 1.7 2010-08-11 17:14:02 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
#include "G4PrimaryParticle.hh"
@@ -37,131 +37,226 @@
G4Allocator<G4PrimaryParticle> aPrimaryParticleAllocator;
G4PrimaryParticle::G4PrimaryParticle()
:PDGcode(0),G4code(0),Px(0.),Py(0.),Pz(0.),
:PDGcode(0),G4code(0),
direction(0.,0.,1.),kinE(0.),
nextParticle(0),daughterParticle(0),trackID(-1),
mass(-1.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.),
mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
Weight0(1.0),properTime(0.0),userInfo(0)
{;}
G4PrimaryParticle::G4PrimaryParticle(G4int Pcode)
:PDGcode(Pcode),Px(0.),Py(0.),Pz(0.),
:PDGcode(Pcode),
direction(0.,0.,1.),kinE(0.),
nextParticle(0),daughterParticle(0),trackID(-1),
mass(-1.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.),
mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
Weight0(1.0),properTime(0.0),userInfo(0)
{ G4code = G4ParticleTable::GetParticleTable()->FindParticle(Pcode); }
{
G4code = G4ParticleTable::GetParticleTable()->FindParticle(Pcode);
if (G4code !=0) {
mass = G4code->GetPDGMass();
charge = G4code->GetPDGCharge();
}
}
G4PrimaryParticle::G4PrimaryParticle(G4int Pcode,
G4double px,G4double py,G4double pz)
:PDGcode(Pcode),Px(px),Py(py),Pz(pz),
:PDGcode(Pcode),
direction(0.,0.,1.),kinE(0.),
nextParticle(0),daughterParticle(0),trackID(-1),
mass(-1.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.),
mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
Weight0(1.0),properTime(0.0),userInfo(0)
{ G4code = G4ParticleTable::GetParticleTable()->FindParticle(Pcode); }
{
G4code = G4ParticleTable::GetParticleTable()->FindParticle(Pcode);
if (G4code !=0) {
mass = G4code->GetPDGMass();
charge = G4code->GetPDGCharge();
}
SetMomentum( px, py, pz);
}
G4PrimaryParticle::G4PrimaryParticle(G4int Pcode,
G4double px,G4double py,G4double pz,G4double E)
:PDGcode(Pcode),Px(px),Py(py),Pz(pz),
:PDGcode(Pcode),
direction(0.,0.,1.),kinE(0.),
nextParticle(0),daughterParticle(0),trackID(-1),
charge(DBL_MAX),polX(0.),polY(0.),polZ(0.),
charge(0.),polX(0.),polY(0.),polZ(0.),
Weight0(1.0),properTime(0.0),userInfo(0)
{
G4code = G4ParticleTable::GetParticleTable()->FindParticle(Pcode);
G4double mas2 = E*E - px*px - py*py - pz*pz;
if(mas2>=0.)
{ mass = std::sqrt(mas2); }
else
{ mass = -1.0; }
if (G4code !=0) {
mass = G4code->GetPDGMass();
charge = G4code->GetPDGCharge();
}
Set4Momentum( px, py, pz, E);
}
G4PrimaryParticle::G4PrimaryParticle(const G4ParticleDefinition* Gcode)
:G4code(Gcode),Px(0.),Py(0.),Pz(0.),
:PDGcode(0),G4code(Gcode),
direction(0.,0.,1.),kinE(0.),
nextParticle(0),daughterParticle(0),trackID(-1),
mass(-1.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.),
mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
Weight0(1.0),properTime(0.0),userInfo(0)
{ PDGcode = Gcode->GetPDGEncoding(); }
{
if (G4code !=0) {
PDGcode = Gcode->GetPDGEncoding();
mass = G4code->GetPDGMass();
charge = G4code->GetPDGCharge();
}
}
G4PrimaryParticle::G4PrimaryParticle(const G4ParticleDefinition* Gcode,
G4double px,G4double py,G4double pz)
:G4code(Gcode),Px(px),Py(py),Pz(pz),
:PDGcode(0),G4code(Gcode),
direction(0.,0.,1.),kinE(0.),
nextParticle(0),daughterParticle(0),trackID(-1),
mass(-1.),charge(DBL_MAX),polX(0.),polY(0.),polZ(0.),
mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
Weight0(1.0),properTime(0.0),userInfo(0)
{ PDGcode = Gcode->GetPDGEncoding(); }
{
if (G4code !=0) {
PDGcode = Gcode->GetPDGEncoding();
mass = G4code->GetPDGMass();
charge = G4code->GetPDGCharge();
}
SetMomentum( px, py, pz);
}
G4PrimaryParticle::G4PrimaryParticle(const G4ParticleDefinition* Gcode,
G4double px,G4double py,G4double pz,G4double E)
:G4code(Gcode),Px(px),Py(py),Pz(pz),
:PDGcode(0),G4code(Gcode),
direction(0.,0.,1.),kinE(0.),
nextParticle(0),daughterParticle(0),trackID(-1),
charge(DBL_MAX),polX(0.),polY(0.),polZ(0.),
charge(0.),polX(0.),polY(0.),polZ(0.),
Weight0(1.0),properTime(0.0),userInfo(0)
{
PDGcode = Gcode->GetPDGEncoding();
G4double mas2 = E*E - px*px - py*py - pz*pz;
if(mas2>=0.)
{ mass = std::sqrt(mas2); }
else
{ mass = -1.0; }
if (G4code !=0) {
PDGcode = Gcode->GetPDGEncoding();
mass = G4code->GetPDGMass();
charge = G4code->GetPDGCharge();
}
Set4Momentum( px, py, pz, E);
}
G4PrimaryParticle::G4PrimaryParticle(const G4PrimaryParticle& right)
:PDGcode(0),G4code(0),
direction(0.,0.,1.),kinE(0.),
nextParticle(0),daughterParticle(0),trackID(-1),
mass(-1.),charge(0.),polX(0.),polY(0.),polZ(0.),
Weight0(1.0),properTime(0.0),userInfo(0)
{
*this = right;
}
G4PrimaryParticle & G4PrimaryParticle::operator=(const G4PrimaryParticle & right)
{
if (this != &right) {
PDGcode = right.PDGcode;
G4code = right.G4code;
direction = right.direction;
kinE = right.kinE;
if (nextParticle !=0) delete nextParticle;
if ( right.nextParticle ==0 ){
nextParticle = 0;
} else {
nextParticle = new G4PrimaryParticle(*right.nextParticle);
}
if (daughterParticle !=0) delete daughterParticle;
if ( right.daughterParticle ==0 ){
daughterParticle = 0;
} else {
daughterParticle = new G4PrimaryParticle(*right.daughterParticle);
}
trackID = right.trackID;
mass = right.mass;
charge = right.charge;
polX = right.polX;
polY = right.polY;
polZ = right.polZ;
Weight0 = right.Weight0;
properTime = right.properTime;
// userInfo can not be copied
userInfo = 0;
}
return *this;
}
G4int G4PrimaryParticle::operator==(const G4PrimaryParticle &right) const
{ return (this==&right); }
G4int G4PrimaryParticle::operator!=(const G4PrimaryParticle &right) const
{ return (this!=&right); }
G4PrimaryParticle::~G4PrimaryParticle()
{
if(nextParticle != 0)
{ delete nextParticle; }
if(daughterParticle != 0)
{ delete daughterParticle; }
if(userInfo!=0)
{ delete userInfo; }
if(nextParticle != 0){
delete nextParticle;
nextParticle = 0;
}
if(daughterParticle != 0){
delete daughterParticle;
daughterParticle =0;
}
if(userInfo!=0) {
delete userInfo;
userInfo=0;
}
}
void G4PrimaryParticle::SetMomentum(G4double px, G4double py, G4double pz)
{
if ((mass<0.)&&(G4code!=0)){
mass = G4code->GetPDGMass();
}
G4double pmom = std::sqrt(px*px+py*py+pz*pz);
if (pmom>0.0) {
direction.setX(px/pmom);
direction.setY(py/pmom);
direction.setZ(pz/pmom);
}
kinE = std::sqrt(px*px+py*py+pz*pz+mass*mass)-mass;
}
void G4PrimaryParticle::Set4Momentum(G4double px, G4double py, G4double pz, G4double E)
{
G4double pmom = std::sqrt(px*px+py*py+pz*pz);
if (pmom>0.0) {
direction.setX(px/pmom);
direction.setY(py/pmom);
direction.setZ(pz/pmom);
}
G4double mas2 = E*E - pmom*pmom;
if(mas2>=0.){
mass = std::sqrt(mas2);
} else {
if (G4code!=0){
mass = G4code->GetPDGMass();
}
E = std::sqrt(pmom*pmom+mass*mass);
}
kinE = E - mass;
}
void G4PrimaryParticle::SetPDGcode(G4int Pcode)
{
PDGcode = Pcode;
G4code = G4ParticleTable::GetParticleTable()->FindParticle(Pcode);
}
void G4PrimaryParticle::SetG4code(const G4ParticleDefinition* Gcode)
{
SetParticleDefinition(Gcode);
if (G4code!=0){
mass = G4code->GetPDGMass();
charge = G4code->GetPDGCharge();
}
}
void G4PrimaryParticle::SetParticleDefinition(const G4ParticleDefinition* Gcode)
{
G4code = Gcode;
PDGcode = Gcode->GetPDGEncoding();
}
G4double G4PrimaryParticle::GetMass() const
{
if (mass <0.0 ) {
if (G4code != 0) {
// return PDG mass if dynamical mass has not be specified
return G4code->GetPDGMass();
}
if (G4code!=0){
PDGcode = Gcode->GetPDGEncoding();
mass = G4code->GetPDGMass();
charge = G4code->GetPDGCharge();
}
return mass;
}
G4double G4PrimaryParticle::GetCharge() const
{
if ( charge <DBL_MAX ) {
return charge;
} else {
if (G4code != 0) {
// return PDG charge if dynamical mass has not be specified
return G4code->GetPDGCharge();
}
}
return charge;
}
const G4PrimaryParticle &
G4PrimaryParticle::operator=(const G4PrimaryParticle &)
{ return *this; }
G4int G4PrimaryParticle::operator==(const G4PrimaryParticle &right) const
{ return (this==&right); }
G4int G4PrimaryParticle::operator!=(const G4PrimaryParticle &right) const
{ return (this!=&right); }
void G4PrimaryParticle::Print() const
{
G4cout << "==== PDGcode " << PDGcode << " Particle name ";
@@ -169,36 +264,36 @@ void G4PrimaryParticle::Print() const
{ G4cout << G4code->GetParticleName() << G4endl; }
else
{ G4cout << " is not defined in G4." << G4endl; }
if(charge<DBL_MAX)
{ G4cout << " Assigned charge : " << charge/eplus << G4endl; }
else
{ G4cout << " Charge will be taken from PDG charge." << G4endl; }
G4cout << " Assigned charge : " << charge/eplus << G4endl;
G4cout << " Momentum ( "
<< Px/GeV << "[GeV/c], "
<< Py/GeV << "[GeV/c], "
<< Pz/GeV << "[GeV/c] )" << G4endl;
if(mass>=0.)
{ G4cout << " Mass : " << mass/GeV << " [GeV]" << G4endl; }
else
{ G4cout << " Nominal mass will be taken from particle definition." << G4endl; }
<< GetTotalMomentum()*direction.x()/GeV << "[GeV/c], "
<< GetTotalMomentum()*direction.y()/GeV << "[GeV/c], "
<< GetTotalMomentum()*direction.z()/GeV << "[GeV/c] )" << G4endl;
G4cout << " kinetic Energy : " << kinE/GeV << " [GeV]" << G4endl;
if(mass>=0.){
G4cout << " Mass : " << mass/GeV << " [GeV]" << G4endl;
} else {
G4cout << " Mass is not assigned " << G4endl;
}
G4cout << " Polarization ( "
<< polX << ", "
<< polY << ", "
<< polZ << " )"
<< G4endl;
G4cout << " Weight : " << Weight0 << G4endl;
if(properTime>0.0)
{ G4cout << " PreAssigned proper decay time : " << properTime/ns << " [ns] " << G4endl; }
if(userInfo != 0) userInfo->Print();
if(daughterParticle != 0)
{
if(properTime>0.0) {
G4cout << " PreAssigned proper decay time : " << properTime/ns << " [ns] " << G4endl;
}
if(userInfo != 0) { userInfo->Print(); }
if(daughterParticle != 0) {
G4cout << ">>>> Daughters" << G4endl;
daughterParticle->Print();
}
if(nextParticle != 0)
{ nextParticle->Print(); }
else
{ G4cout << "<<<< End of link" << G4endl; }
if(nextParticle != 0) {
nextParticle->Print();
} else {
G4cout << "<<<< End of link" << G4endl;
}
}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4PrimaryVertex.cc,v 1.4 2007/10/06 06:49:29 kurasige Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4PrimaryVertex.cc,v 1.4 2007-10-06 06:49:29 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
#include "G4PrimaryVertex.hh"
@@ -54,24 +54,93 @@ G4PrimaryVertex::G4PrimaryVertex(G4ThreeVector xyz0,G4double t0)
Z0=xyz0.z();
}
G4PrimaryVertex::~G4PrimaryVertex()
G4PrimaryVertex::G4PrimaryVertex(const G4PrimaryVertex & right)
:theParticle(0),theTail(0),
nextVertex(0),tailVertex(0),userInfo(0)
{
if(theParticle != 0)
{ delete theParticle; }
if(nextVertex != 0)
{ delete nextVertex; }
if(userInfo != 0)
{ delete userInfo; }
numberOfParticle = right.numberOfParticle;
*this = right;
}
G4PrimaryVertex::~G4PrimaryVertex()
{
if(theParticle != 0) {
delete theParticle;
theParticle = 0;
}
if(nextVertex != 0) {
delete nextVertex;
nextVertex =0;
}
if(userInfo != 0) {
delete userInfo;
userInfo = 0;
}
}
G4PrimaryVertex & G4PrimaryVertex::operator=(const G4PrimaryVertex & right)
{
if (this != &right) {
X0 = right.X0;
Y0 = right.Y0;
Z0 = right.Z0;
T0 = right.T0;
Weight0 = right.Weight0;
numberOfParticle = 0;
if (theParticle !=0) delete theParticle;
theParticle =0;
theTail =0;
if (right.theParticle !=0 ) {
theParticle = new G4PrimaryParticle(*(right.theParticle));
numberOfParticle += 1;
theTail = theParticle;
G4PrimaryParticle * np = theParticle->GetNext();
while (np !=0) {
numberOfParticle += 1;
theTail = np;
np = np->GetNext();
}
}
if (nextVertex !=0 ) delete nextVertex;
nextVertex = 0;
tailVertex =0;
if (right.nextVertex !=0 ) {
nextVertex = new G4PrimaryVertex(*(right.nextVertex));
tailVertex = nextVertex;
G4PrimaryVertex* nv = nextVertex->GetNext();
while (nv !=0) {
tailVertex = nv;
nv = nv->GetNext();
}
}
// userInfo can not be copied
userInfo = 0;
}
return *this;
}
const G4PrimaryVertex &
G4PrimaryVertex::operator=(const G4PrimaryVertex &)
{ return *this; }
G4int G4PrimaryVertex::operator==(const G4PrimaryVertex &right) const
{ return (this==&right); }
G4int G4PrimaryVertex::operator!=(const G4PrimaryVertex &right) const
{ return (this!=&right); }
G4PrimaryParticle* G4PrimaryVertex::GetPrimary(G4int i) const
{
if( i >= 0 && i < numberOfParticle ) {
G4PrimaryParticle* particle = theParticle;
for( G4int j=0; j<i; j++ ){
if( particle == 0 ) return 0;
particle = particle->GetNext();
}
return particle;
} else {
return 0; }
}
void G4PrimaryVertex::Print() const
{
G4cout << "Vertex ( "
@@ -79,13 +148,13 @@ void G4PrimaryVertex::Print() const
<< Y0/mm << "[mm], "
<< Z0/mm << "[mm], "
<< T0/ns << "[ns] )"
<< " Weight " << Weight0 << G4endl;
<< " Weight " << Weight0 << G4endl;
if(userInfo!=0) userInfo->Print();
G4cout << "#### Primary particles" << G4endl;
G4PrimaryParticle* aPrim = theParticle;
if(aPrim != 0)
{
aPrim->Print();
aPrim = aPrim->GetNext();
G4cout << " -- Primary particles :: "
<< " # of primaries =" << numberOfParticle << G4endl;
if( theParticle != 0) theParticle->Print();
if (nextVertex !=0 ) {
G4cout << "Next Vertex " << G4endl;
nextVertex->Print();
}
}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4ShortLivedTable.cc,v 1.18 2010/08/10 15:47:43 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04 $
// $Id: G4ShortLivedTable.cc,v 1.18 2010-08-10 15:47:43 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// --------------------------------------------------------------
@@ -58,6 +58,25 @@ G4ShortLivedTable::~G4ShortLivedTable()
fShortLivedList =0;
}
G4ShortLivedTable::G4ShortLivedTable(const G4ShortLivedTable & right)
{
fShortLivedList = new G4ShortLivedList(*(right.fShortLivedList));
}
G4ShortLivedTable & G4ShortLivedTable::operator=(const G4ShortLivedTable &right)
{
if (this != & right) {
if (fShortLivedList !=0){
fShortLivedList->clear();
delete fShortLivedList;
fShortLivedList = new G4ShortLivedList(*(right.fShortLivedList));
} else {
fShortLivedList = new G4ShortLivedList();
}
}
return *this;
}
G4int G4ShortLivedTable::GetVerboseLevel() const
{
return G4ParticleTable::GetParticleTable()->GetVerboseLevel();
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4TauLeptonicDecayChannel.cc,v 1.5 2006/06/29 19:26:18 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4TauLeptonicDecayChannel.cc,v 1.5 2006-06-29 19:26:18 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -46,6 +46,12 @@
#include "G4LorentzRotation.hh"
G4TauLeptonicDecayChannel::G4TauLeptonicDecayChannel()
:G4VDecayChannel()
{
}
G4TauLeptonicDecayChannel::G4TauLeptonicDecayChannel(
const G4String& theParentName,
G4double theBR,
@@ -94,6 +100,38 @@ G4TauLeptonicDecayChannel::~G4TauLeptonicDecayChannel()
{
}
G4TauLeptonicDecayChannel::G4TauLeptonicDecayChannel(const G4TauLeptonicDecayChannel &right):
G4VDecayChannel(right)
{
}
G4TauLeptonicDecayChannel & G4TauLeptonicDecayChannel::operator=(const G4TauLeptonicDecayChannel & right)
{
if (this != &right) {
kinematics_name = right.kinematics_name;
verboseLevel = right.verboseLevel;
rbranch = right.rbranch;
// copy parent name
parent_name = new G4String(*right.parent_name);
// clear daughters_name array
ClearDaughtersName();
// recreate array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
if (daughters_name !=0) ClearDaughtersName();
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++) {
daughters_name[index] = new G4String(*right.daughters_name[index]);
}
}
}
return *this;
}
G4DecayProducts *G4TauLeptonicDecayChannel::DecayIt(G4double)
{
// this version neglects muon polarization
@@ -124,7 +162,6 @@ G4DecayProducts *G4TauLeptonicDecayChannel::DecayIt(G4double)
// calculate daughter momentum
G4double daughtermomentum[3];
G4double energy;
// calcurate lepton momentum
G4double pmax = (parentmass*parentmass-daughtermass[0]*daughtermass[0])/2./parentmass;
@@ -136,7 +173,6 @@ G4DecayProducts *G4TauLeptonicDecayChannel::DecayIt(G4double)
p = pmax*G4UniformRand();
e = std::sqrt(p*p + daughtermass[0]*daughtermass[0]);
} while (r > spectrum(p,e,parentmass,daughtermass[0]) );
energy = e- daughtermass[0];
//create daughter G4DynamicParticle
// daughter 0 (lepton)
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VDecayChannel.cc,v 1.20 2010/05/20 01:01:07 kurasige Exp $
// GEANT4 tag $Name: geant4-09-04-beta-01 $
// $Id: G4VDecayChannel.cc,v 1.21 2010-12-22 07:07:59 kurasige Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
// ------------------------------------------------------------
@@ -45,15 +45,30 @@
const G4String G4VDecayChannel::noName = " ";
G4VDecayChannel::G4VDecayChannel()
:kinematics_name(""),
rbranch(0.0),
numberOfDaughters(0),
parent_name(0), daughters_name(0),
particletable(0),
parent(0), daughters(0),
parent_mass(0.0), daughters_mass(0),
verboseLevel(1)
{
// set pointer to G4ParticleTable (static and singleton object)
particletable = G4ParticleTable::GetParticleTable();
}
G4VDecayChannel::G4VDecayChannel(const G4String &aName, G4int Verbose)
:kinematics_name(aName),
rbranch(0.0),
numberOfDaughters(0),
parent_name(0), daughters_name(0),
particletable(0),
parent(0), daughters(0),
parent_mass(0.0), daughters_mass(0),
verboseLevel(Verbose)
:kinematics_name(aName),
rbranch(0.0),
numberOfDaughters(0),
parent_name(0), daughters_name(0),
particletable(0),
parent(0), daughters(0),
parent_mass(0.0), daughters_mass(0),
verboseLevel(Verbose)
{
// set pointer to G4ParticleTable (static and singleton object)
particletable = G4ParticleTable::GetParticleTable();
@@ -109,6 +124,7 @@ G4VDecayChannel::G4VDecayChannel(const G4VDecayChannel &right)
//create array
numberOfDaughters = right.numberOfDaughters;
daughters_name =0;
if ( numberOfDaughters >0 ) {
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
@@ -142,6 +158,7 @@ G4VDecayChannel & G4VDecayChannel::operator=(const G4VDecayChannel &right)
// recreate array
numberOfDaughters = right.numberOfDaughters;
if ( numberOfDaughters >0 ) {
if (daughters_name !=0) ClearDaughtersName();
daughters_name = new G4String*[numberOfDaughters];
//copy daughters name
for (G4int index=0; index < numberOfDaughters; index++) {
@@ -269,7 +286,10 @@ void G4VDecayChannel::FillDaughters()
#ifdef G4VERBOSE
if (verboseLevel>1) G4cout << "G4VDecayChannel::FillDaughters()" <<G4endl;
#endif
if (daughters != 0) delete [] daughters;
if (daughters != 0) {
delete [] daughters;
daughters = 0;
}
// parent mass
if (parent == 0) FillParent();
@@ -287,8 +307,8 @@ void G4VDecayChannel::FillDaughters()
#endif
daughters = 0;
G4Exception("G4VDecayChannel::FillDaughters",
"can not fill daughters", FatalException,
"numberOfDaughters is not defined yet");
"PART011", FatalException,
"Can not fill daughters: numberOfDaughters is not defined yet");
}
//create and set the array of pointers to daughter particles
@@ -308,8 +328,8 @@ void G4VDecayChannel::FillDaughters()
#endif
daughters[index] = 0;
G4Exception("G4VDecayChannel::FillDaughters",
"can not fill daughters", FatalException,
"name of a daughter is not defined yet");
"PART011", FatalException,
"Can not fill daughters: name of a daughter is not defined yet");
}
//search daughter particles in the particle table
daughters[index] = particletable->FindParticle(*daughters_name[index]);
@@ -374,8 +394,8 @@ void G4VDecayChannel::FillParent()
#endif
parent = 0;
G4Exception("G4VDecayChannel::FillParent()",
"can not fill parent", FatalException,
"parent name is not defined yet");
"PART012", FatalException,
"Can not fill parent: parent name is not defined yet");
}
// search parent particle in the particle table
parent = particletable->FindParticle(*parent_name);
@@ -388,8 +408,8 @@ void G4VDecayChannel::FillParent()
}
#endif
G4Exception("G4VDecayChannel::FillParent()",
"can not fill parent", FatalException,
"parent does not exist");
"PART012", FatalException,
"Can not fill parent: parent does not exist");
}
parent_mass = parent->GetPDGMass();
}
@@ -447,13 +467,13 @@ G4int G4VDecayChannel::GetAngularMomentum()
}
} else {
G4Exception("G4VDecayChannel::GetAngularMomentum",
"can not calculate", JustWarning,
"PART111", JustWarning,
"Sorry, can't handle 3 particle decays (up to now)");
return 0;
}
G4Exception ("G4VDecayChannel::GetAngularMomentum",
"can not calculate", JustWarning,
"Can't find angular momentum for this decay!");
"PART111", JustWarning,
"Can't find angular momentum for this decay");
return 0;
}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VUserPrimaryParticleInformation.cc,v 1.2 2006/06/29 19:26:22 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4VUserPrimaryParticleInformation.cc,v 1.2 2006-06-29 19:26:22 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
#include "G4VUserPrimaryParticleInformation.hh"
G4VUserPrimaryParticleInformation::G4VUserPrimaryParticleInformation() {;}
@@ -24,8 +24,8 @@
// ********************************************************************
//
//
// $Id: G4VUserPrimaryVertexInformation.cc,v 1.2 2006/06/29 19:26:24 gunter Exp $
// GEANT4 tag $Name: geant4-09-02 $
// $Id: G4VUserPrimaryVertexInformation.cc,v 1.2 2006-06-29 19:26:24 gunter Exp $
// GEANT4 tag $Name: not supported by cvs2svn $
//
//
//---------------------------------------------------------------