Skip to content

Commit e7a9fe9

Browse files
committed
PhaseSpace class with the added support of decays
Signed-off-by: Deepanshu <deepanshu2017@gmail.com>
1 parent 345e46b commit e7a9fe9

2 files changed

Lines changed: 55 additions & 17 deletions

File tree

include/PyPhaseSpace.h

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,22 @@ namespace hydra_python {
112112
event_container.begin()); \
113113
})
114114

115+
#define GENERATE_ON_DECAY(N, RNG, BACKEND) \
116+
.def("GenerateOn" #BACKEND, \
117+
[](hydra::PhaseSpace<N, RNG>& p, hydra::Vector4R& mother, \
118+
hypy::BACKEND##_decays_##N& decays_container) { \
119+
p.Generate(mother, decays_container.begin(), \
120+
decays_container.end()); \
121+
}) \
122+
.def( \
123+
"GenerateOn" #BACKEND, \
124+
[](hydra::PhaseSpace<N, RNG>& p, \
125+
hypy::BACKEND##_vector_float4& mothers, \
126+
hypy::BACKEND##_decays_##N& decays_container) { \
127+
p.Generate(mothers.begin(), mothers.end(), \
128+
decays_container.begin()); \
129+
})
130+
115131
#define AVERAGE_ON_EVENT(N, RNG, BACKEND) \
116132
.def("AverageOn" #BACKEND, \
117133
[](hydra::PhaseSpace<N, RNG>& p, hydra::Vector4R& mother, \
@@ -154,26 +170,32 @@ namespace hydra_python {
154170
const std::array<hydra::GReal_t, N>&>()) \
155171
.def("GetSeed", &hydra::PhaseSpace<N, RNG>::GetSeed) \
156172
.def("SetSeed", &hydra::PhaseSpace<N, RNG>::SetSeed) \
157-
GENERATE_ON_EVENT(N, RNG, host)\
158-
AVERAGE_ON_EVENT(N, RNG, host) \
159-
EVALUATE_ON_EVENT(N, RNG, host) \
173+
GENERATE_ON_EVENT(N, RNG, host) \
160174
GENERATE_ON_EVENT(N, RNG, device) \
175+
\
176+
AVERAGE_ON_EVENT(N, RNG, host) \
161177
AVERAGE_ON_EVENT(N, RNG, device) \
162-
EVALUATE_ON_EVENT(N, RNG, device);
178+
\
179+
EVALUATE_ON_EVENT(N, RNG, host) \
180+
EVALUATE_ON_EVENT(N, RNG, device)\
181+
\
182+
GENERATE_ON_DECAY(N, RNG, host) \
183+
GENERATE_ON_DECAY(N, RNG, device) \
184+
;
163185

164-
template <>
165-
void add_object<hydra::PhaseSpace<4, thrust::random::default_random_engine>>(
166-
pybind11::module& m) {
167-
PHASESPACE_CLASS_BODY(1, thrust::random::default_random_engine);
168-
PHASESPACE_CLASS_BODY(2, thrust::random::default_random_engine);
169-
PHASESPACE_CLASS_BODY(3, thrust::random::default_random_engine);
170-
PHASESPACE_CLASS_BODY(4, thrust::random::default_random_engine);
171-
PHASESPACE_CLASS_BODY(5, thrust::random::default_random_engine);
172-
PHASESPACE_CLASS_BODY(6, thrust::random::default_random_engine);
173-
PHASESPACE_CLASS_BODY(7, thrust::random::default_random_engine);
174-
PHASESPACE_CLASS_BODY(8, thrust::random::default_random_engine);
175-
PHASESPACE_CLASS_BODY(9, thrust::random::default_random_engine);
176-
PHASESPACE_CLASS_BODY(10, thrust::random::default_random_engine);
186+
template <>
187+
void add_object<hydra::PhaseSpace<4, thrust::random::default_random_engine>>(
188+
pybind11::module& m) {
189+
//PHASESPACE_CLASS_BODY(1, thrust::random::default_random_engine);
190+
PHASESPACE_CLASS_BODY(2, thrust::random::default_random_engine);
191+
PHASESPACE_CLASS_BODY(3, thrust::random::default_random_engine);
192+
PHASESPACE_CLASS_BODY(4, thrust::random::default_random_engine);
193+
PHASESPACE_CLASS_BODY(5, thrust::random::default_random_engine);
194+
PHASESPACE_CLASS_BODY(6, thrust::random::default_random_engine);
195+
PHASESPACE_CLASS_BODY(7, thrust::random::default_random_engine);
196+
PHASESPACE_CLASS_BODY(8, thrust::random::default_random_engine);
197+
PHASESPACE_CLASS_BODY(9, thrust::random::default_random_engine);
198+
PHASESPACE_CLASS_BODY(10, thrust::random::default_random_engine);
177199
}
178200
}
179201
#endif /* PYPHASESPACE_H_ */

include/make_opaque.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,14 @@ PYBIND11_MAKE_OPAQUE(hypy::host_vector_float8 );
6060
PYBIND11_MAKE_OPAQUE(hypy::host_vector_float9 );
6161
PYBIND11_MAKE_OPAQUE(hypy::host_vector_float10 );
6262
PYBIND11_MAKE_OPAQUE(hypy::host_decays_2);
63+
PYBIND11_MAKE_OPAQUE(hypy::host_decays_3);
64+
PYBIND11_MAKE_OPAQUE(hypy::host_decays_4);
65+
PYBIND11_MAKE_OPAQUE(hypy::host_decays_5);
66+
PYBIND11_MAKE_OPAQUE(hypy::host_decays_6);
67+
PYBIND11_MAKE_OPAQUE(hypy::host_decays_7);
68+
PYBIND11_MAKE_OPAQUE(hypy::host_decays_8);
69+
PYBIND11_MAKE_OPAQUE(hypy::host_decays_9);
70+
PYBIND11_MAKE_OPAQUE(hypy::host_decays_10);
6371

6472
PYBIND11_MAKE_OPAQUE(hypy::device_vector_float );
6573
PYBIND11_MAKE_OPAQUE(hypy::device_vector_float2 );
@@ -73,5 +81,13 @@ PYBIND11_MAKE_OPAQUE(hypy::device_vector_float9 );
7381
PYBIND11_MAKE_OPAQUE(hypy::device_vector_float10 );
7482

7583
PYBIND11_MAKE_OPAQUE(hypy::device_decays_2);
84+
PYBIND11_MAKE_OPAQUE(hypy::device_decays_3);
85+
PYBIND11_MAKE_OPAQUE(hypy::device_decays_4);
86+
PYBIND11_MAKE_OPAQUE(hypy::device_decays_5);
87+
PYBIND11_MAKE_OPAQUE(hypy::device_decays_6);
88+
PYBIND11_MAKE_OPAQUE(hypy::device_decays_7);
89+
PYBIND11_MAKE_OPAQUE(hypy::device_decays_8);
90+
PYBIND11_MAKE_OPAQUE(hypy::device_decays_9);
91+
PYBIND11_MAKE_OPAQUE(hypy::device_decays_10);
7692

7793
#endif /* MAKE_OPAQUE_H_ */

0 commit comments

Comments
 (0)