18 typedef thrust::tuple<fptype, fptype, fptype, fptype>
WaveHolder;
19 typedef thrust::tuple<fptype, fptype, fptype, fptype, fptype, fptype>
ThreeComplex;
43 std::vector<MixingTimeResolution *> &r,
77 __host__
void setDataSize(
unsigned int dataSize,
unsigned int evtSize = 5);
85 fptype *dalitzNormRange{
nullptr};
89 thrust::device_vector<WaveHolder_s> *cachedWaves[16];
90 ThreeComplex ***integrals{
nullptr};
93 mutable bool forceRedoIntegrals{
true};
107 __device__ ThreeComplex operator()(thrust::tuple<int, fptype *> t)
const;
110 unsigned int resonance_i;
111 unsigned int resonance_j;
115 class SpecialComplexSum :
public thrust::binary_function<ThreeComplex, ThreeComplex, ThreeComplex> {
117 __host__ __device__ ThreeComplex
operator()(ThreeComplex one, ThreeComplex two) {
118 return {thrust::get<0>(one) + thrust::get<0>(two),
119 thrust::get<1>(one) + thrust::get<1>(two),
120 thrust::get<2>(one) + thrust::get<2>(two),
121 thrust::get<3>(one) + thrust::get<3>(two),
122 thrust::get<4>(one) + thrust::get<4>(two),
123 thrust::get<5>(one) + thrust::get<5>(two)};
130 __device__
WaveHolder_s operator()(thrust::tuple<int, fptype *, int> t)
const;
133 unsigned int resonance_i;
__host__ __device__ ThreeComplex operator()(ThreeComplex one, ThreeComplex two)
__host__ fptype normalize() const override
A normalize function. This fills in the host_normalize.
TddpPdf(std::string n, Observable _dtime, Observable _sigmat, Observable m12, Observable m13, EventNumber eventNumber, DecayInfo3t decay, MixingTimeResolution *r, GooPdf *eff, Observable *mistag=nullptr)
Special class for observables. Used in DataSets.
__host__ void setDataSize(unsigned int dataSize, unsigned int evtSize=5)
thrust::tuple< fptype, fptype, fptype, fptype, fptype, fptype > ThreeComplex
EventNumber * eventNumber
__host__ void setForceIntegrals(bool f=true)
thrust::tuple< fptype, fptype, fptype, fptype > WaveHolder