Import Geant4 0.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-01 15:25:35 +02:00
parent 54d6b71f95
commit b97f8d0df7
3237 changed files with 807095 additions and 0 deletions
@@ -0,0 +1,61 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LCapture.hh,v 2.1 1998/07/12 03:05:24 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// G4 Low energy model: neutron capture -- header file
// F.W. Jones, TRIUMF, 03-DEC-96
//
// For further comments see G4LCapture.cc.
//
// use -scheme for elastic scattering: HPW, 20th June 1997
// most of the code comes from the old Low-energy Capture class
//
#ifndef G4LCapture_h
#define G4LCapture_h 1
#include <rw/tphdict.h>
#include "globals.hh"
#include "Randomize.hh"
#include "G4Element.hh"
#include "G4ElementVector.hh"
#include "G4ElementTable.hh"
#include "G4PhysicsTable.hh"
#include "G4PhysicsVector.hh"
#include "G4LPhysicsFreeVector.hh"
#include "G4Gamma.hh"
#include "G4Step.hh"
#include "G4TrackStatus.hh"
#include "G4LFission.hh"
#include "G4HadronicInteraction.hh"
class G4LCapture : public G4HadronicInteraction
{
public:
G4LCapture();
~G4LCapture();
G4VParticleChange* ApplyYourself(const G4Track& aTrack,
G4Nucleus& targetNucleus);
private:
// Computes atomic mass in GeV using method from G4LFission
inline
G4double Atomas(const G4double A, const G4double Z)
{
return G4LFission::Atomas(A, Z)/GeV;
}
};
#endif
@@ -0,0 +1,39 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEAlphaInelastic.hh,v 2.1 1998/07/13 17:33:25 fjones Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy Alpha Inelastic Process
// J.L. Chuma, TRIUMF, 21-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEAlphaInelastic_h
#define G4LEAlphaInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEAlphaInelastic : public G4InelasticInteraction
{
public:
G4LEAlphaInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
// SetMaxEnergy( 100.*MeV ); // NUCREC only worked for energies < 100MeV
// Work around to avoid exception in G4EnergyRangeManager
SetMaxEnergy( 10.*TeV ); // NUCREC only worked for energies < 100MeV
}
~G4LEAlphaInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEAntiLambdaInelastic.hh,v 2.0 1998/07/02 16:28:06 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy AntiLambda Inelastic Process
// J.L. Chuma, TRIUMF, 19-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEAntiLambdaInelastic_h
#define G4LEAntiLambdaInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEAntiLambdaInelastic : public G4InelasticInteraction
{
public:
G4LEAntiLambdaInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEAntiLambdaInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void
Cascade( // derived from CASAL0
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,52 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEAntiNeutronInelastic.hh,v 2.0 1998/07/02 16:28:08 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy AntiNeutron Inelastic Process
// J.L. Chuma, TRIUMF, 19-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEAntiNeutronInelastic_h
#define G4LEAntiNeutronInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEAntiNeutronInelastic : public G4InelasticInteraction
{
public:
G4LEAntiNeutronInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEAntiNeutronInelastic()
{ }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void
Cascade( // derived from CASNB
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEAntiOmegaMinusInelastic.hh,v 2.0 1998/07/02 16:28:09 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy AntiOmegaMinus Inelastic Process
// J.L. Chuma, TRIUMF, 19-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEAntiOmegaMinusInelastic_h
#define G4LEAntiOmegaMinusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEAntiOmegaMinusInelastic : public G4InelasticInteraction
{
public:
G4LEAntiOmegaMinusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEAntiOmegaMinusInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void
Cascade( // derived from CASOM
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEAntiProtonInelastic.hh,v 2.0 1998/07/02 16:28:11 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy AntiProton Inelastic Process
// J.L. Chuma, TRIUMF, 19-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEAntiProtonInelastic_h
#define G4LEAntiProtonInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEAntiProtonInelastic : public G4InelasticInteraction
{
public:
G4LEAntiProtonInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEAntiProtonInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void
Cascade( // derived from CASPB
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,52 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEAntiSigmaMinusInelastic.hh,v 2.0 1998/07/02 16:28:13 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy AntiSigmaMinus Inelastic Process
// J.L. Chuma, TRIUMF, 19-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEAntiSigmaMinusInelastic_h
#define G4LEAntiSigmaMinusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEAntiSigmaMinusInelastic : public G4InelasticInteraction
{
public:
G4LEAntiSigmaMinusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEAntiSigmaMinusInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void
Cascade( // derived from CASASM
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEAntiSigmaPlusInelastic.hh,v 2.0 1998/07/02 16:28:16 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy AntiSigmaPlus Inelastic Process
// J.L. Chuma, TRIUMF, 19-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEAntiSigmaPlusInelastic_h
#define G4LEAntiSigmaPlusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEAntiSigmaPlusInelastic : public G4InelasticInteraction
{
public:
G4LEAntiSigmaPlusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEAntiSigmaPlusInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void
Cascade( // derived from CASASP
G4FastVector<G4ReactionProduct,128> &vec,
G4int& vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,52 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEAntiXiMinusInelastic.hh,v 2.0 1998/07/02 16:28:18 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy AntiXiMinus Inelastic Process
// J.L. Chuma, TRIUMF, 19-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEAntiXiMinusInelastic_h
#define G4LEAntiXiMinusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEAntiXiMinusInelastic : public G4InelasticInteraction
{
public:
G4LEAntiXiMinusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEAntiXiMinusInelastic()
{ }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void
Cascade( // derived from CASAL0
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEAntiXiZeroInelastic.hh,v 2.0 1998/07/02 16:28:20 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy AntiXiZero Inelastic Process
// J.L. Chuma, TRIUMF, 19-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEAntiXiZeroInelastic_h
#define G4LEAntiXiZeroInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEAntiXiZeroInelastic : public G4InelasticInteraction
{
public:
G4LEAntiXiZeroInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEAntiXiZeroInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void
Cascade( // derived from CASAL0
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,39 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEDeuteronInelastic.hh,v 2.1 1998/07/13 17:33:50 fjones Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy Deuteron Inelastic Process
// J.L. Chuma, TRIUMF, 25-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEDeuteronInelastic_h
#define G4LEDeuteronInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEDeuteronInelastic : public G4InelasticInteraction
{
public:
G4LEDeuteronInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
// SetMaxEnergy( 100.*MeV ); // NUCREC only worked for energies < 100MeV
// Work around to avoid exception in G4EnergyRangeManager
SetMaxEnergy( 10.*TeV ); // NUCREC only worked for energies < 100MeV
}
~G4LEDeuteronInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEKaonMinusInelastic.hh,v 2.0 1998/07/02 16:28:23 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy KaonMinus Inelastic Process
// J.L. Chuma, TRIUMF, 12-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEKaonMinusInelastic_h
#define G4LEKaonMinusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEKaonMinusInelastic : public G4InelasticInteraction
{
public:
G4LEKaonMinusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEKaonMinusInelastic()
{ }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASKM
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEKaonPlusInelastic.hh,v 2.0 1998/07/02 16:28:24 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy KaonPlus Inelastic Process
// J.L. Chuma, TRIUMF, 12-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEKaonPlusInelastic_h
#define G4LEKaonPlusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEKaonPlusInelastic : public G4InelasticInteraction
{
public:
G4LEKaonPlusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEKaonPlusInelastic()
{ }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASKP
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEKaonZeroLInelastic.hh,v 2.0 1998/07/02 16:28:25 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy KaonZeroL Inelastic Process
// J.L. Chuma, TRIUMF, 12-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEKaonZeroLInelastic_h
#define G4LEKaonZeroLInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEKaonZeroLInelastic : public G4InelasticInteraction
{
public:
G4LEKaonZeroLInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEKaonZeroLInelastic()
{ }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASK0B
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEKaonZeroSInelastic.hh,v 2.0 1998/07/02 16:28:27 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy KaonZeroS Inelastic Process
// J.L. Chuma, TRIUMF, 12-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEKaonZeroSInelastic_h
#define G4LEKaonZeroSInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEKaonZeroSInelastic : public G4InelasticInteraction
{
public:
G4LEKaonZeroSInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEKaonZeroSInelastic()
{ }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASK0
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LELambdaInelastic.hh,v 2.0 1998/07/02 16:28:29 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy Lambda Inelastic Process
// J.L. Chuma, TRIUMF, 18-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LELambdaInelastic_h
#define G4LELambdaInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LELambdaInelastic : public G4InelasticInteraction
{
public:
G4LELambdaInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LELambdaInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void
Cascade( // derived from CASL0
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,45 @@
// Hadronic Process: Low Energy Neutron Inelastic Process
// original by J.L. Chuma, TRIUMF, 04-Feb-1997
#ifndef G4LENeutronInelastic_h
#define G4LENeutronInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LENeutronInelastic : public G4InelasticInteraction
{
public:
G4LENeutronInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LENeutronInelastic()
{ }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASN
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
void SlowNeutron(
const G4DynamicParticle *originalIncident,
G4ReactionProduct &modifiedOriginal,
G4ReactionProduct &targetParticle,
G4Nucleus & targetNucleus );
};
#endif
@@ -0,0 +1,50 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEOmegaMinusInelastic.hh,v 2.0 1998/07/02 16:28:32 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy OmegaMinus Inelastic Process
// J.L. Chuma, TRIUMF, 19-Nov-1996
// Last modified: 27-Mar-1997
#ifndef G4LEOmegaMinusInelastic_h
#define G4LEOmegaMinusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEOmegaMinusInelastic : public G4InelasticInteraction
{
public:
G4LEOmegaMinusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEOmegaMinusInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASOM
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,50 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEPionMinusInelastic.hh,v 2.1 1998/12/01 18:41:03 hpw Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy PionMinus Inelastic Process
// original by J.L. Chuma, TRIUMF, 03-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEPionMinusInelastic_h
#define G4LEPionMinusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEPionMinusInelastic : public G4InelasticInteraction
{
public:
G4LEPionMinusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEPionMinusInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASPIM
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,49 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEPionPlusInelastic.hh,v 2.1 1998/12/01 18:41:04 hpw Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy PionPlus Inelastic Process
// J.L. Chuma, TRIUMF, 19-Nov-1996
// Last modified: 27-Mar-1997
#ifndef G4LEPionPlusInelastic_h
#define G4LEPionPlusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEPionPlusInelastic : public G4InelasticInteraction
{
public:
G4LEPionPlusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEPionPlusInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASPIP
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,55 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEProtonInelastic.hh,v 2.0 1998/07/02 16:28:36 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy Proton Inelastic Process
// original by H.P. Wellisch
// modified by J.L. Chuma, TRIUMF, 19-Nov-1996
// Last modified: 27-Mar-1997
// Modified by J.L.Chuma 8-Jul-97 to implement Nucleus changes
#ifndef G4LEProtonInelastic_h
#define G4LEProtonInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEProtonInelastic : public G4InelasticInteraction
{
public:
G4LEProtonInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEProtonInelastic()
{ }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASP
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
void SlowProton(
const G4DynamicParticle *originalIncident,
G4Nucleus &targetNucleus );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LESigmaMinusInelastic.hh,v 2.0 1998/07/02 16:28:38 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy SigmaMinus Inelastic Process
// original by J.L. Chuma, TRIUMF, 03-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LESigmaMinusInelastic_h
#define G4LESigmaMinusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LESigmaMinusInelastic : public G4InelasticInteraction
{
public:
G4LESigmaMinusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LESigmaMinusInelastic()
{ }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASSM
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,50 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LESigmaPlusInelastic.hh,v 2.0 1998/07/02 16:28:39 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy SigmaPlus Inelastic Process
// original by J.L. Chuma, TRIUMF, 03-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LESigmaPlusInelastic_h
#define G4LESigmaPlusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LESigmaPlusInelastic : public G4InelasticInteraction
{
public:
G4LESigmaPlusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LESigmaPlusInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASSM
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,39 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LETritonInelastic.hh,v 2.1 1998/07/13 17:34:08 fjones Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy Triton Inelastic Process
// J.L. Chuma, TRIUMF, 25-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LETritonInelastic_h
#define G4LETritonInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LETritonInelastic : public G4InelasticInteraction
{
public:
G4LETritonInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
// SetMaxEnergy( 100.*MeV ); // NUCREC only worked for energies < 100MeV
// Work around to avoid exception in G4EnergyRangeManager
SetMaxEnergy( 10.*TeV ); // NUCREC only worked for energies < 100MeV
}
~G4LETritonInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
};
#endif
@@ -0,0 +1,50 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEXiMinusInelastic.hh,v 2.0 1998/07/02 16:28:45 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy XiMinus Inelastic Process
// original by J.L. Chuma, TRIUMF, 03-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEXiMinusInelastic_h
#define G4LEXiMinusInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEXiMinusInelastic : public G4InelasticInteraction
{
public:
G4LEXiMinusInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEXiMinusInelastic() { }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASXM
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,51 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LEXiZeroInelastic.hh,v 2.0 1998/07/02 16:28:46 gunter Exp $
// GEANT4 tag $Name: geant4-00 $
//
// Hadronic Process: Low Energy XiZero Inelastic Process
// original by J.L. Chuma, TRIUMF, 03-Feb-1997
// Last modified: 27-Mar-1997
#ifndef G4LEXiZeroInelastic_h
#define G4LEXiZeroInelastic_h 1
#include "G4InelasticInteraction.hh"
class G4LEXiZeroInelastic : public G4InelasticInteraction
{
public:
G4LEXiZeroInelastic() : G4InelasticInteraction()
{
SetMinEnergy( 0.0 );
SetMaxEnergy( 25.*GeV );
}
~G4LEXiZeroInelastic()
{ }
G4VParticleChange *ApplyYourself( const G4Track &aTrack,
G4Nucleus &targetNucleus );
private:
void Cascade( // derived from CASX0
G4FastVector<G4ReactionProduct,128> &vec,
G4int &vecLen,
const G4DynamicParticle *originalIncident,
G4ReactionProduct &currentParticle,
G4ReactionProduct &targetParticle,
G4bool &incidentHasChanged,
G4bool &targetHasChanged,
G4bool &quasiElastic );
};
#endif
@@ -0,0 +1,74 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LElastic.hh,v 2.1 1998/07/12 03:05:26 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// G4 Model: Low energy elastic scattering -- header file
// F.W. Jones, TRIUMF, 04-JUN-96
//
// For further comments see G4LElastic.cc.
//
// use -scheme for elastic scattering: HPW, 20th June 1997
// most of the code comes from the old Low-energy Elastic class
//
#ifndef G4LElastic_h
#define G4LElastic_h 1
#include <rw/tphdict.h>
#include "globals.hh"
#include "Randomize.hh"
#include "G4Element.hh"
#include "G4ElementVector.hh"
#include "G4ElementTable.hh"
#include "G4PhysicsTable.hh"
#include "G4PhysicsVector.hh"
#include "G4LPhysicsFreeVector.hh"
//#include "G4HadronicCrossSections.hh"
#include "G4LightMedia.hh"
#include "G4Step.hh"
#include "G4TrackStatus.hh"
#include "G4HadronicInteraction.hh"
class G4LElastic : public G4HadronicInteraction
{
public:
G4LElastic() : G4HadronicInteraction()
{
SetMinEnergy( 0.0*GeV );
SetMaxEnergy( DBL_MAX );
}
~G4LElastic() {};
G4VParticleChange* ApplyYourself(const G4Track& aTrack,
G4Nucleus & targetNucleus);
private:
G4LightMedia LightMedia;
G4int Rtmi(G4double* x, G4double xli, G4double xri, G4double eps,
G4int iend,
G4double aa, G4double bb, G4double cc, G4double dd,
G4double rr);
G4double Fctcos(G4double t,
G4double aa, G4double bb, G4double cc, G4double dd,
G4double rr);
void Defs1(G4double p, G4double px, G4double py, G4double pz,
G4double pxinc, G4double pyinc, G4double pzinc,
G4double* pxnew, G4double* pynew, G4double* pznew);
};
#endif
@@ -0,0 +1,61 @@
// This code implementation is the intellectual property of
// the RD44 GEANT4 collaboration.
//
// By copying, distributing or modifying the Program (or any work
// based on the Program) you indicate your acceptance of this statement,
// and all its terms.
//
// $Id: G4LFission.hh,v 2.1 1998/07/12 03:05:27 urbi Exp $
// GEANT4 tag $Name: geant4-00 $
//
//
// G4 Low-energy Model: Fission -- header file
// F.W. Jones, TRIUMF, 03-DEC-96
//
// For further comments see G4LFission.cc.
//
// use -scheme for elastic scattering: HPW, 20th June 1997
// most of the code comes from the old Low-energy Fission class
//
#ifndef G4LFission_h
#define G4LFission_h 1
#include <rw/tphdict.h>
#include "globals.hh"
#include "Randomize.hh"
#include "G4Element.hh"
#include "G4ElementVector.hh"
#include "G4ElementTable.hh"
#include "G4PhysicsTable.hh"
#include "G4PhysicsVector.hh"
#include "G4LPhysicsFreeVector.hh"
#include "G4Proton.hh"
#include "G4Neutron.hh"
#include "G4Electron.hh"
#include "G4Gamma.hh"
#include "G4Step.hh"
#include "G4TrackStatus.hh"
#include "G4HadronicInteraction.hh"
class G4LFission : public G4HadronicInteraction
{
public:
G4LFission();
~G4LFission();
G4VParticleChange* ApplyYourself(const G4Track& aTrack,
G4Nucleus& targetNucleus);
static G4double Atomas(const G4double A, const G4double Z);
private:
void init();
G4double spneut[10];
};
#endif