]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TEvtGen/EvtGen/EvtGenModels/EvtBaryonPCRFF.cpp
Converting TEvtGen to native cmake
[u/mrichter/AliRoot.git] / TEvtGen / EvtGen / EvtGenModels / EvtBaryonPCRFF.cpp
CommitLineData
0ca57c2f 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:
9// Copyright (C) 1998 Caltech, UCSB
10//
11// Module: EvtBaryonVminusAFF.cc
12//
13// Description: Routine to implement semileptonic form factors
14// according to the model BaryonVminusA
15//
16// Modification history:
17//
18// R.J. Tesarek May 28, 2004 Module created
19// Karen Gibson 1/20/2006 Module updated for 1/2+->1/2+,
20// 1/2+->1/2-, 1/2+->3/2- Lambda decays
21//
22//--------------------------------------------------------------------------
23#include "EvtGenBase/EvtPatches.hh"
24#include "EvtGenBase/EvtReport.hh"
25#include "EvtGenModels/EvtBaryonPCRFF.hh"
26#include "EvtGenBase/EvtPDL.hh"
27#include "EvtGenBase/EvtId.hh"
28#include "EvtGenBase/EvtIdSet.hh"
29#include "EvtGenBase/EvtConst.hh"
30#include <string>
31#include <math.h>
32#include <stdlib.h>
33using std::endl;
34
35void EvtBaryonPCRFF::getdiracff(EvtId parent, EvtId daught,
36 double q2, double /* mass */ ,
37 double *f1, double *f2, double *f3,
38 double *g1, double *g2, double *g3 ) {
39
40 // Baryons (partial list 5/28/04)
41 static EvtId LAMCP=EvtPDL::getId("Lambda_c+");
42 static EvtId LAMCM=EvtPDL::getId("anti-Lambda_c-");
43 static EvtId LAMC1P=EvtPDL::getId("Lambda_c(2593)+");
44 static EvtId LAMC1M=EvtPDL::getId("anti-Lambda_c(2593)-");
45 static EvtId LAMB=EvtPDL::getId("Lambda_b0");
46 static EvtId LAMBB=EvtPDL::getId("anti-Lambda_b0");
47
48 double F1, F2, F3, G1, G2, G3;
49
50 if( parent==LAMB || parent==LAMBB ) {
51 // Implement constituent quark model form factors predicted
52 // by M. Pervin, W. Roberst, and S. Capstick, Phys. Rev. C72, 035201 (2005)
53
54 if( daught==LAMCP|| daught==LAMCM ) {
55
56 // Parameters needed in the calculation;
57 double mQ = 5.28;
58 double mq = 1.89;
59 double md = 0.40;
60 double MLamB = EvtPDL::getMass(parent);
61 double MLamC = EvtPDL::getMass(daught);
62
63 double aL = 0.59;
64 double aLp = 0.55;
65
66 double aL2 = aL*aL;
67 double aLp2 = aLp*aLp;
68 double aLLp2 = 0.5*(aL2+aLp2);
69
70 // relativistic correction factor
71 double k2 = 1.0;
72 double rho2 = 3.*md*md/(2.*k2*aLLp2);
73
74 // w = scalar product of the 4 velocities of the Lb and Lc.
75 double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC;
76
77 double I = pow(aL*aLp/aLLp2, 1.5)*exp(-rho2*(w*w-1.));
78
79 // Calculate the form factors
80 F1 = I*( 1.0 + (md/aLLp2)*( (aLp2/mq)+(aL2/mQ) ) );
81 F2 = -I*( (md/mq)*(aLp2/aLLp2) - aL2*aLp2/(4.*aLLp2*mq*mQ) );
82 F3 = -I*md*aL2/(mQ*aLLp2);
83
84 G1 = I*( 1.0 - (aL2*aLp2)/(12.*aLLp2*mq*mQ) );
85 G2 = -I*( md*aLp2/(mq*aLLp2)
86 + (aL2*aLp2)/(12.*aLLp2*mq*mQ)*(1.+12.*md*md/aLLp2) );
87 G3 = I*( md*aL2/(mQ*aLLp2) + md*md*aL2*aLp2/(mq*mQ*aLLp2*aLLp2) );
88
89 // Set form factors to be passed to the amplitude calc.
90 *f1 = F1;
91 *f2 = F2;
92 *f3 = F3;
93 *g1 = G1;
94 *g2 = G2;
95 *g3 = G3;
96
97 }
98
99 else if( daught==LAMC1P || daught==LAMC1M ) {
100
101 double mQ = 5.28;
102 double mq = 1.89;
103 double md = 0.40;
104 double MLamB = EvtPDL::getMass(parent);
105 double MLamC = EvtPDL::getMass(daught);
106
107 double aL = 0.59;
108 double aLp = 0.47;
109
110 double aL2 = aL*aL;
111 double aLp2 = aLp*aLp;
112 double aLLp2 = 0.5*(aL2+aLp2);
113
114 // relativistic correction factor
115 double k2 = 1.0;
116 double rho2 = 3.*md*md/(2.*k2*aLLp2);
117
118 // w = scalar product of the 4 velocities of the Lb and Lc.
119 double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC;
120
121 double I = pow(aL*aLp/aLLp2, 2.5)*exp(-rho2*(w*w-1.));
122
123 // Calculate the form factors
124 F1 = I*aL/6.0*( 3.0/mq - 1.0/mQ );
125 F2 = -I*( 2.0*md/aL - aL/(2.0*mq) + 2.*md*md*aL/(mQ*aLLp2)
126 - (md*aL/(6.*mq*mQ*aLLp2))*( 3.*aL2 - 2.*aLp2));
127 F3 = I*2.*md*md*aL/(mQ*aLLp2);
128
129 G1 = I*( 2.0*md/aL - aL/(6.*mQ)
130 + (md*aL/(6.*mq*mQ*aLLp2))*( 3.*aL2 - 2.*aLp2));
131 G2 = I*( -2.*md/aL + aL/(2.*mq) + aL/(3.*mQ) );
132 G3 = I*aL/(3.*mQ)*( 1.0 - (md/(2.*mq*aLLp2))*( 3.*aL2 - 2.*aLp2));
133
134 // Set form factors to be passed to the amplitude calc.
135 *f1 = F1;
136 *f2 = F2;
137 *f3 = F3;
138 *g1 = G1;
139 *g2 = G2;
140 *g3 = G3;
141 }
142 }
143
144 else {
145 *f1 = 1.0;
146 *f2 = 1.0;
147 *f3 = 0.0;
148 *g1 = 1.0;
149 *g2 = 1.0;
150 *g3 = 0.0;
151 }
152
153 return ;
154}
155
156
157void EvtBaryonPCRFF::getraritaff( EvtId parent, EvtId daught,
158 double q2, double /* mass */,
159 double *f1, double *f2, double *f3, double *f4,
160 double *g1, double *g2, double *g3, double *g4 ) {
161
162 // Baryons (partial list 5/28/04)
163 static EvtId LAMB=EvtPDL::getId("Lambda_b0");
164 static EvtId LAMBB=EvtPDL::getId("anti-Lambda_b0");
165 static EvtId LAMC2P=EvtPDL::getId("Lambda_c(2625)+");
166 static EvtId LAMC2M=EvtPDL::getId("anti-Lambda_c(2625)-");
167
168 double F1, F2, F3, F4, G1, G2, G3, G4;
169
170 if( parent==LAMB || parent==LAMBB ) {
171 // Implement constituent quark model form factors predicted
172 // by M. Pervin, W. Roberst, and S. Capstick, Phys. Rev. C72, 035201 (2005)
173
174 if( daught==LAMC2P|| daught==LAMC2M ) {
175
176 double mQ = 5.28;
177 double mq = 1.89;
178 double md = 0.40;
179 double MLamB = EvtPDL::getMass(parent);
180 double MLamC = EvtPDL::getMass(daught);
181
182 double aL = 0.59;
183 double aLp = 0.47;
184
185 double aL2 = aL*aL;
186 double aLp2 = aLp*aLp;
187 double aLLp2 = 0.5*(aL2+aLp2);
188
189 // relativistic correction factor
190 double k2 = 1.0;
191 double rho2 = 3.*md*md/(2.*k2*aLLp2);
192
193 // w = scalar product of the 4 velocities of the Lb and Lc.
194 double w = 0.5*(MLamB*MLamB + MLamC*MLamC - q2)/MLamB/MLamC;
195
196 double I = -(1./sqrt(3.))*pow(aL*aLp/aLLp2, 2.5)*exp(-rho2*(w*w-1.));
197
198 // Calculate the form factors
199 F1 = I*3.0*md/aL*( 1.0 + (md/aLLp2)*( (aLp2/mq)+(aL2/mQ) ) );
200 F2 = -I*( (3.*md*md/mq)*(aLp2/(aLLp2*aL2)) - 5.*aL*aLp2*md/(4.*aLLp2*mq*mQ) );
201 F3 = -I*( 3.*md*md*aL/(mQ*aLLp2) + aL/(2.*mQ) );
202 F4 = I*aL/mQ;
203
204 G1 = I*( 3.0*md/aL - (aL/(2.*mQ))*(1. + 3.*md*aLp2/(2.*aLLp2*mq) ) );
205 G2 = -I*( (3.*md*md/mq)*(aLp2/(aLLp2*aL)) + aL*aLp2*md/(4.*aLLp2*aLLp2*mq*mQ)*(aLLp2+12.*md*md) );
206 G3 = I*aL/(mQ*aLLp2)*( aLLp2/2. + 3.*md*md + aLp2*md/(mq*aLLp2)*(aLLp2+6.*md*md) );
207 G4 = -I*( aL/mQ + md/(mq*mQ)*aLp2*aL/aLLp2 );
208
209 // Set form factors to be passed to the amplitude calc.
210 *f1 = F1;
211 *f2 = F2;
212 *f3 = F3;
213 *f4 = F4;
214 *g1 = G1;
215 *g2 = G2;
216 *g3 = G3;
217 *g4 = G4;
218 }
219 }
220
221 else {
222 *f1 = 1.0;
223 *f2 = 1.0;
224 *f3 = 0.0;
225 *f4 = 0.0;
226 *g1 = 1.0;
227 *g2 = 1.0;
228 *g3 = 0.0;
229 *g4 = 0.0;
230
231 }
232
233 return ;
234
235
236}
237
238void EvtBaryonPCRFF::getscalarff(EvtId, EvtId, double, double, double*, double*) {
239
240 report(ERROR,"EvtGen") << "Not implemented :getscalarff in EvtBaryonPCRFF.\n";
241 ::abort();
242
243}
244
245void EvtBaryonPCRFF::getvectorff(EvtId, EvtId, double, double, double*, double*,
246 double*, double*) {
247
248 report(ERROR,"EvtGen") << "Not implemented :getvectorff in EvtBaryonPCRFF.\n";
249 ::abort();
250
251}
252
253void EvtBaryonPCRFF::gettensorff(EvtId, EvtId, double, double, double*, double*,
254 double*, double*) {
255
256 report(ERROR,"EvtGen") << "Not implemented :gettensorff in EvtBaryonPCRFF.\n";
257 ::abort();
258
259}
260
261void EvtBaryonPCRFF::getbaryonff(EvtId, EvtId, double, double, double*,
262 double*, double*, double*){
263
264 report(ERROR,"EvtGen") << "Not implemented :getbaryonff in EvtBaryonPCRFF.\n";
265 ::abort();
266
267}