Import Geant4 0.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-01 15:25:35 +02:00
parent 54d6b71f95
commit b97f8d0df7
3237 changed files with 807095 additions and 0 deletions
@@ -0,0 +1,101 @@
// 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: G4AntiBMesonZero.cc,v 2.1 1998/08/04 11:15:36 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4AntiBMesonZero.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### AntiBMesonZero ###
// ######################################################################
G4AntiBMesonZero::G4AntiBMesonZero(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4AntiBMesonZero G4AntiBMesonZero::theAntiBMesonZero(
"anti_B0", 5.21792*GeV, 0.0*MeV, 0.,
0, -1, 0,
1, +1, 0,
"meson", 0, 0, -511,
false, 1.56e-3*ns, NULL
);
G4AntiBMesonZero* G4AntiBMesonZero::AntiBMesonZeroDefinition(){return &theAntiBMesonZero;}
G4AntiBMesonZero* G4AntiBMesonZero::AntiBMesonZero(){return &theAntiBMesonZero;}
// initialization for static cut values
G4double G4AntiBMesonZero::theAntiBMesonZeroLengthCut = -1.0;
G4double* G4AntiBMesonZero::theAntiBMesonZeroKineticEnergyCuts = NULL;
void G4AntiBMesonZero::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete [] theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theAntiBMesonZeroLengthCut = theCutInMaxInteractionLength;
theAntiBMesonZeroKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,101 @@
// 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: G4AntiBsMesonZero.cc,v 2.1 1998/08/04 11:15:37 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4AntiBsMesonZero.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### AntiBsMesonZero ###
// ######################################################################
G4AntiBsMesonZero::G4AntiBsMesonZero(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4AntiBsMesonZero G4AntiBsMesonZero::theAntiBsMesonZero(
"anti_Bs0", 5.3692*GeV, 0.0*MeV, 0.,
0, -1, 0,
0, 0, 0,
"meson", 0, 0, -531,
false, 1.61e-3*ns, NULL
);
G4AntiBsMesonZero* G4AntiBsMesonZero::AntiBsMesonZeroDefinition(){return &theAntiBsMesonZero;}
G4AntiBsMesonZero* G4AntiBsMesonZero::AntiBsMesonZero(){return &theAntiBsMesonZero;}
// initialization for static cut values
G4double G4AntiBsMesonZero::theAntiBsMesonZeroLengthCut = -1.0;
G4double* G4AntiBsMesonZero::theAntiBsMesonZeroKineticEnergyCuts = NULL;
void G4AntiBsMesonZero::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theAntiBsMesonZeroLengthCut = theCutInMaxInteractionLength;
theAntiBsMesonZeroKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,101 @@
// 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: G4AntiDMesonZero.cc,v 2.1 1998/08/04 11:15:38 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4AntiDMesonZero.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### AntiDMesonZero ###
// ######################################################################
G4AntiDMesonZero::G4AntiDMesonZero(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4AntiDMesonZero G4AntiDMesonZero::theAntiDMesonZero(
"anti_D0", 1.8645*GeV, 0.0*MeV, 0.,
0, -1, 0,
1, +1, 0,
"meson", 0, 0, -421,
false, 0.415e-3*ns, NULL
);
G4AntiDMesonZero* G4AntiDMesonZero::AntiDMesonZeroDefinition(){return &theAntiDMesonZero;}
G4AntiDMesonZero* G4AntiDMesonZero::AntiDMesonZero(){return &theAntiDMesonZero;}
// initialization for static cut values
G4double G4AntiDMesonZero::theAntiDMesonZeroLengthCut = -1.0;
G4double* G4AntiDMesonZero::theAntiDMesonZeroKineticEnergyCuts = NULL;
void G4AntiDMesonZero::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete [] theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theAntiDMesonZeroLengthCut = theCutInMaxInteractionLength;
theAntiDMesonZeroKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,117 @@
// 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: G4AntiKaonZero.cc,v 2.2 1998/09/24 06:08:58 kurasige 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
// H.Kurashige 7 Jul 96
// **********************************************************************
#include <fstream.h>
#include <iomanip.h>
#include "G4AntiKaonZero.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### ANTIKAONZERO ###
// ######################################################################
G4AntiKaonZero::G4AntiKaonZero(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[2];
// kaon0 -> Kaon0L
mode[0] = new G4PhaseSpaceDecayChannel("anti_kaon0",0.500,1,"kaon0L");
// kaon0 -> Kaon0S
mode[1] = new G4PhaseSpaceDecayChannel("anti_kaon0",0.500,1,"kaon0S");
for (G4int index=0; index <2; index++ ) table->Insert(mode[index]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
G4AntiKaonZero G4AntiKaonZero::theAntiKaonZero(
"anti_kaon0", 0.497672*GeV, 0.0*MeV, 0.0,
0, -1, 0,
1, 1, 0,
"meson", 0, 0, -311,
false, 0.0, NULL
);
G4AntiKaonZero* G4AntiKaonZero::AntiKaonZeroDefinition(){return &theAntiKaonZero;}
// initialization for static cut values
G4double G4AntiKaonZero::theAntiKaonZeroLengthCut = -1.0;
G4double* G4AntiKaonZero::theAntiKaonZeroKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
// In this version Input Cut Value is meaning less
// theKineticEnergyCuts for all materials are set to LowestEnergy
void G4AntiKaonZero::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete [] theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theAntiKaonZeroLengthCut = theCutInMaxInteractionLength;
theAntiKaonZeroKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,80 @@
// 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: G4BMesonMinus.cc,v 2.1 1998/08/04 11:15:40 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4BMesonMinus.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### BMesonMinus ###
// ######################################################################
G4BMesonMinus::G4BMesonMinus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4BMesonMinus G4BMesonMinus::theBMesonMinus
(
"B-", 5.2789*GeV, 0.0*MeV, -1.*eplus,
0, -1, 0,
1, -1, 0,
"meson", 0, 0, -521,
false, 1.62e-3*ns, NULL
);
G4BMesonMinus* G4BMesonMinus::BMesonMinusDefinition(){return &theBMesonMinus;}
G4BMesonMinus* G4BMesonMinus::BMesonMinus(){return &theBMesonMinus;}
// initialization for static cut values
G4double G4BMesonMinus::theBMesonMinusLengthCut = -1.0;
G4double* G4BMesonMinus::theBMesonMinusKineticEnergyCuts = NULL;
@@ -0,0 +1,79 @@
// 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: G4BMesonPlus.cc,v 2.1 1998/08/04 11:15:41 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4BMesonPlus.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### BMesonPLUS ###
// ######################################################################
G4BMesonPlus::G4BMesonPlus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4BMesonPlus G4BMesonPlus::theBMesonPlus(
"B+", 5.2789*GeV, 0.0*MeV, +1.*eplus,
0, -1, 0,
1, +1, 0,
"meson", 0, 0, 521,
false, 1.62e-3*ns, NULL
);
G4BMesonPlus* G4BMesonPlus::BMesonPlusDefinition(){return &theBMesonPlus;}
G4BMesonPlus* G4BMesonPlus::BMesonPlus(){return &theBMesonPlus;}
// initialization for static cut values
G4double G4BMesonPlus::theBMesonPlusLengthCut = -1.0;
G4double* G4BMesonPlus::theBMesonPlusKineticEnergyCuts = NULL;
@@ -0,0 +1,107 @@
// 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: G4BMesonZero.cc,v 2.1 1998/08/04 11:15:41 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4BMesonZero.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### BMesonZero ###
// ######################################################################
G4BMesonZero::G4BMesonZero(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4BMesonZero G4BMesonZero::theBMesonZero(
"B0", 5.21792*GeV, 0.0*MeV, 0.,
0, -1, 0,
1, -1, 0,
"meson", 0, 0, 511,
false, 1.56e-3*ns, NULL
);
G4BMesonZero* G4BMesonZero::BMesonZeroDefinition(){return &theBMesonZero;}
G4BMesonZero* G4BMesonZero::BMesonZero(){return &theBMesonZero;}
// initialization for static cut values
G4double G4BMesonZero::theBMesonZeroLengthCut = -1.0;
G4double* G4BMesonZero::theBMesonZeroKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
// In this version Input Cut Value is meaning less
// theKineticEnergyCuts for all materials are set to LowestEnergy
void G4BMesonZero::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete [] theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theBMesonZeroLengthCut = theCutInMaxInteractionLength;
theBMesonZeroKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,106 @@
// 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: G4BsMesonZero.cc,v 2.1 1998/08/04 11:15:42 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4BsMesonZero.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### BsMesonZero ###
// ######################################################################
G4BsMesonZero::G4BsMesonZero(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4BsMesonZero G4BsMesonZero::theBsMesonZero(
"Bs0", 5.3692*GeV, 0.0*MeV, 0.,
0, -1, 0,
0, 0, 0,
"meson", 0, 0, 531,
false, 1.61e-3*ns, NULL
);
G4BsMesonZero* G4BsMesonZero::BsMesonZeroDefinition(){return &theBsMesonZero;}
G4BsMesonZero* G4BsMesonZero::BsMesonZero(){return &theBsMesonZero;}
// initialization for static cut values
G4double G4BsMesonZero::theBsMesonZeroLengthCut = -1.0;
G4double* G4BsMesonZero::theBsMesonZeroKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
// In this version Input Cut Value is meaning less
// theKineticEnergyCuts for all materials are set to LowestEnergy
void G4BsMesonZero::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theBsMesonZeroLengthCut = theCutInMaxInteractionLength;
theBsMesonZeroKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,80 @@
// 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: G4DMesonMinus.cc,v 2.1 1998/08/04 11:15:44 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4DMesonMinus.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### DMesonMinus ###
// ######################################################################
G4DMesonMinus::G4DMesonMinus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4DMesonMinus G4DMesonMinus::theDMesonMinus
(
"D-", 1.8693*GeV, 0.0*MeV, -1.*eplus,
0, -1, 0,
1, -1, 0,
"meson", 0, 0, -411,
false, 1.057e-3*ns, NULL
);
G4DMesonMinus* G4DMesonMinus::DMesonMinusDefinition(){return &theDMesonMinus;}
G4DMesonMinus* G4DMesonMinus::DMesonMinus(){return &theDMesonMinus;}
// initialization for static cut values
G4double G4DMesonMinus::theDMesonMinusLengthCut = -1.0;
G4double* G4DMesonMinus::theDMesonMinusKineticEnergyCuts = NULL;
@@ -0,0 +1,79 @@
// 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: G4DMesonPlus.cc,v 2.1 1998/08/04 11:15:44 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4DMesonPlus.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### DMesonPLUS ###
// ######################################################################
G4DMesonPlus::G4DMesonPlus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4DMesonPlus G4DMesonPlus::theDMesonPlus(
"D+", 1.8693*GeV, 0.0*MeV, +1.*eplus,
0, -1, 0,
1, +1, 0,
"meson", 0, 0, 411,
false, 1.057e-3*ns, NULL
);
G4DMesonPlus* G4DMesonPlus::DMesonPlusDefinition(){return &theDMesonPlus;}
G4DMesonPlus* G4DMesonPlus::DMesonPlus(){return &theDMesonPlus;}
// initialization for static cut values
G4double G4DMesonPlus::theDMesonPlusLengthCut = -1.0;
G4double* G4DMesonPlus::theDMesonPlusKineticEnergyCuts = NULL;
@@ -0,0 +1,106 @@
// 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: G4DMesonZero.cc,v 2.1 1998/08/04 11:15:45 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4DMesonZero.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### DMesonZero ###
// ######################################################################
G4DMesonZero::G4DMesonZero(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4DMesonZero G4DMesonZero::theDMesonZero(
"D0", 1.8645*GeV, 0.0*MeV, 0.,
0, -1, 0,
1, -1, 0,
"meson", 0, 0, 421,
false, 0.415e-3*ns, NULL
);
G4DMesonZero* G4DMesonZero::DMesonZeroDefinition(){return &theDMesonZero;}
G4DMesonZero* G4DMesonZero::DMesonZero(){return &theDMesonZero;}
// initialization for static cut values
G4double G4DMesonZero::theDMesonZeroLengthCut = -1.0;
G4double* G4DMesonZero::theDMesonZeroKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
// In this version Input Cut Value is meaning less
// theKineticEnergyCuts for all materials are set to LowestEnergy
void G4DMesonZero::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete [] theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theDMesonZeroLengthCut = theCutInMaxInteractionLength;
theDMesonZeroKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,79 @@
// 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: G4DsMesonMinus.cc,v 2.1 1998/08/04 11:15:46 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4DsMesonMinus.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### DsMesonMinus ###
// ######################################################################
G4DsMesonMinus::G4DsMesonMinus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4DsMesonMinus G4DsMesonMinus::theDsMesonMinus(
"Ds-", 1.9685*GeV, 0.0*MeV, -1.*eplus,
0, -1, 0,
0, 0, 0,
"meson", 0, 0, -431,
false, 0.467e-3*ns, NULL
);
G4DsMesonMinus* G4DsMesonMinus::DsMesonMinusDefinition(){return &theDsMesonMinus;}
G4DsMesonMinus* G4DsMesonMinus::DsMesonMinus(){return &theDsMesonMinus;}
// initialization for static cut values
G4double G4DsMesonMinus::theDsMesonMinusLengthCut = -1.0;
G4double* G4DsMesonMinus::theDsMesonMinusKineticEnergyCuts = NULL;
@@ -0,0 +1,79 @@
// 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: G4DsMesonPlus.cc,v 2.1 1998/08/04 11:15:47 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4DsMesonPlus.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### DsMesonPLUS ###
// ######################################################################
G4DsMesonPlus::G4DsMesonPlus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4DsMesonPlus G4DsMesonPlus::theDsMesonPlus(
"Ds+", 1.9685*GeV, 0.0*MeV, +1.*eplus,
0, -1, 0,
0, 0, 0,
"meson", 0, 0, 431,
false, 0.467e-3*ns, NULL
);
G4DsMesonPlus* G4DsMesonPlus::DsMesonPlusDefinition(){return &theDsMesonPlus;}
G4DsMesonPlus* G4DsMesonPlus::DsMesonPlus(){return &theDsMesonPlus;}
// initialization for static cut values
G4double G4DsMesonPlus::theDsMesonPlusLengthCut = -1.0;
G4double* G4DsMesonPlus::theDsMesonPlusKineticEnergyCuts = NULL;
@@ -0,0 +1,126 @@
// 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: G4Eta.cc,v 2.2 1998/09/24 06:08:58 kurasige 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
// H.Kurashige 7 Jul 96
// **********************************************************************
// ------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4Eta.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### ETA ###
// ######################################################################
G4Eta::G4Eta(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
// Anti-particle of Eta is Eta itself
SetAntiPDGEncoding(encoding);
SetPDGStable(false);
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[4];
// eta -> gamma + gamma
mode[0] = new G4PhaseSpaceDecayChannel("eta",0.393,2,"gamma","gamma");
// eta -> pi0 + pi0 + pi0
mode[1] = new G4PhaseSpaceDecayChannel("eta",0.321,3,"pi0","pi0","pi0");
// eta -> pi0 + pi+ + pi-
mode[2] = new G4PhaseSpaceDecayChannel("eta",0.232,3,"pi0","pi+","pi-");
// eta -> gamma + pi+ + pi-
mode[3] = new G4PhaseSpaceDecayChannel("eta",0.048,3,"gamma","pi+","pi-");
for (G4int index=0; index <4; index++ ) table->Insert(mode[index]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
G4Eta G4Eta::theEta(
"eta", 0.54745*GeV, 1.20*keV, 0.0,
0, -1, +1,
0, 0, +1,
"meson", 0, 0, 221,
false, 0.0*ns, NULL
);
G4Eta* G4Eta::EtaDefinition(){return &theEta;}
// initialization for static cut values
G4double G4Eta::theEtaLengthCut = -1.0;
G4double* G4Eta::theEtaKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
void G4Eta::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theEtaLengthCut = theCutInMaxInteractionLength;
theEtaKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,123 @@
// 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: G4EtaPrime.cc,v 2.2 1998/09/24 06:08:59 kurasige 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, 8 June 1998 Hisaya Kurashige
// ****************************************************************
// ----------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4EtaPrime.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### EtaPrime ###
// ######################################################################
G4EtaPrime::G4EtaPrime(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
// Anti-particle of EtaPrime is EtaPrime itself
SetAntiPDGEncoding(encoding);
SetPDGStable(false);
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[3];
// EtaPrime -> eta + pi+ + pi-
mode[0] = new G4PhaseSpaceDecayChannel("eta_prime",0.437,3,"eta","pi+","pi-");
// EtaPrime -> eta + pi0 + pi0
mode[1] = new G4PhaseSpaceDecayChannel("eta_prime",0.208,3,"eta","pi0","pi0");
// EtaPrime -> rho0 + gamma
mode[2] = new G4PhaseSpaceDecayChannel("eta_prime",0.302,2,"rho0","gamma");
for (G4int index=0; index <3; index++ ) table->Insert(mode[index]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
G4EtaPrime G4EtaPrime::theEtaPrime(
"eta_prime", 0.95777*GeV, 0.201*MeV, 0.0,
0, -1, +1,
0, 0, +1,
"meson", 0, 0, 331,
false, 0.0*ns, NULL
);
G4EtaPrime* G4EtaPrime::EtaPrimeDefinition(){return &theEtaPrime;}
// initialization for static cut values
G4double G4EtaPrime::theEtaPrimeLengthCut = -1.0;
G4double* G4EtaPrime::theEtaPrimeKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
void G4EtaPrime::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theEtaPrimeLengthCut = theCutInMaxInteractionLength;
theEtaPrimeKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,110 @@
// 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: G4JPsi.cc,v 2.1 1998/08/04 11:15:49 kurasige Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// ----------------------------------------------------------------------
// GEANT 4 class implementation file
//
// For information related to this code contact:
// CERN, CN Division, ASD Group
//
// Created Hisaya Kurashige, 16 June 1997
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4JPsi.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### JPsi ###
// ######################################################################
G4JPsi::G4JPsi(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
// Anti-particle of J/Psi is J/Psi itself
SetAntiPDGEncoding(encoding);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4JPsi G4JPsi::theJPsi(
"J/psi", 3.09688*GeV, 87*MeV, 0.,
2, -1, -1,
0, 0, -1,
"meson", 0, 0, 443,
false, 0.0*ns, NULL
);
G4JPsi* G4JPsi::JPsiDefinition(){return &theJPsi;}
G4JPsi* G4JPsi::JPsi(){return &theJPsi;}
// initialization for static cut values
G4double G4JPsi::theJPsiLengthCut = -1.0;
G4double* G4JPsi::theJPsiKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
// In this version Input Cut Value is meaning less
// theKineticEnergyCuts for all materials are set to LowestEnergy
void G4JPsi::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete [] theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theJPsiLengthCut = theCutInMaxInteractionLength;
theJPsiKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,97 @@
// 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: G4KaonMinus.cc,v 2.2 1998/09/24 06:09:00 kurasige 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
// H.Kurashige 7 Jul 96
// **********************************************************************
#include <fstream.h>
#include <iomanip.h>
#include "G4KaonMinus.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4KL3DecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### KAONMINUS ###
// ######################################################################
G4KaonMinus::G4KaonMinus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[6];
// kaon- -> mu- + anti_nu_mu
mode[0] = new G4PhaseSpaceDecayChannel("kaon-",0.635,2,"mu-","anti_nu_mu");
// kaon- -> pi+ + pi0
mode[1] = new G4PhaseSpaceDecayChannel("kaon-",0.212,2,"pi+","pi0");
// kaon- -> pi+ + pi+ + pi-
mode[2] = new G4PhaseSpaceDecayChannel("kaon-",0.056,3,"pi+","pi+","pi-");
// kaon- -> pi+ + pi0 + pi0
mode[3] = new G4PhaseSpaceDecayChannel("kaon-",0.017,3,"pi+","pi0","pi0");
// kaon- -> pi0 + e- + anti_nu_e (Ke3)
mode[4] = new G4KL3DecayChannel("kaon-",0.048,"pi0","e-","anti_nu_e");
// kaon- -> pi0 + mu- + anti_nu_mu (Kmu3)
mode[5] = new G4KL3DecayChannel("kaon-",0.032,"pi0","mu-","anti_nu_mu");
for (G4int index=0; index <6; index++ ) table->Insert(mode[index]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
//
G4KaonMinus G4KaonMinus::theKaonMinus(
"kaon-", 0.493677*GeV, 0.0*MeV, -1.*eplus,
0, -1, 0,
1, -1, 0,
"meson", 0, 0, -321,
false, 12.371*ns, NULL
);
G4KaonMinus* G4KaonMinus::KaonMinusDefinition(){return &theKaonMinus;}
// initialization for static cut values
G4double G4KaonMinus::theKaonMinusLengthCut = -1.0;
G4double* G4KaonMinus::theKaonMinusKineticEnergyCuts = NULL;
@@ -0,0 +1,104 @@
// 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: G4KaonPlus.cc,v 2.2 1998/09/24 06:09:01 kurasige 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
// H.Kurashige 7 Jul 96
// **********************************************************************
#include <fstream.h>
#include <iomanip.h>
#include "G4KaonPlus.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4KL3DecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### KAONPLUS ###
// ######################################################################
G4KaonPlus::G4KaonPlus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[6];
// kaon+ -> mu+ + nu_mu
mode[0] = new G4PhaseSpaceDecayChannel("kaon+",0.635,2,"mu+","nu_mu");
// kaon+ -> pi+ + pi0
mode[1] = new G4PhaseSpaceDecayChannel("kaon+",0.212,2,"pi+","pi0");
// kaon+ -> pi+ + pi+ + pi-
mode[2] = new G4PhaseSpaceDecayChannel("kaon+",0.056,3,"pi+","pi+","pi-");
// kaon+ -> pi+ + pi0 + pi0
mode[3] = new G4PhaseSpaceDecayChannel("kaon+",0.017,3,"pi+","pi0","pi0");
// kaon+ -> pi0 + e+ + nu_e (Ke3)
mode[4] = new G4KL3DecayChannel("kaon+",0.048,"pi0","e+","nu_e");
// kaon+ -> pi0 + mu+ + nu_mu (Kmu3)
mode[5] = new G4KL3DecayChannel("kaon+",0.032,"pi0","mu+","nu_mu");
for (G4int index=0; index <6; index++ ) table->Insert(mode[index]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4KaonPlus G4KaonPlus::theKaonPlus(
"kaon+", 0.493677*GeV, 0.0*MeV, +1.*eplus,
0, -1, 0,
1, +1, 0,
"meson", 0, 0, 321,
false, 12.371*ns, NULL
);
G4KaonPlus* G4KaonPlus::KaonPlusDefinition(){return &theKaonPlus;}
// initialization for static cut values
G4double G4KaonPlus::theKaonPlusLengthCut = -1.0;
G4double* G4KaonPlus::theKaonPlusKineticEnergyCuts = NULL;
@@ -0,0 +1,116 @@
// 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: G4KaonZero.cc,v 2.3 1998/09/24 06:09:02 kurasige 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
// H.Kurashige 7 Jul 96
// **********************************************************************
#include <fstream.h>
#include <iomanip.h>
#include "G4KaonZero.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### KAONZERO ###
// ######################################################################
G4KaonZero::G4KaonZero(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[2];
// kaon0 -> Kaon0L
mode[0] = new G4PhaseSpaceDecayChannel("kaon0",0.500,1,"kaon0L");
// kaon0 -> Kaon0S
mode[1] = new G4PhaseSpaceDecayChannel("kaon0",0.500,1,"kaon0S");
for (G4int index=0; index <2; index++ ) table->Insert(mode[index]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
G4KaonZero G4KaonZero::theKaonZero(
"kaon0", 0.497672*GeV, 0.0*MeV, 0.0,
0, -1, 0,
1, -1, 0,
"meson", 0, 0, 311,
false, 0.0, NULL
);
G4KaonZero* G4KaonZero::KaonZeroDefinition(){return &theKaonZero;}
// initialization for static cut values
G4double G4KaonZero::theKaonZeroLengthCut = -1.0;
G4double* G4KaonZero::theKaonZeroKineticEnergyCuts;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
// In this version Input Cut Value is meaning less
// theKineticEnergyCuts for all materials are set to LowestEnergy
void G4KaonZero::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete [] theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theKaonZeroLengthCut = theCutInMaxInteractionLength;
theKaonZeroKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,125 @@
// 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: G4KaonZeroLong.cc,v 2.3 1998/09/24 06:09:03 kurasige 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
// H.Kurashige 7 Jul 96
// **********************************************************************
#include <fstream.h>
#include <iomanip.h>
#include "G4KaonZeroLong.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4KL3DecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### KAONZEROLONG ###
// ######################################################################
G4KaonZeroLong::G4KaonZeroLong(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
// Anti-particle of K0Long is K0Long itself
SetAntiPDGEncoding(encoding);
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[6];
// kaon0L -> pi0 + pi0 + pi0
mode[0] = new G4PhaseSpaceDecayChannel("kaon0L",0.211,3,"pi0","pi0","pi0");
// kaon0L -> pi0 + pi+ + pi-
mode[1] = new G4PhaseSpaceDecayChannel("kaon0L",0.126,3,"pi0","pi+","pi-");
// kaon0L -> pi- + e+ + nu_e (Ke3)
mode[2] = new G4KL3DecayChannel("kaon0L",0.194,"pi-","e+","nu_e");
// kaon0L -> pi+ + e- + anti_nu_e (Ke3)
mode[3] = new G4KL3DecayChannel("kaon0L",0.194,"pi+","e-","anti_nu_e");
// kaon0L -> pi- + mu+ + nu_mu (Kmu3)
mode[4] = new G4KL3DecayChannel("kaon0L",0.136,"pi-","mu+","nu_mu");
// kaon0L -> pi+ + mu- + anti_nu_mu (Kmu3)
mode[5] = new G4KL3DecayChannel("kaon0L",0.136,"pi+","mu-","anti_nu_mu");
for (G4int index=0; index <6; index++ ) table->Insert(mode[index]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
G4KaonZeroLong G4KaonZeroLong::theKaonZeroLong(
"kaon0L", 0.497672*GeV, 0.0*MeV, 0.0,
0, -1, 0,
1, 0, 0,
"meson", 0, 0, 130,
false, 51.7*ns, NULL
);
G4KaonZeroLong* G4KaonZeroLong::KaonZeroLongDefinition(){return &theKaonZeroLong;}
// initialization for static cut values
G4double G4KaonZeroLong::theKaonZeroLongLengthCut = -1.0;
G4double* G4KaonZeroLong::theKaonZeroLongKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
// In this version Input Cut Value is meaning less
// theKineticEnergyCuts for all materials are set to LowestEnergy
void G4KaonZeroLong::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete [] theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theKaonZeroLongLengthCut = theCutInMaxInteractionLength;
theKaonZeroLongKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,120 @@
// 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: G4KaonZeroShort.cc,v 2.3 1998/09/24 06:09:04 kurasige 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
// H.Kurashige 7 Jul 96
// **********************************************************************
#include <fstream.h>
#include <iomanip.h>
#include "G4KaonZeroShort.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### KAONZEROSHORT ###
// ######################################################################
G4KaonZeroShort::G4KaonZeroShort(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
// Anti-particle of K0Short is K0Short itself
SetAntiPDGEncoding(encoding);
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[2];
// kaon0s -> pi+ + pi-
mode[0] = new G4PhaseSpaceDecayChannel("kaon0S",0.686,2,"pi+","pi-");
// kaon0s -> pi0 + pi0
mode[1] = new G4PhaseSpaceDecayChannel("kaon0S",0.313,2,"pi0","pi0");
for (G4int index=0; index <2; index++ ) table->Insert(mode[index]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
G4KaonZeroShort G4KaonZeroShort::theKaonZeroShort(
"kaon0S", 0.497672*GeV, 0.0*MeV, 0.0,
0, -1, 0,
1, 0, 0,
"meson", 0, 0, 310,
false, 0.08926*ns, NULL
);
G4KaonZeroShort* G4KaonZeroShort::KaonZeroShortDefinition(){return &theKaonZeroShort;}
// initialization for static cut values
G4double G4KaonZeroShort::theKaonZeroShortLengthCut = -1.0;
G4double* G4KaonZeroShort::theKaonZeroShortKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
// In this version Input Cut Value is meaning less
// theKineticEnergyCuts for all materials are set to LowestEnergy
void G4KaonZeroShort::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete [] theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theKaonZeroShortLengthCut = theCutInMaxInteractionLength;
theKaonZeroShortKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,99 @@
// 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: G4MesonConstructor.cc,v 2.0 1998/07/02 17:24:26 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// --------------------------------------------------------------
// GEANT 4 class implementation file
//
#include "G4MesonConstructor.hh"
#include "G4ParticleDefinition.hh"
#include "G4ParticleTable.hh"
// Mesons
#include "G4PionPlus.hh"
#include "G4PionMinus.hh"
#include "G4PionZero.hh"
#include "G4Eta.hh"
#include "G4EtaPrime.hh"
#include "G4RhoZero.hh"
#include "G4KaonPlus.hh"
#include "G4KaonMinus.hh"
#include "G4KaonZero.hh"
#include "G4AntiKaonZero.hh"
#include "G4KaonZeroLong.hh"
#include "G4KaonZeroShort.hh"
#include "G4DMesonPlus.hh"
#include "G4DMesonMinus.hh"
#include "G4DMesonZero.hh"
#include "G4AntiDMesonZero.hh"
#include "G4DsMesonPlus.hh"
#include "G4DsMesonMinus.hh"
#include "G4JPsi.hh"
#include "G4BMesonPlus.hh"
#include "G4BMesonMinus.hh"
#include "G4BMesonZero.hh"
#include "G4AntiBMesonZero.hh"
#include "G4BsMesonZero.hh"
#include "G4AntiBsMesonZero.hh"
G4MesonConstructor::G4MesonConstructor()
{
}
G4MesonConstructor::~G4MesonConstructor()
{
}
void G4MesonConstructor::ConstructParticle()
{
ConstructLightMesons();
ConstructCharmMesons();
ConstructBottomMesons();
}
void G4MesonConstructor::ConstructLightMesons()
{
G4PionPlus::PionPlusDefinition();
G4PionMinus::PionMinusDefinition();
G4PionZero::PionZeroDefinition();
G4Eta::EtaDefinition();
G4EtaPrime::EtaPrimeDefinition();
G4RhoZero::RhoZeroDefinition();
G4KaonPlus::KaonPlusDefinition();
G4KaonMinus::KaonMinusDefinition();
G4KaonZero::KaonZeroDefinition();
G4AntiKaonZero::AntiKaonZeroDefinition();
G4KaonZeroLong::KaonZeroLongDefinition();
G4KaonZeroShort::KaonZeroShortDefinition();
}
void G4MesonConstructor::ConstructCharmMesons()
{
G4DMesonPlus::DMesonPlusDefinition();
G4DMesonMinus::DMesonMinusDefinition();
G4DMesonZero::DMesonZeroDefinition();
G4AntiDMesonZero::AntiDMesonZeroDefinition();
G4DsMesonPlus::DsMesonPlusDefinition();
G4DsMesonMinus::DsMesonMinusDefinition();
G4JPsi::JPsiDefinition();
}
void G4MesonConstructor::ConstructBottomMesons()
{
G4BMesonPlus::BMesonPlusDefinition();
G4BMesonMinus::BMesonMinusDefinition();
G4BMesonZero::BMesonZeroDefinition();
G4AntiBMesonZero::AntiBMesonZeroDefinition();
G4BsMesonZero::BsMesonZeroDefinition();
G4AntiBsMesonZero::AntiBsMesonZeroDefinition();
}
@@ -0,0 +1,94 @@
// 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: G4PionMinus.cc,v 2.2 1998/09/24 06:09:05 kurasige 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
// **********************************************************************
// Added particle definitions, H.Kurashige, 19 April 1996
// Code uses operators (+=, *=, ++, -> etc.) correctly, P. Urban, 26/6/96
// Add PionMinusDefinition(), H.Kurashige 4 July 1996
// ----------------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4PionMinus.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### PIONMINUS ###
// ######################################################################
G4PionMinus::G4PionMinus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
SetPDGStable(false);
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create a decay channel
// pi- -> mu- + anti_nu_mu
G4VDecayChannel* mode = new G4PhaseSpaceDecayChannel("pi-",1.00,2,"mu-","anti_nu_mu");
table->Insert(mode);
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
//
G4PionMinus G4PionMinus::thePionMinus(
"pi-", 0.1395700*GeV, 0.0*MeV, -1.*eplus,
0, -1, 0,
2, -2, -1,
"meson", 0, 0, -211,
false, 26.030*ns, NULL
);
G4PionMinus* G4PionMinus::PionMinusDefinition(){return &thePionMinus;}
// initialization for static cut values
G4double G4PionMinus::thePionMinusLengthCut = -1.0;
G4double* G4PionMinus::thePionMinusKineticEnergyCuts = NULL;
@@ -0,0 +1,93 @@
// 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: G4PionPlus.cc,v 2.2 1998/09/24 06:09:06 kurasige 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
// **********************************************************************
// Added particle definitions, H.Kurashige, 19 April 1996
// Code uses operators (+=, *=, ++, -> etc.) correctly, P. Urban, 26/6/96
// Add PionPlusDefinition(), H.Kurashige 4 July 1996
// ----------------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4PionPlus.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### PIONPLUS ###
// ######################################################################
G4PionPlus::G4PionPlus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
SetPDGStable(false);
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create a decay channel
// pi+ -> mu+ + nu_mu
G4VDecayChannel* mode = new G4PhaseSpaceDecayChannel("pi+",1.00,2,"mu+","nu_mu");
table->Insert(mode);
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
// In this version, charged pions are set to stable
G4PionPlus G4PionPlus::thePionPlus(
"pi+", 0.1395700*GeV, 0.0*MeV, +1.*eplus,
0, -1, 0,
2, +2, -1,
"meson", 0, 0, 211,
true, 26.030*ns, NULL
);
G4PionPlus* G4PionPlus::PionPlusDefinition(){return &thePionPlus;}
// initialization for static cut values
G4double G4PionPlus::thePionPlusLengthCut = -1.0;
G4double* G4PionPlus::thePionPlusKineticEnergyCuts = NULL;
@@ -0,0 +1,129 @@
// 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: G4PionZero.cc,v 2.3 1998/09/24 06:09:07 kurasige 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
// **********************************************************************
// Added particle definitions, H.Kurashige, 19 April 1996
// Operators (+=, *=, ++, -> etc.) correctly used, P. Urban, 26/6/96
// Add PionZeroDefinition(), H.Kurashige 4 July 1996
// ----------------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4PionZero.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DalitzDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### PIONZERO ###
// ######################################################################
G4PionZero::G4PionZero(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
// Anti-particle of Pi0 is pi0 itself
SetAntiPDGEncoding(encoding);
SetPDGStable(false);
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create a decay channel
G4VDecayChannel* mode;
// pi0 -> gamma + gamma
mode = new G4PhaseSpaceDecayChannel("pi0",0.988,2,"gamma","gamma");
table->Insert(mode);
// pi0 -> gamma + e+ + e-
mode = new G4DalitzDecayChannel("pi0",0.012,"e-","e+");
table->Insert(mode);
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
G4PionZero G4PionZero::thePionZero(
"pi0", 0.1349764*GeV, 0.0*MeV, 0.0,
0, -1, +1,
2, 0, -1,
"meson", 0, 0, 111,
false, 8.4e-8*ns, NULL
);
G4PionZero* G4PionZero::PionZeroDefinition(){return &thePionZero;}
// initialization for static cut values
G4double G4PionZero::thePionZeroLengthCut = -1.0;
G4double* G4PionZero::thePionZeroKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
// In this version Input Cut Value is meaning less
// theKineticEnergyCuts for all materials are set to LowestEnergy
void G4PionZero::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete [] theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
thePionZeroLengthCut = theCutInMaxInteractionLength;
thePionZeroKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,92 @@
// 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: G4RhoMinus.cc,v 1.1 1998/10/13 05:59:13 kurasige 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 Hisaya Kurashige, 8 June 1998
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4RhoMinus.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### RhoMinus ###
// ######################################################################
G4RhoMinus::G4RhoMinus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
SetPDGStable(false);
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[1];
// RhoMinus -> pi+ + pi-
mode[0] = new G4PhaseSpaceDecayChannel("rho+",1.000,2,"pi-","pi0");
table->Insert(mode[0]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
G4RhoMinus G4RhoMinus::theRhoMinus(
"rho0", 0.7685*GeV, 150.7*MeV, -1.0*eplus,
2, -1, 0,
2, -2, +1,
"meson", 0, 0, -213,
false, 0.0*ns, NULL
);
G4RhoMinus* G4RhoMinus::RhoMinusDefinition(){return &theRhoMinus;}
G4RhoMinus* G4RhoMinus::RhoMinus(){return &theRhoMinus;}
// initialization for static cut values
G4double G4RhoMinus::theRhoMinusLengthCut = -1.0;
G4double* G4RhoMinus::theRhoMinusKineticEnergyCuts = NULL;
@@ -0,0 +1,92 @@
// 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: G4RhoPlus.cc,v 1.1 1998/10/13 05:59:24 kurasige 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 Hisaya Kurashige, 8 June 1998
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4RhoPlus.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### RhoPlus ###
// ######################################################################
G4RhoPlus::G4RhoPlus(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
SetPDGStable(false);
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[1];
// RhoPlus -> pi+ + pi-
mode[0] = new G4PhaseSpaceDecayChannel("rho+",1.000,2,"pi+","pi0");
table->Insert(mode[0]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
G4RhoPlus G4RhoPlus::theRhoPlus(
"rho0", 0.7685*GeV, 150.7*MeV, +1.0*eplus,
2, -1, 0,
2, +2, +1,
"meson", 0, 0, 213,
false, 0.0*ns, NULL
);
G4RhoPlus* G4RhoPlus::RhoPlusDefinition(){return &theRhoPlus;}
G4RhoPlus* G4RhoPlus::RhoPlus(){return &theRhoPlus;}
// initialization for static cut values
G4double G4RhoPlus::theRhoPlusLengthCut = -1.0;
G4double* G4RhoPlus::theRhoPlusKineticEnergyCuts = NULL;
@@ -0,0 +1,122 @@
// 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: G4RhoZero.cc,v 2.1 1998/08/04 11:15:58 kurasige 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 Hisaya Kurashige, 8 June 1998
// **********************************************************************
// Change both methods to get the pointer into non-inlined H.Kurashige 4 Aug. 1998
// ------------------------------------------------------------
#include <fstream.h>
#include <iomanip.h>
#include "G4RhoZero.hh"
#include "G4PhaseSpaceDecayChannel.hh"
#include "G4DecayTable.hh"
// ######################################################################
// ### RhoZero ###
// ######################################################################
G4RhoZero::G4RhoZero(
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 )
: G4VMeson( aName,mass,width,charge,iSpin,iParity,
iConjugation,iIsospin,iIsospin3,gParity,pType,
lepton,baryon,encoding,stable,lifetime,decaytable )
{
// Anti-particle of RhoZero is RhoZero itself
SetAntiPDGEncoding(encoding);
SetPDGStable(false);
//create Decay Table
G4DecayTable* table = GetDecayTable();
if (table!=NULL) delete table;
table = new G4DecayTable();
// create decay channels
G4VDecayChannel** mode = new G4VDecayChannel*[1];
// RhoZero -> pi+ + pi-
mode[0] = new G4PhaseSpaceDecayChannel("rho0",1.000,2,"pi+","pi-");
table->Insert(mode[0]);
delete [] mode;
SetDecayTable(table);
}
// ......................................................................
// ... static member definitions ...
// ......................................................................
//
// 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
G4RhoZero G4RhoZero::theRhoZero(
"rho0", 0.7685*GeV, 150.7*MeV, 0.0,
2, -1, -1,
2, 0, +1,
"meson", 0, 0, 113,
false, 0.0*ns, NULL
);
G4RhoZero* G4RhoZero::RhoZeroDefinition(){return &theRhoZero;}
G4RhoZero* G4RhoZero::RhoZero(){return &theRhoZero;}
// initialization for static cut values
G4double G4RhoZero::theRhoZeroLengthCut = -1.0;
G4double* G4RhoZero::theRhoZeroKineticEnergyCuts = NULL;
// **********************************************************************
// **************************** SetCuts *********************************
// **********************************************************************
void G4RhoZero::SetCuts(G4double aCut)
{
theCutInMaxInteractionLength = aCut;
const G4MaterialTable* materialTable = G4Material::GetMaterialTable();
// Create the vector of cuts in energy
// corresponding to the stopping range cut
if(theKineticEnergyCuts) delete theKineticEnergyCuts;
theKineticEnergyCuts = new G4double [materialTable->length()];
// Build range vector for every material, convert cut into energy-cut,
// fill theKineticEnergyCuts and delete the range vector
for (G4int J=0; J<materialTable->length(); J++)
{
G4Material* aMaterial = (*materialTable)[J];
theKineticEnergyCuts[J] = LowestEnergy;
}
theRhoZeroLengthCut = theCutInMaxInteractionLength;
theRhoZeroKineticEnergyCuts = theKineticEnergyCuts;
}
@@ -0,0 +1,28 @@
// 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: G4VMeson.cc,v 2.0 1998/07/02 17:24:33 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
// 2nd December 1995, G.Cosmo
// --------------------------------------------------------------
#include "G4VMeson.hh"
const G4VMeson & G4VMeson::operator=(const G4VMeson &right)
{
if (this != &right) {
} return right;
}