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