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
@@ -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 $
//
//
//---------------------------------------------------------------