Import Geant4 3.2.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:10:37 +02:00
parent 137e303ecc
commit 36c080dca6
3464 changed files with 119310 additions and 52696 deletions
@@ -1,21 +0,0 @@
$Id: History,v 1.1 1999/01/07 16:11:38 gunter Exp $
-------------------------------------------------------------------
=========================================================
Geant4 - an Object-Oriented Toolkit for Simulation in HEP
=========================================================
Hadronics/models/Generator History file
---------------------------------------
This file should be used by G4 developers to briefly summarize all major
modifications introduced in the code and keep track of all tags.
It DOES NOT substitute the CVS log-message one should put at every
committal in the CVS repository !
----------------------------------------------------------
* Reverse chronological order (last date on top), please *
----------------------------------------------------------
GF 12-May-98: Add more functions to G4Fancy3DNucleus:
doLorentzContraction with algorithm given by Nicolai
give access to all nucleons with a RWTPtrOrederedVector
Required a mod to G4Nucleon, ie. add operator ==
@@ -1,18 +0,0 @@
Known problems/ missing topics
date date who description
found fixed
5-Nov 98 GF String models need projectile momentum along +z;
G4VPartonStringModel should do this rotation.
Nov98 Above is wrong. for the excitation the
transformation to the correct frame is done.
5-Nov-98 GF G4VPartonStringModel must use momentum corrector
Do not forget Nucleus in this.
9-Dec98 Done. Nucleon momenta are included by correcting
to sum of strings; these were checked to conserve
E/p.
30-Oct GF dtor of G4VPartonStringModel should delete things;
Or should derived classes actually do this?
@@ -1,12 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4AlphaCoulombBarrier.hh,v 1.1 2000/06/09 11:36:49 larazb Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4AlphaCoulombBarrier.hh,v 1.2.2.1 2001/06/28 19:12:58 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
@@ -20,19 +36,19 @@
class G4AlphaCoulombBarrier : public G4CoulombBarrier
{
public:
G4AlphaCoulombBarrier() : G4CoulombBarrier(4,2) {};
~G4AlphaCoulombBarrier() {};
G4AlphaCoulombBarrier() : G4CoulombBarrier(4,2) {};
~G4AlphaCoulombBarrier() {};
private:
G4AlphaCoulombBarrier(const G4AlphaCoulombBarrier & right);
G4AlphaCoulombBarrier(const G4AlphaCoulombBarrier & right);
const G4AlphaCoulombBarrier & operator=(const G4AlphaCoulombBarrier & right);
G4bool operator==(const G4AlphaCoulombBarrier & right) const;
G4bool operator!=(const G4AlphaCoulombBarrier & right) const;
const G4AlphaCoulombBarrier & operator=(const G4AlphaCoulombBarrier & right);
G4bool operator==(const G4AlphaCoulombBarrier & right) const;
G4bool operator!=(const G4AlphaCoulombBarrier & right) const;
private:
virtual G4double BarrierPenetrationFactor(const G4double aZ) const;
virtual G4double BarrierPenetrationFactor(const G4double aZ) const;
};
@@ -1,9 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4AlphaEvaporationChannel.hh,v 1.2.2.1 2001/06/28 19:12:58 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov. 1999)
@@ -20,28 +39,28 @@
class G4AlphaEvaporationChannel : public G4EvaporationChannel
{
public:
// only available constructor
G4AlphaEvaporationChannel() : G4EvaporationChannel(4,2,
&theEvaporationProbability,&theCoulombBarrier) {};
// only available constructor
G4AlphaEvaporationChannel() : G4EvaporationChannel(4,2,"alpha",
&theEvaporationProbability,&theCoulombBarrier) {};
// destructor
~G4AlphaEvaporationChannel() {};
// destructor
~G4AlphaEvaporationChannel() {};
private:
const G4AlphaEvaporationChannel & operator=(const G4AlphaEvaporationChannel & right);
const G4AlphaEvaporationChannel & operator=(const G4AlphaEvaporationChannel & right);
G4AlphaEvaporationChannel(const G4AlphaEvaporationChannel & right);
G4AlphaEvaporationChannel(const G4AlphaEvaporationChannel & right);
public:
G4bool operator==(const G4AlphaEvaporationChannel & right) const;
G4bool operator!=(const G4AlphaEvaporationChannel & right) const;
G4bool operator==(const G4AlphaEvaporationChannel & right) const;
G4bool operator!=(const G4AlphaEvaporationChannel & right) const;
private:
G4AlphaCoulombBarrier theCoulombBarrier;
G4AlphaCoulombBarrier theCoulombBarrier;
G4AlphaEvaporationProbability theEvaporationProbability;
G4AlphaEvaporationProbability theEvaporationProbability;
};
#endif
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4AlphaEvaporationProbability.hh,v 1.2.2.1 2001/06/28 19:12:58 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1999)
//
@@ -22,34 +40,34 @@
class G4AlphaEvaporationProbability : public G4EvaporationProbability
{
public:
// Only available constructor is default constructor
G4AlphaEvaporationProbability();
// Only available constructor is default constructor
G4AlphaEvaporationProbability();
~G4AlphaEvaporationProbability() {}
~G4AlphaEvaporationProbability() {}
private:
// Copy constructor
G4AlphaEvaporationProbability(const G4AlphaEvaporationProbability &right);
// Copy constructor
G4AlphaEvaporationProbability(const G4AlphaEvaporationProbability &right);
const G4AlphaEvaporationProbability & operator=(const G4AlphaEvaporationProbability &right);
G4bool operator==(const G4AlphaEvaporationProbability &right) const;
G4bool operator!=(const G4AlphaEvaporationProbability &right) const;
const G4AlphaEvaporationProbability & operator=(const G4AlphaEvaporationProbability &right);
G4bool operator==(const G4AlphaEvaporationProbability &right) const;
G4bool operator!=(const G4AlphaEvaporationProbability &right) const;
private:
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ()));}
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ()));}
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return 0.0; }
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return 0.0; }
G4double CCoeficient(const G4double aZ) const;
G4double CCoeficient(const G4double aZ) const;
// Excitation energy levels
G4RWTValVector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4RWTValVector<G4int> ExcitSpins;
// Excitation energy levels
G4std::vector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4std::vector<G4int> ExcitSpins;
};
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4B9FermiFragment.hh,v 1.3.2.1 2001/06/28 19:12:58 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4Be8FermiFragment.hh,v 1.3.2.1 2001/06/28 19:12:58 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -1,3 +1,33 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4CameronGilbertPairingCorrections.hh,v 1.3.2.1 2001/06/28 19:12:58 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4CameronGilbertPairingCorrections_h
#define G4CameronGilbertPairingCorrections_h 1
@@ -6,41 +36,41 @@
class G4CameronGilbertPairingCorrections
{
private:
// Dummy constructor
G4CameronGilbertPairingCorrections(G4double dummy);
// Dummy constructor
G4CameronGilbertPairingCorrections(G4double dummy);
static G4CameronGilbertPairingCorrections theInstance;
static G4CameronGilbertPairingCorrections theInstance;
public:
~G4CameronGilbertPairingCorrections() {};
~G4CameronGilbertPairingCorrections() {};
G4double GetPairingZ(const G4int Z) {
if (Z <= ZTableSize && Z > 1) return PairingZTable[Z-1]*MeV;
else {
G4cerr << "G4CameronGilbertPairingCorrections: out of table for Z = " << Z << G4endl;
return 0.0;
}
G4double GetPairingZ(const G4int Z) {
if (Z <= ZTableSize && Z > 1) return PairingZTable[Z-1]*MeV;
else {
G4cerr << "G4CameronGilbertPairingCorrections: out of table for Z = " << Z << G4endl;
return 0.0;
}
}
G4double GetPairingN(const G4int N) {
if (N <= NTableSize && N > 0) return PairingNTable[N-1]*MeV;
else {
G4cerr << "G4CameronGilbertPairingCorrections: out of table for N = " << N << G4endl;
return 0.0;
}
G4double GetPairingN(const G4int N) {
if (N <= NTableSize && N > 0) return PairingNTable[N-1]*MeV;
else {
G4cerr << "G4CameronGilbertPairingCorrections: out of table for N = " << N << G4endl;
return 0.0;
}
}
enum { ZTableSize = 98, NTableSize = 150 };
enum { ZTableSize = 98, NTableSize = 150 };
private:
static G4double PairingZTable[ZTableSize];
static G4double PairingZTable[ZTableSize];
static G4double PairingNTable[NTableSize];
static G4double PairingNTable[NTableSize];
};
#endif
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4CameronGilbertShellCorrections.hh,v 1.3.2.1 2001/06/28 19:12:58 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4CameronGilbertShellCorrections_h
#define G4CameronGilbertShellCorrections_h 1
@@ -6,41 +35,41 @@
class G4CameronGilbertShellCorrections
{
private:
// Dummy constructor
G4CameronGilbertShellCorrections(G4double dummy);
// Dummy constructor
G4CameronGilbertShellCorrections(G4double dummy);
static G4CameronGilbertShellCorrections theInstance;
static G4CameronGilbertShellCorrections theInstance;
public:
~G4CameronGilbertShellCorrections() {};
~G4CameronGilbertShellCorrections() {};
G4double GetShellZ(const G4int Z) const {
if (Z <= ZTableSize && Z > 1) return ShellZTable[Z-1]*MeV;
else {
G4cerr << "G4CameronGilbertShellCorrections: out of table for Z = " << Z << G4endl;
return 0.0;
}
G4double GetShellZ(const G4int Z) const {
if (Z <= ZTableSize && Z > 1) return ShellZTable[Z-1]*MeV;
else {
G4cerr << "G4CameronGilbertShellCorrections: out of table for Z = " << Z << G4endl;
return 0.0;
}
}
G4double GetShellN(const G4int N) const {
if (N <= NTableSize && N > 0) return ShellNTable[N-1]*MeV;
else {
G4cerr << "G4CameronGilbertShellCorrections: out of table for N = " << N << G4endl;
return 0.0;
}
G4double GetShellN(const G4int N) const {
if (N <= NTableSize && N > 0) return ShellNTable[N-1]*MeV;
else {
G4cerr << "G4CameronGilbertShellCorrections: out of table for N = " << N << G4endl;
return 0.0;
}
}
enum { ZTableSize = 98, NTableSize = 150 };
enum { ZTableSize = 98, NTableSize = 150 };
private:
static const G4double ShellZTable[ZTableSize];
static const G4double ShellZTable[ZTableSize];
static const G4double ShellNTable[NTableSize];
static const G4double ShellNTable[NTableSize];
};
#endif
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4CameronShellPlusPairingCorrections.hh,v 1.3.2.1 2001/06/28 19:12:58 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4CameronShellPlusPairingCorrections_h
#define G4CameronShellPlusPairingCorrections_h 1
@@ -7,39 +36,39 @@ class G4CameronShellPlusPairingCorrections
{
private:
// Dummy constructor
G4CameronShellPlusPairingCorrections(G4double dummy);
// Dummy constructor
G4CameronShellPlusPairingCorrections(G4double dummy);
static G4CameronShellPlusPairingCorrections theInstance;
static G4CameronShellPlusPairingCorrections theInstance;
public:
~G4CameronShellPlusPairingCorrections() {};
~G4CameronShellPlusPairingCorrections() {};
static G4double GetShellPlusPairingZ(const G4int Z) {
if (Z <= TableSize && Z > 1) return SPZTable[Z-1]*MeV;
else {
G4cerr << "G4CameronShellPlusPairingCorrections: out of table for Z = " << Z << G4endl;
return 0.0;
}
static G4double GetShellPlusPairingZ(const G4int Z) {
if (Z <= TableSize && Z > 1) return SPZTable[Z-1]*MeV;
else {
G4cerr << "G4CameronShellPlusPairingCorrections: out of table for Z = " << Z << G4endl;
return 0.0;
}
}
static G4double GetShellPlusPairingN(const G4int N) {
if (N <= TableSize && N > 0) return SPNTable[N-1]*MeV;
else {
G4cerr << "G4CameronShellPlusPairingCorrections: out of table for N = " << N << G4endl;
return 0.0;
}
static G4double GetShellPlusPairingN(const G4int N) {
if (N <= TableSize && N > 0) return SPNTable[N-1]*MeV;
else {
G4cerr << "G4CameronShellPlusPairingCorrections: out of table for N = " << N << G4endl;
return 0.0;
}
}
enum { TableSize = 200 };
enum { TableSize = 200 };
private:
static G4double SPZTable[TableSize];
static G4double SPZTable[TableSize];
static G4double SPNTable[TableSize];
static G4double SPNTable[TableSize];
};
#endif
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4CameronTruranHilfPairingCorrections.hh,v 1.3.2.1 2001/06/28 19:12:58 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4CameronTruranHilfPairingCorrections_h
#define G4CameronTruranHilfPairingCorrections_h 1
@@ -6,41 +35,41 @@
class G4CameronTruranHilfPairingCorrections
{
private:
// Dummy constructor
G4CameronTruranHilfPairingCorrections(G4double dummy);
// Dummy constructor
G4CameronTruranHilfPairingCorrections(G4double dummy);
static G4CameronTruranHilfPairingCorrections theInstance;
static G4CameronTruranHilfPairingCorrections theInstance;
public:
~G4CameronTruranHilfPairingCorrections() {};
~G4CameronTruranHilfPairingCorrections() {};
G4double GetPairingZ(const G4int Z) const {
if (Z <= ZTableSize && Z > 1) return PairingZTable[Z-1]*MeV;
else {
G4cerr << "G4CameronTruranHilfPairingCorrections: out of table for Z = " << Z << G4endl;
return 0.0;
}
G4double GetPairingZ(const G4int Z) const {
if (Z <= ZTableSize && Z > 1) return PairingZTable[Z-1]*MeV;
else {
G4cerr << "G4CameronTruranHilfPairingCorrections: out of table for Z = " << Z << G4endl;
return 0.0;
}
}
G4double GetPairingN(const G4int N) const {
if (N <= NTableSize && N > 0) return PairingNTable[N-1]*MeV;
else {
G4cerr << "G4CameronTruranHilfPairingCorrections: out of table for N = " << N << G4endl;
return 0.0;
}
G4double GetPairingN(const G4int N) const {
if (N <= NTableSize && N > 0) return PairingNTable[N-1]*MeV;
else {
G4cerr << "G4CameronTruranHilfPairingCorrections: out of table for N = " << N << G4endl;
return 0.0;
}
}
enum { ZTableSize = 102, NTableSize = 155 };
enum { ZTableSize = 102, NTableSize = 155 };
private:
static const G4double PairingZTable[ZTableSize];
static const G4double PairingZTable[ZTableSize];
static const G4double PairingNTable[NTableSize];
static const G4double PairingNTable[NTableSize];
};
#endif
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4CameronTruranHilfShellCorrections.hh,v 1.3.2.1 2001/06/28 19:12:59 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4CameronTruranHilfShellCorrections_h
#define G4CameronTruranHilfShellCorrections_h 1
@@ -7,41 +36,41 @@ class G4CameronTruranHilfShellCorrections
{
private:
// Dummy constructor
G4CameronTruranHilfShellCorrections(G4double dummy);
// Dummy constructor
G4CameronTruranHilfShellCorrections(G4double dummy);
static G4CameronTruranHilfShellCorrections theInstance;
static G4CameronTruranHilfShellCorrections theInstance;
public:
~G4CameronTruranHilfShellCorrections() {};
~G4CameronTruranHilfShellCorrections() {};
static G4double GetShellZ(const G4int Z) {
if (Z <= ZTableSize && Z > 1) return ShellZTable[Z-1]*MeV;
else {
G4cerr << "G4CameronTruranHilfShellCorrections: out of table for Z = " << Z << G4endl;
return 0.0;
}
static G4double GetShellZ(const G4int Z) {
if (Z <= ZTableSize && Z > 1) return ShellZTable[Z-1]*MeV;
else {
G4cerr << "G4CameronTruranHilfShellCorrections: out of table for Z = " << Z << G4endl;
return 0.0;
}
}
static G4double GetShellN(const G4int N) {
if (N <= NTableSize && N > 0) return ShellNTable[N-1]*MeV;
else {
G4cerr << "G4CameronTruranHilfShellCorrections: out of table for N = " << N << G4endl;
return 0.0;
}
static G4double GetShellN(const G4int N) {
if (N <= NTableSize && N > 0) return ShellNTable[N-1]*MeV;
else {
G4cerr << "G4CameronTruranHilfShellCorrections: out of table for N = " << N << G4endl;
return 0.0;
}
}
enum { ZTableSize = 102, NTableSize = 155 };
enum { ZTableSize = 102, NTableSize = 155 };
private:
static G4double ShellZTable[ZTableSize];
static G4double ShellZTable[ZTableSize];
static G4double ShellNTable[NTableSize];
static G4double ShellNTable[NTableSize];
};
#endif
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4CompetitiveFission.hh,v 1.4.2.1 2001/06/28 19:12:59 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
@@ -25,6 +43,8 @@
#include "G4IonTable.hh"
#include "Randomize.hh"
//#define debug
class G4CompetitiveFission : public G4VEvaporationChannel
{
public:
@@ -46,26 +66,26 @@ public:
void Initialize(const G4Fragment & fragment);
inline void SetFissionBarrier(G4VFissionBarrier * aBarrier)
{
if (MyOwnFissionBarrier) delete theFissionBarrierPtr;
theFissionBarrierPtr = aBarrier;
MyOwnFissionBarrier = false;
}
{
if (MyOwnFissionBarrier) delete theFissionBarrierPtr;
theFissionBarrierPtr = aBarrier;
MyOwnFissionBarrier = false;
}
inline void SetEmissionStrategy(G4VEmissionProbability * aFissionProb)
{
if (MyOwnFissionProbability) delete theFissionProbabilityPtr;
theFissionProbabilityPtr = aFissionProb;
MyOwnFissionProbability = false;
}
{
if (MyOwnFissionProbability) delete theFissionProbabilityPtr;
theFissionProbabilityPtr = aFissionProb;
MyOwnFissionProbability = false;
}
inline void SetLevelDensityParameter(G4VLevelDensityParameter * aLevelDensity)
{
if (MyOwnLevelDensity) delete theLevelDensityPtr;
theLevelDensityPtr = aLevelDensity;
MyOwnLevelDensity = false;
}
{
if (MyOwnLevelDensity) delete theLevelDensityPtr;
theLevelDensityPtr = aLevelDensity;
MyOwnLevelDensity = false;
}
inline G4double GetFissionBarrier(void) const { return FissionBarrier; }
@@ -113,7 +133,6 @@ private:
// Sample Kinetic energy of fission products
G4double FissionKineticEnergy(const G4double A, const G4double Z,
const G4double Af1, const G4double Zf1,
const G4double Af2, const G4double Zf2,
@@ -128,14 +147,13 @@ private:
G4double FissionPairingCorrection(const G4int A, const G4int Z) const;
G4ThreeVector IsotropicVector(const G4double Magnitude = 1.0);
#ifdef debug
void CheckConservation(const G4Fragment & theInitialState,
G4FragmentVector * Result) const;
#endif
};
@@ -1,11 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4ConstantLevelDensityParameter.hh,v 1.3.2.1 2001/06/28 19:12:59 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations (photon evaporation)
// by C. Dallapiccola (Nov 1998)
//
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4ContinuumGammaDeexcitation
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4ContinuumGammaTransition
@@ -1,12 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4CoulombBarrier.hh,v 1.1 2000/06/09 11:36:52 larazb Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4CoulombBarrier.hh,v 1.2.2.1 2001/06/28 19:13:00 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
@@ -21,26 +37,26 @@
class G4CoulombBarrier : public G4VCoulombBarrier
{
public:
G4CoulombBarrier() : G4VCoulombBarrier(1,0) {};
G4CoulombBarrier(const G4int anA,const G4int aZ) :
G4VCoulombBarrier(anA,aZ) {};
~G4CoulombBarrier() {};
G4CoulombBarrier() : G4VCoulombBarrier(1,0) {};
G4CoulombBarrier(const G4int anA,const G4int aZ) :
G4VCoulombBarrier(anA,aZ) {};
~G4CoulombBarrier() {};
private:
G4CoulombBarrier(const G4CoulombBarrier & right);
G4CoulombBarrier(const G4CoulombBarrier & right);
const G4CoulombBarrier & operator=(const G4CoulombBarrier & right);
G4bool operator==(const G4CoulombBarrier & right) const;
G4bool operator!=(const G4CoulombBarrier & right) const;
const G4CoulombBarrier & operator=(const G4CoulombBarrier & right);
G4bool operator==(const G4CoulombBarrier & right) const;
G4bool operator!=(const G4CoulombBarrier & right) const;
public:
G4double GetCoulombBarrier(const G4int ARes, const G4int ZRes,
const G4double U) const;
G4double GetCoulombBarrier(const G4int ARes, const G4int ZRes,
const G4double U) const;
private:
virtual G4double BarrierPenetrationFactor(const G4double aZ) const {return 1.0;}
virtual G4double BarrierPenetrationFactor(const G4double aZ) const {return 1.0;}
};
@@ -1,12 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4DeuteronCoulombBarrier.hh,v 1.1 2000/06/09 11:36:52 larazb Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4DeuteronCoulombBarrier.hh,v 1.1.8.1 2001/06/28 19:13:00 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
@@ -1,9 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4DeuteronEvaporationChannel.hh,v 1.2.2.1 2001/06/28 19:13:00 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov. 1999)
@@ -20,27 +39,27 @@
class G4DeuteronEvaporationChannel : public G4EvaporationChannel
{
public:
// only available constructor
G4DeuteronEvaporationChannel() : G4EvaporationChannel(2,1,
&theEvaporationProbability,&theCoulombBarrier) {};
// only available constructor
G4DeuteronEvaporationChannel() : G4EvaporationChannel(2,1,"deuteron",
&theEvaporationProbability,&theCoulombBarrier) {};
// destructor
~G4DeuteronEvaporationChannel() {};
// destructor
~G4DeuteronEvaporationChannel() {};
private:
const G4DeuteronEvaporationChannel & operator=(const G4DeuteronEvaporationChannel & right);
const G4DeuteronEvaporationChannel & operator=(const G4DeuteronEvaporationChannel & right);
G4DeuteronEvaporationChannel(const G4DeuteronEvaporationChannel & right);
G4DeuteronEvaporationChannel(const G4DeuteronEvaporationChannel & right);
public:
G4bool operator==(const G4DeuteronEvaporationChannel & right) const;
G4bool operator!=(const G4DeuteronEvaporationChannel & right) const;
G4bool operator==(const G4DeuteronEvaporationChannel & right) const;
G4bool operator!=(const G4DeuteronEvaporationChannel & right) const;
private:
G4DeuteronCoulombBarrier theCoulombBarrier;
G4DeuteronCoulombBarrier theCoulombBarrier;
G4DeuteronEvaporationProbability theEvaporationProbability;
G4DeuteronEvaporationProbability theEvaporationProbability;
};
#endif
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4DeuteronEvaporationProbability.hh,v 1.2.2.1 2001/06/28 19:13:00 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1999)
//
@@ -22,34 +40,34 @@
class G4DeuteronEvaporationProbability : public G4EvaporationProbability
{
public:
// Only available constructor
G4DeuteronEvaporationProbability();
// Only available constructor
G4DeuteronEvaporationProbability();
~G4DeuteronEvaporationProbability() {}
~G4DeuteronEvaporationProbability() {}
private:
// Copy constructor
G4DeuteronEvaporationProbability(const G4DeuteronEvaporationProbability &right);
// Copy constructor
G4DeuteronEvaporationProbability(const G4DeuteronEvaporationProbability &right);
const G4DeuteronEvaporationProbability & operator=(const G4DeuteronEvaporationProbability &right);
G4bool operator==(const G4DeuteronEvaporationProbability &right) const;
G4bool operator!=(const G4DeuteronEvaporationProbability &right) const;
const G4DeuteronEvaporationProbability & operator=(const G4DeuteronEvaporationProbability &right);
G4bool operator==(const G4DeuteronEvaporationProbability &right) const;
G4bool operator!=(const G4DeuteronEvaporationProbability &right) const;
private:
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ()));}
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ()));}
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return 0.0; }
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return 0.0; }
G4double CCoeficient(const G4double aZ) const;
G4double CCoeficient(const G4double aZ) const;
// Excitation energy levels
G4RWTValVector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4RWTValVector<G4int> ExcitSpins;
// Excitation energy levels
G4std::vector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4std::vector<G4int> ExcitSpins;
};
#endif
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4DiscreteGammaDeexcitation
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4DiscreteGammaTransition
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4DummyProbability_hh
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4E1Probability_hh
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4E1Probability001_hh
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4E1Probability01_hh
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4E1Probability10_hh
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4E1Probability100_hh
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4E1SingleProbability001_hh
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4E1SingleProbability01_hh
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4E1SingleProbability1_hh
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4E1SingleProbability10_hh
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
//
#ifndef G4E1SingleProbability100_hh
@@ -1,19 +1,36 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4Evaporation.hh,v 1.5.2.1 2001/06/28 19:13:01 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4Evaporation_h
#define G4Evaporation_h 1
#include "globals.hh"
#include "g4rw/tvvector.h"
#include "g4rw/tpordvec.h"
#include "g4rw/tvordvec.h"
#include "G4ios.hh"
#include "G4VEvaporation.hh"
@@ -22,32 +39,39 @@
#include "G4NucleiProperties.hh"
#include "Randomize.hh"
//#define debug
class G4Evaporation : public G4VEvaporation
{
public:
G4Evaporation();
G4Evaporation(G4RWTPtrOrderedVector<G4VEvaporationChannel> * aChannelsVector) :
theChannels(aChannelsVector),
myOwnChannelsVector(false)
{};
G4Evaporation();
G4Evaporation(G4std::vector<G4VEvaporationChannel*> * aChannelsVector) :
theChannels(aChannelsVector),
myOwnChannelsVector(false)
{};
~G4Evaporation();
~G4Evaporation();
private:
G4Evaporation(const G4Evaporation &right);
G4Evaporation(const G4Evaporation &right);
const G4Evaporation & operator=(const G4Evaporation &right);
G4bool operator==(const G4Evaporation &right) const;
G4bool operator!=(const G4Evaporation &right) const;
const G4Evaporation & operator=(const G4Evaporation &right);
G4bool operator==(const G4Evaporation &right) const;
G4bool operator!=(const G4Evaporation &right) const;
public:
G4FragmentVector * BreakItUp(const G4Fragment &theNucleus);
G4FragmentVector * BreakItUp(const G4Fragment &theNucleus);
private:
G4bool myOwnChannelsVector;
G4RWTPtrOrderedVector<G4VEvaporationChannel> * theChannels;
#ifdef debug
void CheckConservation(const G4Fragment & theInitialState,
G4FragmentVector * Result) const;
#endif
G4bool myOwnChannelsVector;
G4std::vector<G4VEvaporationChannel*> * theChannels;
};
#endif
@@ -1,9 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4EvaporationChannel.hh,v 1.5.2.1 2001/06/28 19:13:01 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
@@ -28,21 +47,29 @@
class G4EvaporationChannel : public G4VEvaporationChannel
{
public:
// only available constructor
// Available constructors
G4EvaporationChannel(const G4int theA, const G4int theZ,
G4VEmissionProbability * aEmissionStrategy,
G4VCoulombBarrier * aCoulombBarrier);
G4VEmissionProbability * aEmissionStrategy,
G4VCoulombBarrier * aCoulombBarrier);
G4EvaporationChannel(const G4int theA, const G4int theZ, const G4String & aName,
G4VEmissionProbability * aEmissionStrategy,
G4VCoulombBarrier * aCoulombBarrier);
G4EvaporationChannel(const G4int theA, const G4int theZ, const G4String * aName,
G4VEmissionProbability * aEmissionStrategy,
G4VCoulombBarrier * aCoulombBarrier);
public:
// destructor
~G4EvaporationChannel();
void SetEmissionStrategy(G4VEmissionProbability * aEmissionStrategy)
{theEvaporationProbabilityPtr = aEmissionStrategy;}
void SetEmissionStrategy(G4VEmissionProbability * aEmissionStrategy)
{theEvaporationProbabilityPtr = aEmissionStrategy;}
void SetCoulombBarrierStrategy(G4VCoulombBarrier * aCoulombBarrier)
{theCoulombBarrierPtr = aCoulombBarrier;}
void SetCoulombBarrierStrategy(G4VCoulombBarrier * aCoulombBarrier)
{theCoulombBarrierPtr = aCoulombBarrier;}
protected:
// default constructor
G4EvaporationChannel() {};
@@ -72,26 +99,26 @@ public:
inline void SetLevelDensityParameter(G4VLevelDensityParameter * aLevelDensity)
{
if (MyOwnLevelDensity) delete theLevelDensityPtr;
theLevelDensityPtr = aLevelDensity;
MyOwnLevelDensity = false;
}
{
if (MyOwnLevelDensity) delete theLevelDensityPtr;
theLevelDensityPtr = aLevelDensity;
MyOwnLevelDensity = false;
}
public:
inline G4double GetEmissionProbability(void) const
{return EmissionProbability;}
{return EmissionProbability;}
inline G4double GetMaximalKineticEnergy(void) const
{ return MaximalKineticEnergy; }
{ return MaximalKineticEnergy; }
// ----------------------
private:
// Calculate Binding Energy for separate fragment from nucleus
G4double CalcBindingEnergy(const G4int anA, const G4int aZ);
@@ -104,9 +131,6 @@ private:
// This has to be removed and put in Random Generator
G4ThreeVector IsotropicVector(const G4double Magnitude = 1.0);
G4double PairingCorrection(const G4int A, const G4int Z) const;
// Data Members
// ************
private:
@@ -128,9 +152,9 @@ private:
G4bool MyOwnLevelDensity;
G4VLevelDensityParameter * theLevelDensityPtr;
// For Coulomb Barrier calculation
G4VCoulombBarrier * theCoulombBarrierPtr;
G4double CoulombBarrier;
// For Coulomb Barrier calculation
G4VCoulombBarrier * theCoulombBarrierPtr;
G4double CoulombBarrier;
//---------------------------------------------------
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4EvaporationLevelDensityParameter.hh,v 1.4.2.1 2001/06/28 19:13:01 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
//
@@ -23,34 +41,34 @@ class G4EvaporationLevelDensityParameter : public G4VLevelDensityParameter
{
public:
G4EvaporationLevelDensityParameter() {};
G4EvaporationLevelDensityParameter() {};
virtual ~G4EvaporationLevelDensityParameter() {};
virtual ~G4EvaporationLevelDensityParameter() {};
private:
G4EvaporationLevelDensityParameter(const G4EvaporationLevelDensityParameter &right);
G4EvaporationLevelDensityParameter(const G4EvaporationLevelDensityParameter &right);
const G4EvaporationLevelDensityParameter & operator=(const G4EvaporationLevelDensityParameter &right);
G4bool operator==(const G4EvaporationLevelDensityParameter &right) const;
G4bool operator!=(const G4EvaporationLevelDensityParameter &right) const;
const G4EvaporationLevelDensityParameter & operator=(const G4EvaporationLevelDensityParameter &right);
G4bool operator==(const G4EvaporationLevelDensityParameter &right) const;
G4bool operator!=(const G4EvaporationLevelDensityParameter &right) const;
public:
G4double LevelDensityParameter(const G4int A,const G4int Z,const G4double U) const;
G4double LevelDensityParameter(const G4int A,const G4int Z,const G4double U) const;
private:
G4double ShellCorrection(const G4int Z, const G4int N) const
{ return G4CameronTruranHilfShellCorrections::GetShellZ(Z) +
G4CameronTruranHilfShellCorrections::GetShellN(N);}
G4double ShellCorrection(const G4int Z, const G4int N) const
{ return G4CameronTruranHilfShellCorrections::GetShellZ(Z) +
G4CameronTruranHilfShellCorrections::GetShellN(N);}
private:
static const G4double ConstEvapLevelDensityParameter;
static const G4double alpha;
static const G4double beta;
static const G4double gamma;
static const G4double Bs;
static const G4double ConstEvapLevelDensityParameter;
static const G4double alpha;
static const G4double beta;
static const G4double gamma;
static const G4double Bs;
};
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4EvaporationProbability.hh,v 1.4.2.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
//
@@ -20,78 +38,76 @@
#include "G4VLevelDensityParameter.hh"
#include "G4EvaporationLevelDensityParameter.hh"
#include "g4rw/tvvector.h"
class G4EvaporationProbability : public G4VEmissionProbability
{
public:
// Only available constructor
G4EvaporationProbability(const G4int anA, const G4int aZ, const G4double aGamma) :
theA(anA),
theZ(aZ),
Gamma(aGamma)
{
theEvapLDPptr = new G4EvaporationLevelDensityParameter;
}
// Only available constructor
G4EvaporationProbability(const G4int anA, const G4int aZ, const G4double aGamma) :
theA(anA),
theZ(aZ),
Gamma(aGamma)
{
theEvapLDPptr = new G4EvaporationLevelDensityParameter;
}
~G4EvaporationProbability()
{
if (theEvapLDPptr != 0) delete theEvapLDPptr;
}
~G4EvaporationProbability()
{
if (theEvapLDPptr != 0) delete theEvapLDPptr;
}
G4double GetZ(void) const { return theZ; }
G4double GetZ(void) const { return theZ; }
G4double GetA(void) const { return theA;}
G4double GetA(void) const { return theA;}
protected:
void SetExcitationEnergiesPtr(G4RWTValVector<G4double> * anExcitationEnergiesPtr)
{ExcitationEnergies = anExcitationEnergiesPtr;}
void SetExcitationEnergiesPtr(G4std::vector<G4double> * anExcitationEnergiesPtr)
{ExcitationEnergies = anExcitationEnergiesPtr;}
void SetExcitationSpinsPtr(G4RWTValVector<G4int> * anExcitationSpinsPtr)
{ExcitationSpins = anExcitationSpinsPtr;}
void SetExcitationSpinsPtr(G4std::vector<G4int> * anExcitationSpinsPtr)
{ExcitationSpins = anExcitationSpinsPtr;}
// Default constructor
G4EvaporationProbability() {}
// Default constructor
G4EvaporationProbability() {}
private:
// Copy constructor
G4EvaporationProbability(const G4EvaporationProbability &right);
// Copy constructor
G4EvaporationProbability(const G4EvaporationProbability &right);
const G4EvaporationProbability & operator=(const G4EvaporationProbability &right);
G4bool operator==(const G4EvaporationProbability &right) const;
G4bool operator!=(const G4EvaporationProbability &right) const;
const G4EvaporationProbability & operator=(const G4EvaporationProbability &right);
G4bool operator==(const G4EvaporationProbability &right) const;
G4bool operator!=(const G4EvaporationProbability &right) const;
public:
G4double EmissionProbability(const G4Fragment & fragment, const G4double anEnergy);
G4double EmissionProbability(const G4Fragment & fragment, const G4double anEnergy);
private:
G4double CalcProbability(const G4Fragment & fragment, const G4double MaximalKineticEnergy);
G4double PairingCorrection(const G4int A, const G4int Z) const;
virtual G4double CCoeficient(const G4double aZ) const {return 0.0;};
G4double CalcProbability(const G4Fragment & fragment, const G4double MaximalKineticEnergy);
virtual G4double CCoeficient(const G4double aZ) const {return 0.0;};
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const {return 1.0;}
virtual G4double CalcBetaParam(const G4Fragment & fragment) const {return 1.0;}
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const {return 1.0;}
virtual G4double CalcBetaParam(const G4Fragment & fragment) const {return 1.0;}
// Data Members
// Data Members
G4VLevelDensityParameter * theEvapLDPptr;
G4VLevelDensityParameter * theEvapLDPptr;
G4int theA;
G4int theZ;
G4int theA;
G4int theZ;
// Gamma is A_f(2S_f+1) factor, where A_f is fragment atomic
// number and S_f is fragment spin
G4double Gamma;
// Gamma is A_f(2S_f+1) factor, where A_f is fragment atomic
// number and S_f is fragment spin
G4double Gamma;
// Discrete Excitation Energies
G4RWTValVector<G4double> * ExcitationEnergies;
// Discrete Excitation Energies
G4std::vector<G4double> * ExcitationEnergies;
//
G4RWTValVector<G4int> * ExcitationSpins;
//
G4std::vector<G4int> * ExcitationSpins;
};
@@ -1,12 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4ExcitationHandler.hh,v 1.4 1999/12/15 14:52:15 gunter Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4ExcitationHandler.hh,v 1.5.2.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (May 1998)
@@ -40,6 +56,8 @@
#include "G4PhotonEvaporation.hh"
#include "G4IonConstructor.hh"
//#define debug
class G4ExcitationHandler
{
@@ -86,7 +104,11 @@ private:
const G4int GetMaxA() const;
const G4double GetMinE() const;
#ifdef debug
void CheckConservation(const G4Fragment & aFragment,
G4FragmentVector * Result) const;
#endif
private:
G4VEvaporation *theEvaporation;
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4FermiBreakUp.hh,v 1.3.2.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4FermiConfiguration.hh,v 1.5.2.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -11,6 +30,8 @@
#ifndef G4FermiConfiguration_h
#define G4FermiConfiguration_h 1
#include <deque>
#include "globals.hh"
#include "Randomize.hh"
#include "G4VFermiFragment.hh"
@@ -24,11 +45,8 @@
#include "G4IonTable.hh"
#include "G4Fragment.hh"
#include "g4rw/tvvector.h"
#include "g4rw/tvordvec.h"
static const G4int NumberOfFragments = 100;
static const G4int NumberOfFragments = 100;
class G4FermiConfiguration
{
@@ -58,8 +76,7 @@ private:
G4double CoulombBarrier(void);
// G4RWTPtrOrderedVector<G4ParticleMomentum>* FragmentsMomentum(G4double KineticEnergy);
G4RWTPtrOrderedVector<G4LorentzVector>* FragmentsMomentum(G4double KineticEnergy);
G4std::deque<G4LorentzVector*>* FragmentsMomentum(G4double KineticEnergy);
G4double RNKSI(const G4int K);
@@ -69,8 +86,8 @@ private:
// Kappa = V/V_0 it is used in calculation of Coulomb energy
static const G4double Kappa;
// Nuclear radius r0 (is a model parameter)
static const G4double r0;
// Nuclear radius r0 (is a model parameter)
static const G4double r0;
@@ -191,7 +208,7 @@ private:
// G4VFermiFragment * theConfiguration[MaxConfigSize];
// G4int Index[MaxConfigSize];
G4RWTValOrderedVector<G4int> Index;
G4std::vector<G4int> Index;
};
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4FermiConfigurationList.hh,v 1.4.2.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -15,9 +34,6 @@
#include "G4FermiConfiguration.hh"
#include "Randomize.hh"
#include "g4rw/tvvector.h"
#include "g4rw/tvordvec.h"
class G4FermiConfigurationList
{
@@ -50,9 +66,9 @@ private:
G4double NumOfConfigurations[MaxNumOfFragments]; // NumberOfChannelsPerFragment[MaxNumOfFragments];
G4RWTValOrderedVector<G4double> NormalizedWeights;
G4std::vector<G4double> NormalizedWeights;
G4RWTValOrderedVector<G4FermiConfiguration> Configurations;
G4std::vector<G4FermiConfiguration> Configurations;
};
@@ -1,12 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4FissionBarrier.hh,v 1.3 2000/06/09 11:36:52 larazb Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4FissionBarrier.hh,v 1.3.8.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4FissionLevelDensityParameter.hh,v 1.4.2.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
//
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4FissionParameters.hh,v 1.4.2.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
//
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4FissionProbability.hh,v 1.4.2.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
//
@@ -40,11 +58,6 @@ public:
G4double EmissionProbability(const G4Fragment & fragment, const G4double MaximalKineticEnergy);
private:
G4double EvaporationPairingCorrection(const G4int A, const G4int Z) const;
G4double FissionPairingCorrection(const G4int A, const G4int Z) const;
G4EvaporationLevelDensityParameter theEvapLDP;
G4FissionLevelDensityParameter theFissLDP;
@@ -1,12 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4He3CoulombBarrier.hh,v 1.1 2000/06/09 11:36:53 larazb Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4He3CoulombBarrier.hh,v 1.1.8.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
@@ -1,9 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4He3EvaporationChannel.hh,v 1.2.2.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov. 1999)
@@ -20,27 +39,27 @@
class G4He3EvaporationChannel : public G4EvaporationChannel
{
public:
// only available constructor
G4He3EvaporationChannel() : G4EvaporationChannel(3,2,
&theEvaporationProbability,&theCoulombBarrier) {};
// only available constructor
G4He3EvaporationChannel() : G4EvaporationChannel(3,2,"He3",
&theEvaporationProbability,&theCoulombBarrier) {};
// destructor
~G4He3EvaporationChannel() {};
// destructor
~G4He3EvaporationChannel() {};
private:
const G4He3EvaporationChannel & operator=(const G4He3EvaporationChannel & right);
const G4He3EvaporationChannel & operator=(const G4He3EvaporationChannel & right);
G4He3EvaporationChannel(const G4He3EvaporationChannel & right);
G4He3EvaporationChannel(const G4He3EvaporationChannel & right);
public:
G4bool operator==(const G4He3EvaporationChannel & right) const;
G4bool operator!=(const G4He3EvaporationChannel & right) const;
G4bool operator==(const G4He3EvaporationChannel & right) const;
G4bool operator!=(const G4He3EvaporationChannel & right) const;
private:
G4He3CoulombBarrier theCoulombBarrier;
G4He3CoulombBarrier theCoulombBarrier;
G4He3EvaporationProbability theEvaporationProbability;
G4He3EvaporationProbability theEvaporationProbability;
};
#endif
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4He3EvaporationProbability.hh,v 1.2.2.1 2001/06/28 19:13:02 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1999)
//
@@ -22,34 +40,34 @@
class G4He3EvaporationProbability : public G4EvaporationProbability
{
public:
// Only available constructor
G4He3EvaporationProbability();
// Only available constructor
G4He3EvaporationProbability();
~G4He3EvaporationProbability() {}
~G4He3EvaporationProbability() {}
private:
// Copy constructor
G4He3EvaporationProbability(const G4He3EvaporationProbability &right);
// Copy constructor
G4He3EvaporationProbability(const G4He3EvaporationProbability &right);
const G4He3EvaporationProbability & operator=(const G4He3EvaporationProbability &right);
G4bool operator==(const G4He3EvaporationProbability &right) const;
G4bool operator!=(const G4He3EvaporationProbability &right) const;
const G4He3EvaporationProbability & operator=(const G4He3EvaporationProbability &right);
G4bool operator==(const G4He3EvaporationProbability &right) const;
G4bool operator!=(const G4He3EvaporationProbability &right) const;
private:
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ()));}
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ()));}
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return 0.0; }
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return 0.0; }
G4double CCoeficient(const G4double aZ) const;
G4double CCoeficient(const G4double aZ) const;
// Excitation energy levels
G4RWTValVector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4RWTValVector<G4int> ExcitSpins;
// Excitation energy levels
G4std::vector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4std::vector<G4int> ExcitSpins;
};
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4He5FermiFragment.hh,v 1.3.2.1 2001/06/28 19:13:03 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4Li5FermiFragment.hh,v 1.3.2.1 2001/06/28 19:13:03 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -1,12 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4NeutronCoulombBarrier.hh,v 1.1 2000/06/09 11:36:53 larazb Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4NeutronCoulombBarrier.hh,v 1.1.8.1 2001/06/28 19:13:03 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
@@ -1,9 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4NeutronEvaporationChannel.hh,v 1.2.2.1 2001/06/28 19:13:03 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov. 1999)
@@ -20,27 +39,27 @@
class G4NeutronEvaporationChannel : public G4EvaporationChannel
{
public:
// only available constructor
G4NeutronEvaporationChannel() : G4EvaporationChannel(1,0,
&theEvaporationProbability,&theCoulombBarrier) {};
// only available constructor
G4NeutronEvaporationChannel() : G4EvaporationChannel(1,0,"neutron",
&theEvaporationProbability,&theCoulombBarrier) {};
// destructor
~G4NeutronEvaporationChannel() {};
// destructor
~G4NeutronEvaporationChannel() {};
private:
const G4NeutronEvaporationChannel & operator=(const G4NeutronEvaporationChannel & right);
const G4NeutronEvaporationChannel & operator=(const G4NeutronEvaporationChannel & right);
G4NeutronEvaporationChannel(const G4NeutronEvaporationChannel & right);
G4NeutronEvaporationChannel(const G4NeutronEvaporationChannel & right);
public:
G4bool operator==(const G4NeutronEvaporationChannel & right) const;
G4bool operator!=(const G4NeutronEvaporationChannel & right) const;
G4bool operator==(const G4NeutronEvaporationChannel & right) const;
G4bool operator!=(const G4NeutronEvaporationChannel & right) const;
private:
G4NeutronCoulombBarrier theCoulombBarrier;
G4NeutronCoulombBarrier theCoulombBarrier;
G4NeutronEvaporationProbability theEvaporationProbability;
G4NeutronEvaporationProbability theEvaporationProbability;
};
#endif
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4NeutronEvaporationProbability.hh,v 1.2.2.1 2001/06/28 19:13:03 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1999)
//
@@ -22,31 +40,31 @@
class G4NeutronEvaporationProbability : public G4EvaporationProbability
{
public:
// Only available constructor
G4NeutronEvaporationProbability();
// Only available constructor
G4NeutronEvaporationProbability();
~G4NeutronEvaporationProbability() {}
~G4NeutronEvaporationProbability() {}
private:
// Copy constructor
G4NeutronEvaporationProbability(const G4NeutronEvaporationProbability &right);
// Copy constructor
G4NeutronEvaporationProbability(const G4NeutronEvaporationProbability &right);
const G4NeutronEvaporationProbability & operator=(const G4NeutronEvaporationProbability &right);
G4bool operator==(const G4NeutronEvaporationProbability &right) const;
G4bool operator!=(const G4NeutronEvaporationProbability &right) const;
const G4NeutronEvaporationProbability & operator=(const G4NeutronEvaporationProbability &right);
G4bool operator==(const G4NeutronEvaporationProbability &right) const;
G4bool operator!=(const G4NeutronEvaporationProbability &right) const;
private:
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 0.76+2.2/pow(G4double(fragment.GetA()-GetA()),1.0/3.0);}
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 0.76+2.2/pow(G4double(fragment.GetA()-GetA()),1.0/3.0);}
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return (2.12/pow(G4double(fragment.GetA()-GetA()),2.0/3.0) - 0.05)*MeV/CalcAlphaParam(fragment); }
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return (2.12/pow(G4double(fragment.GetA()-GetA()),2.0/3.0) - 0.05)*MeV/CalcAlphaParam(fragment); }
// Excitation energy levels
G4RWTValVector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4RWTValVector<G4int> ExcitSpins;
// Excitation energy levels
G4std::vector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4std::vector<G4int> ExcitSpins;
};
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4NuclearLevel
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4NuclearLevelManager
@@ -0,0 +1,69 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4PairingCorrection.hh,v 1.1.2.1 2001/06/28 19:13:03 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4PairingCorrection_h
#define G4PairingCorrection_h 1
#include "globals.hh"
class G4PairingCorrection
{
private:
// Dummy constructor
G4PairingCorrection(G4double dummy);
static G4PairingCorrection theInstance;
public:
~G4PairingCorrection() {};
static G4double GetPairingCorrection(const G4int anA, const G4int aZ)
{
const G4double PairingConstant = 12.0*MeV;
const G4int N = anA - aZ;
G4double Pair = (1.0 - G4double(aZ) + 2.0*(aZ/2)) + (1.0 - G4double(N) + 2.0*(N/2));
G4double PCorrection = Pair*PairingConstant/sqrt(G4double(anA));
return PCorrection;
}
static G4double GetFissionPairingCorrection(const G4int A, const G4int Z)
{
const G4double PairingConstant = 14.0*MeV;
const G4int N = A - Z;
G4double Pair = (1.0 - G4double(Z) + 2.0*(Z/2)) + (1.0 - G4double(N) + 2.0*(N/2));
G4double PCorrection = Pair*PairingConstant/sqrt(G4double(A));
return PCorrection;
}
};
#endif
@@ -1,3 +1,25 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
#ifndef G4ParaFissionModel_h
#define G4ParaFissionModel_h
@@ -54,9 +76,9 @@ public:
anInitialState.SetA(anA);
anInitialState.SetZ(aZ);
anInitialState.SetNumberOfParticles(numberOfEx-numberOfHoles);
anInitialState.SetNumberOfCharged(numberOfCh);
anInitialState.SetNumberOfHoles(numberOfHoles);
anInitialState.SetNumberOfExcitons(numberOfEx);
anInitialState.SetMomentum(fragment4Momentum);
// do the fission
@@ -64,15 +86,15 @@ public:
// deexcite the fission fragments and fill result
vector<G4DynamicParticle *> theResult;
G4int ll = theFissionResult->length();
G4int ll = theFissionResult->size();
for(G4int i=0; i<ll; i++)
{
G4ReactionProductVector * theExcitationResult = 0;
if(theFissionResult->at(i)->GetExcitationEnergy()>1.*eV)
if((*theFissionResult)[i]->GetExcitationEnergy()>1.*eV)
{
G4Fragment * aFragment = theFissionResult->at(i);
G4Fragment * aFragment = (*theFissionResult)[i];
G4double exenergy = aFragment->GetExcitationEnergy();
theExcitationResult = theHandler.BreakItUp(*(theFissionResult->at(i)));
theExcitationResult = theHandler.BreakItUp(*(*theFissionResult)[i]);
// add secondaries
for(G4int j=0; j<theExcitationResult->length(); j++)
{
@@ -86,8 +108,8 @@ public:
{
// add secondary
G4DynamicParticle* p0 = new G4DynamicParticle;
p0->SetDefinition(theFissionResult->at(i)->GetParticleDefinition());
p0->SetMomentum(theFissionResult->at(i)->GetMomentum().vect());
p0->SetDefinition((*theFissionResult)[i]->GetParticleDefinition());
p0->SetMomentum((*theFissionResult)[i]->GetMomentum().vect());
theResult.push_back(p0);
}
}
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4PhotonEvaporation
@@ -31,6 +45,8 @@
#include "G4VEmissionProbability.hh"
#include "G4VGammaDeexcitation.hh"
//#define debug
class G4Fragment;
class G4PhotonEvaporation : public G4VPhotonEvaporation, public G4VEvaporationChannel
@@ -73,6 +89,13 @@ private:
G4bool operator==(const G4PhotonEvaporation &right) const;
G4bool operator!=(const G4PhotonEvaporation &right) const;
#ifdef debug
void CheckConservation(const G4Fragment & theInitialState,
G4FragmentVector * Result) const;
#endif
};
#endif
@@ -1,12 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4ProtonCoulombBarrier.hh,v 1.1 2000/06/09 11:36:53 larazb Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4ProtonCoulombBarrier.hh,v 1.1.8.1 2001/06/28 19:13:03 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
@@ -1,9 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4ProtonEvaporationChannel.hh,v 1.2.2.1 2001/06/28 19:13:04 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov. 1999)
@@ -20,27 +39,27 @@
class G4ProtonEvaporationChannel : public G4EvaporationChannel
{
public:
// only available constructor
G4ProtonEvaporationChannel() : G4EvaporationChannel(1,1,
&theEvaporationProbability,&theCoulombBarrier) {};
// only available constructor
G4ProtonEvaporationChannel() : G4EvaporationChannel(1,1,"proton",
&theEvaporationProbability,&theCoulombBarrier) {};
// destructor
~G4ProtonEvaporationChannel() {};
// destructor
~G4ProtonEvaporationChannel() {};
private:
const G4ProtonEvaporationChannel & operator=(const G4ProtonEvaporationChannel & right);
const G4ProtonEvaporationChannel & operator=(const G4ProtonEvaporationChannel & right);
G4ProtonEvaporationChannel(const G4ProtonEvaporationChannel & right);
G4ProtonEvaporationChannel(const G4ProtonEvaporationChannel & right);
public:
G4bool operator==(const G4ProtonEvaporationChannel & right) const;
G4bool operator!=(const G4ProtonEvaporationChannel & right) const;
G4bool operator==(const G4ProtonEvaporationChannel & right) const;
G4bool operator!=(const G4ProtonEvaporationChannel & right) const;
private:
G4ProtonEvaporationProbability theEvaporationProbability;
G4ProtonEvaporationProbability theEvaporationProbability;
G4ProtonCoulombBarrier theCoulombBarrier;
G4ProtonCoulombBarrier theCoulombBarrier;
};
#endif
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4ProtonEvaporationProbability.hh,v 1.2.2.1 2001/06/28 19:13:04 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1999)
//
@@ -22,34 +40,34 @@
class G4ProtonEvaporationProbability : public G4EvaporationProbability
{
public:
// Only available constructor
G4ProtonEvaporationProbability();
// Only available constructor
G4ProtonEvaporationProbability();
~G4ProtonEvaporationProbability() {}
~G4ProtonEvaporationProbability() {}
private:
// Copy constructor
G4ProtonEvaporationProbability(const G4ProtonEvaporationProbability &right);
// Copy constructor
G4ProtonEvaporationProbability(const G4ProtonEvaporationProbability &right);
const G4ProtonEvaporationProbability & operator=(const G4ProtonEvaporationProbability &right);
G4bool operator==(const G4ProtonEvaporationProbability &right) const;
G4bool operator!=(const G4ProtonEvaporationProbability &right) const;
const G4ProtonEvaporationProbability & operator=(const G4ProtonEvaporationProbability &right);
G4bool operator==(const G4ProtonEvaporationProbability &right) const;
G4bool operator!=(const G4ProtonEvaporationProbability &right) const;
private:
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ()));}
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ()));}
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return 0.0; }
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return 0.0; }
G4double CCoeficient(const G4double aZ) const;
G4double CCoeficient(const G4double aZ) const;
// Excitation energy levels
G4RWTValVector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4RWTValVector<G4int> ExcitSpins;
// Excitation energy levels
G4std::vector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4std::vector<G4int> ExcitSpins;
};
#endif
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4PtrLevelVector
@@ -1,4 +1,26 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -----------------------------------------------------------------------
// HEP Random
// --- G4RandGeneralTmp ---
@@ -1,3 +1,25 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
// -----------------------------------------------------------------------
// HEP Random
// --- RandGeneralTmp ---
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4Solver.hh,v 1.3.2.1 2001/06/28 19:13:04 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4Solver_h
#define G4Solver_h 1
@@ -8,67 +37,67 @@
template <class Function> class G4Solver
{
public:
enum {DefaultMaxIter = 100};
enum {DefaultMaxIter = 100};
// default constructor
G4Solver() : MaxIter(DefaultMaxIter), tolerance(DefaultTolerance),
a(0.0), b(0.0), root(0.0) {};
// default constructor
G4Solver() : MaxIter(DefaultMaxIter), tolerance(DefaultTolerance),
a(0.0), b(0.0), root(0.0) {};
G4Solver(const G4int iterations, const G4double tol) :
G4Solver(const G4int iterations, const G4double tol) :
MaxIter(iterations), tolerance(tol),
a(0.0), b(0.0), root(0.0) {};
// copy constructor
G4Solver(const G4Solver & right);
// copy constructor
G4Solver(const G4Solver & right);
// destructor
~G4Solver() {};
// destructor
~G4Solver() {};
// operators
G4Solver & operator=(const G4Solver & right);
G4bool operator==(const G4Solver & right) const;
G4bool operator!=(const G4Solver & right) const;
// operators
G4Solver & operator=(const G4Solver & right);
G4bool operator==(const G4Solver & right) const;
G4bool operator!=(const G4Solver & right) const;
G4int GetMaxIterations(void) const {return MaxIter;}
void SetMaxIterations(const G4int iterations) {MaxIter=iterations;}
G4int GetMaxIterations(void) const {return MaxIter;}
void SetMaxIterations(const G4int iterations) {MaxIter=iterations;}
G4double GetTolerance(void) const {return tolerance;}
void SetTolerance(const G4double epsilon) {tolerance = epsilon;}
G4double GetTolerance(void) const {return tolerance;}
void SetTolerance(const G4double epsilon) {tolerance = epsilon;}
G4double GetIntervalLowerLimit(void) const {return a;}
G4double GetIntervalUpperLimit(void) const {return b;}
G4double GetIntervalLowerLimit(void) const {return a;}
G4double GetIntervalUpperLimit(void) const {return b;}
void SetIntervalLimits(const G4double Limit1, const G4double Limit2);
void SetIntervalLimits(const G4double Limit1, const G4double Limit2);
G4double GetRoot(void) const {return root;}
G4double GetRoot(void) const {return root;}
// Calculates the root by the Bisection method
// Calculates the root by the Bisection method
// template <class Function> G4bool Bisection(const Function & theFunction);
G4bool Bisection(Function & theFunction);
G4bool Bisection(Function & theFunction);
// Calculates the root by the Regula-Falsi method
// Calculates the root by the Regula-Falsi method
// template <class Function> G4bool RegulaFalsi(const Function & theFunction);
G4bool RegulaFalsi(Function & theFunction);
G4bool RegulaFalsi(Function & theFunction);
// Calculates the root by the Brent's method
G4bool Brent(Function & theFunction);
// Calculates the root by the Brent's method
G4bool Brent(Function & theFunction);
private:
// Maximum number of iterations
G4int MaxIter;
// Maximum number of iterations
G4int MaxIter;
//
G4double tolerance;
//
G4double tolerance;
// interval limits [a,b] which should bracket the root
G4double a;
G4double b;
// interval limits [a,b] which should bracket the root
G4double a;
G4double b;
// The root
G4double root;
// The root
G4double root;
};
@@ -1,3 +1,25 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
template <class Function>
G4bool G4Solver<Function>::Bisection(Function & theFunction)
{
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StableFermiFragment.hh,v 1.3.2.1 2001/06/28 19:13:04 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -1,8 +1,36 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMF.hh,v 1.4.2.1 2001/06/28 19:13:04 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMF_h
#define G4StatMF_h 1
#include "g4rw/tvordvec.h"
#include "globals.hh"
#include "G4VMultiFragmentation.hh"
#include "G4VStatMFEnsemble.hh"
@@ -19,45 +47,57 @@
class G4StatMF : public G4VMultiFragmentation
{
public:
// Default constructor
G4StatMF();
// Destructor
~G4StatMF();
// Default constructor
G4StatMF();
// Destructor
~G4StatMF();
private:
// Copy constructor
G4StatMF(const G4StatMF & right);
// Copy constructor
G4StatMF(const G4StatMF & right);
// Operators
G4StatMF & operator=(const G4StatMF & right);
G4bool operator==(const G4StatMF & right);
G4bool operator!=(const G4StatMF & right);
// Operators
G4StatMF & operator=(const G4StatMF & right);
G4bool operator==(const G4StatMF & right);
G4bool operator!=(const G4StatMF & right);
public:
G4FragmentVector *BreakItUp(const G4Fragment &theNucleus);
G4FragmentVector * BreakItUp(const G4Fragment &theNucleus);
private:
// This finds temperature of breaking channel.
G4bool FindTemperatureOfBreakingChannel(const G4Fragment & theFragment,
const G4StatMFChannel * aChannel,G4double & Temperature);
// This finds temperature of breaking channel.
G4bool FindTemperatureOfBreakingChannel(const G4Fragment & theFragment,
const G4StatMFChannel * aChannel,G4double & Temperature);
//
G4double CalcEnergy(const G4double A, const G4double Z,
const G4StatMFChannel * aChannel,
const G4double T);
//
G4double CalcEnergy(const G4double A, const G4double Z,
const G4StatMFChannel * aChannel,
const G4double T);
private:
G4VStatMFEnsemble * _theEnsemble;
G4VStatMFEnsemble * _theEnsemble;
};
#endif
@@ -1,6 +1,37 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFChannel.hh,v 1.4.2.1 2001/06/28 19:13:05 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFChannel_h
#define G4StatMFChannel_h 1
#include <deque>
#include "G4StatMFParameters.hh"
#include "G4StatMFFragment.hh"
@@ -8,85 +39,96 @@
class G4StatMFChannel {
public:
// Default Constructor
G4StatMFChannel() :
// Default Constructor
G4StatMFChannel() :
_NumOfNeutralFragments(0),
_NumOfChargedFragments(0)
{}
// Destructor
~G4StatMFChannel() { _theFragments.clearAndDestroy(); }
// Destructor
~G4StatMFChannel() {
while (!_theFragments.empty()) {
delete _theFragments.back();
_theFragments.pop_back();
}
}
private:
// Copy constructor
G4StatMFChannel(const G4StatMFChannel & right);
// Copy constructor
G4StatMFChannel(const G4StatMFChannel & right);
// operators
G4StatMFChannel & operator=(const G4StatMFChannel & right);
// operators
G4StatMFChannel & operator=(const G4StatMFChannel & right);
public:
G4bool operator==(const G4StatMFChannel & right) const;
G4bool operator!=(const G4StatMFChannel & right) const;
G4bool operator==(const G4StatMFChannel & right) const;
G4bool operator!=(const G4StatMFChannel & right) const;
public:
void CreateFragment(const G4double A, const G4double Z);
void CreateFragment(const G4double A, const G4double Z);
// {
// _theFragments.insert(new G4StatMFFragment(A,Z));
// }
G4int GetMultiplicity(void) { return _theFragments.entries();}
G4int GetMultiplicity(void) { return _theFragments.size();}
// Return false if there is some unphysical fragment
G4bool CheckFragments(void);
// Return false if there is some unphysical fragment
G4bool CheckFragments(void);
G4double GetFragmentsCoulombEnergy(void);
G4double GetFragmentsCoulombEnergy(void);
G4double GetFragmentsEnergy(const G4double T) const;
G4double GetFragmentsEnergy(const G4double T) const;
G4FragmentVector * GetFragments(const G4double anA, const G4double anZ, const G4double T);
G4FragmentVector * GetFragments(const G4double anA, const G4double anZ, const G4double T);
private:
// This method calculates asymptotic fragments momenta.
void CoulombImpulse(const G4double anA, const G4double anZ, const G4double T);
// This method calculates asymptotic fragments momenta.
void CoulombImpulse(const G4double anA, const G4double anZ, const G4double T);
void PlaceFragments(const G4double anA);
void PlaceFragments(const G4double anA);
void SolveEqOfMotion(const G4double anA, const G4double anZ, const G4double T);
void SolveEqOfMotion(const G4double anA, const G4double anZ, const G4double T);
// Calculates fragments momentum components at the breakup instant.
// Fragment kinetic energies will be calculated according to the
// Boltzamann distribution at given temperature.
void FragmentsMomenta(const G4int NF, const G4int idx, const G4double T);
// Calculates fragments momentum components at the breakup instant.
// Fragment kinetic energies will be calculated according to the
// Boltzamann distribution at given temperature.
void FragmentsMomenta(const G4int NF, const G4int idx, const G4double T);
// Samples a isotropic random vectorwith a magnitud given by Magnitude.
// By default Magnitude = 1
G4ThreeVector IsotropicVector(const G4double Magnitude = 1.0);
// Samples a isotropic random vectorwith a magnitud given by Magnitude.
// By default Magnitude = 1
G4ThreeVector IsotropicVector(const G4double Magnitude = 1.0);
// Rotates a 3-vector P to close momentum triangle Pa + V + P = 0
G4ThreeVector RotateMomentum(G4ThreeVector Pa, G4ThreeVector V,
G4ThreeVector P);
// Rotates a 3-vector P to close momentum triangle Pa + V + P = 0
G4ThreeVector RotateMomentum(G4ThreeVector Pa, G4ThreeVector V,
G4ThreeVector P);
private:
G4RWTPtrOrderedVector<G4StatMFFragment> _theFragments;
G4std::deque<G4StatMFFragment*> _theFragments;
G4int _NumOfNeutralFragments;
G4int _NumOfNeutralFragments;
G4int _NumOfChargedFragments;
G4int _NumOfChargedFragments;
};
#endif
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFFragment.hh,v 1.4.2.1 2001/06/28 19:13:05 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFFragment_h
#define G4StatMFFragment_h 1
@@ -8,70 +37,71 @@
class G4StatMFFragment {
public:
// Constructor
G4StatMFFragment(const G4int anA, const G4int aZ) :
// Constructor
G4StatMFFragment(const G4int anA, const G4int aZ) :
theA(anA),theZ(aZ),
_position(0.0,0.0,0.0),
_momentum(0.0,0.0,0.0)
{}
// Destructor
virtual ~G4StatMFFragment() {};
// Destructor
virtual ~G4StatMFFragment() {};
private:
// Default constructor
G4StatMFFragment(){};
// Default constructor
G4StatMFFragment(){};
// Copy constructor
G4StatMFFragment(const G4StatMFFragment & right);
// Copy constructor
G4StatMFFragment(const G4StatMFFragment & right);
// operators
G4StatMFFragment & operator=(const G4StatMFFragment & right);
// operators
G4StatMFFragment & operator=(const G4StatMFFragment & right);
public:
G4bool operator==(const G4StatMFFragment & right) const;
G4bool operator!=(const G4StatMFFragment & right) const;
G4bool operator==(const G4StatMFFragment & right) const;
G4bool operator!=(const G4StatMFFragment & right) const;
public:
G4double GetCoulombEnergy(void);
G4double GetCoulombEnergy(void);
G4double GetEnergy(const G4double T);
G4double GetEnergy(const G4double T);
G4double GetInvLevelDensity(void);
G4double GetInvLevelDensity(void);
G4double GetA(void) const {return theA;}
G4double GetA(void) const {return theA;}
G4double GetZ(void) const {return theZ;}
G4double GetZ(void) const {return theZ;}
void SetPosition(const G4ThreeVector aPosition) {_position = aPosition;}
void SetPosition(const G4ThreeVector aPosition) {_position = aPosition;}
G4ThreeVector GetPosition(void) {return _position;}
G4ThreeVector GetPosition(void) {return _position;}
void SetMomentum(const G4ThreeVector aMomentum) {_momentum = aMomentum;}
void SetMomentum(const G4ThreeVector aMomentum) {_momentum = aMomentum;}
G4ThreeVector GetMomentum(void) {return _momentum;}
G4ThreeVector GetMomentum(void) {return _momentum;}
G4Fragment * GetFragment(const G4double T);
G4Fragment * GetFragment(const G4double T);
G4double GetNuclearMass(void)
G4double GetNuclearMass(void)
{return G4ParticleTable::GetParticleTable()->GetIonTable()->GetIonMass(theZ,theA);}
private:
G4double CalcExcitationEnergy(const G4double T);
G4double CalcExcitationEnergy(const G4double T);
private:
G4double theA;
G4double theA;
G4double theZ;
G4double theZ;
G4ThreeVector _position;
G4ThreeVector _position;
G4ThreeVector _momentum;
G4ThreeVector _momentum;
};
#endif
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMacroBiNucleon.hh,v 1.4.2.1 2001/06/28 19:13:05 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMacroBiBiNucleon_h
#define G4StatMFMacroBiNucleon_h 1
@@ -8,35 +37,35 @@ class G4StatMFMacroBiNucleon : public G4VStatMFMacroCluster {
public:
// Default constructor
G4StatMFMacroBiNucleon() : G4VStatMFMacroCluster(2) {};
// Default constructor
G4StatMFMacroBiNucleon() : G4VStatMFMacroCluster(2) {};
// Destructor
~G4StatMFMacroBiNucleon() {};
// Destructor
~G4StatMFMacroBiNucleon() {};
private:
// Copy constructor
G4StatMFMacroBiNucleon(const G4StatMFMacroBiNucleon & right);
// Copy constructor
G4StatMFMacroBiNucleon(const G4StatMFMacroBiNucleon & right);
// operators
G4StatMFMacroBiNucleon & operator=(const G4StatMFMacroBiNucleon & right);
G4bool operator==(const G4StatMFMacroBiNucleon & right) const;
G4bool operator!=(const G4StatMFMacroBiNucleon & right) const;
// operators
G4StatMFMacroBiNucleon & operator=(const G4StatMFMacroBiNucleon & right);
G4bool operator==(const G4StatMFMacroBiNucleon & right) const;
G4bool operator!=(const G4StatMFMacroBiNucleon & right) const;
public:
G4double CalcMeanMultiplicity(const G4double FreeVol, const G4double mu,
const G4double nu, const G4double T);
G4double CalcMeanMultiplicity(const G4double FreeVol, const G4double mu,
const G4double nu, const G4double T);
G4double CalcZARatio(const G4double nu) {return theZARatio = 0.5;}
G4double CalcZARatio(const G4double nu) {return theZARatio = 0.5;}
G4double CalcEnergy(const G4double T);
G4double CalcEnergy(const G4double T);
G4double CalcEntropy(const G4double T, const G4double FreeVol);
G4double CalcEntropy(const G4double T, const G4double FreeVol);
};
#endif
@@ -1,7 +1,36 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMacroChemicalPotential.hh,v 1.4.2.1 2001/06/28 19:13:05 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMacroChemicalPotential_h
#define G4StatMFMacroChemicalPotential_h 1
#include "g4rw/tpordvec.h"
#include <vector>
#include "G4StatMFParameters.hh"
#include "G4VStatMFMacroCluster.hh"
@@ -14,71 +43,71 @@ class G4StatMFMacroChemicalPotential {
public:
G4StatMFMacroChemicalPotential(const G4double anA, const G4double aZ,
const G4double kappa,
const G4double temp,
G4RWTPtrOrderedVector<G4VStatMFMacroCluster> * ClusterVector) :
theA(anA),
theZ(aZ),
_Kappa(kappa),
_MeanMultiplicity(0.0),
_MeanTemperature(temp),
_ChemPotentialMu(0.0),
_ChemPotentialNu(0.0),
_theClusters(ClusterVector)
{};
G4StatMFMacroChemicalPotential(const G4double anA, const G4double aZ,
const G4double kappa,
const G4double temp,
G4std::vector<G4VStatMFMacroCluster*> * ClusterVector) :
theA(anA),
theZ(aZ),
_Kappa(kappa),
_MeanMultiplicity(0.0),
_MeanTemperature(temp),
_ChemPotentialMu(0.0),
_ChemPotentialNu(0.0),
_theClusters(ClusterVector)
{};
~G4StatMFMacroChemicalPotential() {};
~G4StatMFMacroChemicalPotential() {};
G4double operator()(const G4double nu)
G4double operator()(const G4double nu)
{ return (theZ - this->CalcMeanZ(nu))/theZ; }
private:
// Default constructor
G4StatMFMacroChemicalPotential() {};
// Default constructor
G4StatMFMacroChemicalPotential() {};
// copy constructor
G4StatMFMacroChemicalPotential(const G4StatMFMacroChemicalPotential &right) {};
// copy constructor
G4StatMFMacroChemicalPotential(const G4StatMFMacroChemicalPotential &right) {};
// operators
G4StatMFMacroChemicalPotential & operator=(const G4StatMFMacroChemicalPotential & right);
G4bool operator==(const G4StatMFMacroChemicalPotential & right) const;
G4bool operator!=(const G4StatMFMacroChemicalPotential & right) const;
// operators
G4StatMFMacroChemicalPotential & operator=(const G4StatMFMacroChemicalPotential & right);
G4bool operator==(const G4StatMFMacroChemicalPotential & right) const;
G4bool operator!=(const G4StatMFMacroChemicalPotential & right) const;
public:
G4double GetMeanMultiplicity(void) const {return _MeanMultiplicity;}
G4double GetMeanMultiplicity(void) const {return _MeanMultiplicity;}
G4double GetChemicalPotentialMu(void) const {return _ChemPotentialMu;}
G4double GetChemicalPotentialMu(void) const {return _ChemPotentialMu;}
G4double GetChemicalPotentialNu(void) const {return _ChemPotentialNu;}
G4double GetChemicalPotentialNu(void) const {return _ChemPotentialNu;}
G4double CalcChemicalPotentialNu(void);
G4double CalcChemicalPotentialNu(void);
private:
G4double CalcMeanZ(const G4double nu);
G4double CalcMeanZ(const G4double nu);
void CalcChemicalPotentialMu(const G4double nu);
void CalcChemicalPotentialMu(const G4double nu);
private:
G4double theA;
G4double theA;
G4double theZ;
G4double theZ;
G4double _Kappa;
G4double _Kappa;
G4double _MeanMultiplicity;
G4double _MeanMultiplicity;
G4double _MeanTemperature;
G4double _MeanTemperature;
G4double _ChemPotentialMu;
G4double _ChemPotentialMu;
G4double _ChemPotentialNu;
G4double _ChemPotentialNu;
G4RWTPtrOrderedVector<G4VStatMFMacroCluster> * _theClusters;
G4std::vector<G4VStatMFMacroCluster*> * _theClusters;
};
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMacroMultiNucleon.hh,v 1.3.2.1 2001/06/28 19:13:06 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMacroMultiNucleon_h
#define G4StatMFMacroMultiNucleon_h 1
@@ -8,36 +37,36 @@ class G4StatMFMacroMultiNucleon : public G4VStatMFMacroCluster {
public:
// Constructor
G4StatMFMacroMultiNucleon(const G4int Size) : G4VStatMFMacroCluster(Size) {};
// Constructor
G4StatMFMacroMultiNucleon(const G4int Size) : G4VStatMFMacroCluster(Size) {};
// Destructor
~G4StatMFMacroMultiNucleon() {};
// Destructor
~G4StatMFMacroMultiNucleon() {};
private:
// Default constructor
G4StatMFMacroMultiNucleon();
// Default constructor
G4StatMFMacroMultiNucleon();
// Copy constructor
G4StatMFMacroMultiNucleon(const G4StatMFMacroMultiNucleon & right);
// Copy constructor
G4StatMFMacroMultiNucleon(const G4StatMFMacroMultiNucleon & right);
// operators
G4StatMFMacroMultiNucleon & operator=(const G4StatMFMacroMultiNucleon & right);
G4bool operator==(const G4StatMFMacroMultiNucleon & right) const;
G4bool operator!=(const G4StatMFMacroMultiNucleon & right) const;
// operators
G4StatMFMacroMultiNucleon & operator=(const G4StatMFMacroMultiNucleon & right);
G4bool operator==(const G4StatMFMacroMultiNucleon & right) const;
G4bool operator!=(const G4StatMFMacroMultiNucleon & right) const;
public:
G4double CalcMeanMultiplicity(const G4double FreeVol, const G4double mu,
const G4double nu, const G4double T);
G4double CalcMeanMultiplicity(const G4double FreeVol, const G4double mu,
const G4double nu, const G4double T);
G4double CalcZARatio(const G4double nu);
G4double CalcZARatio(const G4double nu);
G4double CalcEnergy(const G4double T);
G4double CalcEnergy(const G4double T);
G4double CalcEntropy(const G4double T, const G4double FreeVol);
G4double CalcEntropy(const G4double T, const G4double FreeVol);
};
@@ -1,7 +1,36 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMacroMultiplicity.hh,v 1.4.2.1 2001/06/28 19:13:06 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMacroMultiplicity_h
#define G4StatMFMacroMultiplicity_h 1
#include "g4rw/tpordvec.h"
#include <vector>
#include "G4StatMFParameters.hh"
#include "G4VStatMFMacroCluster.hh"
@@ -13,65 +42,65 @@ class G4StatMFMacroMultiplicity {
public:
G4StatMFMacroMultiplicity(const G4double anA,
const G4double kappa,
const G4double temp,
const G4double nu,
G4RWTPtrOrderedVector<G4VStatMFMacroCluster> * ClusterVector) :
theA(anA),
_Kappa(kappa),
_MeanMultiplicity(0.0),
_MeanTemperature(temp),
_ChemPotentialMu(0.0),
_ChemPotentialNu(nu),
_theClusters(ClusterVector)
{};
G4StatMFMacroMultiplicity(const G4double anA,
const G4double kappa,
const G4double temp,
const G4double nu,
G4std::vector<G4VStatMFMacroCluster*> * ClusterVector) :
theA(anA),
_Kappa(kappa),
_MeanMultiplicity(0.0),
_MeanTemperature(temp),
_ChemPotentialMu(0.0),
_ChemPotentialNu(nu),
_theClusters(ClusterVector)
{};
~G4StatMFMacroMultiplicity() {};
~G4StatMFMacroMultiplicity() {};
G4double operator()(const G4double mu)
G4double operator()(const G4double mu)
{ return (theA - this->CalcMeanA(mu))/theA; }
private:
// Default constructor
G4StatMFMacroMultiplicity() {};
// Default constructor
G4StatMFMacroMultiplicity() {};
// copy constructor
G4StatMFMacroMultiplicity(const G4StatMFMacroMultiplicity &right) {};
// copy constructor
G4StatMFMacroMultiplicity(const G4StatMFMacroMultiplicity &right) {};
// operators
G4StatMFMacroMultiplicity & operator=(const G4StatMFMacroMultiplicity & right);
G4bool operator==(const G4StatMFMacroMultiplicity & right) const;
G4bool operator!=(const G4StatMFMacroMultiplicity & right) const;
// operators
G4StatMFMacroMultiplicity & operator=(const G4StatMFMacroMultiplicity & right);
G4bool operator==(const G4StatMFMacroMultiplicity & right) const;
G4bool operator!=(const G4StatMFMacroMultiplicity & right) const;
public:
G4double GetMeanMultiplicity(void) const {return _MeanMultiplicity;}
G4double GetMeanMultiplicity(void) const {return _MeanMultiplicity;}
G4double GetChemicalPotentialMu(void) const {return _ChemPotentialMu;}
G4double GetChemicalPotentialMu(void) const {return _ChemPotentialMu;}
G4double CalcChemicalPotentialMu(void);
G4double CalcChemicalPotentialMu(void);
private:
G4double CalcMeanA(const G4double mu);
G4double CalcMeanA(const G4double mu);
private:
G4double theA;
G4double theA;
G4double _Kappa;
G4double _Kappa;
G4double _MeanMultiplicity;
G4double _MeanMultiplicity;
G4double _MeanTemperature;
G4double _MeanTemperature;
G4double _ChemPotentialMu;
G4double _ChemPotentialMu;
G4double _ChemPotentialNu;
G4double _ChemPotentialNu;
G4RWTPtrOrderedVector<G4VStatMFMacroCluster> * _theClusters;
G4std::vector<G4VStatMFMacroCluster*> * _theClusters;
};
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMacroNucleon.hh,v 1.4.2.1 2001/06/28 19:13:06 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMacroNucleon_h
#define G4StatMFMacroNucleon_h 1
@@ -8,46 +37,46 @@ class G4StatMFMacroNucleon : public G4VStatMFMacroCluster {
public:
// Default constructor
G4StatMFMacroNucleon() :
// Default constructor
G4StatMFMacroNucleon() :
_NeutronMeanMultiplicity(0.0),_ProtonMeanMultiplicity(0.0),
G4VStatMFMacroCluster(1) {};
// Destructor
~G4StatMFMacroNucleon() {};
// Destructor
~G4StatMFMacroNucleon() {};
private:
// Copy constructor
G4StatMFMacroNucleon(const G4StatMFMacroNucleon & right);
// Copy constructor
G4StatMFMacroNucleon(const G4StatMFMacroNucleon & right);
// operators
G4StatMFMacroNucleon & operator=(const G4StatMFMacroNucleon & right);
G4bool operator==(const G4StatMFMacroNucleon & right) const;
G4bool operator!=(const G4StatMFMacroNucleon & right) const;
// operators
G4StatMFMacroNucleon & operator=(const G4StatMFMacroNucleon & right);
G4bool operator==(const G4StatMFMacroNucleon & right) const;
G4bool operator!=(const G4StatMFMacroNucleon & right) const;
public:
G4double CalcMeanMultiplicity(const G4double FreeVol, const G4double mu,
const G4double nu, const G4double T);
G4double CalcMeanMultiplicity(const G4double FreeVol, const G4double mu,
const G4double nu, const G4double T);
G4double CalcZARatio(const G4double nu)
G4double CalcZARatio(const G4double nu)
{ if (_ProtonMeanMultiplicity+_NeutronMeanMultiplicity > 0.0)
return theZARatio = _ProtonMeanMultiplicity/
(_ProtonMeanMultiplicity+_NeutronMeanMultiplicity);
else return 0.0; }
return theZARatio = _ProtonMeanMultiplicity/
(_ProtonMeanMultiplicity+_NeutronMeanMultiplicity);
else return 0.0; }
G4double CalcEnergy(const G4double T);
G4double CalcEnergy(const G4double T);
G4double CalcEntropy(const G4double T, const G4double FreeVol);
G4double CalcEntropy(const G4double T, const G4double FreeVol);
private:
G4double _NeutronMeanMultiplicity;
G4double _ProtonMeanMultiplicity;
G4double _NeutronMeanMultiplicity;
G4double _ProtonMeanMultiplicity;
};
@@ -1,8 +1,35 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMacroTemperature.hh,v 1.5.2.1 2001/06/28 19:13:06 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMacroTemperature_h
#define G4StatMFMacroTemperature_h 1
#include "g4rw/tpordvec.h"
#include "G4StatMFParameters.hh"
#include "G4VStatMFMacroCluster.hh"
#include "G4StatMFMacroChemicalPotential.hh"
@@ -14,83 +41,83 @@ class G4StatMFMacroTemperature {
public:
G4StatMFMacroTemperature(const G4double anA, const G4double aZ,
const G4double ExEnergy, const G4double FreeE0,
const G4double kappa,
G4RWTPtrOrderedVector<G4VStatMFMacroCluster> * ClusterVector) :
theA(anA),
theZ(aZ),
_ExEnergy(ExEnergy),
_Kappa(kappa),
_FreeInternalE0(FreeE0),
_MeanMultiplicity(0.0),
_MeanTemperature(0.0),
_ChemPotentialMu(0.0),
_ChemPotentialNu(0.0),
_theClusters(ClusterVector)
{};
G4StatMFMacroTemperature(const G4double anA, const G4double aZ,
const G4double ExEnergy, const G4double FreeE0,
const G4double kappa,
G4std::vector<G4VStatMFMacroCluster*> * ClusterVector) :
theA(anA),
theZ(aZ),
_ExEnergy(ExEnergy),
_Kappa(kappa),
_FreeInternalE0(FreeE0),
_MeanMultiplicity(0.0),
_MeanTemperature(0.0),
_ChemPotentialMu(0.0),
_ChemPotentialNu(0.0),
_theClusters(ClusterVector)
{};
~G4StatMFMacroTemperature() {};
~G4StatMFMacroTemperature() {};
G4double operator()(const G4double T)
G4double operator()(const G4double T)
{ return (_ExEnergy - this->FragsExcitEnergy(T))/_ExEnergy; }
private:
// Default constructor
G4StatMFMacroTemperature() {};
// Default constructor
G4StatMFMacroTemperature() {};
// copy constructor
G4StatMFMacroTemperature(const G4StatMFMacroTemperature &right) {};
// copy constructor
G4StatMFMacroTemperature(const G4StatMFMacroTemperature &right) {};
// operators
G4StatMFMacroTemperature & operator=(const G4StatMFMacroTemperature & right);
G4bool operator==(const G4StatMFMacroTemperature & right) const;
G4bool operator!=(const G4StatMFMacroTemperature & right) const;
// operators
G4StatMFMacroTemperature & operator=(const G4StatMFMacroTemperature & right);
G4bool operator==(const G4StatMFMacroTemperature & right) const;
G4bool operator!=(const G4StatMFMacroTemperature & right) const;
public:
G4double GetMeanMultiplicity(void) const {return _MeanMultiplicity;}
G4double GetMeanMultiplicity(void) const {return _MeanMultiplicity;}
G4double GetChemicalPotentialMu(void) const {return _ChemPotentialMu;}
G4double GetChemicalPotentialMu(void) const {return _ChemPotentialMu;}
G4double GetChemicalPotentialNu(void) const {return _ChemPotentialNu;}
G4double GetChemicalPotentialNu(void) const {return _ChemPotentialNu;}
G4double GetTemperature(void) const {return _MeanTemperature;}
G4double GetTemperature(void) const {return _MeanTemperature;}
G4double GetEntropy(void) const {return _MeanEntropy;}
G4double GetEntropy(void) const {return _MeanEntropy;}
G4double CalcTemperature(void);
G4double CalcTemperature(void);
private:
G4double FragsExcitEnergy(const G4double T);
G4double FragsExcitEnergy(const G4double T);
void CalcChemicalPotentialNu(const G4double T);
void CalcChemicalPotentialNu(const G4double T);
private:
G4double theA;
G4double theA;
G4double theZ;
G4double theZ;
G4double _ExEnergy;
G4double _ExEnergy;
G4double _FreeInternalE0;
G4double _FreeInternalE0;
G4double _Kappa;
G4double _Kappa;
G4double _MeanMultiplicity;
G4double _MeanMultiplicity;
G4double _MeanTemperature;
G4double _MeanTemperature;
G4double _ChemPotentialMu;
G4double _ChemPotentialMu;
G4double _ChemPotentialNu;
G4double _ChemPotentialNu;
G4double _MeanEntropy;
G4double _MeanEntropy;
G4RWTPtrOrderedVector<G4VStatMFMacroCluster> * _theClusters;
G4std::vector<G4VStatMFMacroCluster*> * _theClusters;
};
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMacroTetraNucleon.hh,v 1.4.2.1 2001/06/28 19:13:06 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMacroTetraNucleon_h
#define G4StatMFMacroTetraNucleon_h 1
@@ -8,33 +37,33 @@ class G4StatMFMacroTetraNucleon : public G4VStatMFMacroCluster {
public:
// Default constructor
G4StatMFMacroTetraNucleon() : G4VStatMFMacroCluster(4) {};
// Default constructor
G4StatMFMacroTetraNucleon() : G4VStatMFMacroCluster(4) {};
// Destructor
~G4StatMFMacroTetraNucleon() {};
// Destructor
~G4StatMFMacroTetraNucleon() {};
private:
// Copy constructor
G4StatMFMacroTetraNucleon(const G4StatMFMacroTetraNucleon & right);
// Copy constructor
G4StatMFMacroTetraNucleon(const G4StatMFMacroTetraNucleon & right);
// operators
G4StatMFMacroTetraNucleon & operator=(const G4StatMFMacroTetraNucleon & right);
G4bool operator==(const G4StatMFMacroTetraNucleon & right) const;
G4bool operator!=(const G4StatMFMacroTetraNucleon & right) const;
// operators
G4StatMFMacroTetraNucleon & operator=(const G4StatMFMacroTetraNucleon & right);
G4bool operator==(const G4StatMFMacroTetraNucleon & right) const;
G4bool operator!=(const G4StatMFMacroTetraNucleon & right) const;
public:
G4double CalcMeanMultiplicity(const G4double FreeVol, const G4double mu,
const G4double nu, const G4double T);
G4double CalcMeanMultiplicity(const G4double FreeVol, const G4double mu,
const G4double nu, const G4double T);
G4double CalcZARatio(const G4double nu) {return theZARatio = 0.5;}
G4double CalcZARatio(const G4double nu) {return theZARatio = 0.5;}
G4double CalcEnergy(const G4double T);
G4double CalcEnergy(const G4double T);
G4double CalcEntropy(const G4double T, const G4double FreeVol);
G4double CalcEntropy(const G4double T, const G4double FreeVol);
};
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMacroTriNucleon.hh,v 1.4.2.1 2001/06/28 19:13:06 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMacroTriNucleon_h
#define G4StatMFMacroTriNucleon_h 1
@@ -8,33 +37,33 @@ class G4StatMFMacroTriNucleon : public G4VStatMFMacroCluster {
public:
// Default constructor
G4StatMFMacroTriNucleon() : G4VStatMFMacroCluster(3) {};
// Default constructor
G4StatMFMacroTriNucleon() : G4VStatMFMacroCluster(3) {};
// Destructor
~G4StatMFMacroTriNucleon() {};
// Destructor
~G4StatMFMacroTriNucleon() {};
private:
// Copy constructor
G4StatMFMacroTriNucleon(const G4StatMFMacroTriNucleon & right);
// Copy constructor
G4StatMFMacroTriNucleon(const G4StatMFMacroTriNucleon & right);
// operators
G4StatMFMacroTriNucleon & operator=(const G4StatMFMacroTriNucleon & right);
G4bool operator==(const G4StatMFMacroTriNucleon & right) const;
G4bool operator!=(const G4StatMFMacroTriNucleon & right) const;
// operators
G4StatMFMacroTriNucleon & operator=(const G4StatMFMacroTriNucleon & right);
G4bool operator==(const G4StatMFMacroTriNucleon & right) const;
G4bool operator!=(const G4StatMFMacroTriNucleon & right) const;
public:
G4double CalcMeanMultiplicity(const G4double FreeVol, const G4double mu,
const G4double nu, const G4double T);
G4double CalcMeanMultiplicity(const G4double FreeVol, const G4double mu,
const G4double nu, const G4double T);
G4double CalcZARatio(const G4double nu) {return theZARatio = 0.5;}
G4double CalcZARatio(const G4double nu) {return theZARatio = 0.5;}
G4double CalcEnergy(const G4double T);
G4double CalcEnergy(const G4double T);
G4double CalcEntropy(const G4double T, const G4double FreeVol);
G4double CalcEntropy(const G4double T, const G4double FreeVol);
};
@@ -1,10 +1,35 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMacroCanonical.hh,v 1.6.2.1 2001/06/28 19:13:05 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMacroCanonical_h
#define G4StatMFMacroCanonical_h 1
#include "g4rw/tpordvec.h"
#include "g4rw/tvvector.h"
#include "g4rw/tvordvec.h"
#include "G4Fragment.hh"
#include "G4StatMFFragment.hh"
#include "G4VStatMFEnsemble.hh"
@@ -24,62 +49,62 @@ class G4StatMFMacroCanonical : public G4VStatMFEnsemble {
public:
// G4StatMFMacroCanonical class must be initialized with a G4Fragment.
G4StatMFMacroCanonical(const G4Fragment & theFragment);
// G4StatMFMacroCanonical class must be initialized with a G4Fragment.
G4StatMFMacroCanonical(const G4Fragment & theFragment);
// destructor
~G4StatMFMacroCanonical();
// destructor
~G4StatMFMacroCanonical();
private:
// default constructor
G4StatMFMacroCanonical() {};
// default constructor
G4StatMFMacroCanonical() {};
// copy constructor
G4StatMFMacroCanonical(const G4StatMFMacroCanonical &right) {};
// copy constructor
G4StatMFMacroCanonical(const G4StatMFMacroCanonical &right) {};
// operators
G4StatMFMacroCanonical & operator=(const G4StatMFMacroCanonical & right);
G4bool operator==(const G4StatMFMacroCanonical & right) const;
G4bool operator!=(const G4StatMFMacroCanonical & right) const;
// operators
G4StatMFMacroCanonical & operator=(const G4StatMFMacroCanonical & right);
G4bool operator==(const G4StatMFMacroCanonical & right) const;
G4bool operator!=(const G4StatMFMacroCanonical & right) const;
public:
// Choice of fragment atomic numbers and charges.
G4StatMFChannel * ChooseAandZ(const G4Fragment &theFragment);
// Choice of fragment atomic numbers and charges.
G4StatMFChannel * ChooseAandZ(const G4Fragment &theFragment);
private:
// Initailization method
void Initialize(const G4Fragment & theFragment);
// Initailization method
void Initialize(const G4Fragment & theFragment);
//
void CalculateTemperature(const G4Fragment & theFragment);
//
void CalculateTemperature(const G4Fragment & theFragment);
// Determines fragments multiplicities and compute total fragment multiplicity
G4double ChooseA(const G4double A, G4RWTValVector<G4double> & ANumbers);
// Determines fragments multiplicities and compute total fragment multiplicity
G4double ChooseA(const G4double A, G4std::vector<G4double> & ANumbers);
// Samples charges of fragments
G4StatMFChannel * ChooseZ(const G4int & Z,
G4RWTValOrderedVector<G4double> & FragmentsA);
// Samples charges of fragments
G4StatMFChannel * ChooseZ(const G4int & Z,
G4std::vector<G4double> & FragmentsA);
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
// Chemical Potential \mu
G4double _ChemPotentialMu;
// Chemical Potential \mu
G4double _ChemPotentialMu;
// Chemical Potential \nu
G4double _ChemPotentialNu;
// Chemical Potential \nu
G4double _ChemPotentialNu;
// Parameter Kappa
G4double _Kappa;
// Parameter Kappa
G4double _Kappa;
// Clusters
G4RWTPtrOrderedVector<G4VStatMFMacroCluster> _theClusters;
// Clusters
G4std::vector<G4VStatMFMacroCluster*> _theClusters;
};
@@ -1,8 +1,36 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMicroManager.hh,v 1.3.2.1 2001/06/28 19:13:06 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMicroManager_h
#define G4StatMFMicroManager_h 1
#include "g4rw/tvordvec.h"
#include "G4StatMFMicroPartition.hh"
#include "G4StatMFParameters.hh"
#include "G4StatMFChannel.hh"
@@ -15,53 +43,53 @@ class G4StatMFMicroManager {
public:
// G4StatMFMicroManager class must be initialized with a G4Fragment, multiplicity,
// free internal energy and the entropy of the compund nucleus.
G4StatMFMicroManager(const G4Fragment & theFragment, const G4int multiplicity,
const G4double FreeIntE, const G4double SCompNuc);
// G4StatMFMicroManager class must be initialized with a G4Fragment, multiplicity,
// free internal energy and the entropy of the compund nucleus.
G4StatMFMicroManager(const G4Fragment & theFragment, const G4int multiplicity,
const G4double FreeIntE, const G4double SCompNuc);
// destructor
~G4StatMFMicroManager();
// destructor
~G4StatMFMicroManager();
private:
// default constructor
G4StatMFMicroManager() {};
// default constructor
G4StatMFMicroManager() {};
// copy constructor
G4StatMFMicroManager(const G4StatMFMicroManager &right);
// copy constructor
G4StatMFMicroManager(const G4StatMFMicroManager &right);
// operators
G4StatMFMicroManager & operator=(const G4StatMFMicroManager & right);
// operators
G4StatMFMicroManager & operator=(const G4StatMFMicroManager & right);
public:
G4bool operator==(const G4StatMFMicroManager & right) const;
G4bool operator!=(const G4StatMFMicroManager & right) const;
G4bool operator==(const G4StatMFMicroManager & right) const;
G4bool operator!=(const G4StatMFMicroManager & right) const;
public:
// Choice of fragment atomic numbers and charges.
G4StatMFChannel * ChooseChannel(const G4double A0, const G4double Z0, const G4double MeanT);
// Choice of fragment atomic numbers and charges.
G4StatMFChannel * ChooseChannel(const G4double A0, const G4double Z0, const G4double MeanT);
G4double GetProbability(void) const {return _WW;}
G4double GetProbability(void) const {return _WW;}
void Normalize(const G4double Norm);
void Normalize(const G4double Norm);
G4double GetMeanMultiplicity(void) const {return _MeanMultiplicity; }
G4double GetMeanMultiplicity(void) const {return _MeanMultiplicity; }
G4double GetMeanTemperature(void) const {return _MeanTemperature; }
G4double GetMeanTemperature(void) const {return _MeanTemperature; }
G4double GetMeanEntropy(void) const {return _MeanEntropy; }
G4double GetMeanEntropy(void) const {return _MeanEntropy; }
private:
// Initailization method
void Initialize(const G4Fragment & theFragment, const G4int m,
const G4double FreeIntE, const G4double SCompNuc);
// Initailization method
void Initialize(const G4Fragment & theFragment, const G4int m,
const G4double FreeIntE, const G4double SCompNuc);
G4bool MakePartition(const G4int k, G4int * ANumbers);
G4bool MakePartition(const G4int k, G4int * ANumbers);
@@ -70,21 +98,26 @@ private:
private:
// Partitions vector
G4RWTPtrOrderedVector<G4StatMFMicroPartition> _Partition;
// Partitions vector
G4std::vector<G4StatMFMicroPartition*> _Partition;
// Statistical weight
G4double _WW;
// Statistical weight
G4double _WW;
G4double _Normalization;
G4double _Normalization;
G4double _MeanMultiplicity;
G4double _MeanMultiplicity;
G4double _MeanTemperature;
G4double _MeanTemperature;
G4double _MeanEntropy;
G4double _MeanEntropy;
};
#endif
@@ -1,111 +1,141 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMicroPartition.hh,v 1.6.2.1 2001/06/28 19:13:06 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMicroPartition_h
#define G4StatMFMicroPartition_h 1
#include <vector>
#include "globals.hh"
#include "g4rw/tvordvec.h"
#include "G4StatMFParameters.hh"
#include "G4StatMFChannel.hh"
class G4StatMFMicroPartition {
public:
// Constructor
G4StatMFMicroPartition(const G4int A, const G4double Z) :
// Constructor
G4StatMFMicroPartition(const G4int A, const G4double Z) :
theA(A), theZ(Z), _Probability(0.0), _Temperature(0.0),
_Entropy(0.0) {};
// Destructor
~G4StatMFMicroPartition() {};
// Destructor
~G4StatMFMicroPartition() {};
private:
// Default constructor
G4StatMFMicroPartition() {};
// Default constructor
G4StatMFMicroPartition() {};
// Copy constructor
G4StatMFMicroPartition(const G4StatMFMicroPartition & right);
// Copy constructor
G4StatMFMicroPartition(const G4StatMFMicroPartition & right);
// operators
G4StatMFMicroPartition & operator=(const G4StatMFMicroPartition & right);
// operators
G4StatMFMicroPartition & operator=(const G4StatMFMicroPartition & right);
public:
G4bool operator==(const G4StatMFMicroPartition & right) const;
G4bool operator!=(const G4StatMFMicroPartition & right) const;
G4bool operator==(const G4StatMFMicroPartition & right) const;
G4bool operator!=(const G4StatMFMicroPartition & right) const;
public:
// Gives fragments charges
G4StatMFChannel * ChooseZ(const G4double A0, const G4double Z0, const G4double MeanT);
// Gives fragments charges
G4StatMFChannel * ChooseZ(const G4double A0, const G4double Z0, const G4double MeanT);
G4double GetProbability(void)
G4double GetProbability(void)
{ return _Probability; }
void SetPartitionFragment(const G4int anA)
void SetPartitionFragment(const G4int anA)
{
_thePartition.insert(anA);
CoulombFreeEnergy(anA);
_thePartition.push_back(anA);
CoulombFreeEnergy(anA);
}
void Normalize(const G4double Normalization)
void Normalize(const G4double Normalization)
{ _Probability /= Normalization; }
G4double CalcPartitionProbability(const G4double U,
const G4double FreeInternalE0,
const G4double SCompound);
G4double CalcPartitionProbability(const G4double U,
const G4double FreeInternalE0,
const G4double SCompound);
G4double GetTemperature(void)
G4double GetTemperature(void)
{
return _Temperature;
return _Temperature;
}
G4double GetEntropy(void)
G4double GetEntropy(void)
{
return _Entropy;
return _Entropy;
}
private:
void CoulombFreeEnergy(const G4double anA);
void CoulombFreeEnergy(const G4double anA);
G4double CalcPartitionTemperature(const G4double U,
const G4double FreeInternalE0);
G4double CalcPartitionTemperature(const G4double U,
const G4double FreeInternalE0);
G4double GetPartitionEnergy(const G4double T);
G4double GetPartitionEnergy(const G4double T);
G4double GetCoulombEnergy(void);
G4double GetCoulombEnergy(void);
G4double GetDegeneracyFactor(const G4int A);
G4double GetDegeneracyFactor(const G4int A);
G4double InvLevelDensity(const G4double Af)
G4double InvLevelDensity(const G4double Af)
{
// Calculate Inverse Density Level
// Epsilon0*(1 + 3 /(Af - 1))
if (Af < 1.5) return 0.0;
else return G4StatMFParameters::GetEpsilon0()*(1.0+3.0/(Af - 1.0));
// Calculate Inverse Density Level
// Epsilon0*(1 + 3 /(Af - 1))
if (Af < 1.5) return 0.0;
else return G4StatMFParameters::GetEpsilon0()*(1.0+3.0/(Af - 1.0));
}
private:
// A and Z of initial nucleus
G4double theA;
G4double theZ;
// A and Z of initial nucleus
G4double theA;
G4double theZ;
// Partition probability
G4double _Probability;
// Partition probability
G4double _Probability;
// Partition temperature
G4double _Temperature;
// Partition temperature
G4double _Temperature;
// Partition entropy
G4double _Entropy;
// Partition entropy
G4double _Entropy;
// The partition itself
G4RWTValOrderedVector<G4int> _thePartition;
// The partition itself
G4std::vector<G4int> _thePartition;
G4RWTValOrderedVector<G4double> _theCoulombFreeEnergy;
G4std::vector<G4double> _theCoulombFreeEnergy;
};
@@ -1,8 +1,36 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFMicroCanonical.hh,v 1.5.2.1 2001/06/28 19:13:06 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFMicroCanonical_h
#define G4StatMFMicroCanonical_h 1
//#include <rw/tvvector.h>
#include "g4rw/tvordvec.h"
#include <vector>
#include "G4VStatMFEnsemble.hh"
#include "G4StatMFMicroPartition.hh"
@@ -18,61 +46,61 @@ class G4StatMFMicroCanonical : public G4VStatMFEnsemble {
public:
// G4StatMFMicroCanonical class must be initialized with a G4Fragment.
G4StatMFMicroCanonical(const G4Fragment & theFragment);
// G4StatMFMicroCanonical class must be initialized with a G4Fragment.
G4StatMFMicroCanonical(const G4Fragment & theFragment);
// destructor
~G4StatMFMicroCanonical();
// destructor
~G4StatMFMicroCanonical();
private:
// default constructor
G4StatMFMicroCanonical() {};
// default constructor
G4StatMFMicroCanonical() {};
// copy constructor
G4StatMFMicroCanonical(const G4StatMFMicroCanonical &right);
// copy constructor
G4StatMFMicroCanonical(const G4StatMFMicroCanonical &right);
// operators
G4StatMFMicroCanonical & operator=(const G4StatMFMicroCanonical & right);
G4bool operator==(const G4StatMFMicroCanonical & right) const;
G4bool operator!=(const G4StatMFMicroCanonical & right) const;
// operators
G4StatMFMicroCanonical & operator=(const G4StatMFMicroCanonical & right);
G4bool operator==(const G4StatMFMicroCanonical & right) const;
G4bool operator!=(const G4StatMFMicroCanonical & right) const;
public:
// Choice of fragment atomic numbers and charges.
G4StatMFChannel * ChooseAandZ(const G4Fragment & theFragment);
// Choice of fragment atomic numbers and charges.
G4StatMFChannel * ChooseAandZ(const G4Fragment & theFragment);
enum {MaxAllowedMultiplicity = 4};
enum {MaxAllowedMultiplicity = 4};
private:
// Initailization method
void Initialize(const G4Fragment & theFragment);
// Initailization method
void Initialize(const G4Fragment & theFragment);
// Calculate Entropy of Compound Nucleus
G4double CalcEntropyOfCompoundNucleus(const G4Fragment & theFragment, G4double & TConf);
// Calculate Entropy of Compound Nucleus
G4double CalcEntropyOfCompoundNucleus(const G4Fragment & theFragment, G4double & TConf);
G4double CalcFreeInternalEnergy(const G4Fragment & theFragment, const G4double T);
G4double CalcFreeInternalEnergy(const G4Fragment & theFragment, const G4double T);
G4double CalcInvLevelDensity(const G4int anA);
G4double CalcInvLevelDensity(const G4int anA);
// Data members
private:
// This is a vector of partitions managers for partitions of different
// multiplicities:
G4RWTPtrOrderedVector<G4StatMFMicroManager> _ThePartitionManagerVector;
// This is a vector of partitions managers for partitions of different
// multiplicities:
G4std::vector<G4StatMFMicroManager*> _ThePartitionManagerVector;
// Statistical weight of compound nucleus
G4double _WCompoundNucleus;
// Statistical weight of compound nucleus
G4double _WCompoundNucleus;
};
@@ -1,3 +1,32 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4StatMFParameters.hh,v 1.3.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4StatMFParameters_h
#define G4StatMFParameters_h 1
@@ -6,29 +35,29 @@
class G4StatMFParameters
{
private:
static G4StatMFParameters theStatMFParameters;
static G4StatMFParameters theStatMFParameters;
// +----------------------+
// | Constant Parameters: |
// +----------------------+
// Kappa is used for calculate volume V_f for translational motion of fragments
static const G4double _Kappa;
// KappaCoulomb is used for calculate Coulomb term energy
static const G4double _KappaCoulomb;
// Inverse level density
static const G4double _Epsilon0;
// Bethe-Weizsacker coefficients
static const G4double _E0;
static const G4double _Beta0;
static const G4double _Gamma0;
// Critical temperature (for liquid-gas phase transitions)
static const G4double _CriticalTemp;
// Nuclear radius
static const G4double _r0;
// +----------------------+
// | Constant Parameters: |
// +----------------------+
// Kappa is used for calculate volume V_f for translational motion of fragments
static const G4double _Kappa;
// KappaCoulomb is used for calculate Coulomb term energy
static const G4double _KappaCoulomb;
// Inverse level density
static const G4double _Epsilon0;
// Bethe-Weizsacker coefficients
static const G4double _E0;
static const G4double _Beta0;
static const G4double _Gamma0;
// Critical temperature (for liquid-gas phase transitions)
static const G4double _CriticalTemp;
// Nuclear radius
static const G4double _r0;
// default constructor
G4StatMFParameters()
// default constructor
G4StatMFParameters()
// :
// _Kappa(1.0),
// _KappaCoulomb(2.0),
@@ -38,34 +67,34 @@ private:
// _Gamma0(25.0), // MeV
// _CriticalTemp(18.0), // MeV
// _r0(1.17) // fm
{}
{}
public:
~G4StatMFParameters() {};
~G4StatMFParameters() {};
static G4StatMFParameters * GetAddress();
static G4StatMFParameters * GetAddress();
static G4double GetKappa() { return _Kappa; }
static G4double GetKappa() { return _Kappa; }
static G4double GetKappaCoulomb() { return _KappaCoulomb; }
static G4double GetKappaCoulomb() { return _KappaCoulomb; }
static G4double GetEpsilon0() { return _Epsilon0; }
static G4double GetEpsilon0() { return _Epsilon0; }
static G4double GetE0() { return _E0; }
static G4double GetE0() { return _E0; }
static G4double GetBeta0() { return _Beta0; }
static G4double GetBeta0() { return _Beta0; }
static G4double GetGamma0() { return _Gamma0; }
static G4double GetGamma0() { return _Gamma0; }
static G4double GetCriticalTemp() { return _CriticalTemp; }
static G4double GetCriticalTemp() { return _CriticalTemp; }
static G4double Getr0() { return _r0; }
static G4double Getr0() { return _r0; }
static G4double Beta(const G4double T);
static G4double Beta(const G4double T);
static G4double DBetaDT(const G4double T);
static G4double DBetaDT(const G4double T);
};
#endif
@@ -1,12 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4TritonCoulombBarrier.hh,v 1.1 2000/06/09 11:36:53 larazb Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4TritonCoulombBarrier.hh,v 1.2.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Dec 1999)
@@ -20,19 +36,19 @@
class G4TritonCoulombBarrier : public G4CoulombBarrier
{
public:
G4TritonCoulombBarrier() : G4CoulombBarrier(3,1) {};
~G4TritonCoulombBarrier() {};
G4TritonCoulombBarrier() : G4CoulombBarrier(3,1) {};
~G4TritonCoulombBarrier() {};
private:
G4TritonCoulombBarrier(const G4TritonCoulombBarrier & right);
G4TritonCoulombBarrier(const G4TritonCoulombBarrier & right);
const G4TritonCoulombBarrier & operator=(const G4TritonCoulombBarrier & right);
G4bool operator==(const G4TritonCoulombBarrier & right) const;
G4bool operator!=(const G4TritonCoulombBarrier & right) const;
const G4TritonCoulombBarrier & operator=(const G4TritonCoulombBarrier & right);
G4bool operator==(const G4TritonCoulombBarrier & right) const;
G4bool operator!=(const G4TritonCoulombBarrier & right) const;
private:
virtual G4double BarrierPenetrationFactor(const G4double aZ) const;
virtual G4double BarrierPenetrationFactor(const G4double aZ) const;
};
@@ -1,9 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4TritonEvaporationChannel.hh,v 1.2.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov. 1999)
@@ -20,27 +39,27 @@
class G4TritonEvaporationChannel : public G4EvaporationChannel
{
public:
// only available constructor
G4TritonEvaporationChannel() : G4EvaporationChannel(3,1,
&theEvaporationProbability,&theCoulombBarrier) {};
// only available constructor
G4TritonEvaporationChannel() : G4EvaporationChannel(3,1,"triton",
&theEvaporationProbability,&theCoulombBarrier) {};
// destructor
~G4TritonEvaporationChannel() {};
// destructor
~G4TritonEvaporationChannel() {};
private:
const G4TritonEvaporationChannel & operator=(const G4TritonEvaporationChannel & right);
const G4TritonEvaporationChannel & operator=(const G4TritonEvaporationChannel & right);
G4TritonEvaporationChannel(const G4TritonEvaporationChannel & right);
G4TritonEvaporationChannel(const G4TritonEvaporationChannel & right);
public:
G4bool operator==(const G4TritonEvaporationChannel & right) const;
G4bool operator!=(const G4TritonEvaporationChannel & right) const;
G4bool operator==(const G4TritonEvaporationChannel & right) const;
G4bool operator!=(const G4TritonEvaporationChannel & right) const;
private:
G4TritonCoulombBarrier theCoulombBarrier;
G4TritonCoulombBarrier theCoulombBarrier;
G4TritonEvaporationProbability theEvaporationProbability;
G4TritonEvaporationProbability theEvaporationProbability;
};
#endif
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4TritonEvaporationProbability.hh,v 1.2.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1999)
//
@@ -22,33 +40,33 @@
class G4TritonEvaporationProbability : public G4EvaporationProbability
{
public:
// Only available constructor
G4TritonEvaporationProbability();
// Only available constructor
G4TritonEvaporationProbability();
~G4TritonEvaporationProbability() {}
~G4TritonEvaporationProbability() {}
private:
// Copy constructor
G4TritonEvaporationProbability(const G4TritonEvaporationProbability &right);
// Copy constructor
G4TritonEvaporationProbability(const G4TritonEvaporationProbability &right);
const G4TritonEvaporationProbability & operator=(const G4TritonEvaporationProbability &right);
G4bool operator==(const G4TritonEvaporationProbability &right) const;
G4bool operator!=(const G4TritonEvaporationProbability &right) const;
const G4TritonEvaporationProbability & operator=(const G4TritonEvaporationProbability &right);
G4bool operator==(const G4TritonEvaporationProbability &right) const;
G4bool operator!=(const G4TritonEvaporationProbability &right) const;
private:
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ()));}
virtual G4double CalcAlphaParam(const G4Fragment & fragment) const
{ return 1.0 + CCoeficient(G4double(fragment.GetZ()-GetZ()));}
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return 0.0; }
virtual G4double CalcBetaParam(const G4Fragment & fragment) const
{ return 0.0; }
G4double CCoeficient(const G4double aZ) const;
G4double CCoeficient(const G4double aZ) const;
// Excitation energy levels
G4RWTValVector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4RWTValVector<G4int> ExcitSpins;
// Excitation energy levels
G4std::vector<G4double> ExcitEnergies;
// Spin of excitation energy levels
G4std::vector<G4int> ExcitSpins;
};
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4UnstableFermiFragment.hh,v 1.4.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -11,6 +30,8 @@
#ifndef G4UnstableFermiFragment_h
#define G4UnstableFermiFragment_h 1
#include <deque>
#include "G4VFermiFragment.hh"
#include "Randomize.hh"
@@ -34,7 +55,7 @@ private:
public:
G4RWTPtrOrderedVector<G4LorentzVector> *
G4std::deque<G4LorentzVector*> *
FragmentsMomentum(G4double KinE, const G4int K, const G4double * Masses);
private:
@@ -1,12 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4VCoulombBarrier.hh,v 1.1 2000/06/09 11:36:54 larazb Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4VCoulombBarrier.hh,v 1.2.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1999)
@@ -20,30 +36,30 @@
class G4VCoulombBarrier
{
public:
G4VCoulombBarrier(const G4int anA, const G4int aZ);
virtual ~G4VCoulombBarrier() {};
G4VCoulombBarrier(const G4int anA, const G4int aZ);
virtual ~G4VCoulombBarrier() {};
protected:
G4VCoulombBarrier() : theA(1),theZ(0) {};
G4VCoulombBarrier() : theA(1),theZ(0) {};
private:
G4VCoulombBarrier(const G4VCoulombBarrier & right);
G4VCoulombBarrier(const G4VCoulombBarrier & right);
const G4VCoulombBarrier & operator=(const G4VCoulombBarrier & right);
G4bool operator==(const G4VCoulombBarrier & right) const;
G4bool operator!=(const G4VCoulombBarrier & right) const;
const G4VCoulombBarrier & operator=(const G4VCoulombBarrier & right);
G4bool operator==(const G4VCoulombBarrier & right) const;
G4bool operator!=(const G4VCoulombBarrier & right) const;
public:
virtual G4double GetCoulombBarrier(const G4int ARes, const G4int ZRes,
const G4double U) const = 0;
virtual G4double GetCoulombBarrier(const G4int ARes, const G4int ZRes,
const G4double U) const = 0;
G4int GetA(void) const {return theA;}
G4int GetZ(void) const {return theZ;}
G4int GetA(void) const {return theA;}
G4int GetZ(void) const {return theZ;}
private:
G4int theA;
G4int theZ;
G4int theA;
G4int theZ;
};
@@ -1,11 +1,29 @@
// 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4VEmissionProbability.hh,v 1.4.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
//
@@ -1,11 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4VEvaporation.hh,v 1.3.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998) written from G4Evaporation.hh (May 1998)
//
@@ -1,9 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4VEvaporationChannel.hh,v 1.4.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
@@ -19,7 +38,9 @@
class G4VEvaporationChannel
{
public:
G4VEvaporationChannel() {};
G4VEvaporationChannel() : Name("Anonymous") {};
G4VEvaporationChannel(const G4String & aName) : Name(aName) {};
G4VEvaporationChannel(const G4String * aName) : Name(*aName) {};
virtual ~G4VEvaporationChannel() {};
private:
@@ -38,6 +59,12 @@ public:
virtual G4double GetEmissionProbability(void) const = 0;
G4String GetName() const {return Name;}
void SetName(const G4String & aName) { Name = aName;}
private:
G4String Name;
};
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4VFermiBreakUp.hh,v 1.3.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4VFermiFragment.hh,v 1.3.2.1 2001/06/28 19:13:07 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Nov 1998)
@@ -1,12 +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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4VFissionBarrier.hh,v 1.3 2000/06/09 11:36:54 larazb Exp $
// GEANT4 tag $Name: geant4-03-01 $
//
// $Id: G4VFissionBarrier.hh,v 1.3.8.1 2001/06/28 19:13:08 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4VGammaDeexcitation
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4VGammaTransition
@@ -1,11 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4VLevelDensityParameter.hh,v 1.3.2.1 2001/06/28 19:13:08 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara (Oct 1998)
//
@@ -1,9 +1,28 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4VMultiFragmentation.hh,v 1.4.2.1 2001/06/28 19:13:08 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
@@ -1,15 +1,29 @@
// This code implementation is the intellectual property of
// the 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.
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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. *
// ********************************************************************
//
//
// -------------------------------------------------------------------
// GEANT 4 class file
//
// For information related to this code contact:
// CERN, IT Division, ASD group
// CERN, Geneva, Switzerland
//
// File name: G4VPhotonEvaporation
@@ -1,3 +1,33 @@
//
// ********************************************************************
// * DISCLAIMER *
// * *
// * The following disclaimer summarizes all the specific disclaimers *
// * of contributors to this software. The specific disclaimers,which *
// * govern, are listed with their locations in: *
// * http://cern.ch/geant4/license *
// * *
// * Neither the authors of this software system, nor their employing *
// * institutes,nor the agencies providing financial support for this *
// * work make any representation or warranty, express or implied, *
// * regarding this software system or assume any liability for its *
// * use. *
// * *
// * This code implementation is the intellectual property of the *
// * 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: G4VStatMFEnsemble.hh,v 1.3.2.1 2001/06/28 19:13:08 gunter Exp $
// GEANT4 tag $Name: $
//
// Hadronic Process: Nuclear De-excitations
// by V. Lara
#ifndef G4VStatMFEnsemble_h
#define G4VStatMFEnsemble_h 1
@@ -7,8 +37,8 @@
class G4VStatMFEnsemble {
public:
// Default Constructor
G4VStatMFEnsemble() :
// Default Constructor
G4VStatMFEnsemble() :
__FreeInternalE0(0.0),
__MeanTemperature(0.0),
__MeanEntropy(0.0),
@@ -16,41 +46,41 @@ public:
{};
// Destructor
virtual ~G4VStatMFEnsemble() {};
// Destructor
virtual ~G4VStatMFEnsemble() {};
private:
// Copy constructor
G4VStatMFEnsemble(const G4VStatMFEnsemble & right);
// Copy constructor
G4VStatMFEnsemble(const G4VStatMFEnsemble & right);
// operators
G4VStatMFEnsemble & operator=(const G4VStatMFEnsemble & right);
G4bool operator==(const G4VStatMFEnsemble & right) const;
G4bool operator!=(const G4VStatMFEnsemble & right) const;
// operators
G4VStatMFEnsemble & operator=(const G4VStatMFEnsemble & right);
G4bool operator==(const G4VStatMFEnsemble & right) const;
G4bool operator!=(const G4VStatMFEnsemble & right) const;
public:
virtual G4StatMFChannel * ChooseAandZ(const G4Fragment & aFragment) = 0;
virtual G4StatMFChannel * ChooseAandZ(const G4Fragment & aFragment) = 0;
G4double GetMeanMultiplicity(void) const {return __MeanMultiplicity;}
G4double GetMeanMultiplicity(void) const {return __MeanMultiplicity;}
G4double GetMeanTemperature(void) const {return __MeanTemperature;}
G4double GetMeanTemperature(void) const {return __MeanTemperature;}
protected:
// Free internal energy at temperature T = 0
G4double __FreeInternalE0;
// Free internal energy at temperature T = 0
G4double __FreeInternalE0;
// Mean temperature
G4double __MeanTemperature;
// Mean temperature
G4double __MeanTemperature;
// Mean Entropy
G4double __MeanEntropy;
// Mean Entropy
G4double __MeanEntropy;
// Mean Multiplicity
G4double __MeanMultiplicity;
// Mean Multiplicity
G4double __MeanMultiplicity;
};
#endif

Some files were not shown because too many files have changed in this diff Show More