BOSS 7.0.3
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtSLPoleFF.cc
Go to the documentation of this file.
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//
26#include <string>
27#include "EvtGenBase/EvtPDL.hh"
28#include <math.h>
29
30EvtSLPoleFF::EvtSLPoleFF(int numarg, double *arglist) {
31 numSLPoleargs = numarg;
32 for (int i=0; i<numarg; i++) {
33 SLPoleargs[i] = arglist[i]; }
34
35 return;
36}
37
38
40 double t, double mass, double *fpf,
41 double *f0f ) {
42
43// Form factors have a general form, with parameters passed in
44// from the arguements.
45
46 if ( numSLPoleargs !=8 ) {
47 report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::getscalarff\n";
48 report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
49 }
50
51 double mb=EvtPDL::getMeanMass(parent);
52 double mb2 = mb*mb;
53
54 double f0,af,bf,powf;
55
56 f0 = SLPoleargs[0];
57 af = SLPoleargs[1];
58 bf = SLPoleargs[2];
59 powf = SLPoleargs[3];
60 *fpf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
61
62 f0 = SLPoleargs[4];
63 af = SLPoleargs[5];
64 bf = SLPoleargs[6];
65 powf = SLPoleargs[7];
66
67 *f0f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
68
69 return;
70}
71
73 double t, double mass, double *a1f,
74 double *a2f, double *vf, double *a0f ){
75
76 if ( numSLPoleargs !=16 ) {
77 report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::getvectorff\n";
78 report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
79 report(ERROR,"EvtGen") << numSLPoleargs<<"\n";
80 }
81
82 double mb=EvtPDL::getMeanMass(parent);
83 double mb2 = mb*mb;
84
85 double f0,af,bf,powf;
86
87 f0 = SLPoleargs[0];
88 af = SLPoleargs[1];
89 bf = SLPoleargs[2];
90 powf = SLPoleargs[3];
91 *a1f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
92
93 f0 = SLPoleargs[4];
94 af = SLPoleargs[5];
95 bf = SLPoleargs[6];
96 powf = SLPoleargs[7];
97
98 *a2f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
99
100 f0 = SLPoleargs[8];
101 af = SLPoleargs[9];
102 bf = SLPoleargs[10];
103 powf = SLPoleargs[11];
104
105 *vf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
106
107 f0 = SLPoleargs[12];
108 af = SLPoleargs[13];
109 bf = SLPoleargs[14];
110 powf = SLPoleargs[15];
111
112 *a0f = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
113 return;
114 }
115
116
117
119 double t, double mass, double *hf,
120 double *kf, double *bpf, double *bmf ){
121
122 if ( numSLPoleargs !=16 ) {
123 report(ERROR,"EvtGen") << "Problem in EvtSLPoleFF::gettensorff\n";
124 report(ERROR,"EvtGen") << "wrong number of arguements!!!\n";
125 }
126
127 double mb=EvtPDL::getMeanMass(parent);
128 double mb2 = mb*mb;
129
130 double f0,af,bf,powf;
131
132 f0 = SLPoleargs[0];
133 af = SLPoleargs[1];
134 bf = SLPoleargs[2];
135 powf = SLPoleargs[3];
136 *hf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
137
138 f0 = SLPoleargs[4];
139 af = SLPoleargs[5];
140 bf = SLPoleargs[6];
141 powf = SLPoleargs[7];
142
143 *kf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
144
145 f0 = SLPoleargs[8];
146 af = SLPoleargs[9];
147 bf = SLPoleargs[10];
148 powf = SLPoleargs[11];
149
150 *bpf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
151
152 f0 = SLPoleargs[12];
153 af = SLPoleargs[13];
154 bf = SLPoleargs[14];
155 powf = SLPoleargs[15];
156
157 *bmf = f0/(pow( 1.0 + (af*t/mb2) + (bf*((t/mb2)*(t/mb2))),powf));
158 return;
159 }
160
double mass
ostream & report(Severity severity, const char *facility)
Definition: EvtReport.cc:36
@ ERROR
Definition: EvtReport.hh:49
Definition: EvtId.hh:27
static double getMeanMass(EvtId i)
Definition: EvtPDL.hh:45
void getscalarff(EvtId parent, EvtId daught, double t, double mass, double *fpf, double *f0f)
Definition: EvtSLPoleFF.cc:39
void getvectorff(EvtId parent, EvtId daught, double t, double mass, double *a1f, double *a2f, double *vf, double *a0f)
Definition: EvtSLPoleFF.cc:72
void gettensorff(EvtId parent, EvtId daught, double t, double mass, double *hf, double *kf, double *bp, double *bm)
Definition: EvtSLPoleFF.cc:118
EvtSLPoleFF(int numarg, double *arglist)
Definition: EvtSLPoleFF.cc:30
int t()
Definition: t.c:1