Import Geant4 8.1.0 source tree
This commit is contained in:
@@ -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
|
||||
@@ -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>())
|
||||
;
|
||||
}
|
||||
|
||||
Executable
+28
@@ -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 ---"
|
||||
|
||||
Executable
+29
@@ -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 ---"
|
||||
|
||||
|
||||
Executable
+31
@@ -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 ---"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user