-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathRooRBWGaussConv.h
52 lines (41 loc) · 1.39 KB
/
RooRBWGaussConv.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
#ifndef ROORBWGAUSSCONV
#define ROORBWGAUSSCONV
#include "RooAbsPdf.h"
#include "RooAbsReal.h"
#include "RooRealProxy.h"
// class RooRealVar;
// class RooAbsReal;
class RooRBWGaussConv : public RooAbsPdf {
public:
enum MassType { DeltaMass, Mass };
RooRBWGaussConv(){};
RooRBWGaussConv(const char *name,
const char *title,
RooAbsReal &_x,
RooAbsReal &_bwmean,
RooAbsReal &_bwwidth,
RooAbsReal &_gmean,
RooAbsReal &_gsigma,
MassType _massType = DeltaMass);
RooRBWGaussConv(const RooRBWGaussConv &other, const char *name = 0);
virtual TObject *clone(const char *newname) const { return new RooRBWGaussConv(*this, newname); }
virtual ~RooRBWGaussConv() {}
static double D0MASS;
static double MPI;
protected:
RooRealProxy x;
RooRealProxy bw_mean;
RooRealProxy bw_width;
RooRealProxy g_mean;
RooRealProxy g_sigma;
MassType massType;
double evalMass(double val) const;
double breitwigner(double val) const;
double gaussian(double val) const;
double evalbwff(double pval) const;
double evalphsp(double val) const;
Double_t evaluate() const;
Double_t evalP(double mass) const;
ClassDef(RooRBWGaussConv, 1); // Argus background shape generic PDF (for lower and upper thresholds)
};
#endif