-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathmyPDF.h~
240 lines (217 loc) · 8.18 KB
/
myPDF.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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
/*****************************************************************************
* Project: RooFit *
* *
* This code was autogenerated by RooClassFactory *
* *
* A simple AA PDF class by Ivan Heredia de la Cruz on 4/25/16. *
*****************************************************************************/
#ifndef MYPDF
#define MYPDF
#include "RooAbsPdf.h"
#include "RooRealProxy.h"
#include "RooCategoryProxy.h"
#include "RooAbsReal.h"
#include "RooAbsCategory.h"
#include "TComplex.h"
const Double_t MLb = 5.61951;
const Double_t MBd = 5.27961;
const Double_t MPsi2S = 3.686109;
const Double_t MJpsi = 3.096916;
const Double_t MProton = 0.938272046;
const Double_t MKaon = 0.493677;
const Double_t MPion = 0.13957018;
const Double_t MLb2 = MLb*MLb;
const Double_t MLb4 = MLb2*MLb2;
const Double_t MBd2 = MBd*MBd;
const Double_t MBd4 = MBd2*MBd2;
const Double_t MPsi2S2 = MPsi2S*MPsi2S;
const Double_t MPsi2S4 = MPsi2S2*MPsi2S2;
const Double_t MJpsi2 = MJpsi*MJpsi;
const Double_t MJpsi4 = MJpsi2*MJpsi2;
const Double_t MJpsi4mTwoMJpsi2MLb2pMLb4 = MJpsi4 - 2.*MJpsi2*MLb2 + MLb4;
const Double_t MPsi2S4mTwoMPsi2S2MBd2pMBd4 = MPsi2S4 - 2.*MPsi2S2*MBd2 + MBd4;
const Double_t MJpsi4mTwoMJpsi2MBd2pMBd4 = MJpsi4 - 2.*MJpsi2*MBd2 + MBd4;
const Double_t TwoMJpsi2pTwoMLb2 = 2.*(MJpsi2 + MLb2);
const Double_t TwoMPsi2S2pTwoMBd2 = 2.*(MPsi2S2 + MBd2);
const Double_t TwoMJpsi2pTwoMBd2 = 2.*(MJpsi2 + MBd2);
const Double_t InvTwoMLb = 1./(2.*MLb);
const Double_t InvTwoMBd = 1./(2.*MBd);
const Double_t MProton2 = MProton*MProton;
const Double_t MProton4 = MProton2*MProton2;
const Double_t MKaon2 = MKaon*MKaon;
const Double_t MKaon4 = MKaon2*MKaon2;
const Double_t MPion2 = MPion*MPion;
const Double_t MPion4 = MPion2*MPion2;
const Double_t MKaon4mTwoMKaon2MProton2pMProton4 = MKaon4 - 2.*MKaon2*MProton2 + MProton4;
const Double_t MKaon4mTwoMKaon2MPion2pMPion4 = MKaon4 - 2.*MKaon2*MPion2 + MPion4;
const Double_t TwoMKaon2pTwoMProton2 = 2.*(MKaon2 + MProton2);
const Double_t TwoMKaon2pTwoMPion2 = 2.*(MKaon2 + MPion2);
// Lambda*
const Double_t M1600 = 1.600 ;
const Double_t G1600 = 0.150;
const Double_t M1670 = 1.670;
const Double_t G1670 = 0.035;
// K*
/*
const Double_t M892 = 0.89581 ; // From PDG charged only K*(892)
const Double_t G892 = 0.0474; // From PDG charged only K*(892)
const Double_t M1410 = 1.414;
const Double_t G1410 = 0.232;
const Double_t M1430 = 1.425;
const Double_t G1430 = 0.270;
*/
const Double_t dRad = 3.0;
class myPDF : public RooAbsPdf {
public:
myPDF() {} ;
myPDF(const char *name, const char *title,
/*
// Lambda_b -> J/psi Lambda* -> mu+ mu- K- p
RooAbsReal& _mKP,
RooAbsReal& _cLb,
RooAbsReal& _cJ,
RooAbsReal& _cLs,
RooAbsReal& _phiMu,
RooAbsReal& _phiK,
// Lambda*(1600)
RooAbsReal& _a1600L0S1,
RooAbsReal& _b1600L0S1,
RooAbsReal& _a1600L1S1,
RooAbsReal& _b1600L1S1,
RooAbsReal& _a1600L1S3,
RooAbsReal& _b1600L1S3,
RooAbsReal& _a1600L2S3,
RooAbsReal& _b1600L2S3,
// Lambda*(1670)
RooAbsReal& _a1670L0S1,
RooAbsReal& _b1670L0S1,
RooAbsReal& _a1670L1S1,
RooAbsReal& _b1670L1S1,
RooAbsReal& _a1670L1S3,
RooAbsReal& _b1670L1S3,
RooAbsReal& _a1670L2S3,
RooAbsReal& _b1670L2S3
*/
// B^0 -> psi(nS) K* -> mu+ mu- K- pi+
RooAbsReal& _mKP,
RooAbsReal& _cJ,
RooAbsReal& _cKs,
RooAbsReal& _phi,
/*
// K*(892)
RooAbsReal& _a892m1,
RooAbsReal& _b892m1,
RooAbsReal& _a892z,
RooAbsReal& _b892z,
RooAbsReal& _a892p1,
RooAbsReal& _b892p1
*/
//const vector< pair<TString, pair< pair<Double_t, Double_t>, pair<Double_t, Double_t> > > >& _Kstar_spin,
const vector< pair<TString, pair<const Double_t, const Double_t> > >& _Kstar_spin,
const vector< TString >& _varNames,
const RooArgSet _amplitudeVars,
const TString& _psi_nS
);
myPDF(const myPDF& other, const char* name=0) ;
virtual TObject* clone(const char* newname) const { return new myPDF(*this,newname); }
inline virtual ~myPDF() { }
Int_t getAnalyticalIntegral(RooArgSet& allVars, RooArgSet& analVars, const char* rangeName=0) const ;
Double_t analyticalIntegral(Int_t code, const char* rangeName=0) const ;
/*
Double_t cWignerD_Lb(string helLb, string helLs, string helJ) const ;
TComplex WignerDLsSpinOneHalf(string helLs, string help) const ;
TComplex cWignerDLsSpinOneHalf(TComplex WignerDLsSpinOneHalf) const ;
*/
TComplex WignerD_J(string helJ, string helDmu, Double_t angle) const ;
TComplex cWignerD_J(TComplex WignerD_J) const ;
//
//Double_t Wignerd_R(string spinR, string helJ) const ;
Double_t Wignerd_R(TString spinR, string helJ) const ;
/*
TComplex HLb1600(string helLs, string helJ) const ;
TComplex HLb1670(string helLs, string helJ) const ;
*/
Double_t HLs1600(string help) const ;
Double_t HLs1670(string help) const ;
//
//TComplex H(string R, string helJ) const ;
TComplex H(TString R, string helJ) const ;
Double_t Pmom(Double_t mkp) const ;
Double_t Qmom(Double_t mkp) const ;
Double_t PhiPHSP(Double_t mkp) const ;
Double_t BlattWeisskopf(Int_t Lmin, Double_t q, Double_t q0, Double_t D = dRad) const ;
Double_t BWGamma(Double_t RMass, Double_t RGamma, Int_t Lmin, Double_t D = dRad) const ;
TComplex BW(Double_t RMass, Double_t RGamma, Int_t Lmin, Double_t D = dRad) const ;
TComplex RFunction(Double_t RMass, Double_t RGamma, Double_t MomMass, Int_t LminLb, Int_t LminLs, Double_t D = dRad) const ;
/*
TComplex Cterm(string helLs, string helJ, string help) const ;
TComplex Cfterm(string helLs, string helJ, string help, string helDmu) const ;
TComplex ME(string helLb, string help, string helDmu) const ;
*/
//
//TComplex AngularTerm(string R, string spinR, string helJ, string helDmu) const ;
TComplex AngularTerm(TString R, TString spinR, string helJ, string helDmu) const ;
TComplex ME(string helDmu) const ;
//
//TComplex ME2() const ;
//TComplex PDF() const ;
Double_t ME2() const ;
Double_t PDF() const ;
protected:
/*
// Lambda_b -> J/psi Lambda* -> mu+ mu- K- p
RooRealProxy mKP ;
RooRealProxy cLb ;
RooRealProxy cJ ;
RooRealProxy cLs ;
RooRealProxy phiMu ;
RooRealProxy phiK ;
// Lambda*(1600)
RooRealProxy a1600L0S1 ;
RooRealProxy b1600L0S1 ;
RooRealProxy a1600L1S1 ;
RooRealProxy b1600L1S1 ;
RooRealProxy a1600L1S3 ;
RooRealProxy b1600L1S3 ;
RooRealProxy a1600L2S3 ;
RooRealProxy b1600L2S3 ;
// Lambda*(1670)
RooRealProxy a1670L0S1 ;
RooRealProxy b1670L0S1 ;
RooRealProxy a1670L1S1 ;
RooRealProxy b1670L1S1 ;
RooRealProxy a1670L1S3 ;
RooRealProxy b1670L1S3 ;
RooRealProxy a1670L2S3 ;
RooRealProxy b1670L2S3 ;
*/
// B^0 -> psi(nS) K* -> mu+ mu- K- pi+
RooRealProxy mKP ;
RooRealProxy cJ ;
RooRealProxy cKs ;
RooRealProxy phi ;
/*
// K*(892)
RooRealProxy a892m1 ;
RooRealProxy b892m1 ;
RooRealProxy a892z ;
RooRealProxy b892z ;
RooRealProxy a892p1 ;
RooRealProxy b892p1;
*/
//map< TString,RooRealProxy* > amplitudeVarProxy_map;
//vector< pair<TString, pair< pair<Double_t, Double_t>, pair<Double_t, Double_t> > > > Kstar_spin;
//vector< TString > varNames;
//RooArgSet amplitudeVars;
//Double_t evaluate() const ;
private:
//vector< pair<TString, pair< pair<Double_t, Double_t>, pair<Double_t, Double_t> > > > Kstar_spin;
vector< pair<TString, pair<const Double_t, const Double_t> > > Kstar_spin;
vector< TString > varNames;
RooArgSet amplitudeVars;
map< TString,RooRealProxy* > amplitudeVarProxy_map;
TString psi_nS;
Double_t evaluate() const ;
ClassDef(myPDF,1) // Your description goes here...
};
#endif