]>
Commit | Line | Data |
---|---|---|
da0e9ce3 | 1 | //-------------------------------------------------------------------------- |
2 | // | |
3 | // Environment: | |
4 | // This software is part of the EvtGen package developed jointly | |
5 | // for the BaBar and CLEO collaborations. If you use all or part | |
6 | // of it, please give an appropriate acknowledgement. | |
7 | // | |
8 | // Copyright Information: See EvtGen/COPYRIGHT | |
9 | // Copyright (C) 1998 Caltech, UCSB | |
10 | // | |
11 | // Module: EvtSLPoleFF.cc | |
12 | // | |
13 | // Description: Routine to implement semileptonic form factors | |
14 | // according to the model SLPoles | |
15 | // | |
16 | // Modification history: | |
17 | // | |
18 | // DJL April 17,1998 Module created | |
19 | // | |
20 | //------------------------------------------------------------------------ | |
21 | // | |
22 | #include "EvtGenBase/EvtPatches.hh" | |
23 | #include "EvtGenBase/EvtReport.hh" | |
24 | #include "EvtGenModels/EvtSLPoleFF.hh" | |
25 | #include <string> | |
26 | #include "EvtGenBase/EvtPDL.hh" | |
27 | #include <math.h> | |
28 | #include <stdlib.h> | |
29 | ||
30 | EvtSLPoleFF::EvtSLPoleFF(int numarg, double *arglist) { | |
31 | //arg - maybe ignore the last argument - if odd ... Sigh | |
32 | numSLPoleargs = numarg - (numarg % 2); | |
33 | for (int i=0; i<numSLPoleargs; i++) { | |
34 | SLPoleargs[i] = arglist[i]; } | |
35 | ||
36 | return; | |
37 | } | |
38 | ||
39 | ||
40 | void EvtSLPoleFF::getscalarff(EvtId parent,EvtId, | |
41 | double t, double, double *fpf, | |
42 | double *f0f ) { | |
43 | ||
44 | // Form factors have a general form, with parameters passed in | |
45 | // from the arguements. | |
46 | ||
47 | if ( numSLPoleargs !=8 ) { | |
48 | report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::getscalarff\n"; | |
49 | report(ERROR,"EvtGen") << "wrong number of arguements!!!\n"; | |
50 | } | |
51 | ||
52 | double mb=EvtPDL::getMeanMass(parent); | |
53 | double mb2 = mb*mb; | |
54 | ||
55 | double f0,af,bf,powf; | |
56 | ||
57 | f0 = SLPoleargs[0]; | |
58 | af = SLPoleargs[1]; | |
59 | bf = SLPoleargs[2]; | |
60 | powf = SLPoleargs[3]; | |
61 | *fpf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); | |
62 | ||
63 | f0 = SLPoleargs[4]; | |
64 | af = SLPoleargs[5]; | |
65 | bf = SLPoleargs[6]; | |
66 | powf = SLPoleargs[7]; | |
67 | ||
68 | *f0f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); | |
69 | ||
70 | return; | |
71 | } | |
72 | ||
73 | void EvtSLPoleFF::getvectorff(EvtId parent,EvtId, | |
74 | double t, double, double *a1f, | |
75 | double *a2f, double *vf, double *a0f ){ | |
76 | ||
77 | if ( numSLPoleargs !=16 ) { | |
78 | report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::getvectorff\n"; | |
79 | report(ERROR,"EvtGen") << "wrong number of arguements!!!\n"; | |
80 | report(ERROR,"EvtGen") << numSLPoleargs<<"\n"; | |
81 | } | |
82 | ||
83 | double mb=EvtPDL::getMeanMass(parent); | |
84 | double mb2 = mb*mb; | |
85 | ||
86 | double f0,af,bf,powf; | |
87 | ||
88 | f0 = SLPoleargs[0]; | |
89 | af = SLPoleargs[1]; | |
90 | bf = SLPoleargs[2]; | |
91 | powf = SLPoleargs[3]; | |
92 | *a1f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); | |
93 | ||
94 | f0 = SLPoleargs[4]; | |
95 | af = SLPoleargs[5]; | |
96 | bf = SLPoleargs[6]; | |
97 | powf = SLPoleargs[7]; | |
98 | ||
99 | *a2f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); | |
100 | ||
101 | f0 = SLPoleargs[8]; | |
102 | af = SLPoleargs[9]; | |
103 | bf = SLPoleargs[10]; | |
104 | powf = SLPoleargs[11]; | |
105 | ||
106 | *vf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); | |
107 | ||
108 | f0 = SLPoleargs[12]; | |
109 | af = SLPoleargs[13]; | |
110 | bf = SLPoleargs[14]; | |
111 | powf = SLPoleargs[15]; | |
112 | ||
113 | *a0f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); | |
114 | return; | |
115 | } | |
116 | ||
117 | ||
118 | ||
119 | void EvtSLPoleFF::gettensorff(EvtId parent,EvtId, | |
120 | double t, double, double *hf, | |
121 | double *kf, double *bpf, double *bmf ){ | |
122 | ||
123 | if ( numSLPoleargs !=16 ) { | |
124 | report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::gettensorff\n"; | |
125 | report(ERROR,"EvtGen") << "wrong number of arguements!!!\n"; | |
126 | } | |
127 | ||
128 | double mb=EvtPDL::getMeanMass(parent); | |
129 | double mb2 = mb*mb; | |
130 | ||
131 | double f0,af,bf,powf; | |
132 | ||
133 | f0 = SLPoleargs[0]; | |
134 | af = SLPoleargs[1]; | |
135 | bf = SLPoleargs[2]; | |
136 | powf = SLPoleargs[3]; | |
137 | *hf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); | |
138 | ||
139 | f0 = SLPoleargs[4]; | |
140 | af = SLPoleargs[5]; | |
141 | bf = SLPoleargs[6]; | |
142 | powf = SLPoleargs[7]; | |
143 | ||
144 | *kf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); | |
145 | ||
146 | f0 = SLPoleargs[8]; | |
147 | af = SLPoleargs[9]; | |
148 | bf = SLPoleargs[10]; | |
149 | powf = SLPoleargs[11]; | |
150 | ||
151 | *bpf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); | |
152 | ||
153 | f0 = SLPoleargs[12]; | |
154 | af = SLPoleargs[13]; | |
155 | bf = SLPoleargs[14]; | |
156 | powf = SLPoleargs[15]; | |
157 | ||
158 | *bmf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf)); | |
159 | return; | |
160 | } | |
161 | ||
162 | ||
163 | void EvtSLPoleFF::getbaryonff(EvtId, EvtId, double, double, double*, | |
164 | double*, double*, double*){ | |
165 | ||
166 | report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtSLPoleFF.\n"; | |
167 | ::abort(); | |
168 | ||
169 | } | |
170 | ||
0ca57c2f | 171 | void EvtSLPoleFF::getdiracff(EvtId, EvtId, double, double, double*, double*, |
172 | double*, double*, double*, double*) { | |
173 | ||
174 | report(ERROR,"EvtGen") << "Not implemented :getdiracff in EvtSLPoleFF.\n"; | |
175 | ::abort(); | |
176 | ||
177 | } | |
178 | ||
179 | void EvtSLPoleFF::getraritaff(EvtId, EvtId, double, double, double*, double*, | |
180 | double*, double*, double*, double*, double*, double*) { | |
181 | ||
182 | report(ERROR,"EvtGen") << "Not implemented :getraritaff in EvtSLPoleFF.\n"; | |
183 | ::abort(); | |
184 | ||
185 | } | |
186 |