BOSS
8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtLambdaP_BarGamma.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) 2003 Caltech
10
//
11
// Module: EvtGen/EvtRadiativeBaryonicPenguins.hh
12
//
13
// Description:Implementation of the decay B- -> lambda p_bar gamma according to
14
// Cheng, Yang; hep-ph/0201015
15
//
16
// Modification history:
17
//
18
// JFS December 16th, 2003 Module created
19
//
20
//------------------------------------------------------------------------
21
#include "
../EvtGenBase/EvtPatches.hh
"
22
23
#include "
../EvtGenBase/EvtDiracParticle.hh
"
24
#include "
../EvtGenBase/EvtDiracSpinor.hh
"
25
#include "
../EvtGenBase/EvtGammaMatrix.hh
"
26
#include "
../EvtGenBase/EvtPhotonParticle.hh
"
27
#include "
../EvtGenBase/EvtSpinType.hh
"
28
#include "
EvtLambdaP_BarGamma.hh
"
29
30
EvtLambdaP_BarGamma::EvtLambdaP_BarGamma
()
31
: _mLambdab( 5.624 )
32
,
// Lambda_b mass
33
_mLambda0( 1.115684 )
34
,
// Lambda0 mass
35
_c7Eff( -0.31 )
36
,
// Wilson coefficient
37
_mb( 4.4 )
38
,
// running b mass
39
_mV( 5.42 )
40
,
// pole mass vector current
41
_mA( 5.86 )
42
,
// pole mass axial current
43
_GF( 1.166E-5 )
44
,
// Fermi constant
45
_gLambdab( 16 )
46
,
// coupling constant Lambda_b -> B- p
47
_e0( 1 )
48
,
// electromagnetic coupling (+1)
49
_g1( 0.64 )
50
,
// heavy-light form factors at q_mSqare
51
_g2( -0.10 )
52
, _f1( 0.64 )
53
, _f2( -0.31 )
54
, _VtbVtsStar( 0.038 )
// |V_tb V_ts^*|
55
{}
56
57
void
EvtLambdaP_BarGamma::getName
( std::string& modelName ) {
58
modelName =
"B_TO_LAMBDA_PBAR_GAMMA"
;
59
}
60
61
EvtDecayBase
*
EvtLambdaP_BarGamma::clone
() {
return
new
EvtLambdaP_BarGamma
; }
62
63
void
EvtLambdaP_BarGamma::init
() {
64
// no arguments, daughter lambda p_bar gamma
65
checkNArg
( 0 );
66
checkNDaug
( 3 );
67
68
checkSpinParent
(
EvtSpinType::SCALAR
);
69
checkSpinDaughter
( 0,
EvtSpinType::DIRAC
);
70
checkSpinDaughter
( 1,
EvtSpinType::DIRAC
);
71
checkSpinDaughter
( 2,
EvtSpinType::PHOTON
);
72
}
73
74
// initialize phasespace and calculate the amplitude
75
void
EvtLambdaP_BarGamma::decay
(
EvtParticle
* p ) {
76
EvtComplex
I
( 0, 1 );
77
78
p->
initializePhaseSpace
(
getNDaug
(),
getDaugs
() );
79
80
EvtDiracParticle
* theLambda =
static_cast<
EvtDiracParticle
*
>
( p->
getDaug
( 0 ) );
81
EvtVector4R
lambdaMomentum = theLambda->
getP4Lab
();
82
83
EvtDiracParticle
* theAntiP =
static_cast<
EvtDiracParticle
*
>
( p->
getDaug
( 1 ) );
84
85
EvtPhotonParticle
* thePhoton =
static_cast<
EvtPhotonParticle
*
>
( p->
getDaug
( 2 ) );
86
EvtVector4R
photonMomentum = thePhoton->
getP4Lab
();
// get momentum in the same frame
87
88
// loop over all possible spin states
89
for
(
int
i = 0; i < 2; ++i )
90
{
91
EvtDiracSpinor
lambdaPol = theLambda->
spParent
( i );
92
for
(
int
j = 0; j < 2; ++j )
93
{
94
EvtDiracSpinor
antiP_Pol = theAntiP->
spParent
( j );
95
for
(
int
k = 0; k < 2; ++k )
96
{
97
EvtVector4C
photonPol =
98
thePhoton->
epsParentPhoton
( k );
// one of two possible polarization states
99
EvtGammaMatrix
photonGamma;
// sigma[mu][nu] * epsilon[mu] * k[nu] (watch lower
100
// indices)
101
for
(
int
mu = 0; mu < 4; ++mu )
102
for
(
int
nu = 0; nu < 4; ++nu )
103
photonGamma +=
EvtGammaMatrix::sigmaLower
( mu, nu ) * photonPol.
get
( mu ) *
104
photonMomentum.
get
( nu );
105
106
EvtComplex
amp =
107
-
I
* _gLambdab * lambdaPol.
adjoint
() *
108
( ( constA() *
EvtGammaMatrix::id
() + constB() *
EvtGammaMatrix::g5
() ) *
109
photonGamma *
110
(
slash
( lambdaMomentum ) +
slash
( photonMomentum ) +
111
_mLambdab *
EvtGammaMatrix::id
() ) /
112
( ( lambdaMomentum + photonMomentum ) * ( lambdaMomentum + photonMomentum ) -
113
_mLambdab * _mLambdab ) *
114
EvtGammaMatrix::g5
() * antiP_Pol );
115
// use of parentheses so I do not have to define EvtDiracSpinor*EvtGammaMatrix, which
116
// shouldn't be defined to prevent errors in indexing
117
vertex
( i, j, k, amp );
118
}
119
}
120
}
121
}
122
123
void
EvtLambdaP_BarGamma::initProbMax
() {
124
// setProbMax(1);
125
setProbMax
( 9.0000E-13 );
// found by trial and error
126
}
127
128
// form factors at 0
129
const
double
EvtLambdaP_BarGamma::f0(
double
fqm,
int
n
) {
130
return
fqm * pow( 1 - pow( _mLambdab - _mLambda0, 2 ) / ( _mV * _mV ),
n
);
131
}
132
133
const
double
EvtLambdaP_BarGamma::g0(
double
gqm,
int
n
) {
134
return
gqm * pow( 1 - pow( _mLambdab - _mLambda0, 2 ) / ( _mA * _mA ),
n
);
135
}
136
137
const
double
EvtLambdaP_BarGamma::constA() {
138
return
_GF / sqrt( 2. ) * _e0 / ( 8 *
EvtConst::pi
*
EvtConst::pi
) * 2 * _c7Eff * _mb *
139
_VtbVtsStar * ( f0( _f1 ) - f0( _f2 ) );
140
}
141
142
const
double
EvtLambdaP_BarGamma::constB() {
143
return
_GF / sqrt( 2. ) * _e0 / ( 8 *
EvtConst::pi
*
EvtConst::pi
) * 2 * _c7Eff * _mb *
144
_VtbVtsStar *
145
( g0( _g1 ) - ( _mLambdab - _mLambda0 ) / ( _mLambdab + _mLambda0 ) * g0( _g2 ) );
146
}
n
const Int_t n
Definition
DataBase/tau_mode.c:57
EvtDiracParticle.hh
EvtDiracSpinor.hh
slash
EvtGammaMatrix slash(const EvtVector4C &p)
Definition
EvtGammaMatrix.cc:592
EvtGammaMatrix.hh
EvtLambdaP_BarGamma.hh
EvtPatches.hh
EvtPhotonParticle.hh
EvtSpinType.hh
I
const DifComplex I
EvtComplex
Definition
EvtComplex.hh:28
EvtConst::pi
static const double pi
Definition
EvtConst.hh:27
EvtDecayAmp::vertex
void vertex(const EvtComplex &)
Definition
EvtDecayAmp.hh:36
EvtDecayBase::checkSpinDaughter
void checkSpinDaughter(int d1, EvtSpinType::spintype sp)
Definition
EvtDecayBase.cc:492
EvtDecayBase::checkSpinParent
void checkSpinParent(EvtSpinType::spintype sp)
Definition
EvtDecayBase.cc:479
EvtDecayBase::EvtDecayBase
EvtDecayBase()
Definition
EvtDecayBase.cc:205
EvtDecayBase::setProbMax
void setProbMax(double prbmx)
Definition
EvtDecayBase.cc:261
EvtDecayBase::getNDaug
int getNDaug()
Definition
EvtDecayBase.hh:67
EvtDecayBase::checkNDaug
void checkNDaug(int d1, int d2=-1)
Definition
EvtDecayBase.cc:465
EvtDecayBase::getDaugs
EvtId * getDaugs()
Definition
EvtDecayBase.hh:68
EvtDecayBase::checkNArg
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
Definition
EvtDecayBase.cc:449
EvtDiracParticle
Definition
EvtDiracParticle.hh:31
EvtDiracParticle::spParent
EvtDiracSpinor spParent(int i) const
Definition
EvtDiracParticle.hh:37
EvtDiracSpinor
Definition
EvtDiracSpinor.hh:52
EvtDiracSpinor::adjoint
EvtDiracSpinor adjoint() const
Definition
EvtDiracSpinor.cc:363
EvtGammaMatrix
Definition
EvtGammaMatrix.hh:43
EvtGammaMatrix::sigmaLower
static const EvtGammaMatrix & sigmaLower(unsigned int mu, unsigned int nu)
Definition
EvtGammaMatrix.cc:567
EvtGammaMatrix::id
static const EvtGammaMatrix & id()
Definition
EvtGammaMatrix.cc:432
EvtGammaMatrix::g5
static const EvtGammaMatrix & g5()
Definition
EvtGammaMatrix.cc:312
EvtLambdaP_BarGamma::getName
void getName(std::string &name)
Definition
EvtLambdaP_BarGamma.cc:57
EvtLambdaP_BarGamma::init
void init()
Definition
EvtLambdaP_BarGamma.cc:63
EvtLambdaP_BarGamma::EvtLambdaP_BarGamma
EvtLambdaP_BarGamma()
Definition
EvtLambdaP_BarGamma.cc:30
EvtLambdaP_BarGamma::initProbMax
void initProbMax()
Definition
EvtLambdaP_BarGamma.cc:123
EvtLambdaP_BarGamma::clone
EvtDecayBase * clone()
Definition
EvtLambdaP_BarGamma.cc:61
EvtLambdaP_BarGamma::decay
void decay(EvtParticle *p)
Definition
EvtLambdaP_BarGamma.cc:75
EvtParticle
Definition
EvtParticle.hh:42
EvtParticle::getP4Lab
EvtVector4R getP4Lab()
Definition
EvtParticle.cc:694
EvtParticle::getDaug
EvtParticle * getDaug(int i)
Definition
EvtParticle.cc:80
EvtParticle::initializePhaseSpace
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
Definition
EvtParticle.cc:1042
EvtPhotonParticle
Definition
EvtPhotonParticle.hh:31
EvtPhotonParticle::epsParentPhoton
EvtVector4C epsParentPhoton(int i)
Definition
EvtPhotonParticle.cc:50
EvtSpinType::SCALAR
@ SCALAR
Definition
EvtSpinType.hh:31
EvtSpinType::DIRAC
@ DIRAC
Definition
EvtSpinType.hh:34
EvtSpinType::PHOTON
@ PHOTON
Definition
EvtSpinType.hh:35
EvtVector4C
Definition
EvtVector4C.hh:31
EvtVector4C::get
const EvtComplex & get(int) const
Definition
EvtVector4C.hh:125
EvtVector4R
Definition
EvtVector4R.hh:29
EvtVector4R::get
double get(int i) const
Definition
EvtVector4R.hh:171
8.0.0
BOSS_Gen
BesEvtGen
src
EvtGen
EvtGenModels
EvtLambdaP_BarGamma.cc
Generated by
1.16.1