Import Geant4 0.0.0 source tree
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4DiQuarks.cc,v 2.0 1998/07/02 17:27:12 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 4th April 1996, G.Cosmo
|
||||
// **********************************************************************
|
||||
|
||||
#include <fstream.h>
|
||||
#include <iomanip.h>
|
||||
|
||||
#include "G4DiQuarks.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### DiQuarks ###
|
||||
// ######################################################################
|
||||
|
||||
G4DiQuarks::G4DiQuarks(
|
||||
const G4String& aName, G4double mass,
|
||||
G4double width, G4double charge,
|
||||
G4int iSpin, G4int iParity,
|
||||
G4int iConjugation, G4int iIsospin,
|
||||
G4int iIsospin3, G4int gParity,
|
||||
const G4String& pType, G4int lepton,
|
||||
G4int baryon, G4int encoding,
|
||||
G4bool stable, G4double lifetime,
|
||||
G4DecayTable *decaytable )
|
||||
: G4VShortLivedParticle( aName,mass,width,charge,iSpin,iParity,
|
||||
iConjugation,iIsospin,iIsospin3,gParity,pType,
|
||||
lepton,baryon,encoding,stable,lifetime,decaytable )
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,177 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ExcitedBaryonConstructor.cc,v 2.4 1998/11/25 14:02:11 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 10 oct 1998 H.Kurashige
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
|
||||
#include "G4ExcitedBaryonConstructor.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ShortLivedTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
|
||||
G4ExcitedBaryonConstructor::G4ExcitedBaryonConstructor(G4int nStates,
|
||||
G4int isoSpin):
|
||||
NumberOfStates(nStates),iIsoSpin(isoSpin),
|
||||
iConjugation(0), iGParity(0), leptonNumber(0), baryonNumber(1),
|
||||
type("baryon")
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
G4ExcitedBaryonConstructor::~G4ExcitedBaryonConstructor()
|
||||
{
|
||||
}
|
||||
|
||||
void G4ExcitedBaryonConstructor::Construct(G4int idx)
|
||||
{
|
||||
if (idx < 0 ) {
|
||||
for (G4int state=0; state< NumberOfStates; state +=1) {
|
||||
ConstructParticle(state);
|
||||
ConstructAntiParticle(state);
|
||||
}
|
||||
} else if (idx < NumberOfStates) {
|
||||
ConstructParticle(idx);
|
||||
ConstructAntiParticle(idx);
|
||||
} else {
|
||||
#ifdef G4VERBOSE
|
||||
if (G4ParticleTable::GetParticleTable()->GetVerboseLevel()>1) {
|
||||
G4cerr << "G4ExcitedBaryonConstructor::Construct()";
|
||||
G4cerr << " illegal index os state = " << idx << endl;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
#include "G4ExcitedBaryons.hh"
|
||||
|
||||
void G4ExcitedBaryonConstructor::ConstructParticle(G4int idx)
|
||||
{
|
||||
if (!Exist(idx) ) return;
|
||||
|
||||
// Construct Resonace particles as dynamic object
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
|
||||
|
||||
G4String name;
|
||||
G4ParticleDefinition* particle;
|
||||
|
||||
for (G4int iIso3 = -1*iIsoSpin; iIso3 <= iIsoSpin; iIso3 +=2) {
|
||||
name= GetName(iIso3, idx);
|
||||
|
||||
particle = new G4ExcitedBaryons(
|
||||
name, GetMass(idx), GetWidth(idx), GetCharge(iIso3),
|
||||
GetiSpin(idx), GetiParity(idx), iConjugation,
|
||||
iIsoSpin, iIso3, iGParity,
|
||||
type, leptonNumber, baryonNumber, GetEncoding( iIso3,idx),
|
||||
false, 0.0, NULL
|
||||
);
|
||||
particle->SetDecayTable(CreateDecayTable( name, iIso3, idx, false));
|
||||
}
|
||||
}
|
||||
|
||||
void G4ExcitedBaryonConstructor::ConstructAntiParticle(G4int idx)
|
||||
{
|
||||
if (!Exist(idx) ) return;
|
||||
|
||||
// Construct Resonace particles as dynamic object
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
|
||||
|
||||
G4String name;
|
||||
G4ParticleDefinition* particle;
|
||||
|
||||
for (G4int iIso3 = -1*iIsoSpin; iIso3 <= iIsoSpin; iIso3 +=2) {
|
||||
name = GetName(iIso3, idx);
|
||||
name = "anti_" + name;
|
||||
|
||||
particle = new G4ExcitedBaryons(
|
||||
name, GetMass(idx), GetWidth(idx), -1.0*GetCharge(iIso3),
|
||||
GetiSpin(idx), GetiParity(idx), iConjugation,
|
||||
iIsoSpin, -1*iIso3, iGParity,
|
||||
type, leptonNumber,
|
||||
-1*baryonNumber,
|
||||
-1*GetEncoding( iIso3,idx),
|
||||
false, 0.0, NULL
|
||||
);
|
||||
particle->SetDecayTable(CreateDecayTable( name, iIso3, idx, true));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
G4double G4ExcitedBaryonConstructor::GetCharge(G4int iIsoSpin3)
|
||||
{
|
||||
G4ParticleTable* pTable = G4ParticleTable::GetParticleTable();
|
||||
G4double charge = 0.0;
|
||||
static G4double quark_charge[7] =
|
||||
{
|
||||
0., -1./3., +2./3., -1./3., +2./3., -1./3., +2./3.
|
||||
};
|
||||
|
||||
for (G4int idx=0; idx<3; idx+=1){
|
||||
charge += quark_charge[GetQuarkContents(idx, iIsoSpin3)]*eplus;
|
||||
}
|
||||
return charge;
|
||||
}
|
||||
|
||||
G4int G4ExcitedBaryonConstructor::GetEncoding(G4int iIsoSpin3, G4int idxState)
|
||||
{
|
||||
G4int encoding = GetEncodingOffset(idxState);
|
||||
encoding += 1000*GetQuarkContents(0, iIsoSpin3);
|
||||
encoding += 100*GetQuarkContents(1, iIsoSpin3);
|
||||
encoding += 10*GetQuarkContents(2, iIsoSpin3);
|
||||
if (GetiSpin(idxState) <9) {
|
||||
encoding += GetiSpin(idxState) +1;
|
||||
} else {
|
||||
encoding += (GetiSpin(idxState) +1)*10000000;
|
||||
}
|
||||
return encoding;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ExcitedBaryons.cc,v 2.0 1998/07/02 17:27:02 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 4th April 1996, G.Cosmo
|
||||
// **********************************************************************
|
||||
|
||||
#include <fstream.h>
|
||||
#include <iomanip.h>
|
||||
|
||||
#include "G4ExcitedBaryons.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### ExcitedBaryons ###
|
||||
// ######################################################################
|
||||
|
||||
G4ExcitedBaryons::G4ExcitedBaryons(
|
||||
const G4String& aName, G4double mass,
|
||||
G4double width, G4double charge,
|
||||
G4int iSpin, G4int iParity,
|
||||
G4int iConjugation, G4int iIsospin,
|
||||
G4int iIsospin3, G4int gParity,
|
||||
const G4String& pType, G4int lepton,
|
||||
G4int baryon, G4int encoding,
|
||||
G4bool stable, G4double lifetime,
|
||||
G4DecayTable *decaytable )
|
||||
: G4VShortLivedParticle( aName,mass,width,charge,iSpin,iParity,
|
||||
iConjugation,iIsospin,iIsospin3,gParity,pType,
|
||||
lepton,baryon,encoding,stable,lifetime,decaytable )
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,513 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ExcitedDeltaConstructor.cc,v 2.6 1998/11/26 10:09:18 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 10 oct 1998 H.Kurashige
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
|
||||
#include "G4ExcitedDeltaConstructor.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ShortLivedTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
|
||||
G4ExcitedDeltaConstructor::G4ExcitedDeltaConstructor():
|
||||
G4ExcitedBaryonConstructor(NStates, DeltaIsoSpin)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
G4ExcitedDeltaConstructor::~G4ExcitedDeltaConstructor()
|
||||
{
|
||||
}
|
||||
|
||||
G4int G4ExcitedDeltaConstructor::GetEncoding(G4int iIsoSpin3, G4int idxState)
|
||||
{
|
||||
G4int encoding;
|
||||
// Delta has exceptinal encoding
|
||||
if ((idxState==1)||(idxState==3)||(idxState==4)||(idxState==5)||(idxState==7)) {
|
||||
encoding = GetEncodingOffset(idxState);
|
||||
if ((iIsoSpin3==3)||(iIsoSpin3==-3)) {
|
||||
// normal encoding
|
||||
encoding += 1000*GetQuarkContents(0, iIsoSpin3);
|
||||
encoding += 100*GetQuarkContents(1, iIsoSpin3);
|
||||
encoding += 10*GetQuarkContents(2, iIsoSpin3);
|
||||
} else if (iIsoSpin3== +1){
|
||||
// 1st <--> 2nd quark
|
||||
encoding += 1000*GetQuarkContents(0, iIsoSpin3);
|
||||
encoding += 10*GetQuarkContents(1, iIsoSpin3);
|
||||
encoding += 100*GetQuarkContents(2, iIsoSpin3);
|
||||
} else if (iIsoSpin3== -1){
|
||||
// 1st <--> 0th quark
|
||||
encoding += 100*GetQuarkContents(0, iIsoSpin3);
|
||||
encoding += 1000*GetQuarkContents(1, iIsoSpin3);
|
||||
encoding += 10*GetQuarkContents(2, iIsoSpin3);
|
||||
}
|
||||
encoding += GetiSpin(idxState) +1;
|
||||
} else {
|
||||
encoding = G4ExcitedBaryonConstructor::GetEncoding(iIsoSpin3, idxState);
|
||||
}
|
||||
return encoding;
|
||||
}
|
||||
G4DecayTable* G4ExcitedDeltaConstructor::CreateDecayTable(
|
||||
const G4String& parentName,
|
||||
G4int iIso3,
|
||||
G4int iState,
|
||||
G4bool fAnti)
|
||||
{
|
||||
// create decay table
|
||||
G4DecayTable* decayTable = new G4DecayTable();
|
||||
|
||||
G4double br;
|
||||
if ( (br=bRatio[iState][NGamma]) >0.0) {
|
||||
AddNGammaMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][NPi]) >0.0) {
|
||||
AddNPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][NRho]) >0.0) {
|
||||
AddNRhoMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][DeltaPi]) >0.0) {
|
||||
AddDeltaPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][NStarPi]) >0.0) {
|
||||
AddNStarPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedDeltaConstructor::AddNGammaMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
//
|
||||
G4String daughterN;
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "proton";
|
||||
} else if (iIso3 == -1) {
|
||||
daughterN = "neutron";
|
||||
} else {
|
||||
// can not decay into N+gamma
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
daughterN,"gamma");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedDeltaConstructor::AddNPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterPi;
|
||||
G4double r;
|
||||
|
||||
// ------------ N pi0 ------------
|
||||
// determine daughters
|
||||
if ((iIso3 == +1)||(iIso3 == -1)) {
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "proton";
|
||||
daughterPi = "pi0";
|
||||
r = br*2./3.;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterN = "neutron";
|
||||
daughterPi = "pi0";
|
||||
r = br/3.;
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// -------------N pi +/- --------------
|
||||
// determine daughters
|
||||
if (iIso3 == +3) {
|
||||
daughterN = "proton";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
r = br;
|
||||
} else if (iIso3 == +1) {
|
||||
daughterN = "neutron";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
r = br/3.;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterN = "proton";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
r = br*2./3.;
|
||||
} else if (iIso3 == -3) {
|
||||
daughterN = "neutron";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
r = br;
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
|
||||
G4DecayTable* G4ExcitedDeltaConstructor::AddNRhoMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterRho;
|
||||
G4double r;
|
||||
|
||||
// ------------ N Rho0 ------------
|
||||
// determine daughters
|
||||
if ((iIso3 == +1)||(iIso3 == -1)) {
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "proton";
|
||||
daughterRho = "rho0";
|
||||
r = br*2./3.;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterN = "neutron";
|
||||
daughterRho = "rho0";
|
||||
r = br/3.;
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterRho);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// -------------N Rho +/- --------------
|
||||
// determine daughters
|
||||
if (iIso3 == +3) {
|
||||
daughterN = "proton";
|
||||
if (!fAnti) {
|
||||
daughterRho = "rho+";
|
||||
} else {
|
||||
daughterRho = "rho-";
|
||||
}
|
||||
r = br;
|
||||
} else if (iIso3 == +1) {
|
||||
daughterN = "neutron";
|
||||
if (!fAnti) {
|
||||
daughterRho = "rho+";
|
||||
} else {
|
||||
daughterRho = "rho-";
|
||||
}
|
||||
r = br/3.;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterN = "proton";
|
||||
if (!fAnti) {
|
||||
daughterRho = "rho-";
|
||||
} else {
|
||||
daughterRho = "rho+";
|
||||
}
|
||||
r = br*2./3.;
|
||||
} else if (iIso3 == -3) {
|
||||
daughterN = "neutron";
|
||||
if (!fAnti) {
|
||||
daughterRho = "rho-";
|
||||
} else {
|
||||
daughterRho = "rho+";
|
||||
}
|
||||
r = br;
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterRho);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedDeltaConstructor::AddNStarPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterPi;
|
||||
G4double r;
|
||||
|
||||
// ------------ N pi0 ------------
|
||||
// determine daughters
|
||||
if ((iIso3 == +1)||(iIso3 == -1)) {
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "N(1440)+";
|
||||
daughterPi = "pi0";
|
||||
r = br*2./3.;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterN = "N(1440)0";
|
||||
daughterPi = "pi0";
|
||||
r = br/3.;
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// -------------N pi +/- --------------
|
||||
// determine daughters
|
||||
if (iIso3 == +3) {
|
||||
daughterN = "N(1440)+";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
r = br;
|
||||
} else if (iIso3 == +1) {
|
||||
daughterN = "N(1440)0";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
r = br/3.;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterN = "N(1440)+";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
r = br*2./3.;
|
||||
} else if (iIso3 == -3) {
|
||||
daughterN = "N(1440)0";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
r = br;
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedDeltaConstructor::AddDeltaPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterDelta;
|
||||
G4String daughterPi;
|
||||
G4double r;
|
||||
|
||||
// ------------ Delta pi +------------
|
||||
// determine daughters
|
||||
if (iIso3 == +3) {
|
||||
daughterDelta = "delta+";
|
||||
r = br*0.4;
|
||||
} else if (iIso3 == +1) {
|
||||
daughterDelta = "delta0";
|
||||
r = br*8./15.0;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterDelta = "delta-";
|
||||
r = br*6./15.;
|
||||
} else {
|
||||
r = 0.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
if (fAnti) daughterDelta = "anti_" + daughterDelta;
|
||||
if (r>0.0) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterDelta,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// ------------ Delta pi0 ------------
|
||||
// determine daughters
|
||||
if (iIso3 == +3) {
|
||||
daughterDelta = "delta++";
|
||||
r = br*0.6;
|
||||
} else if (iIso3 == +1) {
|
||||
daughterDelta = "delta+";
|
||||
r = br*1./15.0;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterDelta = "delta0";
|
||||
r = br*1./15.;
|
||||
} else {
|
||||
daughterDelta = "delta-";
|
||||
r = br*0.6;
|
||||
}
|
||||
daughterPi = "pi0";
|
||||
if (fAnti) daughterDelta = "anti_" + daughterDelta;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterDelta,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// ------------ Delta pi - -------------
|
||||
// determine daughters
|
||||
if (iIso3 == +3) {
|
||||
r= 0.;
|
||||
} else if (iIso3 == +1) {
|
||||
daughterDelta = "delta++";
|
||||
r = br*6./15.0;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterDelta = "delta+";
|
||||
r = br*8./15.;
|
||||
} else {
|
||||
daughterDelta = "delta0";
|
||||
r = br*0.4;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
if (fAnti) daughterDelta = "anti_" + daughterDelta;
|
||||
if (r>0.0) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterDelta,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
const G4String G4ExcitedDeltaConstructor::name[] =
|
||||
{
|
||||
"delta(1600)", "delta(1620)", "delta(1700)", "delta(1900)", "delta(1905)",
|
||||
"delta(1910)", "delta(1920)", "delta(1930)", "delta(1950)"
|
||||
};
|
||||
|
||||
const G4double G4ExcitedDeltaConstructor::mass[] =
|
||||
{
|
||||
1.700*GeV, 1.675*GeV, 1.750*GeV, 1.850*GeV, 1.880*GeV,
|
||||
1.900*GeV, 1.920*GeV, 1.930*GeV, 1.950*GeV
|
||||
};
|
||||
|
||||
const G4double G4ExcitedDeltaConstructor::width[] = {
|
||||
200.0*MeV, 180.0*MeV, 300.0*MeV, 240.0*MeV, 280.0*MeV,
|
||||
250.0*MeV, 105.0*MeV, 250.0*MeV, 250.0*MeV
|
||||
};
|
||||
|
||||
const G4int G4ExcitedDeltaConstructor::iSpin[] =
|
||||
{
|
||||
3, 1, 3, 1, 5,
|
||||
1, 3, 5, 7
|
||||
};
|
||||
|
||||
const G4int G4ExcitedDeltaConstructor::iParity[] = {
|
||||
+1, -1, -1, -1, +1,
|
||||
+1, +1, -1, +1
|
||||
};
|
||||
|
||||
const G4int G4ExcitedDeltaConstructor::encodingOffset[] = {
|
||||
30000, 0, 10000, 10000, 0,
|
||||
20000, 20000, 10000, 0
|
||||
};
|
||||
|
||||
const G4double G4ExcitedDeltaConstructor::bRatio[ G4ExcitedDeltaConstructor::NStates ][ G4ExcitedDeltaConstructor::NumberOfDecayModes] =
|
||||
{
|
||||
// NGamma Npi NRho DeltaPi N*Pi
|
||||
{ 0.0, 0.15, 0.0, 0.55, 0.30 },
|
||||
{ 0.0, 0.25, 0.0, 0.60, 0.15 },
|
||||
{ 0.0, 0.20, 0.10, 0.55, 0.15 },
|
||||
{ 0.0, 0.30, 0.15, 0.30, 0.25 },
|
||||
{ 0.0, 0.20, 0.60, 0.10, 0.10 },
|
||||
{ 0.0, 0.35, 0.40, 0.15, 0.10 },
|
||||
{ 0.0, 0.15, 0.30, 0.30, 0.25 },
|
||||
{ 0.0, 0.20, 0.25, 0.25, 0.30 },
|
||||
{ 0.01, 0.44, 0.15, 0.20, 0.20 }
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,401 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ExcitedLambdaConstructor.cc,v 2.4 1998/11/13 12:22:44 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 10 oct 1998 H.Kurashige
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
|
||||
#include "G4ExcitedLambdaConstructor.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ShortLivedTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
|
||||
G4ExcitedLambdaConstructor::G4ExcitedLambdaConstructor():
|
||||
G4ExcitedBaryonConstructor(NStates, LambdaIsoSpin)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
G4ExcitedLambdaConstructor::~G4ExcitedLambdaConstructor()
|
||||
{
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedLambdaConstructor::CreateDecayTable(
|
||||
const G4String& parentName,
|
||||
G4int iIso3,
|
||||
G4int iState,
|
||||
G4bool fAnti)
|
||||
{
|
||||
// create decay table
|
||||
G4DecayTable* decayTable = new G4DecayTable();
|
||||
|
||||
G4double br;
|
||||
if ( (br=bRatio[iState][NK]) >0.0) {
|
||||
AddNKMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][NKStar]) >0.0) {
|
||||
AddNKStarMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][SigmaPi]) >0.0) {
|
||||
AddSigmaPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][SigmaStarPi]) >0.0) {
|
||||
AddSigmaStarPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][LambdaGamma]) >0.0) {
|
||||
AddLambdaGammaMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][LambdaEta]) >0.0) {
|
||||
AddLambdaEtaMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][LambdaOmega]) >0.0) {
|
||||
AddLambdaOmegaMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedLambdaConstructor::AddLambdaGammaMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
//
|
||||
G4String lambda = "lambda";
|
||||
if (fAnti) lambda = "anti_" + lambda;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
lambda,"gamma");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
G4DecayTable* G4ExcitedLambdaConstructor::AddLambdaEtaMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
//
|
||||
G4String lambda = "lambda";
|
||||
if (fAnti) lambda = "anti_" + lambda;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
lambda,"eta");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedLambdaConstructor::AddLambdaOmegaMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
//
|
||||
G4String lambda = "lambda";
|
||||
if (fAnti) lambda = "anti_" + lambda;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
lambda,"omega");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedLambdaConstructor::AddNKMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterK;
|
||||
|
||||
// ------------ N K- ------------
|
||||
// determine daughters
|
||||
daughterN = "proton";
|
||||
if (!fAnti) {
|
||||
daughterK = "kaon-";
|
||||
} else {
|
||||
daughterK = "kaon+";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
|
||||
daughterN,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// ------------ N K0 ------------
|
||||
// determine daughters
|
||||
daughterN = "neutron";
|
||||
if (!fAnti) {
|
||||
daughterK = "anti_kaon0";
|
||||
} else {
|
||||
daughterK = "kaon0";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
|
||||
daughterN,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedLambdaConstructor::AddNKStarMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterK;
|
||||
|
||||
// ------------ N K- ------------
|
||||
// determine daughters
|
||||
daughterN = "proton";
|
||||
if (!fAnti) {
|
||||
daughterK = "k_star-";
|
||||
} else {
|
||||
daughterK = "k_star+";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
|
||||
daughterN,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// ------------ N K0 ------------
|
||||
// determine daughters
|
||||
daughterN = "neutron";
|
||||
if (!fAnti) {
|
||||
daughterK = "anti_k_star0";
|
||||
} else {
|
||||
daughterK = "k_star0";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
|
||||
daughterN,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedLambdaConstructor::AddSigmaPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterSigma;
|
||||
G4String daughterPi;
|
||||
|
||||
// ------------ Sigma+ pi - ------------
|
||||
// determine daughters
|
||||
daughterSigma = "sigma+";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/3.0, 2,
|
||||
daughterSigma,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// ------------ Sigma0 Pi0 ------------
|
||||
// determine daughters
|
||||
daughterSigma = "sigma0";
|
||||
daughterPi = "pi0";
|
||||
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/3.0, 2,
|
||||
daughterSigma,daughterPi);
|
||||
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// ------------ Sigma- pi + ------------
|
||||
// determine daughters
|
||||
daughterSigma = "sigma-";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/3.0, 2,
|
||||
daughterSigma,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
|
||||
G4DecayTable* G4ExcitedLambdaConstructor::AddSigmaStarPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterSigma;
|
||||
G4String daughterPi;
|
||||
|
||||
// ------------ Sigma+ pi - ------------
|
||||
// determine daughters
|
||||
daughterSigma = "sigma(1385)+";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/3.0, 2,
|
||||
daughterSigma,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// ------------ Sigma0 Pi0 ------------
|
||||
// determine daughters
|
||||
daughterSigma = "sigma(1385)0";
|
||||
daughterPi = "pi0";
|
||||
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/3.0, 2,
|
||||
daughterSigma,daughterPi);
|
||||
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// ------------ Sigma- pi + ------------
|
||||
// determine daughters
|
||||
daughterSigma = "sigma(1385)-";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/3.0, 2,
|
||||
daughterSigma,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
const G4String G4ExcitedLambdaConstructor::name[] = {
|
||||
"lambda(1405)","lambda(1520)","lambda(1600)","lambda(1670)","lambda(1690)",
|
||||
"lambda(1800)","lambda(1810)","lambda(1820)","lambda(1830)","lambda(1890)",
|
||||
"lambda(2100)","lambda(2110)"
|
||||
};
|
||||
|
||||
const G4double G4ExcitedLambdaConstructor::mass[] = {
|
||||
1.407*GeV, 1.520*GeV, 1.600*GeV, 1.670*GeV, 1.690*GeV,
|
||||
1.800*GeV, 1.810*GeV, 1.820*GeV, 1.830*GeV, 1.890*GeV,
|
||||
2.100*GeV, 2.110*GeV
|
||||
};
|
||||
|
||||
const G4double G4ExcitedLambdaConstructor::width[] = {
|
||||
50.0*MeV, 16.0*MeV, 150.0*MeV, 35.0*MeV, 60.0*MeV,
|
||||
300.0*MeV, 150.0*MeV, 80.0*MeV, 95.0*MeV, 100.0*MeV,
|
||||
200.0*MeV, 200.0*MeV
|
||||
};
|
||||
|
||||
const G4int G4ExcitedLambdaConstructor::iSpin[] = {
|
||||
1, 3, 1, 1, 3,
|
||||
1, 1, 5, 5, 3,
|
||||
7, 5
|
||||
};
|
||||
|
||||
const G4int G4ExcitedLambdaConstructor::iParity[] = {
|
||||
-1, -1, +1, -1, -1,
|
||||
-1, +1, +1, -1, +1,
|
||||
-1, +1
|
||||
};
|
||||
|
||||
const G4int G4ExcitedLambdaConstructor::encodingOffset[] = {
|
||||
10000, 0, 20000, 30000, 10000,
|
||||
40000, 50000, 0, 10000, 20000,
|
||||
0, 20000
|
||||
};
|
||||
|
||||
const G4double G4ExcitedLambdaConstructor::bRatio[ G4ExcitedLambdaConstructor::NStates ][ G4ExcitedLambdaConstructor::NumberOfDecayModes] =
|
||||
{
|
||||
{ 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0},
|
||||
{ 0.45, 0.0, 0.43, 0.11, 0.01, 0.0, 0.0},
|
||||
{ 0.35, 0.0, 0.65, 0.0, 0.0, 0.0, 0.0},
|
||||
{ 0.20, 0.0, 0.50, 0.0, 0.0, 0.30, 0.0},
|
||||
{ 0.25, 0.0, 0.45, 0.30, 0.0, 0.0, 0.0},
|
||||
{ 0.40, 0.20, 0.20, 0.20, 0.0, 0.0, 0.0},
|
||||
{ 0.35, 0.45, 0.15, 0.05, 0.0, 0.0, 0.0},
|
||||
{ 0.73, 0.0, 0.16, 0.11, 0.0, 0.0, 0.0},
|
||||
{ 0.10, 0.0, 0.70, 0.20, 0.0, 0.0, 0.0},
|
||||
{ 0.37, 0.21, 0.11, 0.31, 0.0, 0.0, 0.0},
|
||||
{ 0.35, 0.20, 0.05, 0.30, 0.0, 0.02, 0.08},
|
||||
{ 0.25, 0.45, 0.30, 0.0, 0.0, 0.0, 0.0}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,44 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ExcitedMesons.cc,v 2.0 1998/07/02 17:27:04 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 4th April 1996, G.Cosmo
|
||||
// **********************************************************************
|
||||
|
||||
#include <fstream.h>
|
||||
#include <iomanip.h>
|
||||
|
||||
#include "G4ExcitedMesons.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### ExcitedMesons ###
|
||||
// ######################################################################
|
||||
|
||||
G4ExcitedMesons::G4ExcitedMesons(
|
||||
const G4String& aName, G4double mass,
|
||||
G4double width, G4double charge,
|
||||
G4int iSpin, G4int iParity,
|
||||
G4int iConjugation, G4int iIsospin,
|
||||
G4int iIsospin3, G4int gParity,
|
||||
const G4String& pType, G4int lepton,
|
||||
G4int baryon, G4int encoding,
|
||||
G4bool stable, G4double lifetime,
|
||||
G4DecayTable *decaytable )
|
||||
: G4VShortLivedParticle( aName,mass,width,charge,iSpin,iParity,
|
||||
iConjugation,iIsospin,iIsospin3,gParity,pType,
|
||||
lepton,baryon,encoding,stable,lifetime,decaytable )
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,596 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ExcitedNucleonConstructor.cc,v 2.6 1998/11/26 10:09:22 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 10 oct 1998 H.Kurashige
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
|
||||
#include "G4ExcitedNucleonConstructor.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ShortLivedTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
|
||||
G4ExcitedNucleonConstructor::G4ExcitedNucleonConstructor():
|
||||
G4ExcitedBaryonConstructor(NStates, NucleonIsoSpin)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
G4ExcitedNucleonConstructor::~G4ExcitedNucleonConstructor()
|
||||
{
|
||||
}
|
||||
|
||||
G4int G4ExcitedNucleonConstructor::GetEncoding(G4int iIsoSpin3, G4int idxState)
|
||||
{
|
||||
G4int encoding;
|
||||
// Delta has exceptinal encoding
|
||||
if ((idxState==1)||(idxState==6)||(idxState==8)||(idxState==9)||(idxState==12) ) {
|
||||
encoding = GetEncodingOffset(idxState);
|
||||
if ((iIsoSpin3==3)||(iIsoSpin3==-3)) {
|
||||
// normal encoding
|
||||
encoding += 1000*GetQuarkContents(0, iIsoSpin3);
|
||||
encoding += 100*GetQuarkContents(1, iIsoSpin3);
|
||||
encoding += 10*GetQuarkContents(2, iIsoSpin3);
|
||||
} else if (iIsoSpin3== +1){
|
||||
// 1st <--> 2nd quark
|
||||
encoding += 1000*GetQuarkContents(0, iIsoSpin3);
|
||||
encoding += 10*GetQuarkContents(1, iIsoSpin3);
|
||||
encoding += 100*GetQuarkContents(2, iIsoSpin3);
|
||||
} else if (iIsoSpin3== -1){
|
||||
// 1st <--> 0th quark
|
||||
encoding += 100*GetQuarkContents(0, iIsoSpin3);
|
||||
encoding += 1000*GetQuarkContents(1, iIsoSpin3);
|
||||
encoding += 10*GetQuarkContents(2, iIsoSpin3);
|
||||
}
|
||||
encoding += GetiSpin(idxState) +1;
|
||||
} else {
|
||||
encoding = G4ExcitedBaryonConstructor::GetEncoding(iIsoSpin3, idxState);
|
||||
}
|
||||
return encoding;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedNucleonConstructor::CreateDecayTable(
|
||||
const G4String& parentName,
|
||||
G4int iIso3,
|
||||
G4int iState,
|
||||
G4bool fAnti)
|
||||
{
|
||||
// create decay table
|
||||
G4DecayTable* decayTable = new G4DecayTable();
|
||||
|
||||
G4double br;
|
||||
if ( (br=bRatio[iState][NGamma]) >0.0) {
|
||||
AddNGammaMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][NPi]) >0.0) {
|
||||
AddNPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][NEta]) >0.0) {
|
||||
AddNEtaMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][NOmega]) >0.0) {
|
||||
AddNOmegaMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][NRho]) >0.0) {
|
||||
AddNRhoMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][N2Pi]) >0.0) {
|
||||
AddN2PiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][DeltaPi]) >0.0) {
|
||||
AddDeltaPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][NStarPi]) >0.0) {
|
||||
AddNStarPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][LambdaK]) >0.0) {
|
||||
AddLambdaKMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedNucleonConstructor::AddNGammaMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
//
|
||||
G4String daughterN;
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "proton";
|
||||
} else {
|
||||
daughterN = "neutron";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
daughterN,"gamma");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedNucleonConstructor::AddNPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterPi;
|
||||
|
||||
// ------------ N pi0 ------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "proton";
|
||||
daughterPi = "pi0";
|
||||
} else {
|
||||
daughterN = "neutron";
|
||||
daughterPi = "pi0";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
|
||||
daughterN,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// -------------N pi +/- --------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "neutron";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
} else {
|
||||
daughterN = "proton";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
|
||||
daughterN,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedNucleonConstructor::AddNEtaMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
|
||||
// ------------ N eta------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "proton";
|
||||
} else {
|
||||
daughterN = "neutron";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
daughterN, "eta");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedNucleonConstructor::AddNOmegaMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
|
||||
// ------------ N omega------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "proton";
|
||||
} else {
|
||||
daughterN = "neutron";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
daughterN, "omega");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedNucleonConstructor::AddNRhoMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterRho;
|
||||
|
||||
// ------------ N rho0 ------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "proton";
|
||||
daughterRho = "rho0";
|
||||
} else {
|
||||
daughterN = "neutron";
|
||||
daughterRho = "rho0";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
|
||||
daughterN,daughterRho);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// -------------N rho+/- --------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "neutron";
|
||||
if (!fAnti) {
|
||||
daughterRho = "rho+";
|
||||
} else {
|
||||
daughterRho = "rho-";
|
||||
}
|
||||
} else {
|
||||
daughterN = "proton";
|
||||
if (!fAnti) {
|
||||
daughterRho = "rho-";
|
||||
} else {
|
||||
daughterRho = "rho+";
|
||||
}
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
|
||||
daughterN,daughterRho);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedNucleonConstructor::AddN2PiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
// Decay Modes
|
||||
// N* --> N + pi + pi
|
||||
// Only I=0 states are included for 2-pi system
|
||||
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterPi1;
|
||||
G4String daughterPi2;
|
||||
|
||||
// -------------N pi+ pi- --------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "proton";
|
||||
daughterPi1 = "pi+";
|
||||
daughterPi2 = "pi-";
|
||||
} else {
|
||||
daughterN = "neutron";
|
||||
daughterPi1 = "pi+";
|
||||
daughterPi2 = "pi-";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 3,
|
||||
daughterN,daughterPi1,daughterPi2);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// -------------N pi0 pi0 --------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "proton";
|
||||
daughterPi1 = "pi0";
|
||||
daughterPi2 = "pi0";
|
||||
} else {
|
||||
daughterN = "neutron";
|
||||
daughterPi1 = "pi0";
|
||||
daughterPi2 = "pi0";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 3,
|
||||
daughterN,daughterPi1,daughterPi2);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedNucleonConstructor::AddNStarPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterPi;
|
||||
|
||||
// ------------ N pi0 ------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "N(1440)+";
|
||||
daughterPi = "pi0";
|
||||
} else {
|
||||
daughterN = "N(1440)0";
|
||||
daughterPi = "pi0";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
|
||||
daughterN,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// -------------N pi +/- --------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterN = "N(1440)0";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
} else {
|
||||
daughterN = "N(1440)+";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br/2.0, 2,
|
||||
daughterN,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedNucleonConstructor::AddDeltaPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterDelta;
|
||||
G4String daughterPi;
|
||||
G4double r;
|
||||
|
||||
// ------------ Delta pi+/- ------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterDelta = "delta0";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
r = br/6.0;
|
||||
} else {
|
||||
daughterDelta = "delta+";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
r = br/6.0;
|
||||
}
|
||||
if (fAnti) daughterDelta = "anti_" + daughterDelta;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterDelta,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// ------------ Delta pi+/- ------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterDelta = "delta++";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
r = br/2.0;
|
||||
} else {
|
||||
daughterDelta = "delta-";
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
r = br/2.0;
|
||||
}
|
||||
if (fAnti) daughterDelta = "anti_" + daughterDelta;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterDelta,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
// ------------ Delta pi0 ------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterDelta = "delta+";
|
||||
daughterPi = "pi0";
|
||||
r = br/3.0;
|
||||
} else {
|
||||
daughterDelta = "delta0";
|
||||
daughterPi = "pi0";
|
||||
r = br/3.0;
|
||||
}
|
||||
if (fAnti) daughterDelta = "anti_" + daughterDelta;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterDelta,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedNucleonConstructor::AddLambdaKMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String lambda = "lambda";
|
||||
G4String daughterK;
|
||||
|
||||
// ------------ N pi0 ------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
if (!fAnti) {
|
||||
daughterK = "kaon+";
|
||||
} else {
|
||||
daughterK = "kaon-";
|
||||
}
|
||||
} else {
|
||||
if (!fAnti) {
|
||||
daughterK = "kaon0";
|
||||
} else {
|
||||
daughterK = "anti_kaon0";
|
||||
}
|
||||
}
|
||||
if (fAnti) lambda = "anti_" + lambda;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
lambda, daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
|
||||
|
||||
const G4String G4ExcitedNucleonConstructor::name[] = {
|
||||
"N(1440)", "N(1520)", "N(1535)", "N(1650)", "N(1675)",
|
||||
"N(1680)", "N(1700)", "N(1710)", "N(1720)", "N(1900)",
|
||||
"N(1990)", "N(2090)", "N(2190)", "N(2220)", "N(2250)"
|
||||
};
|
||||
|
||||
const G4double G4ExcitedNucleonConstructor::mass[] = {
|
||||
1.440*GeV, 1.520*GeV, 1.535*GeV, 1.650*GeV, 1.675*GeV,
|
||||
1.680*GeV, 1.700*GeV, 1.710*GeV, 1.720*GeV, 1.870*GeV,
|
||||
1.990*GeV, 2.040*GeV, 2.190*GeV, 2.220*GeV, 2.250*GeV
|
||||
};
|
||||
|
||||
const G4double G4ExcitedNucleonConstructor::width[] = {
|
||||
200.0*MeV, 125.0*MeV, 150.0*MeV, 150.0*MeV, 140.0*MeV,
|
||||
120.0*MeV, 100.0*MeV, 110.0*MeV, 150.0*MeV, 500.0*MeV,
|
||||
550.0*MeV, 250.0*MeV, 550.0*MeV
|
||||
};
|
||||
|
||||
const G4int G4ExcitedNucleonConstructor::iSpin[] = {
|
||||
1, 3, 1, 1, 5,
|
||||
5, 3, 1, 3, 3,
|
||||
7, 3, 7, 9, 9
|
||||
};
|
||||
|
||||
const G4int G4ExcitedNucleonConstructor::iParity[] = {
|
||||
+1, -1, -1, -1, -1,
|
||||
+1, -1, +1, +1, +1,
|
||||
+1, -1, +1, -1, -1
|
||||
};
|
||||
|
||||
const G4int G4ExcitedNucleonConstructor::encodingOffset[] = {
|
||||
10000, 0, 20000, 30000, 0,
|
||||
10000, 20000, 40000, 30000, 40000,
|
||||
10000, 50000, 0, 0, 10000
|
||||
};
|
||||
|
||||
const G4double G4ExcitedNucleonConstructor::bRatio[ G4ExcitedNucleonConstructor::NStates ][ G4ExcitedNucleonConstructor::NumberOfDecayModes] =
|
||||
{
|
||||
{ 0.0, 0.70, 0.0, 0.0, 0.0, 0.05, 0.25, 0.0, 0.0},
|
||||
{ 0.0, 0.60, 0.0, 0.0, 0.0, 0.15, 0.25, 0.0, 0.0},
|
||||
{0.001, 0.55, 0.35, 0.0, 0.0, 0.05, 0.00, 0.05, 0.0},
|
||||
{ 0.0, 0.65, 0.05, 0.0, 0.0, 0.05, 0.10, 0.05, 0.10},
|
||||
{ 0.0, 0.45, 0.0, 0.0, 0.0, 0.00, 0.55, 0.0, 0.0},
|
||||
{ 0.0, 0.65, 0.0, 0.0, 0.0, 0.20, 0.15, 0.0, 0.0},
|
||||
{ 0.0, 0.10, 0.05, 0.0, 0.05, 0.45, 0.35, 0.0, 0.0},
|
||||
{ 0.0, 0.15, 0.20, 0.0, 0.05, 0.20, 0.20, 0.10, 0.10},
|
||||
{ 0.0, 0.15, 0.00, 0.0, 0.25, 0.45, 0.10, 0.00, 0.05},
|
||||
{ 0.0, 0.35, 0.0, 0.55, 0.05, 0.00, 0.05, 0.0, 0.0},
|
||||
{ 0.0, 0.05, 0.0, 0.0, 0.15, 0.25, 0.30, 0.15, 0.10},
|
||||
{ 0.0, 0.60, 0.05, 0.0, 0.25, 0.05, 0.05, 0.0, 0.0},
|
||||
{ 0.0, 0.35, 0.0, 0.00, 0.30, 0.15, 0.15, 0.05, 0.0},
|
||||
{ 0.0, 0.35, 0.0, 0.0, 0.25, 0.20, 0.20, 0.0, 0.0},
|
||||
{ 0.0, 0.30, 0.0, 0.00, 0.25, 0.20, 0.20, 0.05, 0.0}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,605 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ExcitedSigmaConstructor.cc,v 2.4 1998/11/13 12:22:46 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 10 oct 1998 H.Kurashige
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
|
||||
#include "G4ExcitedSigmaConstructor.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ShortLivedTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
G4ExcitedSigmaConstructor::G4ExcitedSigmaConstructor():
|
||||
G4ExcitedBaryonConstructor(NStates, SigmaIsoSpin)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
G4ExcitedSigmaConstructor::~G4ExcitedSigmaConstructor()
|
||||
{
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedSigmaConstructor::CreateDecayTable(
|
||||
const G4String& parentName,
|
||||
G4int iIso3,
|
||||
G4int iState,
|
||||
G4bool fAnti)
|
||||
{
|
||||
|
||||
// create decay table
|
||||
G4DecayTable* decayTable = new G4DecayTable();
|
||||
|
||||
G4double br;
|
||||
if ( (br=bRatio[iState][NK]) >0.0) {
|
||||
AddNKMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][NKStar]) >0.0) {
|
||||
AddNKStarMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][SigmaPi]) >0.0) {
|
||||
AddSigmaPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][SigmaStarPi]) >0.0) {
|
||||
AddSigmaStarPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][LambdaPi]) >0.0) {
|
||||
AddLambdaPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][SigmaEta]) >0.0) {
|
||||
AddSigmaEtaMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][LambdaStarPi]) >0.0) {
|
||||
AddLambdaStarPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][DeltaK]) >0.0) {
|
||||
AddDeltaKMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedSigmaConstructor::AddSigmaEtaMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
//
|
||||
G4String daughterH;
|
||||
if (iIso3== +2) {
|
||||
daughterH = "sigma+";
|
||||
} else if (iIso3== 0) {
|
||||
daughterH = "sigma0";
|
||||
} else if (iIso3== -2) {
|
||||
daughterH = "sigma-";
|
||||
}
|
||||
if (fAnti) daughterH = "anti_" + daughterH;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
daughterH,"eta");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedSigmaConstructor::AddNKMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
|
||||
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterK;
|
||||
G4double r;
|
||||
|
||||
// ------------ N K- ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
r=0.;
|
||||
} else if (iIso3== 0) {
|
||||
daughterN = "proton";
|
||||
r = br/2.;
|
||||
} else if (iIso3== -2) {
|
||||
daughterN = "neutron";
|
||||
r = br;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterK = "kaon-";
|
||||
} else {
|
||||
daughterK = "kaon+";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// ------------ N K0 ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
daughterN = "proton";
|
||||
r=br;
|
||||
} else if (iIso3== 0) {
|
||||
daughterN = "neutron";
|
||||
r = br/2.;
|
||||
} else if (iIso3== -2) {
|
||||
r = 0.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterK = "anti_kaon0";
|
||||
} else {
|
||||
|
||||
daughterK = "kaon0";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedSigmaConstructor::AddDeltaKMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterK;
|
||||
G4double r;
|
||||
|
||||
// ------------ N K- ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
daughterN = "delta++";
|
||||
r=0.75*br;
|
||||
} else if (iIso3== 0) {
|
||||
daughterN = "delta+";
|
||||
r = br/2.;
|
||||
} else if (iIso3== -2) {
|
||||
daughterN = "delta0";
|
||||
r = 0.25*br;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterK = "kaon-";
|
||||
} else {
|
||||
daughterK = "kaon+";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// ------------ N K0 ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
daughterN = "delta+";
|
||||
r=0.25*br;
|
||||
} else if (iIso3== 0) {
|
||||
daughterN = "delta0";
|
||||
r = br/2.;
|
||||
} else if (iIso3== -2) {
|
||||
daughterN = "delta-";
|
||||
r=0.75*br;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterK = "anti_kaon0";
|
||||
} else {
|
||||
daughterK = "kaon0";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
if (r>0.) {
|
||||
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
|
||||
G4DecayTable* G4ExcitedSigmaConstructor::AddNKStarMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterN;
|
||||
G4String daughterK;
|
||||
G4double r;
|
||||
|
||||
// ------------ N K- ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
|
||||
r=0.;
|
||||
} else if (iIso3== 0) {
|
||||
daughterN = "proton";
|
||||
r = br/2.;
|
||||
} else if (iIso3== -2) {
|
||||
daughterN = "neutron";
|
||||
r = br;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterK = "k_star-";
|
||||
} else {
|
||||
daughterK = "k_star+";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// ------------ N K0 ------------
|
||||
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
daughterN = "proton";
|
||||
r=br;
|
||||
} else if (iIso3== 0) {
|
||||
daughterN = "neutron";
|
||||
r = br/2.;
|
||||
} else if (iIso3== -2) {
|
||||
r = 0.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterK = "anti_k_star0";
|
||||
} else {
|
||||
daughterK = "k_star0";
|
||||
}
|
||||
if (fAnti) daughterN = "anti_" + daughterN;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterN,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedSigmaConstructor::AddSigmaPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterSigma;
|
||||
G4String daughterPi;
|
||||
G4double r;
|
||||
|
||||
// ------------ Sigma+ pi - ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
r = 0.;
|
||||
} else if (iIso3== 0) {
|
||||
daughterSigma = "sigma+";
|
||||
r = br/2.;
|
||||
} else if (iIso3== -2) {
|
||||
daughterSigma = "sigma0";
|
||||
r = br/2.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterSigma,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
// ------------ Sigma0 Pi0 ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
daughterSigma = "sigma+";
|
||||
r = br/2.;
|
||||
} else if (iIso3== 0) {
|
||||
r = 0.;
|
||||
} else if (iIso3== -2) {
|
||||
daughterSigma = "sigma-";
|
||||
|
||||
|
||||
r = br/2.;
|
||||
}
|
||||
daughterPi = "pi0";
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterSigma,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// ------------ Sigma- pi + ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
daughterSigma = "sigma0";
|
||||
r = br/2.;
|
||||
} else if (iIso3== 0) {
|
||||
daughterSigma = "sigma-";
|
||||
r = br/2.;
|
||||
} else if (iIso3== -2) {
|
||||
r = 0.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterSigma,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
|
||||
G4DecayTable* G4ExcitedSigmaConstructor::AddSigmaStarPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
|
||||
G4String daughterSigma;
|
||||
G4String daughterPi;
|
||||
G4double r;
|
||||
|
||||
// ------------ Sigma+ pi - ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
r = 0.;
|
||||
} else if (iIso3== 0) {
|
||||
daughterSigma = "sigma(1385)+";
|
||||
r = br/2.;
|
||||
} else if (iIso3== -2) {
|
||||
daughterSigma = "sigma(1385)0";
|
||||
r = br/2.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterSigma,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
// ------------ Sigma0 Pi0 ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
daughterSigma = "sigma(1385)+";
|
||||
r = br/2.;
|
||||
} else if (iIso3== 0) {
|
||||
r = 0.;
|
||||
} else if (iIso3== -2) {
|
||||
daughterSigma = "sigma(1385)-";
|
||||
r = br/2.;
|
||||
}
|
||||
daughterPi = "pi0";
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterSigma,daughterPi);
|
||||
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// ------------ Sigma- pi + ------------
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
daughterSigma = "sigma(1385)0";
|
||||
r = br/2.;
|
||||
} else if (iIso3== 0) {
|
||||
daughterSigma = "sigma(1385)-";
|
||||
r = br/2.;
|
||||
} else if (iIso3== -2) {
|
||||
r = 0.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
if (fAnti) daughterSigma = "anti_" + daughterSigma;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterSigma,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedSigmaConstructor::AddLambdaPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterLambda = "lambda";
|
||||
G4String daughterPi;
|
||||
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
} else if (iIso3== 0) {
|
||||
daughterPi = "pi0";
|
||||
} else if (iIso3== -2) {
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
}
|
||||
if (fAnti) daughterLambda = "anti_" + daughterLambda;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
daughterLambda, daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedSigmaConstructor::AddLambdaStarPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterLambda = "lambda(1405)";
|
||||
G4String daughterPi;
|
||||
|
||||
// determine daughters
|
||||
if (iIso3== +2) {
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
} else if (iIso3== 0) {
|
||||
daughterPi = "pi0";
|
||||
} else if (iIso3== -2) {
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
}
|
||||
|
||||
if (fAnti) daughterLambda = "anti_" + daughterLambda;
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
daughterLambda,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
const G4String G4ExcitedSigmaConstructor::name[] = {
|
||||
"sigma(1385)","sigma(1660)","sigma(1670)","sigma(1750)","sigma(1775)",
|
||||
"sigma(1915)","sigma(1940)","sigma(2030)"
|
||||
};
|
||||
|
||||
const G4double G4ExcitedSigmaConstructor::mass[] = {
|
||||
1.384*GeV, 1.660*GeV, 1.670*GeV, 1.750*GeV, 1.775*GeV,
|
||||
1.915*GeV, 1.940*GeV, 1.030*GeV
|
||||
};
|
||||
|
||||
const G4double G4ExcitedSigmaConstructor::width[] = {
|
||||
36.0*MeV, 100.0*MeV, 60.0*MeV, 90.0*MeV, 120.0*MeV,
|
||||
120.0*MeV, 330.0*MeV, 180.0*MeV
|
||||
};
|
||||
|
||||
const G4int G4ExcitedSigmaConstructor::iSpin[] = {
|
||||
3, 1, 3, 1, 5,
|
||||
5, 3, 7
|
||||
};
|
||||
|
||||
const G4int G4ExcitedSigmaConstructor::iParity[] = {
|
||||
+1, +1, -1, -1, -1,
|
||||
+1, -1, +1
|
||||
};
|
||||
|
||||
|
||||
const G4int G4ExcitedSigmaConstructor::encodingOffset[] = {
|
||||
0, 10000, 10000, 20000, 0,
|
||||
10000, 20000, 0
|
||||
};
|
||||
|
||||
const G4double G4ExcitedSigmaConstructor::bRatio[ G4ExcitedSigmaConstructor::NStates ][ G4ExcitedSigmaConstructor::NumberOfDecayModes] =
|
||||
{
|
||||
{ 0.0, 0.0, 0.12, 0.0, 0.88, 0.0, 0.0, 0.0},
|
||||
{ 0.30, 0.0, 0.35, 0.0, 0.35, 0.0, 0.0, 0.0},
|
||||
{ 0.15, 0.0, 0.70, 0.0, 0.15, 0.0, 0.0, 0.0},
|
||||
{ 0.40, 0.0, 0.05, 0.0, 0.0, 0.55, 0.0, 0.0},
|
||||
{ 0.40, 0.0, 0.04, 0.10, 0.23, 0.0, 0.23, 0.0},
|
||||
{ 0.15, 0.0, 0.40, 0.05, 0.40, 0.0, 0.0, 0.0},
|
||||
{ 0.10, 0.15, 0.15, 0.15, 0.15, 0.0, 0.15, 0.15},
|
||||
{ 0.20, 0.04, 0.10, 0.10, 0.20, 0.0, 0.18, 0.18}
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,312 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ExcitedXiConstructor.cc,v 2.4 1998/11/13 12:22:47 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
// For information related to this code contact:
|
||||
// CERN, IT Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 10 oct 1998 H.Kurashige
|
||||
// ---------------------------------------------------------------
|
||||
|
||||
|
||||
#include "G4ExcitedXiConstructor.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ShortLivedTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
G4ExcitedXiConstructor::G4ExcitedXiConstructor():
|
||||
G4ExcitedBaryonConstructor(NStates, XiIsoSpin)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
G4ExcitedXiConstructor::~G4ExcitedXiConstructor()
|
||||
{
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedXiConstructor::CreateDecayTable(
|
||||
const G4String& parentName,
|
||||
G4int iIso3,
|
||||
G4int iState,
|
||||
G4bool fAnti)
|
||||
{
|
||||
|
||||
// create decay table
|
||||
G4DecayTable* decayTable = new G4DecayTable();
|
||||
|
||||
G4double br;
|
||||
if ( (br=bRatio[iState][XiPi]) >0.0) {
|
||||
AddXiPiMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][XiGamma]) >0.0) {
|
||||
AddXiGammaMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][LambdaK]) >0.0) {
|
||||
AddLambdaKMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
if ( (br=bRatio[iState][SigmaK]) >0.0) {
|
||||
AddSigmaKMode( decayTable, parentName, br, iIso3, fAnti);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedXiConstructor::AddXiGammaMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
//
|
||||
G4String daughterH;
|
||||
if (iIso3== +1) {
|
||||
daughterH = "xi0";
|
||||
} else if (iIso3==-1) {
|
||||
daughterH = "xi-";
|
||||
}
|
||||
if (fAnti) daughterH = "anti_" + daughterH;
|
||||
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, br, 2,
|
||||
daughterH,"gamma");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedXiConstructor::AddLambdaKMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
|
||||
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String lambda = "lambda";
|
||||
G4String daughterK;
|
||||
G4double r;
|
||||
|
||||
// ------------ Lambda K- ------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
if (!fAnti) {
|
||||
daughterK = "kaon0";
|
||||
} else {
|
||||
daughterK = "anti_kaon0";
|
||||
}
|
||||
r = br;
|
||||
} else if (iIso3 == -1) {
|
||||
if (!fAnti) {
|
||||
daughterK = "kaon-";
|
||||
} else {
|
||||
daughterK = "kaon+";
|
||||
}
|
||||
r = br;
|
||||
}
|
||||
if (fAnti) lambda = "anti_" + lambda;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
lambda,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedXiConstructor::AddSigmaKMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterH;
|
||||
G4String daughterK;
|
||||
G4double r;
|
||||
|
||||
// ------------ Sigma K- ------------
|
||||
// determine daughters
|
||||
if (iIso3== +1) {
|
||||
daughterH = "sigma+";
|
||||
r= br/2.;
|
||||
} else if (iIso3== -1) {
|
||||
daughterH = "sigma0";
|
||||
r = br/2.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterK = "kaon-";
|
||||
} else {
|
||||
daughterK = "kaon+";
|
||||
}
|
||||
if (fAnti) daughterH = "anti_" + daughterH;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterH,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// ------------ Sigma K0 ------------
|
||||
// determine daughters
|
||||
if (iIso3 == +1) {
|
||||
daughterH = "sigma0";
|
||||
r= br/2.;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterH = "sigma-";
|
||||
r = br/2.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterK = "anti_kaon0";
|
||||
} else {
|
||||
daughterK = "kaon0";
|
||||
}
|
||||
if (fAnti) daughterH = "anti_" + daughterH;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterH,daughterK);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
G4DecayTable* G4ExcitedXiConstructor::AddXiPiMode(
|
||||
G4DecayTable* decayTable, const G4String& nameParent,
|
||||
G4double br, G4int iIso3, G4bool fAnti)
|
||||
{
|
||||
G4VDecayChannel* mode;
|
||||
|
||||
G4String daughterXi;
|
||||
G4String daughterPi;
|
||||
G4double r;
|
||||
|
||||
// ------------ Xi pi- ------------
|
||||
// determine daughters
|
||||
if (iIso3== +1) {
|
||||
r = 0.;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterXi = "xi0";
|
||||
r = br/2.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi-";
|
||||
} else {
|
||||
daughterPi = "pi+";
|
||||
}
|
||||
if (fAnti) daughterXi = "anti_" + daughterXi;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterXi,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
// ------------ Xi Pi0 ------------
|
||||
// determine daughters
|
||||
if (iIso3== +1) {
|
||||
daughterXi = "xi0";
|
||||
r = br/2.;
|
||||
} else if (iIso3 == -1) {
|
||||
daughterXi = "xi-";
|
||||
r = br/2.;
|
||||
}
|
||||
daughterPi = "pi0";
|
||||
if (fAnti) daughterXi = "anti_" + daughterXi;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterXi,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
// ------------ XI pi + ------------
|
||||
// determine daughters
|
||||
if (iIso3== +1) {
|
||||
daughterXi = "xi-";
|
||||
r = br/2.;
|
||||
} else if (iIso3==-1) {
|
||||
r = 0.;
|
||||
}
|
||||
if (!fAnti) {
|
||||
daughterPi = "pi+";
|
||||
} else {
|
||||
daughterPi = "pi-";
|
||||
}
|
||||
if (fAnti) daughterXi = "anti_" + daughterXi;
|
||||
if (r>0.) {
|
||||
// create decay channel [parent BR #daughters]
|
||||
mode = new G4PhaseSpaceDecayChannel(nameParent, r, 2,
|
||||
daughterXi,daughterPi);
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
}
|
||||
|
||||
return decayTable;
|
||||
}
|
||||
|
||||
|
||||
const G4String G4ExcitedXiConstructor::name[] = {
|
||||
"xi(1530)", "xi(1690)", "xi(1820)", "xi(1950)", "xi(2030)"
|
||||
};
|
||||
|
||||
const G4double G4ExcitedXiConstructor::mass[] = {
|
||||
1.532*GeV, 1.700*GeV, 1.823*GeV, 1.950*GeV, 2.025*GeV
|
||||
};
|
||||
|
||||
const G4double G4ExcitedXiConstructor::width[] = {
|
||||
9.0*MeV, 50.0*MeV, 24.0*MeV, 60.0*MeV, 20.0*MeV
|
||||
};
|
||||
|
||||
const G4int G4ExcitedXiConstructor::iSpin[] = {
|
||||
3, 3, 3, 3, 5
|
||||
};
|
||||
|
||||
const G4int G4ExcitedXiConstructor::iParity[] = {
|
||||
+1, +1, -1, -1, +1
|
||||
};
|
||||
|
||||
|
||||
const G4int G4ExcitedXiConstructor::encodingOffset[] = {
|
||||
0, 20000, 10000, 30000, 10000
|
||||
};
|
||||
|
||||
const G4double G4ExcitedXiConstructor::bRatio[ G4ExcitedXiConstructor::NStates ][ G4ExcitedXiConstructor::NumberOfDecayModes] =
|
||||
{
|
||||
{ 0.98, 0.02, 0.0, 0.0},
|
||||
{ 0.10, 0.0, 0.70, 0.20},
|
||||
{ 0.15, 0.0, 0.70, 0.15},
|
||||
{ 0.25, 0.0, 0.50, 0.25},
|
||||
{ 0.10, 0.0, 0.20, 0.70}
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Gluons.cc,v 2.0 1998/07/02 17:27:05 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 4th April 1996, G.Cosmo
|
||||
// **********************************************************************
|
||||
|
||||
#include <fstream.h>
|
||||
#include <iomanip.h>
|
||||
|
||||
#include "G4Gluons.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### Gluons ###
|
||||
// ######################################################################
|
||||
|
||||
G4Gluons::G4Gluons(
|
||||
const G4String& aName, G4double mass,
|
||||
G4double width, G4double charge,
|
||||
G4int iSpin, G4int iParity,
|
||||
G4int iConjugation, G4int iIsospin,
|
||||
G4int iIsospin3, G4int gParity,
|
||||
const G4String& pType, G4int lepton,
|
||||
G4int baryon, G4int encoding,
|
||||
G4bool stable, G4double lifetime,
|
||||
G4DecayTable *decaytable )
|
||||
: G4VShortLivedParticle( aName,mass,width,charge,iSpin,iParity,
|
||||
iConjugation,iIsospin,iIsospin3,gParity,pType,
|
||||
lepton,baryon,encoding,stable,lifetime,decaytable )
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4Quarks.cc,v 2.0 1998/07/02 17:27:07 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// ----------------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 4th April 1996, G.Cosmo
|
||||
// **********************************************************************
|
||||
|
||||
#include <fstream.h>
|
||||
#include <iomanip.h>
|
||||
|
||||
#include "G4Quarks.hh"
|
||||
|
||||
// ######################################################################
|
||||
// ### Quarks ###
|
||||
// ######################################################################
|
||||
|
||||
G4Quarks::G4Quarks(
|
||||
const G4String& aName, G4double mass,
|
||||
G4double width, G4double charge,
|
||||
G4int iSpin, G4int iParity,
|
||||
G4int iConjugation, G4int iIsospin,
|
||||
G4int iIsospin3, G4int gParity,
|
||||
const G4String& pType, G4int lepton,
|
||||
G4int baryon, G4int encoding,
|
||||
G4bool stable, G4double lifetime,
|
||||
G4DecayTable *decaytable )
|
||||
: G4VShortLivedParticle( aName,mass,width,charge,iSpin,iParity,
|
||||
iConjugation,iIsospin,iIsospin3,gParity,pType,
|
||||
lepton,baryon,encoding,stable,lifetime,decaytable )
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,723 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4ShortLivedConstructor.cc,v 2.10 1998/12/02 09:58:07 kurasige Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
|
||||
#include "G4ShortLivedConstructor.hh"
|
||||
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4ParticleTable.hh"
|
||||
#include "G4ShortLivedTable.hh"
|
||||
#include "G4PhaseSpaceDecayChannel.hh"
|
||||
#include "G4VDecayChannel.hh"
|
||||
#include "G4DecayTable.hh"
|
||||
|
||||
G4bool G4ShortLivedConstructor::isConstructed = false;
|
||||
|
||||
G4ShortLivedConstructor::G4ShortLivedConstructor()
|
||||
{
|
||||
}
|
||||
|
||||
G4ShortLivedConstructor::~G4ShortLivedConstructor()
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
void G4ShortLivedConstructor::ConstructParticle()
|
||||
{
|
||||
if (!isConstructed){
|
||||
ConstructQuarks();
|
||||
ConstructResonances();
|
||||
isConstructed = true;
|
||||
}
|
||||
}
|
||||
|
||||
#include "G4DiQuarks.hh"
|
||||
#include "G4Quarks.hh"
|
||||
#include "G4Gluons.hh"
|
||||
void G4ShortLivedConstructor::ConstructQuarks()
|
||||
{
|
||||
G4ParticleDefinition* particle;
|
||||
|
||||
// Construct Quraks/Gluons as dynamic object
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
|
||||
// gluon
|
||||
particle = new G4Gluons(
|
||||
"gluon", 0.0*MeV, 0.0*MeV, 0.0*eplus,
|
||||
2, -1, 0,
|
||||
0, 0, 0,
|
||||
"gluons", 0, 0, 21,
|
||||
true, -1.0, NULL);
|
||||
// u-quark
|
||||
particle = new G4Quarks(
|
||||
"u_quark", 8.0*MeV, 0.0*MeV, 2./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, +1, 0,
|
||||
"quarks", 0, 0, 2,
|
||||
true, -1.0, NULL);
|
||||
// d-quark
|
||||
particle = new G4Quarks(
|
||||
"d_quark", 15.0*MeV, 0.0*MeV, -1./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, -1, 0,
|
||||
"quarks", 0, 0, 1,
|
||||
true, -1.0, NULL);
|
||||
// s-quark
|
||||
particle = new G4Quarks(
|
||||
"s_quark", 300.0*MeV, 0.0*MeV, -1./3.*eplus,
|
||||
1, +1, 0,
|
||||
0, 0, 0,
|
||||
"quarks", 0, 0, 3,
|
||||
true, -1.0, NULL);
|
||||
// c-quark
|
||||
particle = new G4Quarks(
|
||||
"c_quark", 1.6*GeV, 0.0*MeV, +2./3.*eplus,
|
||||
1, +1, 0,
|
||||
0, 0, 0,
|
||||
"quarks", 0, 0, 4,
|
||||
true, -1.0, NULL);
|
||||
// b-quark
|
||||
particle = new G4Quarks(
|
||||
"b_quark", 4.5*GeV, 0.0*MeV, -1./3.*eplus,
|
||||
1, +1, 0,
|
||||
0, 0, 0,
|
||||
"quarks", 0, 0, 5,
|
||||
true, -1.0, NULL);
|
||||
// t-quark
|
||||
particle = new G4Quarks(
|
||||
"t_quark", 174.0*GeV, 0.0*MeV, +2./3.*eplus,
|
||||
1, +1, 0,
|
||||
0, 0, 0,
|
||||
"quarks", 0, 0, 6,
|
||||
true, -1.0, NULL);
|
||||
// u-quark
|
||||
particle = new G4Quarks(
|
||||
"anti_u_quark", 8.0*MeV, 0.0*MeV, -2./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, +1, 0,
|
||||
"quarks", 0, 0, -2,
|
||||
true, -1.0, NULL);
|
||||
// d-quark
|
||||
particle = new G4Quarks(
|
||||
"anti_d_quark", 15.0*MeV, 0.0*MeV, 1./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, -1, 0,
|
||||
"quarks", 0, 0, -1,
|
||||
true, -1.0, NULL);
|
||||
// s-quark
|
||||
particle = new G4Quarks(
|
||||
"anti_s_quark", 300.0*MeV, 0.0*MeV, 1./3.*eplus,
|
||||
1, +1, 0,
|
||||
0, 0, 0,
|
||||
"quarks", 0, 0, -3,
|
||||
true, -1.0, NULL);
|
||||
// c-quark
|
||||
particle = new G4Quarks(
|
||||
"anti_c_quark", 1.6*GeV, 0.0*MeV, -2./3.*eplus,
|
||||
1, +1, 0,
|
||||
0, 0, 0,
|
||||
"quarks", 0, 0, -4,
|
||||
true, -1.0, NULL);
|
||||
// b-quark
|
||||
particle = new G4Quarks(
|
||||
"anti_b_quark", 4.5*GeV, 0.0*MeV, 1./3.*eplus,
|
||||
1, +1, 0,
|
||||
0, 0, 0,
|
||||
"quarks", 0, 0, -5,
|
||||
true, -1.0, NULL);
|
||||
// t-quark
|
||||
particle = new G4Quarks(
|
||||
"anti_t_quark", 174.0*GeV, 0.0*MeV, -2./3.*eplus,
|
||||
1, +1, 0,
|
||||
0, 0, 0,
|
||||
"quarks", 0, 0, -6,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// uu1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"uu1_diquark", 16.0*MeV, 0.0*MeV, 4./3.*eplus,
|
||||
2, +1, 0,
|
||||
2, +2, 0,
|
||||
"diquarks", 0, 0, 2203,
|
||||
true, -1.0, NULL);
|
||||
// ud1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"ud1_diquark", 23.0*MeV, 0.0*MeV, 1./3.*eplus,
|
||||
2, +1, 0,
|
||||
2, +0, 0,
|
||||
"diquarks", 0, 0, 2103,
|
||||
true, -1.0, NULL);
|
||||
// dd1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"dd1_diquark", 30.0*MeV, 0.0*MeV, -2./3.*eplus,
|
||||
2, +1, 0,
|
||||
2, -1, 0,
|
||||
"diquarks", 0, 0, 1103,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// ud0-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"ud0_diquark", 23.0*MeV, 0.0*MeV, 1./3.*eplus,
|
||||
0, +1, 0,
|
||||
0, +0, 0,
|
||||
"diquarks", 0, 0, 2101,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// sd1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"sd1_diquark", 315.0*MeV, 0.0*MeV, -2./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, -1, 0,
|
||||
"diquarks", 0, 0, 3103,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// su1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"su1_diquark", 308.0*MeV, 0.0*MeV, 1./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, +1, 0,
|
||||
"diquarks", 0, 0, 3203,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// sd1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"sd0_diquark", 315.0*MeV, 0.0*MeV, -2./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, -1, 0,
|
||||
"diquarks", 0, 0, 3101,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// su1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"su0_diquark", 308.0*MeV, 0.0*MeV, 1./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, +1, 0,
|
||||
"diquarks", 0, 0, 3201,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// uu1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"anti_uu1_diquark", 16.0*MeV, 0.0*MeV, -4./3.*eplus,
|
||||
2, +1, 0,
|
||||
2, +2, 0,
|
||||
"diquarks", 0, 0, -2203,
|
||||
true, -1.0, NULL);
|
||||
// ud1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"anti_ud1_diquark", 23.0*MeV, 0.0*MeV, -1./3.*eplus,
|
||||
2, +1, 0,
|
||||
2, +0, 0,
|
||||
"diquarks", 0, 0, -2103,
|
||||
true, -1.0, NULL);
|
||||
// dd1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"anti_dd1_diquark", 30.0*MeV, 0.0*MeV, 2./3.*eplus,
|
||||
2, +1, 0,
|
||||
2, -1, 0,
|
||||
"diquarks", 0, 0, -1103,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// ud0-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"anti_ud0_diquark", 23.0*MeV, 0.0*MeV, -1./3.*eplus,
|
||||
0, +1, 0,
|
||||
0, +0, 0,
|
||||
"diquarks", 0, 0, -2101,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// sd1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"anti_sd1_diquark", 315.0*MeV, 0.0*MeV, 2./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, -1, 0,
|
||||
"diquarks", 0, 0, -3103,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// su1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"anti_su1_diquark", 308.0*MeV, 0.0*MeV, -1./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, +1, 0,
|
||||
"diquarks", 0, 0, -3203,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// sd0-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"anti_sd0_diquark", 315.0*MeV, 0.0*MeV, 2./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, -1, 0,
|
||||
"diquarks", 0, 0, -3101,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// su1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"anti_su0_diquark", 308.0*MeV, 0.0*MeV, -1./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, +1, 0,
|
||||
"diquarks", 0, 0, -3201,
|
||||
true, -1.0, NULL);
|
||||
// ss1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"ss1_diquark", 600.0*MeV, 0.0*MeV, -2./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, -1, 0,
|
||||
"diquarks", 0, 0, 3303,
|
||||
true, -1.0, NULL);
|
||||
|
||||
// ss1-Diquark
|
||||
particle = new G4DiQuarks(
|
||||
"anti_ss1_diquark", 600.0*MeV, 0.0*MeV, 2./3.*eplus,
|
||||
1, +1, 0,
|
||||
1, -1, 0,
|
||||
"diquarks", 0, 0, -3303,
|
||||
true, -1.0, NULL);
|
||||
|
||||
particle = NULL;
|
||||
}
|
||||
|
||||
#include "G4ExcitedNucleonConstructor.hh"
|
||||
#include "G4ExcitedDeltaConstructor.hh"
|
||||
#include "G4ExcitedLambdaConstructor.hh"
|
||||
#include "G4ExcitedSigmaConstructor.hh"
|
||||
#include "G4ExcitedXiConstructor.hh"
|
||||
#include "G4ExcitedMesonConstructor.hh"
|
||||
void G4ShortLivedConstructor::ConstructResonances()
|
||||
{
|
||||
ConstructBarions();
|
||||
ConstructMesons();
|
||||
|
||||
// N*
|
||||
G4ExcitedNucleonConstructor nucleons;
|
||||
nucleons.Construct();
|
||||
|
||||
// Delta*
|
||||
G4ExcitedDeltaConstructor deltas;
|
||||
deltas.Construct();
|
||||
|
||||
// Lambda*
|
||||
G4ExcitedLambdaConstructor lamdas;
|
||||
lamdas.Construct();
|
||||
|
||||
// Sigma*
|
||||
G4ExcitedSigmaConstructor sigmas;
|
||||
sigmas.Construct();
|
||||
|
||||
// Xi*
|
||||
G4ExcitedXiConstructor xis;
|
||||
xis.Construct();
|
||||
|
||||
// Mesons
|
||||
G4ExcitedMesonConstructor mesons;
|
||||
mesons.Construct();
|
||||
|
||||
}
|
||||
|
||||
|
||||
#include "G4ExcitedBaryons.hh"
|
||||
void G4ShortLivedConstructor::ConstructBarions()
|
||||
{
|
||||
G4DecayTable* decayTable;
|
||||
G4VDecayChannel* mode;
|
||||
G4ParticleDefinition* particle;
|
||||
|
||||
// Construct Resonace particles as dynamic object
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
|
||||
// delta baryons
|
||||
// delta(1232)++
|
||||
particle = new G4ExcitedBaryons(
|
||||
"delta++", 1.232*GeV, 120.0*MeV, +2.0*eplus,
|
||||
3, +1, 0,
|
||||
3, +3, 0,
|
||||
"baryon", 0, +1, 2224,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of delta++ -> proton + pi+
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("delta++",1.000, 2,
|
||||
"proton","pi+");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// delta(1232)+
|
||||
particle = new G4ExcitedBaryons(
|
||||
"delta+", 1.232*GeV, 120.0*MeV, +1.0*eplus,
|
||||
3, +1, 0,
|
||||
3, +1, 0,
|
||||
"baryon", 0, +1, 2214,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of delta+ -> proton + Gamma
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("delta+", 0.01, 2,
|
||||
"proton","gamma");
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of delta+ -> neutron + pi+
|
||||
// parent BR #daughters
|
||||
// create decay channel of delta+ -> proton + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2,
|
||||
"proton","pi0");
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of delta+ -> neutron + pi+
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("delta+", 0.495, 2,
|
||||
"neutron","pi+");
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// delta(1232)0
|
||||
particle = new G4ExcitedBaryons(
|
||||
"delta0", 1.232*GeV, 120.0*MeV, +0.0*eplus,
|
||||
3, +1, 0,
|
||||
3, -1, 0,
|
||||
"baryon", 0, +1, 2114,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of delta+ -> neutron + gamma
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("delta0", 0.01, 2,
|
||||
"neutron","gamma");
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of delta+ -> proton + pi-
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2,
|
||||
"proton","pi-");
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of delta+ -> neutron + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("delta0", 0.495, 2,
|
||||
"neutron","pi0");
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// delta(1232)-
|
||||
particle = new G4ExcitedBaryons(
|
||||
"delta-", 1.232*GeV, 120.0*MeV, -1.0*eplus,
|
||||
3, +1, 0,
|
||||
3, -3, 0,
|
||||
"baryon", 0, +1, 1114,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of delta+ -> neutron + pi-
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("delta-", 1.000, 2,
|
||||
"neutron","pi-");
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
|
||||
////////////////////////////
|
||||
// anti_delta baryons
|
||||
// anti_delta(1232)++
|
||||
particle = new G4ExcitedBaryons(
|
||||
"anti_delta++", 1.232*GeV, 120.0*MeV, -2.0*eplus,
|
||||
3, +1, 0,
|
||||
3, -3, 0,
|
||||
"baryon", 0, -1, -2224,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of delta++ -> anti_proton + pi-
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("anti_delta++",1.000, 2,
|
||||
"anti_proton","pi-");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// anti_delta(1232)+
|
||||
particle = new G4ExcitedBaryons(
|
||||
"anti_delta+", 1.232*GeV, 120.0*MeV, -1.0*eplus,
|
||||
3, +1, 0,
|
||||
3, -1, 0,
|
||||
"baryon", 0, -1, -2214,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of anti_delta+ -> anti_proton + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2,
|
||||
"anti_proton","pi0");
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of anti_delta+ -> anti_neutron + pi-
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("anti_delta+", 0.500, 2,
|
||||
"anti_neutron","pi-");
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// anti_delta(1232)0
|
||||
particle = new G4ExcitedBaryons(
|
||||
"anti_delta0", 1.232*GeV, 120.0*MeV, +0.0*eplus,
|
||||
3, +1, 0,
|
||||
3, +1, 0,
|
||||
"baryon", 0, -1, -2114,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of anti_delta+ -> anti_proton + pi+
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2,
|
||||
"anti_proton","pi+");
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of delta+ -> neutron + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("anti_delta0", 0.500, 2,
|
||||
"anti_neutron","pi0");
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// anti_delta(1232)-
|
||||
particle = new G4ExcitedBaryons(
|
||||
"anti_delta-", 1.232*GeV, 120.0*MeV, +1.0*eplus,
|
||||
3, +1, 0,
|
||||
3, +3, 0,
|
||||
"baryon", 0, -1, -1114,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of delta- -> neutron + pi+
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("anti_delta-", 1.000, 2,
|
||||
"anti_neutron","pi+");
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
|
||||
|
||||
}
|
||||
#include "G4ExcitedMesons.hh"
|
||||
void G4ShortLivedConstructor::ConstructMesons()
|
||||
{
|
||||
G4DecayTable* decayTable;
|
||||
G4VDecayChannel* mode;
|
||||
G4ParticleDefinition* particle;
|
||||
|
||||
// Construct Resonace particles as dynamic object
|
||||
// Arguments for constructor are as follows
|
||||
// name mass width charge
|
||||
// 2*spin parity C-conjugation
|
||||
// 2*Isospin 2*Isospin3 G-parity
|
||||
// type lepton number baryon number PDG encoding
|
||||
// stable lifetime decay table
|
||||
|
||||
// vector mesons
|
||||
// omega
|
||||
particle = new G4ExcitedMesons(
|
||||
"omega", 781.94*MeV, 8.43*MeV, +0.0*eplus,
|
||||
2, -1, -1,
|
||||
0, +0, -1,
|
||||
"meson", 0, 0, 223,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of omega -> pi+ + pi- + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("omega",0.888, 3,
|
||||
"pi+","pi-","pi0");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// phi
|
||||
particle = new G4ExcitedMesons(
|
||||
"phi", 1019.4*MeV, 4.43*MeV, +0.0*eplus,
|
||||
2, -1, -1,
|
||||
0, +0, -1,
|
||||
"meson", 0, 0, 333,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of phi -> kaon+ + kaon-
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("phi",0.491, 2,
|
||||
"kaon+","kaon-");
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of phi -> kaon0S + kaon0L
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("phi",0.343, 2,
|
||||
"kaon0S","kaon0L");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of phi -> rho0 + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("phi",0.129, 2,
|
||||
"rho0","pi0");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// rho+
|
||||
particle = new G4ExcitedMesons(
|
||||
"rho+", 769.9*MeV, 151.2*MeV, +1.0*eplus,
|
||||
2, -1, -1,
|
||||
2, +2, +1,
|
||||
"meson", 0, 0, 213,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of rho+ -> pi+ + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("rho+",1.000, 2,
|
||||
"pi+","pi0");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// rho-
|
||||
particle = new G4ExcitedMesons(
|
||||
"rho-", 769.9*MeV, 151.2*MeV, -1.0*eplus,
|
||||
2, -1, -1,
|
||||
2, -2, +1,
|
||||
"meson", 0, 0, -213,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of rho- -> pi- + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("rho-",1.000, 2,
|
||||
"pi-","pi0");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// k_star+
|
||||
particle = new G4ExcitedMesons(
|
||||
"k_star+", 891.6*MeV, 49.8*MeV, +1.0*eplus,
|
||||
2, -1, 0,
|
||||
1, +1, 0,
|
||||
"meson", 0, 0, 323,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of k_star+ -> kaon+ + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("k_star+",0.500, 2,
|
||||
"kaon+","pi0");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of k_star+ -> kaon+ + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("k_star+",0.500, 2,
|
||||
"kaon0","pi+");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// k_star0
|
||||
particle = new G4ExcitedMesons(
|
||||
"k_star0", 896.1*MeV, 50.5*MeV, 0.0*eplus,
|
||||
2, -1, 0,
|
||||
1, -1, 0,
|
||||
"meson", 0, 0, 313,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of k_star0 -> kaon+ + pi-
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("k_star0",0.500, 2,
|
||||
"kaon+","pi-");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of k_star0 -> kaon0 + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("k_star0",0.500, 2,
|
||||
"kaon0","pi0");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
// k_star-
|
||||
particle = new G4ExcitedMesons(
|
||||
"k_star-", 891.6*MeV, 49.8*MeV, -1.0*eplus,
|
||||
2, -1, 0,
|
||||
1, +1, 0,
|
||||
"meson", 0, 0, -323,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of k_star- -> kaon- + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("k_star-",0.500, 2,
|
||||
"kaon-","pi0");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of k_star- -> anti_kaon0 + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("k_star-",0.500, 2,
|
||||
"anti_kaon0","pi+");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
|
||||
// anti_k_star0
|
||||
particle = new G4ExcitedMesons(
|
||||
"anti_k_star0", 896.1*MeV, 50.5*MeV, 0.0*eplus,
|
||||
2, -1, 0,
|
||||
1, -1, 0,
|
||||
"meson", 0, 0, -313,
|
||||
false, 0.0, NULL);
|
||||
// create decay table
|
||||
decayTable = new G4DecayTable();
|
||||
// create decay channel of anti_k_star0 -> kaon- + pi+
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("anti_k_star0",0.500, 2,
|
||||
"kaon-","pi+");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
// create decay channel of anti_k_star0 -> anti_kaon0 + pi0
|
||||
// parent BR #daughters
|
||||
mode = new G4PhaseSpaceDecayChannel("anti_k_star0",0.500, 2,
|
||||
"anti_kaon0","pi0");
|
||||
// add decay table
|
||||
decayTable->Insert(mode);
|
||||
particle->SetDecayTable(decayTable);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,63 @@
|
||||
// This code implementation is the intellectual property of
|
||||
// the RD44 GEANT4 collaboration.
|
||||
//
|
||||
// By copying, distributing or modifying the Program (or any work
|
||||
// based on the Program) you indicate your acceptance of this statement,
|
||||
// and all its terms.
|
||||
//
|
||||
// $Id: G4VShortLivedParticle.cc,v 2.0 1998/07/02 17:27:11 gunter Exp $
|
||||
// GEANT4 tag $Name: geant4-00 $
|
||||
//
|
||||
//
|
||||
// --------------------------------------------------------------
|
||||
// GEANT 4 class implementation file
|
||||
//
|
||||
// For information related to this code contact:
|
||||
// CERN, CN Division, ASD Group
|
||||
// History: first implementation, based on object model of
|
||||
// 28 June 1998 H.Kurashige
|
||||
// --------------------------------------------------------------
|
||||
|
||||
#include "G4VShortLivedParticle.hh"
|
||||
|
||||
G4VShortLivedParticle::G4VShortLivedParticle(const G4String& aName,
|
||||
G4double mass,
|
||||
G4double width,
|
||||
G4double charge,
|
||||
G4int iSpin,
|
||||
G4int iParity,
|
||||
G4int iConjugation,
|
||||
G4int iIsospin,
|
||||
G4int iIsospinZ,
|
||||
G4int gParity,
|
||||
const G4String& pType,
|
||||
G4int lepton,
|
||||
G4int baryon,
|
||||
G4int encoding,
|
||||
G4bool stable,
|
||||
G4double lifetime,
|
||||
G4DecayTable *decaytable)
|
||||
:G4ParticleDefinition( aName,mass,width,charge,iSpin,iParity,
|
||||
iConjugation,iIsospin,iIsospinZ,gParity,pType,
|
||||
lepton,baryon,encoding,stable,lifetime,decaytable, true)
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
const G4VShortLivedParticle & G4VShortLivedParticle::operator=(const G4VShortLivedParticle& right)
|
||||
{
|
||||
if (this != &right) {
|
||||
} return right;
|
||||
}
|
||||
|
||||
G4int G4VShortLivedParticle::operator==(const G4VShortLivedParticle &right) const
|
||||
{
|
||||
return (this->GetParticleName() == right.GetParticleName());
|
||||
}
|
||||
|
||||
G4int G4VShortLivedParticle::operator!=(const G4VShortLivedParticle &right) const
|
||||
{
|
||||
return (this->GetParticleName() != right.GetParticleName());
|
||||
}
|
||||
Reference in New Issue
Block a user