Import Geant4 4.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-08 16:18:25 +02:00
parent 36c080dca6
commit 921d3b1cda
3990 changed files with 185376 additions and 82884 deletions
@@ -0,0 +1,55 @@
//
// ********************************************************************
// * 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 *
// * authors in 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. *
// ********************************************************************
//
//
// Implementation of the HETC88 code into Geant4.
// Evaporation and De-excitation parts
// T. Lampen, Helsinki Institute of Physics, May-2000
#ifndef G4BEChargedChannel_h
#define G4BEChargedChannel_h 1
#include "globals.hh"
#include "G4BertiniEvaporationChannel.hh"
#include "Randomize.hh"
class G4BEChargedChannel : public G4BertiniEvaporationChannel
{
public:
G4BEChargedChannel();
virtual ~G4BEChargedChannel();
virtual void calculateProbability();
virtual G4DynamicParticle * emit() = 0;
virtual G4double coulombFactor() = 0;
G4double coulombFactorForProton();
G4double qmFactorForProton();
G4double qmFactorForAlpha();
G4double sampleKineticEnergy();
protected:
G4double A;
G4double spin;
};
#endif
@@ -0,0 +1,48 @@
//
// ********************************************************************
// * 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 *
// * authors in 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. *
// ********************************************************************
//
//
// Implementation of the HETC88 code into Geant4.
// Evaporation and De-excitation parts
// T. Lampen, Helsinki Institute of Physics, May-2000
#ifndef G4BEDeuteronChannel_h
#define G4BEDeuteronChannel_h 1
#include "G4BEChargedChannel.hh"
class G4BEDeuteronChannel : public G4BEChargedChannel
{
public:
G4BEDeuteronChannel();
virtual ~G4BEDeuteronChannel();
G4DynamicParticle * emit();
G4double constant();
virtual G4double coulombFactor();
virtual G4double qmFactor( );
private:
};
#endif
@@ -0,0 +1,59 @@
//
// ********************************************************************
// * 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 *
// * authors in 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. *
// ********************************************************************
//
//
// Implementation of the HETC88 code into Geant4.
// Evaporation and De-excitation parts
// T. Lampen, Helsinki Institute of Physics, May-2000
#ifndef G4BEGammaDeexcitation_h
#define G4BEGammaDeexcitation_h 1
#include "globals.hh"
class G4BEGammaDeexcitation
{
public:
G4BEGammaDeexcitation();
virtual ~G4BEGammaDeexcitation();
void setVerboseLevel( G4int verbose );
void setNucleusA( G4int inputA );
void setNucleusZ( G4int inputZ );
void setExcitationEnergy( G4double inputE );
G4DynamicParticle * emit();
private:
G4double sampleKineticEnergy();
G4int verboseLevel;
G4int nucleusA;
G4int nucleusZ;
G4double excitationEnergy;
void isotropicCosines( G4double&,
G4double&,
G4double& );
};
#endif
@@ -0,0 +1,48 @@
//
// ********************************************************************
// * 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 *
// * authors in 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. *
// ********************************************************************
//
//
// Implementation of the HETC88 code into Geant4.
// Evaporation and De-excitation parts
// T. Lampen, Helsinki Institute of Physics, May-2000
#ifndef G4BEHe3Channel_h
#define G4BEHe3Channel_h 1
#include "G4BEChargedChannel.hh"
class G4BEHe3Channel : public G4BEChargedChannel
{
public:
G4BEHe3Channel();
virtual ~G4BEHe3Channel();
G4DynamicParticle * emit();
G4double constant();
virtual G4double coulombFactor();
virtual G4double qmFactor( );
private:
};
#endif
@@ -0,0 +1,48 @@
//
// ********************************************************************
// * 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 *
// * authors in 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. *
// ********************************************************************
//
//
// Implementation of the HETC88 code into Geant4.
// Evaporation and De-excitation parts
// T. Lampen, Helsinki Institute of Physics, May-2000
#ifndef G4BEHe4Channel_h
#define G4BEHe4Channel_h 1
#include "G4BEChargedChannel.hh"
class G4BEHe4Channel : public G4BEChargedChannel
{
public:
G4BEHe4Channel();
virtual ~G4BEHe4Channel();
G4DynamicParticle * emit();
G4double constant();
virtual G4double coulombFactor();
virtual G4double qmFactor( );
private:
};
#endif
@@ -0,0 +1,50 @@
//
// ********************************************************************
// * 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 *
// * authors in 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. *
// ********************************************************************
//
//
// Implementation of the HETC88 code into Geant4.
// Evaporation and De-excitation parts
// T. Lampen, Helsinki Institute of Physics, May-2000
#ifndef G4BENeutronChannel_h
#define G4BENeutronChannel_h 1
#include "globals.hh"
#include "G4BertiniEvaporationChannel.hh"
class G4BENeutronChannel : public G4BertiniEvaporationChannel
{
public:
G4BENeutronChannel();
virtual ~G4BENeutronChannel();
virtual void calculateProbability();
G4DynamicParticle * emit();
G4double sampleKineticEnergy();
private:
G4double alpha();
G4double beta();
};
#endif
@@ -0,0 +1,48 @@
//
// ********************************************************************
// * 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 *
// * authors in 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. *
// ********************************************************************
//
//
// Implementation of the HETC88 code into Geant4.
// Evaporation and De-excitation parts
// T. Lampen, Helsinki Institute of Physics, 30-May-2000
#ifndef G4BEProtonChannel_h
#define G4BEProtonChannel_h 1
#include "G4BEChargedChannel.hh"
class G4BEProtonChannel : public G4BEChargedChannel
{
public:
G4BEProtonChannel();
virtual ~G4BEProtonChannel();
G4DynamicParticle * emit();
G4double constant();
virtual G4double coulombFactor();
virtual G4double qmFactor( );
private:
};
#endif
@@ -0,0 +1,48 @@
//
// ********************************************************************
// * 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 *
// * authors in 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. *
// ********************************************************************
//
//
// Implementation of the HETC88 code into Geant4.
// Evaporation and De-excitation parts
// T. Lampen, Helsinki Institute of Physics, May-2000
#ifndef G4BETritonChannel_h
#define G4BETritonChannel_h 1
#include "G4BEChargedChannel.hh"
class G4BETritonChannel : public G4BEChargedChannel
{
public:
G4BETritonChannel();
virtual ~G4BETritonChannel();
G4DynamicParticle * emit();
G4double constant();
virtual G4double coulombFactor();
virtual G4double qmFactor( );
private:
};
#endif
@@ -0,0 +1,65 @@
//
// ********************************************************************
// * 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 *
// * authors in 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. *
// ********************************************************************
//
//
// Implementation of the HETC88 code into Geant4.
// Evaporation and De-excitation parts
// T. Lampen, Helsinki Institute of Physics, May-2000
#ifndef G4BertiniEvaporation_h
#define G4BertiniEvaporation_h 1
#include "globals.hh"
#include "G4LayeredNucleus.hh"
#include "G4BertiniEvaporationChannel.hh"
#include "G4ParticleChange.hh"
#include "G4VEvaporation.hh"
class G4BertiniEvaporation : public G4VEvaporation
{
public:
G4BertiniEvaporation();
~G4BertiniEvaporation();
virtual G4FragmentVector * BreakItUp(const G4Fragment &theNucleus)
{
G4LayeredNucleus aNuc( theNucleus.GetA(), theNucleus.GetZ() );
aNuc.AddExcitationEnergy(theNucleus.GetExcitationEnergy());
return BreakItUp(aNuc);
}
G4FragmentVector * BreakItUp( G4LayeredNucleus & nucleus);
void setVerboseLevel( const G4int verbose );
private:
G4int verboseLevel;
G4std::vector< G4BertiniEvaporationChannel * > channelVector;
void fillResult( G4std::vector< G4DynamicParticle * > secondaryParticleVector,
G4FragmentVector * aResult );
void splitBe8( const G4double E,
const G4ThreeVector boost,
G4std::vector< G4DynamicParticle * > & secondaryParticleVector);
void isotropicCosines( G4double & u, G4double & v,G4double & w );
};
#endif
@@ -0,0 +1,88 @@
//
// ********************************************************************
// * 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 *
// * authors in 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. *
// ********************************************************************
//
//
// Implementation of the HETC88 code into Geant4.
// Evaporation and De-excitation parts
// T. Lampen, Helsinki Institute of Physics, May-2000
#ifndef G4BertiniEvaporationChannel_h
#define G4BertiniEvaporationChannel_h 1
#include "globals.hh"
#include "G4DynamicParticle.hh"
#include "G4NucleiProperties.hh"
class G4BertiniEvaporationChannel
{
public:
G4BertiniEvaporationChannel();
virtual ~G4BertiniEvaporationChannel();
void setVerboseLevel( G4int verbose );
void setNucleusA( G4int inputA );
void setNucleusZ( G4int inputZ );
G4int getParticleA();
G4int getParticleZ();
void setExcitationEnergy( G4double inputE );
void setQ( G4double inputQ );
void setPairingCorrection( G4int isCorrection );
G4double getLevelDensityParameter();
G4String getName();
virtual G4double getProbability() ;
virtual void setProbability( G4double newProb ) ;
virtual void calculateProbability() = 0 ;
virtual G4double qmFactor ();
virtual G4double getQ();
virtual G4double getCoulomb();
virtual G4double getThresh();
virtual G4DynamicParticle* emit() = 0;
protected:
G4String name;
G4int verboseLevel;
G4int nucleusA;
G4int nucleusZ;
G4int particleA;
G4int particleZ;
G4double exmass;
G4double emissionProbability;
G4double rho;
G4double correction;
G4double excitationEnergy;
// G4int massInNeutronMasses;
G4int spin;
G4double Q( G4double a, G4double z );
G4double pairingEnergyProtons( G4int A );
G4double pairingEnergyNeutrons( G4int N );
G4double cameron( G4double a, G4double z );
G4double cameronShellCorrectionP( G4int Z );
G4double cameronShellCorrectionN( G4int N );
void isotropicCosines( G4double&,
G4double&,
G4double& );
};
#endif