Import Geant4 9.5.0 source tree
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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 $
|
||||
//
|
||||
//
|
||||
//---------------------------------------------------------------
|
||||
|
||||
Reference in New Issue
Block a user