Import Geant4 8.1.0 source tree

This commit is contained in:
Gabriele Cosmo
2016-06-09 14:44:26 +02:00
parent 8a51e0bc40
commit 216a75eeb1
8717 changed files with 360418 additions and 141343 deletions
@@ -0,0 +1,30 @@
# $Id: GNUmakefile,v 1.2 2006/04/25 07:54:28 kmura Exp $
# ===========================================================
# Makefile for building Python module with Boost.Python
#
# ===========================================================
include ../../config/config.gmk
# python module name
MODULE := test04#
# location of exposured library
G4PY_EXLIB_ROOT := ./mylib
G4PY_EXLIB_INCDIR := $(G4PY_EXLIB_ROOT)
G4PY_EXLIB_LIBDIR := $(G4PY_EXLIB_ROOT)
G4PY_EXLIB_LIBNAME := XXX
COMPILE_WITH_BOOST := true
include $(G4PY_INSTALL)/config/module.gmk
.PHONY: all mylib cleanall
all : cleanall mylib module
mylib :
@cd $(G4PY_EXLIB_ROOT) && $(MAKE)
cleanall: clean
@cd $(G4PY_EXLIB_ROOT) && $(MAKE) clean
@@ -0,0 +1,11 @@
# $Id: GNUmakefile,v 1.2 2006/04/25 07:54:28 kmura Exp $
# ===========================================================
# Makefile for building local library
#
# ===========================================================
include ../../../config/config.gmk
MODULE := libXXX
include $(G4PY_INSTALL)/config/mylib.gmk
@@ -0,0 +1,58 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: Step.cc,v 1.4 2006/06/29 15:38:29 gunter Exp $
// ====================================================================
// Step.cc
//
// 2005 Q
// ====================================================================
#include "Step.hh"
#include <iostream>
// ====================================================================
//
// class description
//
// ====================================================================
////////////
Step::Step()
: x(0)
////////////
{
std::cout << "Step is created. @"
<< this << std::endl;
}
/////////////
Step::~Step()
/////////////
{
std::cout << "Step is deleted. @"
<< this << std::endl;
}
@@ -0,0 +1,60 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: Step.hh,v 1.4 2006/06/29 15:38:32 gunter Exp $
// ====================================================================
// Step.hh
//
// 2004 Q
// ====================================================================
#ifndef STEP_H
#define STEP_H
// ====================================================================
//
// class definition
//
// ====================================================================
class Step {
private:
double x;
public:
Step();
~Step();
void SetX(double x0);
double GetX() const;
};
// ====================================================================
// inline functions
// ====================================================================
inline void Step::SetX(double x0) { x= x0; }
inline double Step::GetX() const { return x; }
#endif
@@ -0,0 +1,96 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: Track.cc,v 1.4 2006/06/29 15:38:35 gunter Exp $
// ====================================================================
// Track.cc
//
// 2005 Q
// ====================================================================
#include "Track.hh"
#include "Step.hh"
#include <iostream>
// ====================================================================
//
// class description
//
// ====================================================================
//////////////
Track::Track()
//////////////
{
std::cout << "Track is created. @"
<< this << std::endl;
step= new Step();
}
///////////////
Track::~Track()
///////////////
{
std::cout << "Track is deleted. @"
<< this << std::endl;
delete step;
}
//////////////////////////////////
const Step* Track::GetStep() const
//////////////////////////////////
{
return step;
}
///////////////////////////////////
const Step* Track::GetStep1() const
///////////////////////////////////
{
return GetStep();
}
///////////////////////////////////
const Step* Track::GetStep2() const
///////////////////////////////////
{
return GetStep();
}
///////////////////////////////////
const Step* Track::GetStep3() const
///////////////////////////////////
{
return GetStep();
}
///////////////////////////////////
const Step* Track::GetStep4() const
///////////////////////////////////
{
return GetStep();
}
@@ -0,0 +1,59 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: Track.hh,v 1.4 2006/06/29 15:38:38 gunter Exp $
// ====================================================================
// Track.hh
//
// 2005 Q
// ====================================================================
#ifndef TRACK_H
#define TRACK_H
// ====================================================================
//
// class definition
//
// ====================================================================
class Step;
class Track {
private:
Step* step;
public:
Track();
~Track();
const Step* GetStep() const;
const Step* GetStep1() const;
const Step* GetStep2() const;
const Step* GetStep3() const;
const Step* GetStep4() const;
};
#endif
+58
View File
@@ -0,0 +1,58 @@
//
// ********************************************************************
// * License and Disclaimer *
// * *
// * The Geant4 software is copyright of the Copyright Holders of *
// * the Geant4 Collaboration. It is provided under the terms and *
// * conditions of the Geant4 Software License, included in the file *
// * LICENSE and available at http://cern.ch/geant4/license . These *
// * include a list of copyright holders. *
// * *
// * 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. Please see the license in the file LICENSE and URL above *
// * for the full disclaimer and the limitation of liability. *
// * *
// * This code implementation is the result of the scientific and *
// * technical work of the GEANT4 collaboration. *
// * By using, copying, modifying or distributing the software (or *
// * any work based on the software) you agree to acknowledge its *
// * use in resulting scientific publications, and indicate your *
// * acceptance of all terms of the Geant4 Software license. *
// ********************************************************************
//
// $Id: test04.cc,v 1.4 2006/06/29 15:38:26 gunter Exp $
// ====================================================================
// test04.cc
//
// test of "Call Policies"
//
// 2005 Q
// ====================================================================
#include <boost/python.hpp>
#include "Step.hh"
#include "Track.hh"
using namespace boost::python;
BOOST_PYTHON_MODULE(test04) {
class_<Step>( "Step", "step class")
.def(init<>())
.add_property("x", &Step::GetX, &Step::SetX)
;
class_<Track>( "Track", "track class")
.def(init<>())
.def("GetStep1", &Track::GetStep1,
return_internal_reference<>())
.def("GetStep2", &Track::GetStep2,
return_value_policy<reference_existing_object>())
// this is invalid, just for test
.def("GetStep3", &Track::GetStep3,
return_value_policy<manage_new_object>())
;
}
+28
View File
@@ -0,0 +1,28 @@
#!/usr/bin/python
# ==================================================================
# python script for Geant4Py test
#
#
# ==================================================================
import test04, sys
atrack= test04.Track()
print "<<< ref#(atrack)=", sys.getrefcount(atrack)
astep= atrack.GetStep1()
print "<<< ref#(atrack, astep)=",\
sys.getrefcount(atrack),\
sys.getrefcount(astep)
del astep
print "<<< delete astep"
print "<<< ref#(atrack)=", sys.getrefcount(atrack)
print ""
bstep= atrack.GetStep1()
bstep= test04.Step()
print "<<< previous step is still remain?"
print ""
print "--- stderr ---"
+29
View File
@@ -0,0 +1,29 @@
#!/usr/bin/python
# ==================================================================
# python script for Geant4Py test
#
#
# ==================================================================
import test04, sys
btrack= test04.Track()
print "<<< ref#(btrack)=", sys.getrefcount(btrack)
bstep= btrack.GetStep2()
print "<<< ref#(btrack, bstep)=",\
sys.getrefcount(btrack),\
sys.getrefcount(bstep)
del bstep
print "<<< delete bstep"
print "<<< ref#(btrack)=", sys.getrefcount(btrack)
print ""
cstep= btrack.GetStep2()
cstep= test04.Step()
print "<<< previous step is still remain?"
print ""
print "--- stderr ---"
+31
View File
@@ -0,0 +1,31 @@
#!/usr/bin/python
# ==================================================================
# python script for Geant4Py test
#
# This script is just for test use. It will crash.
# ==================================================================
import test04, sys
print "*** This script is just for test use. It will crash!"
ctrack= test04.Track()
print "<<< ref#(ctrack)=", sys.getrefcount(ctrack)
cstep= ctrack.GetStep3()
print "<<< ref#(ctrack, cstep)=",\
sys.getrefcount(ctrack),\
sys.getrefcount(cstep)
del cstep
print "<<< delete cstep"
print "<<< ref#(ctrack)=", sys.getrefcount(ctrack)
print ""
cstep= ctrack.GetStep3()
cstep= test04.Step()
print "<<< previous step is still remain?"
print ""
print "--- stderr ---"