GooFit  v2.1.3
ConvolutionPdf.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <goofit/PDFs/GooPdf.h>
4 #include <thrust/device_vector.h>
5 
6 namespace GooFit {
7 
8 class ConvolutionPdf : public GooPdf {
9  public:
10  ConvolutionPdf(std::string n, Observable _x, GooPdf *model, GooPdf *resolution);
11  ConvolutionPdf(std::string n, Observable _x, GooPdf *model, GooPdf *resolution, unsigned int numOthers);
12  __host__ fptype normalize() const override;
13  __host__ void setIntegrationConstants(fptype lo, fptype hi, fptype step);
14  __host__ void registerOthers(std::vector<ConvolutionPdf *> others);
15 
16  private:
17  GooPdf *model;
18  GooPdf *resolution;
19 
20  fptype *host_iConsts;
21  fptype *dev_iConsts;
22  thrust::device_vector<fptype> *modelWorkSpace;
23  thrust::device_vector<fptype> *resolWorkSpace;
24  int workSpaceIndex;
25 };
26 
27 } // namespace GooFit
double fptype
Special class for observables. Used in DataSets.
Definition: Variable.h:109
__host__ fptype normalize() const override
__host__ void setIntegrationConstants(fptype lo, fptype hi, fptype step)
ConvolutionPdf(std::string n, Observable _x, GooPdf *model, GooPdf *resolution)
__host__ void registerOthers(std::vector< ConvolutionPdf *> others)