Import Geant4 6.2.0 source tree
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// * *
|
||||
// * Parts of this code which have been developed by QinetiQ Ltd *
|
||||
// * under contract to the European Space Agency (ESA) are the *
|
||||
// * intellectual property of ESA. Rights to use, copy, modify and *
|
||||
// * redistribute this software for general public use are granted *
|
||||
// * in compliance with any licensing, distribution and development *
|
||||
// * policy adopted by the Geant4 Collaboration. This code has been *
|
||||
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
|
||||
// * contract 17191/03/NL/LvH (Aurora Programme). *
|
||||
// * *
|
||||
// * 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 G4EMDissociationCrossSection_h
|
||||
#define G4EMDissociationCrossSection_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4EMDissociationCrossSection.hh
|
||||
//
|
||||
// Version: B.1
|
||||
// Date: 15/04/04
|
||||
// Author: P R Truscott
|
||||
// Organisation: QinetiQ Ltd, UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 17191/03/NL/LvH
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 17 October 2003, P R Truscott, QinetiQ Ltd, UK
|
||||
// Created.
|
||||
//
|
||||
// 15 March 2004, P R Truscott, QinetiQ Ltd, UK
|
||||
// Beta release
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "G4VCrossSectionDataSet.hh"
|
||||
#include "G4DynamicParticle.hh"
|
||||
#include "G4Element.hh"
|
||||
#include "G4ParticleDefinition.hh"
|
||||
#include "G4EMDissociationSpectrum.hh"
|
||||
#include "G4PhysicsFreeVector.hh"
|
||||
#include "globals.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4EMDissociationCrossSection : public G4VCrossSectionDataSet
|
||||
{
|
||||
public:
|
||||
G4EMDissociationCrossSection ();
|
||||
~G4EMDissociationCrossSection ();
|
||||
|
||||
virtual G4bool IsApplicable (const G4DynamicParticle *, const G4Element *);
|
||||
|
||||
virtual G4double GetCrossSection (const G4DynamicParticle *,
|
||||
const G4Element *, G4double);
|
||||
|
||||
G4PhysicsFreeVector *GetCrossSectionForProjectile
|
||||
(G4double, G4double, G4double, G4double, G4double, G4double);
|
||||
G4PhysicsFreeVector *GetCrossSectionForTarget
|
||||
(G4double, G4double, G4double, G4double, G4double, G4double);
|
||||
G4double GetWilsonProbabilityForProtonDissociation
|
||||
(G4double, G4double);
|
||||
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
|
||||
{}
|
||||
virtual void DumpPhysicsTable (const G4ParticleDefinition &)
|
||||
{G4cout << "G4EMDissociationCrossSection: uses formula" <<G4endl;}
|
||||
|
||||
private:
|
||||
|
||||
private:
|
||||
G4EMDissociationSpectrum *thePhotonSpectrum;
|
||||
G4double r0;
|
||||
G4double J;
|
||||
G4double Qprime;
|
||||
G4double epsilon;
|
||||
G4double xd;
|
||||
};
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#endif
|
||||
@@ -0,0 +1,79 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// * *
|
||||
// * Parts of this code which have been developed by QinetiQ Ltd *
|
||||
// * under contract to the European Space Agency (ESA) are the *
|
||||
// * intellectual property of ESA. Rights to use, copy, modify and *
|
||||
// * redistribute this software for general public use are granted *
|
||||
// * in compliance with any licensing, distribution and development *
|
||||
// * policy adopted by the Geant4 Collaboration. This code has been *
|
||||
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
|
||||
// * contract 17191/03/NL/LvH (Aurora Programme). *
|
||||
// * *
|
||||
// * 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 G4EMDissociationSpectrum_h
|
||||
#define G4EMDissociationSpectrum_h 1
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4EMDissociationSpectrum.hh
|
||||
//
|
||||
// Version: B.1
|
||||
// Date: 15/04/04
|
||||
// Author: P R Truscott
|
||||
// Organisation: QinetiQ Ltd, UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 17191/03/NL/LvH
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 6 October 2003, P R Truscott, QinetiQ Ltd, UK
|
||||
// Created.
|
||||
//
|
||||
// 15 March 2004, P R Truscott, QinetiQ Ltd, UK
|
||||
// Beta release
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "G4Bessel.hh"
|
||||
#include "globals.hh"
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4EMDissociationSpectrum
|
||||
{
|
||||
public:
|
||||
G4EMDissociationSpectrum ();
|
||||
~G4EMDissociationSpectrum ();
|
||||
G4double GetGeneralE1Spectrum (G4double, G4double, G4double);
|
||||
G4double GetGeneralE2Spectrum (G4double, G4double, G4double);
|
||||
G4double GetClosestApproach
|
||||
(const G4double, const G4double, G4double, G4double, G4double);
|
||||
|
||||
private:
|
||||
G4Bessel *bessel;
|
||||
};
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#endif
|
||||
@@ -0,0 +1,109 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// * *
|
||||
// * Parts of this code which have been developed by QinetiQ Ltd *
|
||||
// * under contract to the European Space Agency (ESA) are the *
|
||||
// * intellectual property of ESA. Rights to use, copy, modify and *
|
||||
// * redistribute this software for general public use are granted *
|
||||
// * in compliance with any licensing, distribution and development *
|
||||
// * policy adopted by the Geant4 Collaboration. This code has been *
|
||||
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
|
||||
// * contract 17191/03/NL/LvH (Aurora Programme). *
|
||||
// * *
|
||||
// * 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 G4GeneralSpaceNNCrossSection_h
|
||||
#define G4GeneralSpaceNNCrossSection_h
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4TESAGeneralNNCrossSection.hh
|
||||
//
|
||||
// Version: B.1
|
||||
// Date: 15/04/04
|
||||
// Author: P R Truscott
|
||||
// Organisation: QinetiQ Ltd, UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 17191/03/NL/LvH
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 6 October 2003, P R Truscott, QinetiQ Ltd, UK
|
||||
// Created.
|
||||
//
|
||||
// 15 March 2004, P R Truscott, QinetiQ Ltd, UK
|
||||
// Beta release
|
||||
//
|
||||
// 4 June 2004, J.P. Wellisch, CERN
|
||||
// trivial porting issue to windows.
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// Class Description
|
||||
//
|
||||
//
|
||||
// Class Description - End
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "G4VCrossSectionDataSet.hh"
|
||||
#include "G4ProtonInelasticCrossSection.hh"
|
||||
#include <iostream>
|
||||
#include "G4IonProtonCrossSection.hh"
|
||||
#include "G4TripathiLightCrossSection.hh"
|
||||
#include "G4TripathiCrossSection.hh"
|
||||
#include "G4IonsShenCrossSection.hh"
|
||||
#include "globals.hh"
|
||||
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4GeneralSpaceNNCrossSection : public G4VCrossSectionDataSet
|
||||
{
|
||||
public:
|
||||
G4GeneralSpaceNNCrossSection ();
|
||||
~G4GeneralSpaceNNCrossSection ();
|
||||
|
||||
virtual G4bool IsApplicable(const G4DynamicParticle* theProjectile,
|
||||
const G4Element* theTarget);
|
||||
|
||||
virtual G4double GetCrossSection(const G4DynamicParticle* theProjectile,
|
||||
const G4Element* theTarget, G4double theTemperature);
|
||||
|
||||
virtual void BuildPhysicsTable(const G4ParticleDefinition&)
|
||||
{;}
|
||||
|
||||
virtual void DumpPhysicsTable(const G4ParticleDefinition&)
|
||||
{G4cout << "G4GeneralSpaceNNCrossSection: uses formula"<<G4endl;}
|
||||
|
||||
private:
|
||||
|
||||
G4ProtonInelasticCrossSection *protonInelastic;
|
||||
G4IonProtonCrossSection *ionProton;
|
||||
G4TripathiLightCrossSection *TripathiLight;
|
||||
G4TripathiCrossSection *TripathiGeneral;
|
||||
G4IonsShenCrossSection *Shen;
|
||||
};
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#endif
|
||||
@@ -52,7 +52,7 @@ class G4IonProtonCrossSection : public G4VCrossSectionDataSet
|
||||
|
||||
virtual
|
||||
G4double GetCrossSection(const G4DynamicParticle* aPart,
|
||||
const G4Element*anEle, G4double aTemperature)
|
||||
const G4Element*, G4double )
|
||||
{
|
||||
G4ProtonInelasticCrossSection theForward;
|
||||
G4double result = theForward.GetCrossSection(aPart->GetKineticEnergy(),
|
||||
@@ -67,7 +67,7 @@ class G4IonProtonCrossSection : public G4VCrossSectionDataSet
|
||||
|
||||
virtual
|
||||
void DumpPhysicsTable(const G4ParticleDefinition&)
|
||||
{G4cout << "G4IonProtonCrossSection: uses formula"<<endl;}
|
||||
{G4cout << "G4IonProtonCrossSection: uses formula"<<G4endl;}
|
||||
|
||||
};
|
||||
|
||||
|
||||
@@ -29,6 +29,7 @@
|
||||
#include "G4PionMinus.hh"
|
||||
#include "G4PionPlus.hh"
|
||||
#include "G4PiData.hh"
|
||||
#include "G4HadTmpUtil.hh"
|
||||
|
||||
class G4PiNuclearCrossSection : public G4VCrossSectionDataSet
|
||||
{
|
||||
@@ -41,7 +42,7 @@ class G4PiNuclearCrossSection : public G4VCrossSectionDataSet
|
||||
G4bool result = false;
|
||||
if(aParticle->GetDefinition() == G4PionMinus::PionMinus()) result=true;
|
||||
if(aParticle->GetDefinition() == G4PionPlus::PionPlus()) result=true;
|
||||
if(anElement->GetZ() == 1) result = false;
|
||||
if(G4lrint(anElement->GetZ()) == 1) result = false;
|
||||
if(aParticle->GetKineticEnergy() > 999.9*GeV) result=false;
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,101 @@
|
||||
//
|
||||
// ********************************************************************
|
||||
// * 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. *
|
||||
// * *
|
||||
// * Parts of this code which have been developed by QinetiQ Ltd *
|
||||
// * under contract to the European Space Agency (ESA) are the *
|
||||
// * intellectual property of ESA. Rights to use, copy, modify and *
|
||||
// * redistribute this software for general public use are granted *
|
||||
// * in compliance with any licensing, distribution and development *
|
||||
// * policy adopted by the Geant4 Collaboration. This code has been *
|
||||
// * written by QinetiQ Ltd for the European Space Agency, under ESA *
|
||||
// * contract 17191/03/NL/LvH (Aurora Programme). *
|
||||
// * *
|
||||
// * 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 G4TripathiLightCrossSection_h
|
||||
#define G4TripathiLightCrossSection_h
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// MODULE: G4TripathiLightCrossSection.hh
|
||||
//
|
||||
// Version: B.1
|
||||
// Date: 15/04/04
|
||||
// Author: P R Truscott
|
||||
// Organisation: QinetiQ Ltd, UK
|
||||
// Customer: ESA/ESTEC, NOORDWIJK
|
||||
// Contract: 17191/03/NL/LvH
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// CHANGE HISTORY
|
||||
// --------------
|
||||
//
|
||||
// 6 October 2003, P R Truscott, QinetiQ Ltd, UK
|
||||
// Created.
|
||||
//
|
||||
// 15 March 2004, P R Truscott, QinetiQ Ltd, UK
|
||||
// Beta release
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
//
|
||||
// Class Description
|
||||
// Implementation of formulas of Tripathi, Cucinotta and Wilson, NASA Technical
|
||||
// Paper TP-1999-209726 to calculate cross-sections for nuclear-nuclear
|
||||
// inelastic scattering for light nuclear systems.
|
||||
//
|
||||
// Class Description - End
|
||||
//
|
||||
// %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#include "globals.hh"
|
||||
|
||||
#include "G4VCrossSectionDataSet.hh"
|
||||
#include "G4WilsonRadius.hh"
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
class G4TripathiLightCrossSection : public G4VCrossSectionDataSet
|
||||
{
|
||||
public:
|
||||
G4TripathiLightCrossSection();
|
||||
~G4TripathiLightCrossSection();
|
||||
virtual G4bool IsApplicable(const G4DynamicParticle* theProjectile,
|
||||
const G4Element* theTarget);
|
||||
|
||||
virtual G4double GetCrossSection(const G4DynamicParticle* theProjectile,
|
||||
const G4Element* theTarget, G4double theTemperature);
|
||||
|
||||
virtual void BuildPhysicsTable(const G4ParticleDefinition&)
|
||||
{}
|
||||
|
||||
virtual void DumpPhysicsTable(const G4ParticleDefinition&)
|
||||
{G4cout << "G4TripathiLightCrossSection: uses formula"<<G4endl;}
|
||||
void SetLowEnergyCheck (G4bool);
|
||||
|
||||
private:
|
||||
G4WilsonRadius *theWilsonRadius;
|
||||
G4double r_0;
|
||||
G4double third;
|
||||
G4bool lowEnergyCheck;
|
||||
};
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
#endif
|
||||
Reference in New Issue
Block a user