36#include <boost/python.hpp>
41using namespace boost::python;
52 MedicalBeam* medicalbeam=
new MedicalBeam();
53 runMgr-> SetUserAction(medicalbeam);
66 beam-> SetParticleDefinition(pd);
68 G4cout <<
"*** \"" <<
pname <<
"\" is not registered "
69 <<
"in available particle list" <<
G4endl;
79 if(pd==0)
return std::string(
"None");
80 else return (pd-> GetParticleName()).c_str();
87 G4double fx= extract<double>(listXY[0]);
88 G4double fy= extract<double>(listXY[1]);
89 beam-> SetFieldXY(fx, fy);
99 listFieldXY.append(beam-> GetFieldX());
100 listFieldXY.append(beam-> GetFieldY());
114 class_<MedicalBeam, MedicalBeam*,
115 bases<G4VUserPrimaryGeneratorAction> >
116 (
"MedicalBeam",
"primary generator action with medical beam")
153 enum_<MedicalBeam::FieldShape>(
"FieldShape")
160 return_value_policy<reference_existing_object>());
G4GLOB_DLL std::ostream G4cout
static G4ParticleTable * GetParticleTable()
static G4RunManager * GetRunManager()
void SetFieldR(G4double r)
G4double GetKineticE() const
void SetSSD(G4double ssd)
void SetKineticE(G4double e)
G4double GetFieldR() const
G4double GetFieldX() const
void SetFieldShape(FieldShape shape)
G4double GetFieldY() const
FieldShape GetFieldShape() const
void SetSourcePosition(const G4ThreeVector &pos)
G4ThreeVector GetSourcePosition() const
void f_SetFieldXY(MedicalBeam *beam, const list &listXY)
std::string GetParticleByName(MedicalBeam *beam)
MedicalBeam * Construct()
void SetParticleByName(MedicalBeam *beam, const std::string &pname)
list f_GetFieldXY(MedicalBeam *beam)
BOOST_PYTHON_MODULE(_MedicalBeam)