EvtGen 2.2.0
Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons.
Loading...
Searching...
No Matches
EvtBBScalar.cpp
Go to the documentation of this file.
1
2/***********************************************************************
3* Copyright 1998-2020 CERN for the benefit of the EvtGen authors *
4* *
5* This file is part of EvtGen. *
6* *
7* EvtGen is free software: you can redistribute it and/or modify *
8* it under the terms of the GNU General Public License as published by *
9* the Free Software Foundation, either version 3 of the License, or *
10* (at your option) any later version. *
11* *
12* EvtGen is distributed in the hope that it will be useful, *
13* but WITHOUT ANY WARRANTY; without even the implied warranty of *
14* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15* GNU General Public License for more details. *
16* *
17* You should have received a copy of the GNU General Public License *
18* along with EvtGen. If not, see <https://www.gnu.org/licenses/>. *
19***********************************************************************/
20
22
27
28#include <cmath>
29
30using namespace std;
31
32const float pi = 3.14159;
35 EvtComplex( 3.67e-3 * cos( 60 / 180 * pi ), 3.67e-3 * cos( 60 / 180 * pi ) );
37const EvtComplex EvtBBScalar::m_a1 = EvtComplex( 1.05, 0 );
38const EvtComplex EvtBBScalar::m_V_tb = EvtComplex( 0.99915, 0 );
40 EvtComplex( -0.04029 - 0.000813 * cos( 60 / 180 * pi ),
41 -0.000813 * cos( 60 / 180 * pi ) );
42const EvtComplex EvtBBScalar::m_a4 = EvtComplex( -387.3e-4, -121e-4 );
43const EvtComplex EvtBBScalar::m_a6 = EvtComplex( -555.3e-4, -121e-4 );
44const double EvtBBScalar::m_x[] = { 420.96, -10485.50, 100639.97, -433916.61,
45 613780.15 };
46const double EvtBBScalar::m_y[] = { 292.62, -735.73 };
47const double EvtBBScalar::m_ms = 0.120;
48const double EvtBBScalar::m_mu = 0.029 * 0.120;
49const double EvtBBScalar::m_mb = 4.88;
50
53{
54 FormFactor dummy;
55 dummy.m_value = 0.36;
56 dummy.m_sigma1 = 0.43;
57 dummy.m_sigma2 = 0.0;
58 dummy.m_mV = 5.42;
59 m_f1Map.insert( make_pair( string( "K" ), dummy ) );
60 dummy.m_sigma1 = 0.70;
61 dummy.m_sigma2 = 0.27;
62 m_f0Map.insert( make_pair( string( "K" ), dummy ) );
63 dummy.m_value = 0.29;
64 dummy.m_sigma1 = 0.48;
65 dummy.m_sigma2 = 0.0;
66 dummy.m_mV = 5.32;
67 m_f1Map.insert( make_pair( string( "pi" ), dummy ) );
68 dummy.m_sigma1 = 0.76;
69 dummy.m_sigma2 = 0.28;
70 m_f0Map.insert( make_pair( string( "pi" ), dummy ) );
71}
72
73std::string EvtBBScalar::getName() const
74{
75 return "B_TO_2BARYON_SCALAR";
76}
77
79{
80 return new EvtBBScalar;
81}
82
84{
85 int baryonId = EvtPDL::getStdHep( baryon );
86 if ( EvtPDL::getStdHep( EvtPDL::getId( "Lambda0" ) ) == baryonId or
87 EvtPDL::getStdHep( EvtPDL::getId( "anti-Lambda0" ) ) == baryonId ) {
89 } else if ( EvtPDL::getStdHep( EvtPDL::getId( "p+" ) ) == baryonId or
90 EvtPDL::getStdHep( EvtPDL::getId( "anti-p-" ) ) == baryonId ) {
92 } else if ( EvtPDL::getStdHep( EvtPDL::getId( "n0" ) ) == baryonId or
93 EvtPDL::getStdHep( EvtPDL::getId( "anti-n0" ) ) == baryonId ) {
95 } else if ( EvtPDL::getStdHep( EvtPDL::getId( "Sigma0" ) ) == baryonId or
96 EvtPDL::getStdHep( EvtPDL::getId( "anti-Sigma0" ) ) == baryonId ) {
98 } else if ( EvtPDL::getStdHep( EvtPDL::getId( "Sigma-" ) ) == baryonId or
99 EvtPDL::getStdHep( EvtPDL::getId( "anti-Sigma+" ) ) == baryonId ) {
101 } else if ( EvtPDL::getStdHep( EvtPDL::getId( "Xi0" ) ) == baryonId or
102 EvtPDL::getStdHep( EvtPDL::getId( "anti-Xi0" ) ) == baryonId ) {
104 } else if ( EvtPDL::getStdHep( EvtPDL::getId( "Xi-" ) ) == baryonId or
105 EvtPDL::getStdHep( EvtPDL::getId( "anti-Xi+" ) ) == baryonId ) {
107 } else {
108 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
109 << "EvtBBScalar::init: Don't know what to do with this type as the first or second baryon\n";
110 exit( 2 );
111 }
112}
113
114double EvtBBScalar::baryonF1F2( double t ) const
115{
116 // check for known form factors for combination of baryons
117 if ( m_baryonCombination.test( Lambda ) and
118 m_baryonCombination.test( Proton ) ) {
119 return -sqrt( 1.5 ) * G_p( t );
120 } else if ( m_baryonCombination.test( Sigma0 ) and
121 m_baryonCombination.test( Proton ) ) {
122 return -sqrt( 0.5 ) * ( G_p( t ) + 2 * G_n( t ) );
123 } else if ( m_baryonCombination.test( Sigma_minus ) and
124 m_baryonCombination.test( Neutron ) ) {
125 return -G_p( t ) - 2 * G_n( t );
126 } else if ( m_baryonCombination.test( Xi0 ) and
128 return G_p( t ) - G_n( t );
129 } else if ( m_baryonCombination.test( Xi_minus ) and
130 m_baryonCombination.test( Sigma0 ) ) {
131 return sqrt( 0.5 ) * ( G_p( t ) - G_n( t ) );
132 } else if ( m_baryonCombination.test( Xi_minus ) and
133 m_baryonCombination.test( Lambda ) ) {
134 return sqrt( 1.5 ) * ( G_p( t ) + G_n( t ) );
135 } else {
136 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
137 << "EvtBBScalar::baryonF1F2: Don't know what to do with this type as the first or second baryon\n";
138 exit( 2 );
139 }
140}
141
142double EvtBBScalar::formFactorFit( double t, const vector<double>& params ) const
143{
144 static const double gamma = 2.148;
145 static const double Lambda_0 = 0.3;
146 double result = 0;
147 for ( size_t i = 0; i < params.size(); ++i ) {
148 result += params[i] / pow( t, static_cast<int>( i + 1 ) );
149 }
150 return result * pow( log( t / pow( Lambda_0, 2 ) ), -gamma );
151}
152
153double EvtBBScalar::G_p( double t ) const
154{
155 const vector<double> v_x( m_x, m_x + 5 );
156 return formFactorFit( t, v_x );
157}
158
159double EvtBBScalar::G_n( double t ) const
160{
161 const vector<double> v_y( m_y, m_y + 2 );
162 return -formFactorFit( t, v_y );
163}
164
165double EvtBBScalar::baryon_gA( double t ) const
166{
167 // check for known form factors for combination of baryons
168 if ( m_baryonCombination.test( Lambda ) and
169 m_baryonCombination.test( Proton ) ) {
170 return -1 / sqrt( 6. ) * ( D_A( t ) + 3 * F_A( t ) );
171 } else if ( m_baryonCombination.test( Sigma0 ) and
172 m_baryonCombination.test( Proton ) ) {
173 return 1 / sqrt( 2. ) * ( D_A( t ) - F_A( t ) );
174 } else if ( m_baryonCombination.test( Sigma_minus ) and
175 m_baryonCombination.test( Neutron ) ) {
176 return D_A( t ) - F_A( t );
177 } else if ( m_baryonCombination.test( Xi0 ) and
179 return D_A( t ) + F_A( t );
180 } else if ( m_baryonCombination.test( Xi_minus ) and
181 m_baryonCombination.test( Sigma0 ) ) {
182 return 1 / sqrt( 2. ) * ( D_A( t ) + F_A( t ) );
183 } else if ( m_baryonCombination.test( Xi_minus ) and
184 m_baryonCombination.test( Lambda ) ) {
185 return -1 / sqrt( 6. ) * ( D_A( t ) - 3 * F_A( t ) );
186 } else {
187 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
188 << "EvtBBScalar::baryon_gA: Don't know what to do with this type as the first or second baryon\n";
189 exit( 2 );
190 }
191}
192
193double EvtBBScalar::baryon_gP( double t ) const
194{
195 // check for known form factors for combination of baryons
196 if ( m_baryonCombination.test( Lambda ) and
197 m_baryonCombination.test( Proton ) ) {
198 return -1 / sqrt( 6. ) * ( D_P( t ) + 3 * F_P( t ) );
199 } else if ( m_baryonCombination.test( Sigma0 ) and
200 m_baryonCombination.test( Proton ) ) {
201 return 1 / sqrt( 2. ) * ( D_P( t ) - F_P( t ) );
202 } else if ( m_baryonCombination.test( Sigma_minus ) and
203 m_baryonCombination.test( Neutron ) ) {
204 return D_P( t ) - F_P( t );
205 } else if ( m_baryonCombination.test( Xi0 ) and
207 return D_P( t ) + F_P( t );
208 } else if ( m_baryonCombination.test( Xi_minus ) and
209 m_baryonCombination.test( Sigma0 ) ) {
210 return 1 / sqrt( 2. ) * ( D_P( t ) + F_P( t ) );
211 } else if ( m_baryonCombination.test( Xi_minus ) and
212 m_baryonCombination.test( Lambda ) ) {
213 return -1 / sqrt( 6. ) * ( D_P( t ) - 3 * F_P( t ) );
214 } else {
215 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
216 << "EvtBBScalar::baryon_gP: Don't know what to do with this type as the first or second baryon\n";
217 exit( 2 );
218 }
219}
220
221double EvtBBScalar::baryon_fS( double t ) const
222{
223 // check for known form factors for combination of baryons
224 if ( m_baryonCombination.test( Lambda ) and
225 m_baryonCombination.test( Proton ) ) {
226 return -1 / sqrt( 6. ) * ( D_S( t ) + 3 * F_S( t ) );
227 } else if ( m_baryonCombination.test( Sigma0 ) and
228 m_baryonCombination.test( Proton ) ) {
229 return 1 / sqrt( 2. ) * ( D_S( t ) - F_S( t ) );
230 } else if ( m_baryonCombination.test( Sigma_minus ) and
231 m_baryonCombination.test( Neutron ) ) {
232 return D_S( t ) - F_S( t );
233 } else if ( m_baryonCombination.test( Xi0 ) and
235 return D_S( t ) + F_S( t );
236 } else if ( m_baryonCombination.test( Xi_minus ) and
237 m_baryonCombination.test( Sigma0 ) ) {
238 return 1 / sqrt( 2. ) * ( D_S( t ) + F_S( t ) );
239 } else if ( m_baryonCombination.test( Xi_minus ) and
240 m_baryonCombination.test( Lambda ) ) {
241 return -1 / sqrt( 6. ) * ( D_S( t ) - 3 * F_S( t ) );
242 } else {
243 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
244 << "EvtBBScalar::baryon_fS: Don't know what to do with this type as the first or second baryon\n";
245 exit( 2 );
246 }
247}
248
249double EvtBBScalar::D_A( double t ) const
250{
251 const double d_tilde[] = { m_x[0] - 1.5 * m_y[0], -478 };
252 const vector<double> v_d_tilde( d_tilde, d_tilde + 2 );
253 return formFactorFit( t, v_d_tilde );
254}
255
256double EvtBBScalar::F_A( double t ) const
257{
258 const double f_tilde[] = { 2. / 3 * m_x[0] + 0.5 * m_y[0], -478 };
259 const vector<double> v_f_tilde( f_tilde, f_tilde + 2 );
260 return formFactorFit( t, v_f_tilde );
261}
262
263double EvtBBScalar::D_P( double t ) const
264{
265 const double d_bar[] = { 1.5 * m_y[0] * m_massRatio, /*-952*/ 0 };
266 const vector<double> v_d_bar( d_bar, d_bar + 2 );
267 return formFactorFit( t, v_d_bar );
268}
269
270double EvtBBScalar::F_P( double t ) const
271{
272 const double f_bar[] = { ( m_x[0] - 0.5 * m_y[0] ) * m_massRatio, /*-952*/ 0 };
273 const vector<double> v_f_bar( f_bar, f_bar + 2 );
274 return formFactorFit( t, v_f_bar );
275}
276
277double EvtBBScalar::D_S( double t ) const
278{
279 return -1.5 * m_massRatio * G_n( t );
280}
281
282double EvtBBScalar::F_S( double t ) const
283{
284 return ( G_p( t ) + 0.5 * G_n( t ) ) * m_massRatio;
285}
286
287double EvtBBScalar::baryon_hA( double t ) const
288{
289 return ( 1 / m_massRatio * baryon_gP( t ) - baryon_gA( t ) ) *
290 pow( m_baryonMassSum, 2 ) / t;
291}
292
294{
295 // no arguments, daughter lambda p_bar pi
296 // charge conservation is checked by base class
297 checkNArg( 0 );
298 checkNDaug( 3 );
303 EvtId baryon1 = getDaug( 0 );
304 EvtId baryon2 = getDaug( 1 );
305 EvtId scalar = getDaug( 2 );
306 int scalarId = EvtPDL::getStdHep( scalar );
307
308 // Different form factors for the B-pi or B-K transition.
309 if ( scalarId == EvtPDL::getStdHep( EvtPDL::getId( "pi+" ) ) or
310 scalarId == EvtPDL::getStdHep( EvtPDL::getId( "pi-" ) ) or
311 scalarId == EvtPDL::getStdHep( EvtPDL::getId( "pi0" ) ) ) {
312 m_scalarType = "pi";
313 } else if ( scalarId == EvtPDL::getStdHep( EvtPDL::getId( "K+" ) ) or
314 scalarId == EvtPDL::getStdHep( EvtPDL::getId( "K-" ) ) or
315 scalarId == EvtPDL::getStdHep( EvtPDL::getId( "K0" ) ) or
316 scalarId == EvtPDL::getStdHep( EvtPDL::getId( "anti-K0" ) ) ) {
317 m_scalarType = "K";
318 } else {
319 EvtGenReport( EVTGEN_ERROR, "EvtGen" )
320 << "EvtBBScalar::init: Can only deal with Kaons or pions as the third particle\n"
321 << "\tFound: " << scalarId << endl;
322 exit( 2 );
323 }
324 // check for known particles
325 setKnownBaryonTypes( baryon1 );
326 setKnownBaryonTypes( baryon2 );
327 double mass1 = EvtPDL::getMass( baryon1 );
328 double mass2 = EvtPDL::getMass( baryon2 );
329 // This whole model deals only with baryons that differ in s-u
330 if ( mass1 > mass2 )
331 m_massRatio = ( mass1 - mass2 ) / ( m_ms - m_mu );
332 else
333 m_massRatio = ( mass2 - mass1 ) / ( m_ms - m_mu );
334 m_baryonMassSum = mass1 + mass2;
335}
336
337// initialize phasespace and calculate the amplitude
339{
341 EvtVector4R B_Momentum = p->getP4Lab();
342 EvtDiracParticle* theLambda = dynamic_cast<EvtDiracParticle*>(
343 p->getDaug( 0 ) );
344 EvtDiracParticle* theAntiP = dynamic_cast<EvtDiracParticle*>(
345 p->getDaug( 1 ) );
346 EvtScalarParticle* theScalar = dynamic_cast<EvtScalarParticle*>(
347 p->getDaug( 2 ) );
348 EvtVector4R scalarMomentum = theScalar->getP4Lab();
349
350 // The amplitude consists of three matrix elements. These will be calculated one by one here.
351
352 // loop over all possible spin states
353 for ( int i = 0; i < 2; ++i ) {
354 EvtDiracSpinor lambdaPol = theLambda->spParent( i );
355 for ( int j = 0; j < 2; ++j ) {
356 EvtDiracSpinor antiP_Pol = theAntiP->spParent( j );
357 EvtVector4C theAmplitudePartA = amp_A( B_Momentum, scalarMomentum );
359 for ( int index = 0; index < 4; ++index ) {
360 amplitude += theAmplitudePartA.get( index ) *
361 ( m_const_B * amp_B( theLambda, lambdaPol,
362 theAntiP, antiP_Pol, index ) +
363 m_const_C * amp_C( theLambda, lambdaPol,
364 theAntiP, antiP_Pol, index ) );
365 }
366 vertex( i, j, amplitude );
367 }
368 }
369}
370
372{
373 // setProbMax(1);
374 setProbMax( 0.2 ); // found by trial and error
375}
376
377// Form factor f1 for B-pi transition
378double EvtBBScalar::B_pi_f1( double t ) const
379{
381 double mv2 = f.m_mV * f.m_mV;
382 return f.m_value / ( ( 1 - t / mv2 ) * ( 1 - f.m_sigma1 * t / mv2 +
383 f.m_sigma2 * t * t / mv2 / mv2 ) );
384}
385
386// Form factor f0 for B-pi transition
387double EvtBBScalar::B_pi_f0( double t ) const
388{
390 double mv2 = f.m_mV * f.m_mV;
391 return f.m_value /
392 ( 1 - f.m_sigma1 * t / mv2 + f.m_sigma2 * t * t / mv2 / mv2 );
393}
394
395// constants of the B and C parts of the amplitude
396const EvtComplex EvtBBScalar::m_const_B = m_V_ub * m_V_us_star * m_a1 -
397 m_V_tb * m_V_ts_star * m_a4;
398const EvtComplex EvtBBScalar::m_const_C = 2 * m_a6 * m_V_tb * m_V_ts_star;
399
400// part A of the amplitude, see hep-ph/0204185
402 const EvtVector4R& p4Scalar )
403{
404 double mB2 = p4B.mass2();
405 double mScalar2 = p4Scalar.mass2();
406 double t = ( p4B - p4Scalar ).mass2();
407 return ( ( p4B + p4Scalar ) - ( mB2 - mScalar2 ) / t * ( p4B - p4Scalar ) ) *
408 B_pi_f1( t ) +
409 ( mB2 - mScalar2 ) / t * ( p4B - p4Scalar ) * B_pi_f0( t );
410}
411
412// part B of the amplitude, Vector and Axial Vector parts
414 const EvtDiracSpinor& b1Pol,
415 const EvtDiracParticle* baryon2,
416 const EvtDiracSpinor& b2Pol, int index )
417{
418 return amp_B_vectorPart( baryon1, b1Pol, baryon2, b2Pol, index ) -
419 amp_B_axialPart( baryon1, b1Pol, baryon2, b2Pol, index );
420}
421
423 const EvtDiracSpinor& b1Pol,
424 const EvtDiracParticle* baryon2,
425 const EvtDiracSpinor& b2Pol,
426 int index )
427{
428 double t = ( baryon1->getP4Lab() + baryon2->getP4Lab() ).mass2();
429 EvtGammaMatrix gamma;
430 for ( int i = 0; i < 4; ++i ) {
431 gamma += EvtTensor4C::g().get( index, i ) * EvtGammaMatrix::g( i );
432 }
433 // The F2 contribution that is written out in the paper is neglected here.
434 // see hep-ph/0204185
435 EvtDiracSpinor A = EvtComplex( baryonF1F2( t ) ) * b2Pol;
436 EvtDiracSpinor Adjb1Pol = b1Pol.adjoint();
437 EvtDiracSpinor gammaA = gamma * A;
438 return Adjb1Pol * gammaA;
439 // return b1Pol.adjoint()*(gamma*(EvtComplex(baryonF1F2(t))*b2Pol));
440}
441
443 const EvtDiracSpinor& b1Pol,
444 const EvtDiracParticle* baryon2,
445 const EvtDiracSpinor& b2Pol,
446 int index )
447{
448 EvtGammaMatrix gamma;
449 for ( int i = 0; i < 4; ++i ) {
450 gamma += EvtTensor4C::g().get( index, i ) * EvtGammaMatrix::g( i );
451 }
452 double t = ( baryon1->getP4Lab() + baryon2->getP4Lab() ).mass2();
453 double mSum = baryon1->mass() + baryon2->mass();
454 EvtVector4C momentum_upper = ( baryon1->getP4Lab() + baryon2->getP4Lab() );
455 EvtVector4C momentum;
456 for ( int mu = 0; mu < 0; ++mu ) {
457 EvtComplex dummy;
458 for ( int i = 0; i < 4; ++i ) {
459 dummy += EvtTensor4C::g().get( index, i ) * momentum_upper.get( i );
460 }
461 momentum.set( mu, dummy );
462 }
463 return b1Pol.adjoint() *
464 ( ( ( baryon_gA( t ) * gamma + EvtGammaMatrix::id() * baryon_hA( t ) /
465 mSum * momentum.get( index ) ) *
467 b2Pol );
468}
469
470// part C of the amplitude, Scalar and Pseudoscalar parts
472 const EvtDiracSpinor& b1Pol,
473 const EvtDiracParticle* baryon2,
474 const EvtDiracSpinor& b2Pol, int index )
475{
476 EvtVector4C baryonSumP4_upper = baryon1->getP4Lab() + baryon2->getP4Lab();
477 EvtVector4C baryonSumP4;
478 for ( int mu = 0; mu < 4; ++mu ) {
479 EvtComplex dummy;
480 for ( int i = 0; i < 4; ++i ) {
481 dummy += EvtTensor4C::g().get( mu, i ) * baryonSumP4_upper.get( i );
482 }
483 baryonSumP4.set( mu, dummy );
484 }
485 double t = ( baryon1->getP4Lab() + baryon2->getP4Lab() ).mass2();
486 return baryonSumP4.get( index ) / ( m_mb - m_mu ) *
487 ( amp_C_scalarPart( b1Pol, b2Pol, t ) +
488 amp_C_pseudoscalarPart( b1Pol, b2Pol, t ) );
489}
490
492 const EvtDiracSpinor& b2Pol,
493 double t )
494{
495 return baryon_fS( t ) * b1Pol.adjoint() * b2Pol;
496}
497
499 const EvtDiracSpinor& b1Pol, const EvtDiracSpinor& b2Pol, double t )
500{
501 return baryon_gP( t ) * b1Pol.adjoint() * ( EvtGammaMatrix::g5() * b2Pol );
502}
const float pi
std::ostream & EvtGenReport(EvtGenSeverity severity, const char *facility=nullptr)
Definition EvtReport.cpp:32
@ EVTGEN_ERROR
Definition EvtReport.hh:49
double B_pi_f0(double t) const
std::map< std::string, FormFactor > m_f1Map
double G_n(double t) const
double baryon_hA(double t) const
static const EvtComplex m_V_tb
static const double m_mb
void initProbMax() override
static const EvtComplex m_const_C
void decay(EvtParticle *p) override
const EvtComplex amp_C_pseudoscalarPart(const EvtDiracSpinor &b1Pol, const EvtDiracSpinor &b2Pol, double t)
static const double m_y[]
double m_massRatio
double F_S(double t) const
static const EvtComplex m_a4
static const EvtComplex m_V_us_star
const EvtComplex amp_C_scalarPart(const EvtDiracSpinor &b1Pol, const EvtDiracSpinor &b2Pol, double t)
double baryon_fS(double t) const
std::bitset< nBaryons > m_baryonCombination
EvtBBScalar * clone() const override
static const double m_x[]
const EvtComplex amp_C(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
void setKnownBaryonTypes(const EvtId &baryon)
static const EvtComplex m_a6
const EvtComplex amp_B_vectorPart(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
static const EvtComplex m_a1
double D_A(double t) const
static const EvtComplex m_V_ub
static const EvtComplex m_I
double baryonF1F2(double t) const
double G_p(double t) const
static const double m_mu
double F_A(double t) const
static const double m_ms
void init() override
const EvtComplex amp_B(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
double m_baryonMassSum
std::string getName() const override
static const EvtComplex m_V_ts_star
double F_P(double t) const
const EvtComplex amp_B_axialPart(const EvtDiracParticle *baryon1, const EvtDiracSpinor &b1Pol, const EvtDiracParticle *baryon2, const EvtDiracSpinor &b2Pol, int index)
const EvtVector4C amp_A(const EvtVector4R &p4B, const EvtVector4R &p4Scalar)
double formFactorFit(double t, const std::vector< double > &params) const
double B_pi_f1(double t) const
double D_S(double t) const
double baryon_gP(double t) const
std::string m_scalarType
static const EvtComplex m_const_B
double baryon_gA(double t) const
double D_P(double t) const
std::map< std::string, FormFactor > m_f0Map
const EvtAmp & amplitude() const
void vertex(const EvtComplex &amp)
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
int getNDaug() const
void checkSpinParent(EvtSpinType::spintype sp)
void setProbMax(double prbmx)
EvtId getDaug(int i) const
void checkNDaug(int d1, int d2=-1)
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
const EvtId * getDaugs() const
EvtDiracSpinor spParent(int i) const override
EvtDiracSpinor adjoint() const
static const EvtGammaMatrix & id()
static const EvtGammaMatrix & g(int)
static const EvtGammaMatrix & g5()
Definition EvtId.hh:27
static int getStdHep(EvtId id)
Definition EvtPDL.cpp:356
static double getMass(EvtId i)
Definition EvtPDL.cpp:311
static EvtId getId(const std::string &name)
Definition EvtPDL.cpp:283
double initializePhaseSpace(size_t numdaughter, const EvtId *daughters, bool forceResetMasses=false, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
EvtParticle * getDaug(const int i)
double mass() const
EvtVector4R getP4Lab() const
const EvtComplex & get(int i, int j) const
static const EvtTensor4C & g()
void set(int, const EvtComplex &)
const EvtComplex & get(int) const
double mass2() const