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