Import Geant4 10.0.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-10 11:51:14 +02:00
parent e2d2f9810a
commit 286caacf06
12421 changed files with 730077 additions and 502383 deletions
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/DetectorConstruction.hh
/// \brief Definition of the DetectorConstruction class
//
// $Id$
// $Id: DetectorConstruction.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/DetectorMessenger.hh
/// \brief Definition of the DetectorMessenger class
//
// $Id$
// $Id: DetectorMessenger.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/EventAction.hh
/// \brief Definition of the EventAction class
//
// $Id$
// $Id: EventAction.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/EventActionMessenger.hh
/// \brief Definition of the EventActionMessenger class
//
// $Id$
// $Id: EventActionMessenger.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,20 +23,18 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file electromagnetic/TestEm7/include/G4LindhardPartition.hh
/// \brief Definition of the G4LindhardPartition class
//
// $Id$
//
/*
* G4LindhardPartition.hh
* \file electromagnetic/TestEm7/include/G4LindhardPartition.hh
* \brief Definition of the G4LindhardPartition class
*
* Created by Marcus Mendenhall on 1/14/08.
* 2008 Vanderbilt University, Nashville, TN, USA.
*
*/
// $Id: G4LindhardPartition.hh 66586 2012-12-21 10:48:39Z ihrivnac $
//
#include "globals.hh"
class G4Material;
@@ -26,6 +26,8 @@
/// \file electromagnetic/TestEm7/include/G4ScreenedNuclearRecoil.hh
/// \brief Definition of the G4ScreenedNuclearRecoil class
//
// $Id: G4ScreenedNuclearRecoil.hh 66854 2013-01-14 16:56:24Z vnivanch $
//
//
// G4ScreenedNuclearRecoil.hh,v 1.24 2008/05/01 19:58:59 marcus Exp
// GEANT4 tag
@@ -221,7 +223,7 @@ public:
virtual G4bool IsApplicable(const G4ParticleDefinition& aParticleType);
/// \brief Build physics tables in advance. Not Implemented.
/// \param aParticleType the type of particle to build tables for
virtual void BuildPhysicsTable(const G4ParticleDefinition&) { }
virtual void BuildPhysicsTable(const G4ParticleDefinition& aParticleType);
/// \brief Export physics tables for persistency. Not Implemented.
/// \param aParticleType the type of particle to build tables for
virtual void DumpPhysicsTable(const G4ParticleDefinition& aParticleType);
@@ -26,8 +26,7 @@
/// \file electromagnetic/TestEm7/include/PhysListEmStandard.hh
/// \brief Definition of the PhysListEmStandard class
//
//
// $Id$
// $Id: PhysListEmStandard.hh 66586 2012-12-21 10:48:39Z ihrivnac $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/PhysListEmStandardNR.hh
/// \brief Definition of the PhysListEmStandardNR class
//
// $Id$
// $Id: PhysListEmStandardNR.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/PhysListEmStandardSS.hh
/// \brief Definition of the PhysListEmStandardSS class
//
// $Id$
// $Id: PhysListEmStandardSS.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,8 +26,7 @@
/// \file electromagnetic/TestEm7/include/PhysicsList.hh
/// \brief Definition of the PhysicsList class
//
//
// $Id$
// $Id: PhysicsList.hh 66586 2012-12-21 10:48:39Z ihrivnac $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/PhysicsListMessenger.hh
/// \brief Definition of the PhysicsListMessenger class
//
// $Id$
// $Id: PhysicsListMessenger.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/PrimaryGeneratorAction.hh
/// \brief Definition of the PrimaryGeneratorAction class
//
// $Id$
// $Id: PrimaryGeneratorAction.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/PrimaryGeneratorMessenger.hh
/// \brief Definition of the PrimaryGeneratorMessenger class
//
// $Id$
// $Id: PrimaryGeneratorMessenger.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/RunAction.hh
/// \brief Definition of the RunAction class
//
// $Id$
// $Id: RunAction.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/StepMax.hh
/// \brief Definition of the StepMax class
//
// $Id$
// $Id: StepMax.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/StepMaxMessenger.hh
/// \brief Definition of the StepMaxMessenger class
//
// $Id$
// $Id: StepMaxMessenger.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/SteppingAction.hh
/// \brief Definition of the SteppingAction class
//
// $Id$
// $Id: SteppingAction.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,11 +23,12 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file electromagnetic/TestEm7/include/SteppingVerbose.hh
/// \file radioactivedecay/rdecay01/include/SteppingVerbose.hh
/// \brief Definition of the SteppingVerbose class
//
// $Id$
//
// $Id: SteppingVerbose.hh 70906 2013-06-07 10:36:44Z gcosmo $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -44,10 +45,9 @@ public:
SteppingVerbose();
~SteppingVerbose();
virtual void StepInfo();
virtual void TrackingStarted();
virtual void StepInfo();
};
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -26,7 +26,7 @@
/// \file electromagnetic/TestEm7/include/TrackingAction.hh
/// \brief Definition of the TrackingAction class
//
// $Id$
// $Id: TrackingAction.hh 66241 2012-12-13 18:34:42Z gunter $
//
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
@@ -23,19 +23,18 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file electromagnetic/TestEm7/include/c2_factory.hh
/// \brief Definition of the c2_factory class
//
//
/**
* \file
* \brief Provides a factory class to avoid an infinite number of template declarations.
* \file electromagnetic/TestEm7/include/c2_factory.hh
* \brief Provides a factory class to avoid an infinite number of template
* \brief declarations.
*
* \author Created by R. A. Weller and Marcus H. Mendenhall on 7/9/05.
* \author 2005 Vanderbilt University.
*
* \version c2_factory.hh,v 1.13 2008/05/22 12:45:19 marcus Exp
*/
//
// $Id: c2_factory.hh 68263 2013-03-20 10:16:46Z maire $
#ifndef __has_c2_factory_hh
#define __has_c2_factory_hh 1
@@ -49,37 +48,44 @@
/// static c2_factory<double> c2;
/// c2_p f=c2.sin();
/// \endcode
/// \note The factory class doesn't contain any data. It can be statically instantiated at the
/// top of a file, and used everywhere inside, or even instantiated in your project's top-level include
/// file.
/// \note The factory class doesn't contain any data.
/// It can be statically instantiated at the top of a file,
/// and used everywhere inside, or even instantiated in your project's top-level
/// include file.
/// \see c2_math_factory
/// \ingroup factories
template <typename float_type> class c2_factory {
public:
/// make a *new object
static c2_classic_function_p<float_type> &classic_function(float_type (*c_func)(float_type))
static c2_classic_function_p<float_type>
&classic_function(float_type (*c_func)(float_type))
{ return *new c2_classic_function_p<float_type>(c_func); }
/// make a *new object
static c2_plugin_function_p<float_type> &plugin_function()
{ return *new c2_plugin_function_p<float_type>(); }
/// make a *new object
static c2_plugin_function_p<float_type> &plugin_function(c2_function<float_type> &f)
static c2_plugin_function_p<float_type>
&plugin_function(c2_function<float_type> &f)
{ return *new c2_plugin_function_p<float_type>(f); }
/// make a *new object
static c2_const_plugin_function_p<float_type> &const_plugin_function()
{ return *new c2_const_plugin_function_p<float_type>(); }
/// make a *new object
static c2_const_plugin_function_p<float_type> &const_plugin_function(const c2_function<float_type> &f)
static c2_const_plugin_function_p<float_type>
&const_plugin_function(const c2_function<float_type> &f)
{ return *new c2_const_plugin_function_p<float_type>(f); }
/// make a *new object
static c2_scaled_function_p<float_type> &scaled_function(const c2_function<float_type> &outer, float_type scale)
static c2_scaled_function_p<float_type>
&scaled_function(const c2_function<float_type> &outer, float_type scale)
{ return *new c2_scaled_function_p<float_type>(outer, scale); }
/// make a *new object
static c2_cached_function_p<float_type> &cached_function(const c2_function<float_type> &func)
static c2_cached_function_p<float_type>
&cached_function(const c2_function<float_type> &func)
{ return *new c2_cached_function_p<float_type>(func); }
/// make a *new object
static c2_constant_p<float_type> &constant(float_type x) { return *new c2_constant_p<float_type>(x); }
static c2_constant_p<float_type>
&constant(float_type x) { return *new c2_constant_p<float_type>(x); }
/// make a *new object
static interpolating_function_p<float_type> &
interpolating_function()
@@ -87,29 +93,31 @@ static interpolating_function_p<float_type> &
/// make a *new object
static lin_log_interpolating_function_p<float_type> &
lin_log_interpolating_function()
{ return *new lin_log_interpolating_function_p<float_type>(); }
{return *new lin_log_interpolating_function_p<float_type>(); }
/// make a *new object
static log_lin_interpolating_function_p<float_type> &
log_lin_interpolating_function()
{ return *new log_lin_interpolating_function_p<float_type>(); }
{return *new log_lin_interpolating_function_p<float_type>(); }
/// make a *new object
static log_log_interpolating_function_p<float_type> &
log_log_interpolating_function()
{ return *new log_log_interpolating_function_p<float_type>(); }
{return *new log_log_interpolating_function_p<float_type>(); }
/// make a *new object
static arrhenius_interpolating_function_p<float_type> &
arrhenius_interpolating_function()
{ return *new arrhenius_interpolating_function_p<float_type>(); }
{return *new arrhenius_interpolating_function_p<float_type>(); }
/// make a *new object
static c2_connector_function_p<float_type> &connector_function(
float_type x0, const c2_function<float_type> &f0, float_type x2, const c2_function<float_type> &f2,
bool auto_center, float_type y1)
{ return *new c2_connector_function_p<float_type>(x0, f0, x2, f2, auto_center, y1); }
float_type x0, const c2_function<float_type> &f0, float_type x2,
const c2_function<float_type> &f2, bool auto_center, float_type y1)
{return *new c2_connector_function_p<float_type>(x0, f0, x2, f2,
auto_center, y1); }
/// make a *new object
static c2_connector_function_p<float_type> &connector_function(
const c2_fblock<float_type> &fb0, const c2_fblock<float_type> &fb2,
bool auto_center, float_type y1)
{ return *new c2_connector_function_p<float_type>(fb0, fb2, auto_center, y1); }
{ return *new c2_connector_function_p<float_type>(fb0, fb2,
auto_center, y1); }
/// make a *new object
static c2_connector_function_p<float_type> &connector_function(
float_type x0, float_type y0, float_type yp0, float_type ypp0,
@@ -136,40 +144,49 @@ static c2_sqrt_p<float_type> &sqrt() { return *new c2_sqrt_p<float_type>(); }
static c2_recip_p<float_type> &recip(float_type scale=1)
{ return *new c2_recip_p<float_type>(scale); }
/// make a *new object
static c2_identity_p<float_type> &identity() { return *new c2_identity_p<float_type>(); }
static c2_identity_p<float_type> &identity()
{ return *new c2_identity_p<float_type>(); }
/// make a *new object
static c2_linear_p<float_type> &linear(float_type x0, float_type y0, float_type slope)
static c2_linear_p<float_type>
&linear(float_type x0, float_type y0, float_type slope)
{ return *new c2_linear_p<float_type>(x0, y0, slope); }
/// make a *new object
static c2_quadratic_p<float_type> &quadratic(
float_type x0, float_type y0, float_type xcoef, float_type x2coef)
{ return *new c2_quadratic_p<float_type>(x0, y0, xcoef, x2coef); }
float_type x0, float_type y0, float_type xcoef, float_type x2coef)
{ return *new c2_quadratic_p<float_type>(x0, y0, xcoef, x2coef); }
/// make a *new object
static c2_power_law_p<float_type> &power_law(float_type scale, float_type power)
static c2_power_law_p<float_type> &power_law(float_type scale, float_type power)
{ return *new c2_power_law_p<float_type>(scale, power); }
/// make a *new object
static c2_inverse_function_p<float_type> &inverse_function(const c2_function<float_type> &source)
static c2_inverse_function_p<float_type>
&inverse_function(const c2_function<float_type> &source)
{ return *new c2_inverse_function_p<float_type>(source); }
#if 0
/// \brief handle template for inverse_integrated_density_bins<float_type, Final<float_type> >(bincenters, binheights)
/// \brief handle template for inverse_integrated_density_bins
/// \brief <float_type, Final<float_type> >(bincenters, binheights)
template <template <typename f_t> class Final >
static interpolating_function_p<float_type> & inverse_integrated_density_bins(
const std::vector<float_type> &bincenters, const std::vector<float_type> &binheights)
static interpolating_function_p<float_type>
& inverse_integrated_density_bins(const std::vector<float_type> &bincenters,
const std::vector<float_type> &binheights)
throw(c2_exception)
{
return ::inverse_integrated_density_bins<float_type, Final<float_type> >
{
return ::inverse_integrated_density_bins<float_type, Final<float_type> >
(bincenters, binheights);
}
/// \brief handle template for inverse_integrated_density_function<float_type, Final<float_type> >(bincenters, binheights)
}
/// \brief handle template for inverse_integrated_density_function
/// \brief <float_type, Final<float_type> >(bincenters, binheights)
template <template <typename f_t> class Final >
static interpolating_function_p<float_type> & inverse_integrated_density_function(
const std::vector<float_type> &bincenters, const c2_function<float_type> &binheights)
static interpolating_function_p<float_type>
& inverse_integrated_density_function(
const std::vector<float_type> &bincenters,
const c2_function<float_type> &binheights)
throw(c2_exception)
{
return ::inverse_integrated_density_function<float_type, Final<float_type> >
{
return ::inverse_integrated_density_function<float_type,
Final<float_type> >
(bincenters, binheights);
}
}
#endif
};
@@ -23,12 +23,8 @@
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
/// \file electromagnetic/TestEm7/include/c2_function.hh
/// \brief Definition of the c2_function class
//
//
/**
* \file
* \file electromagnetic/TestEm7/include/c2_function.hh
* \brief Provides the headers for the general c2_function algebra which supports
* fast, flexible operations on piecewise-twice-differentiable functions
*
@@ -39,6 +35,9 @@
* \see \ref c2_factory "Factory Functions" for information on constructing things in here
*/
//
// $Id: c2_function.hh 66587 2012-12-21 11:06:44Z ihrivnac $
#ifndef __has_c2_function_hh
#define __has_c2_function_hh 1
@@ -1701,8 +1700,8 @@ public:
virtual float_type value_with_derivatives(float_type x, float_type *yprime, float_type *yprime2) const throw(c2_exception)
{
float_type c=std::cos(x), s=std::sin(x);
float_type t=s/c;
float_type c=std::cos(x), ss=std::sin(x);
float_type t=ss/c;
float_type yp=1/(c*c);
if(yprime) *yprime=yp; if(yprime2) *yprime2=2*t*yp;
return t;
@@ -25,7 +25,7 @@
//
//
/**
* \file
* \file electromagnetic/TestEm7/include/c2_function.icc
* \brief Provides code for the general c2_function algebra which supports
* fast, flexible operations on piecewise-twice-differentiable functions
*
@@ -34,6 +34,9 @@
*
* \version c2_function.cc 488 2012-04-04 11:30:21Z marcus
*/
// $Id$
//
#include <iostream>
#include <vector>
@@ -1159,8 +1162,8 @@ template <typename float_type> accumulated_histogram<float_type>::accumulated_hi
for(unsigned int i=0; i<cum.size(); i++) cum[i]*=-1; // flip sign on reversed data
}
if(normalize) {
float_type m=1.0/std::max(cum[0], cum[np]);
for(int i=0; i<=np; i++) cum[i]*=m;
float_type mmm=1.0/std::max(cum[0], cum[np]);
for(int i=0; i<=np; i++) cum[i]*=mmm;
}
if(inverse_function) interpolating_function_p<float_type>(cum, be); // use cum as x axis in inverse function
else interpolating_function_p<float_type>(be, cum); // else use lower bin edge as x axis