31 #include <boost/python.hpp> 32 #include "G4Version.hh" 33 #include "G4EmCalculator.hh" 34 #include "G4Region.hh" 35 #include "G4Material.hh" 36 #include "G4Element.hh" 37 #include "G4ParticleDefinition.hh" 38 #include "G4MaterialCutsCouple.hh" 49 (G4double,
const G4ParticleDefinition*,
const G4Material*,
const G4Region*)
50 = &G4EmCalculator::GetDEDX;
54 = &G4EmCalculator::GetDEDX;
60 (G4double, const G4ParticleDefinition*, const G4Material*, const G4Region*)
65 = &G4EmCalculator::GetRange;
71 (G4double, const G4ParticleDefinition*, const G4Material*, const G4Region*)
72 = &G4EmCalculator::GetKinEnergy;
76 = &G4EmCalculator::GetKinEnergy;
82 (G4double, const G4ParticleDefinition*,
83 const
G4String&, const G4Material*, const G4Region*)
84 = &G4EmCalculator::GetCrossSectionPerVolume;
89 = &G4EmCalculator::GetCrossSectionPerVolume;
92 GetCrossSectionPerVolume, 4, 5)
95 G4double (G4EmCalculator::*f1_GetMeanFreePath)
96 (G4double, const G4ParticleDefinition*,
97 const
G4String&, const G4Material*, const G4Region*)
98 = &G4EmCalculator::GetMeanFreePath;
101 (G4double, const G4String&, const G4String&,
102 const G4String&, const G4String&)
103 = &G4EmCalculator::GetMeanFreePath;
106 GetMeanFreePath, 4, 5)
109 G4double (G4EmCalculator::*f1_ComputeDEDX)
110 (G4double, const G4ParticleDefinition*,
111 const G4String&, const G4Material*, G4double)
112 = &G4EmCalculator::ComputeDEDX;
115 (G4double, const G4String&, const G4String&, const G4String&, G4double)
116 = &G4EmCalculator::ComputeDEDX;
122 (G4double, const G4ParticleDefinition*, const G4Material*)
123 = &G4EmCalculator::ComputeNuclearDEDX;
126 (G4double, const G4String&, const G4String&)
127 = &G4EmCalculator::ComputeNuclearDEDX;
131 (G4double, const G4ParticleDefinition*, const G4Material*, G4double)
132 = &G4EmCalculator::ComputeElectronicDEDX;
135 (G4double, const G4String&, const G4String&, G4double)
136 = &G4EmCalculator::ComputeElectronicDEDX;
139 ComputeElectronicDEDX, 3, 4)
142 G4double (G4EmCalculator::*f1_ComputeTotalDEDX)
143 (G4double, const G4ParticleDefinition*, const G4Material*, G4double)
144 = &G4EmCalculator::ComputeTotalDEDX;
147 (G4double, const G4String&, const G4String&, G4double)
148 = &G4EmCalculator::ComputeTotalDEDX;
153 G4double (G4EmCalculator::*f1_ComputeCrossSectionPerVolume)
154 (G4double, const G4ParticleDefinition*,
155 const G4String&, const G4Material*, G4double)
156 = &G4EmCalculator::ComputeCrossSectionPerVolume;
159 (G4double, const G4String&, const G4String&, const G4String&, G4double)
160 = &G4EmCalculator::ComputeCrossSectionPerVolume;
163 ComputeCrossSectionPerVolume, 4, 5)
166 G4double (G4EmCalculator::*f1_ComputeCrossSectionPerAtom)
167 (G4double, const G4ParticleDefinition*, const G4String&,
168 G4double, G4double, G4double)
172 (G4double, const G4String&, const G4String&, const G4Element*, G4double)
173 = &G4EmCalculator::ComputeCrossSectionPerAtom;
176 ComputeCrossSectionPerAtom, 5, 6)
179 ComputeCrossSectionPerAtom, 4, 5)
183 (G4double, const G4ParticleDefinition*, const G4Material*)
184 = &G4EmCalculator::ComputeEnergyCutFromRangeCut;
187 (G4double range, const G4String&, const G4String&)
188 = &G4EmCalculator::ComputeEnergyCutFromRangeCut;
192 (G4double, const G4ParticleDefinition*,
193 const G4String&, const G4Material*, G4double)
194 = &G4EmCalculator::ComputeMeanFreePath;
197 (G4double, const G4String&, const G4String&, const G4String&, G4double)
198 = &G4EmCalculator::ComputeMeanFreePath;
201 ComputeMeanFreePath, 4, 5)
215 class_<G4EmCalculator, boost::noncopyable>
216 (
"G4EmCalculator",
"Provide access to dE/dx and cross section")
224 .def(
"GetCrossSectionPerVolume",
226 .def(
"GetCrossSectionPerVolume",
228 .def(
"GetMeanFreePath", f1_GetMeanFreePath, f_GetMeanFreePath())
231 .def(
"PrintDEDXTable", &G4EmCalculator::PrintDEDXTable)
232 .def(
"PrintRangeTable", &G4EmCalculator::PrintRangeTable)
233 .def(
"PrintInverseRangeTable", &G4EmCalculator::PrintInverseRangeTable)
235 .def(
"ComputeDEDX", f1_ComputeDEDX, f_ComputeDEDX())
240 f_ComputeElectronicDEDX())
242 f_ComputeElectronicDEDX())
243 .def(
"ComputeTotalDEDX", f1_ComputeTotalDEDX, f_ComputeTotalDEDX())
246 .def(
"ComputeCrossSectionPerVolume",
247 f1_ComputeCrossSectionPerVolume, f_ComputeCrossSectionPerVolume())
248 .def(
"ComputeCrossSectionPerVolume",
250 .def(
"ComputeCrossSectionPerAtom",
251 f1_ComputeCrossSectionPerAtom, f_ComputeCrossSectionPerAtom())
252 .def(
"ComputeCrossSectionPerAtom",
257 .def(
"ComputeMeanFreePath",
259 .def(
"ComputeMeanFreePath",
262 .def(
"FindParticle", &G4EmCalculator::FindParticle,
263 return_value_policy<reference_existing_object>())
264 .def(
"FindMaterial", &G4EmCalculator::FindMaterial,
265 return_value_policy<reference_existing_object>())
266 .def(
"FindRegion", &G4EmCalculator::FindRegion,
267 return_value_policy<reference_existing_object>())
268 .def(
"FindCouple", &G4EmCalculator::FindCouple,
269 f_FindCouple()[return_value_policy<reference_existing_object>()])
271 .def(
"SetVerbose", &G4EmCalculator::SetVerbose)
G4double(G4EmCalculator::* f1_GetKinEnergy)(G4double, const G4ParticleDefinition *, const G4Material *, const G4Region *)
G4double(G4EmCalculator::* f1_ComputeNuclearDEDX)(G4double, const G4ParticleDefinition *, const G4Material *)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetCrossSectionPerVolume, GetCrossSectionPerVolume, 4, 5) G4double(G4EmCalculator G4double(G4EmCalculator::* f2_GetMeanFreePath)(G4double, const G4String &, const G4String &, const G4String &, const G4String &)
G4double(G4EmCalculator::* f1_GetRange)(G4double, const G4ParticleDefinition *, const G4Material *, const G4Region *)
G4double(G4EmCalculator::* f2_GetCrossSectionPerVolume)(G4double, const G4String &, const G4String &, const G4String &, const G4String &)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_GetMeanFreePath, GetMeanFreePath, 4, 5) G4double(G4EmCalculator G4double(G4EmCalculator::* f2_ComputeDEDX)(G4double, const G4String &, const G4String &, const G4String &, G4double)
G4double(G4EmCalculator::* f2_GetKinEnergy)(G4double, const G4String &, const G4String &, const G4String &)
G4double(G4EmCalculator::* f2_GetDEDX)(G4double, const G4String &, const G4String &, const G4String &)
G4double(G4EmCalculator::* f2_ComputeElectronicDEDX)(G4double, const G4String &, const G4String &, G4double)
G4double(G4EmCalculator::* f1_ComputeElectronicDEDX)(G4double, const G4ParticleDefinition *, const G4Material *, G4double)
G4double(G4EmCalculator::* f2_ComputeMeanFreePath)(G4double, const G4String &, const G4String &, const G4String &, G4double)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ComputeCrossSectionPerAtom, ComputeCrossSectionPerAtom, 5, 6) BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(g_ComputeCrossSectionPerAtom
G4double(G4EmCalculator::* f2_GetRange)(G4double, const G4String &, const G4String &, const G4String &)
G4double(G4EmCalculator::* f2_ComputeEnergyCutFromRangeCut)(G4double range, const G4String &, const G4String &)
void GetRange(const PFPStruct &pfp, unsigned short sfIndex, unsigned short &fromPt, unsigned short &npts)
G4double(G4EmCalculator::* f1_ComputeMeanFreePath)(G4double, const G4ParticleDefinition *, const G4String &, const G4Material *, G4double)
G4double(G4EmCalculator::* f1_ComputeEnergyCutFromRangeCut)(G4double, const G4ParticleDefinition *, const G4Material *)
ComputeCrossSectionPerAtom
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ComputeTotalDEDX, ComputeTotalDEDX, 3, 4) G4double(G4EmCalculator G4double(G4EmCalculator::* f2_ComputeCrossSectionPerVolume)(G4double, const G4String &, const G4String &, const G4String &, G4double)
G4double(G4EmCalculator::* f1_GetDEDX)(G4double, const G4ParticleDefinition *, const G4Material *, const G4Region *)
G4double(G4EmCalculator::* f2_ComputeNuclearDEDX)(G4double, const G4String &, const G4String &)
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ComputeElectronicDEDX, ComputeElectronicDEDX, 3, 4) G4double(G4EmCalculator G4double(G4EmCalculator::* f2_ComputeTotalDEDX)(G4double, const G4String &, const G4String &, G4double)
void export_G4EmCalculator()
BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(f_ComputeCrossSectionPerVolume, ComputeCrossSectionPerVolume, 4, 5) G4double(G4EmCalculator G4double(G4EmCalculator::* f2_ComputeCrossSectionPerAtom)(G4double, const G4String &, const G4String &, const G4Element *, G4double)
G4double(G4EmCalculator::* f1_GetCrossSectionPerVolume)(G4double, const G4ParticleDefinition *, const G4String &, const G4Material *, const G4Region *)