49 template<
typename CUSTOMFUNC,
typename RESULT>
54 if (pset.size() > 10 || pset.size() < 2)
57 <<
"Can not Calculate(Eval) more than a nine-particle invariant mass."
70 thrust::make_zip_iterator(
71 thrust::make_tuple(dev_v0->begin(), dev_v1->begin())),
72 thrust::make_zip_iterator(
73 thrust::make_tuple(dev_v0->end(), dev_v1->end())),
86 thrust::make_zip_iterator(
87 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
89 thrust::make_zip_iterator(
90 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
91 dev_v2->end())), dev_out.begin(),
105 thrust::make_zip_iterator(
106 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
107 dev_v2->begin(), dev_v3->begin())),
108 thrust::make_zip_iterator(
109 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
110 dev_v2->end(), dev_v3->end())), dev_out.begin(),
115 if (pset.size() == 5)
125 thrust::make_zip_iterator(
126 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
127 dev_v2->begin(), dev_v3->begin(),
129 thrust::make_zip_iterator(
130 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
131 dev_v2->end(), dev_v3->end(), dev_v4->end())),
136 if (pset.size() == 6)
147 thrust::make_zip_iterator(
148 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
149 dev_v2->begin(), dev_v3->begin(),
150 dev_v4->begin(), dev_v5->begin())),
151 thrust::make_zip_iterator(
152 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
153 dev_v2->end(), dev_v3->end(), dev_v4->end(),
154 dev_v5->end())), dev_out.begin(),
159 if (pset.size() == 7)
171 thrust::make_zip_iterator(
172 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
173 dev_v2->begin(), dev_v3->begin(),
174 dev_v4->begin(), dev_v5->begin(),
176 thrust::make_zip_iterator(
177 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
178 dev_v2->end(), dev_v3->end(), dev_v4->end(),
179 dev_v5->end(), dev_v6->end())), dev_out.begin(),
184 if (pset.size() == 8)
197 thrust::make_zip_iterator(
198 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
199 dev_v2->begin(), dev_v3->begin(),
200 dev_v4->begin(), dev_v5->begin(),
201 dev_v6->begin(), dev_v7->begin())),
202 thrust::make_zip_iterator(
203 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
204 dev_v2->end(), dev_v3->end(), dev_v4->end(),
205 dev_v5->end(), dev_v6->end(), dev_v7->end())),
210 if (pset.size() == 9)
224 thrust::make_zip_iterator(
225 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
226 dev_v2->begin(), dev_v3->begin(),
227 dev_v4->begin(), dev_v5->begin(),
228 dev_v6->begin(), dev_v7->begin(),
230 thrust::make_zip_iterator(
231 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
232 dev_v2->end(), dev_v3->end(), dev_v4->end(),
233 dev_v5->end(), dev_v6->end(), dev_v7->end(),
234 dev_v8->end())), dev_out.begin(),
239 if (pset.size() == 10)
254 thrust::make_zip_iterator(
255 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
256 dev_v2->begin(), dev_v3->begin(),
257 dev_v4->begin(), dev_v5->begin(),
258 dev_v6->begin(), dev_v7->begin(),
259 dev_v8->begin(), dev_v9->begin())),
260 thrust::make_zip_iterator(
261 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
262 dev_v2->end(), dev_v3->end(), dev_v4->end(),
263 dev_v5->end(), dev_v6->end(), dev_v7->end(),
264 dev_v8->end(), dev_v9->end())), dev_out.begin(),
269 thrust::copy(dev_out.begin(), dev_out.end(), eval.begin());
279 template<
typename CUSTOMFUNC,
typename RESULT>
284 if (pset.size() > 10 || pset.size() < 2)
287 <<
"Can not Calculate(Eval) more than a nine-particle invariant mass."
292 if (pset.size() == 2)
298 thrust::make_zip_iterator(
299 thrust::make_tuple(dev_v0->begin(), dev_v1->begin())),
300 thrust::make_zip_iterator(
301 thrust::make_tuple(dev_v0->end(), dev_v1->end())),
306 if (pset.size() == 3)
314 thrust::make_zip_iterator(
315 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
317 thrust::make_zip_iterator(
318 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
319 dev_v2->end())), dev_out.begin(),
324 if (pset.size() == 4)
333 thrust::make_zip_iterator(
334 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
335 dev_v2->begin(), dev_v3->begin())),
336 thrust::make_zip_iterator(
337 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
338 dev_v2->end(), dev_v3->end())), dev_out.begin(),
343 if (pset.size() == 5)
353 thrust::make_zip_iterator(
354 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
355 dev_v2->begin(), dev_v3->begin(),
357 thrust::make_zip_iterator(
358 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
359 dev_v2->end(), dev_v3->end(), dev_v4->end())),
364 if (pset.size() == 6)
375 thrust::make_zip_iterator(
376 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
377 dev_v2->begin(), dev_v3->begin(),
378 dev_v4->begin(), dev_v5->begin())),
379 thrust::make_zip_iterator(
380 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
381 dev_v2->end(), dev_v3->end(), dev_v4->end(),
382 dev_v5->end())), dev_out.begin(),
387 if (pset.size() == 7)
399 thrust::make_zip_iterator(
400 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
401 dev_v2->begin(), dev_v3->begin(),
402 dev_v4->begin(), dev_v5->begin(),
404 thrust::make_zip_iterator(
405 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
406 dev_v2->end(), dev_v3->end(), dev_v4->end(),
407 dev_v5->end(), dev_v6->end())), dev_out.begin(),
412 if (pset.size() == 8)
425 thrust::make_zip_iterator(
426 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
427 dev_v2->begin(), dev_v3->begin(),
428 dev_v4->begin(), dev_v5->begin(),
429 dev_v6->begin(), dev_v7->begin())),
430 thrust::make_zip_iterator(
431 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
432 dev_v2->end(), dev_v3->end(), dev_v4->end(),
433 dev_v5->end(), dev_v6->end(), dev_v7->end())),
438 if (pset.size() == 9)
452 thrust::make_zip_iterator(
453 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
454 dev_v2->begin(), dev_v3->begin(),
455 dev_v4->begin(), dev_v5->begin(),
456 dev_v6->begin(), dev_v7->begin(),
458 thrust::make_zip_iterator(
459 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
460 dev_v2->end(), dev_v3->end(), dev_v4->end(),
461 dev_v5->end(), dev_v6->end(), dev_v7->end(),
462 dev_v8->end())), dev_out.begin(),
467 if (pset.size() == 10)
482 thrust::make_zip_iterator(
483 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
484 dev_v2->begin(), dev_v3->begin(),
485 dev_v4->begin(), dev_v5->begin(),
486 dev_v6->begin(), dev_v7->begin(),
487 dev_v8->begin(), dev_v9->begin())),
488 thrust::make_zip_iterator(
489 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
490 dev_v2->end(), dev_v3->end(), dev_v4->end(),
491 dev_v5->end(), dev_v6->end(), dev_v7->end(),
492 dev_v8->end(), dev_v9->end())), dev_out.begin(),
505 template<
typename CUSTOMFUNC>
509 if (pset.size() > 10 || pset.size() < 2)
512 <<
"Can not Calculate(Eval) more than a nine-particle invariant mass."
517 if (pset.size() == 2)
524 thrust::make_zip_iterator(
525 thrust::make_tuple(dev_v0->begin(), dev_v1->begin())),
526 thrust::make_zip_iterator(
527 thrust::make_tuple(dev_v0->end(), dev_v1->end())),
532 if (pset.size() == 3)
540 thrust::make_zip_iterator(
541 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
543 thrust::make_zip_iterator(
544 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
550 if (pset.size() == 4)
559 thrust::make_zip_iterator(
560 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
561 dev_v2->begin(), dev_v3->begin())),
562 thrust::make_zip_iterator(
563 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
564 dev_v2->end(), dev_v3->end())),
569 if (pset.size() == 5)
579 thrust::make_zip_iterator(
580 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
581 dev_v2->begin(), dev_v3->begin(),
583 thrust::make_zip_iterator(
584 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
585 dev_v2->end(), dev_v3->end(), dev_v4->end())),
590 if (pset.size() == 6)
601 thrust::make_zip_iterator(
602 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
603 dev_v2->begin(), dev_v3->begin(),
604 dev_v4->begin(), dev_v5->begin())),
605 thrust::make_zip_iterator(
606 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
607 dev_v2->end(), dev_v3->end(), dev_v4->end(),
613 if (pset.size() == 7)
625 thrust::make_zip_iterator(
626 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
627 dev_v2->begin(), dev_v3->begin(),
628 dev_v4->begin(), dev_v5->begin(),
630 thrust::make_zip_iterator(
631 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
632 dev_v2->end(), dev_v3->end(), dev_v4->end(),
633 dev_v5->end(), dev_v6->end())),
638 if (pset.size() == 8)
651 thrust::make_zip_iterator(
652 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
653 dev_v2->begin(), dev_v3->begin(),
654 dev_v4->begin(), dev_v5->begin(),
655 dev_v6->begin(), dev_v7->begin())),
656 thrust::make_zip_iterator(
657 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
658 dev_v2->end(), dev_v3->end(), dev_v4->end(),
659 dev_v5->end(), dev_v6->end(), dev_v7->end())),
664 if (pset.size() == 9)
678 thrust::make_zip_iterator(
679 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
680 dev_v2->begin(), dev_v3->begin(),
681 dev_v4->begin(), dev_v5->begin(),
682 dev_v6->begin(), dev_v7->begin(),
684 thrust::make_zip_iterator(
685 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
686 dev_v2->end(), dev_v3->end(), dev_v4->end(),
687 dev_v5->end(), dev_v6->end(), dev_v7->end(),
693 if (pset.size() == 10)
708 thrust::make_zip_iterator(
709 thrust::make_tuple(dev_v0->begin(), dev_v1->begin(),
710 dev_v2->begin(), dev_v3->begin(),
711 dev_v4->begin(), dev_v5->begin(),
712 dev_v6->begin(), dev_v7->begin(),
713 dev_v8->begin(), dev_v9->begin())),
714 thrust::make_zip_iterator(
715 thrust::make_tuple(dev_v0->end(), dev_v1->end(),
716 dev_v2->end(), dev_v3->end(), dev_v4->end(),
717 dev_v5->end(), dev_v6->end(), dev_v7->end(),
718 dev_v8->end(), dev_v9->end())),
thrust::host_vector< T > mc_host_vector
Generic template typedef for thrust::host_vector.
Typedef for useful container classes used in MCBooster.
void Evaluate(const CUSTOMFUNC funcObj, ParticlesSet_d &pset, mc_host_vector< RESULT > &eval)
Template functor for evaluate an arbitrary function object.
vector< Particles_d * > ParticlesSet_d
Typedef for a Vector4R device vector.
thrust::host_vector< T > mc_device_vector
Generic template typedef for thrust::host_vector.