BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtbTosllScalarAmp Class Reference

#include <EvtbTosllScalarAmp.hh>

Inheritance diagram for EvtbTosllScalarAmp:

Public Member Functions

 EvtbTosllScalarAmp (double c7, double c9, double c10)
void CalcAmp (EvtParticle *parent, EvtAmp &amp, EvtbTosllFF *formFactors)
Public Member Functions inherited from EvtbTosllAmp
double CalcMaxProb (EvtId parent, EvtId meson, EvtId lepton, EvtId nudaug, EvtbTosllFF *formFactors, double &poleSize)
EvtComplex GetC7Eff (double q2, bool nnlo=true)
EvtComplex GetC9Eff (double q2, bool nnlo=true, bool btod=false)
EvtComplex GetC10Eff (double q2, bool nnlo=true)
double dGdsProb (double mb, double ms, double ml, double s)
double dGdsdupProb (double mb, double ms, double ml, double s, double u)

Detailed Description

Definition at line 29 of file EvtbTosllScalarAmp.hh.

Constructor & Destructor Documentation

◆ EvtbTosllScalarAmp()

EvtbTosllScalarAmp::EvtbTosllScalarAmp ( double c7,
double c9,
double c10 )
inline

Definition at line 32 of file EvtbTosllScalarAmp.hh.

32: _c7( c7 ), _c9( c9 ), _c10( c10 ) {}

Member Function Documentation

◆ CalcAmp()

void EvtbTosllScalarAmp::CalcAmp ( EvtParticle * parent,
EvtAmp & amp,
EvtbTosllFF * formFactors )
virtual

Implements EvtbTosllAmp.

Definition at line 38 of file EvtbTosllScalarAmp.cc.

39 {
40
41 // Add the lepton and neutrino 4 momenta to find q2
42
43 EvtVector4R q = parent->getDaug( 1 )->getP4() + parent->getDaug( 2 )->getP4();
44 double q2 = ( q.mass2() );
45
46 double fp, f0, ft;
47 double mesonmass = parent->getDaug( 0 )->mass();
48 double parentmass = parent->mass();
49
50 formFactors->getScalarFF( parent->getId(), parent->getDaug( 0 )->getId(), q2, mesonmass, fp,
51 f0, ft );
52
53 EvtId daught = parent->getDaug( 0 )->getId();
54 bool btod = false;
55 bool nnlo = true;
56 if ( daught == EvtPDL::getId( std::string( "pi+" ) ) ||
57 daught == EvtPDL::getId( std::string( "pi-" ) ) ||
58 daught == EvtPDL::getId( std::string( "pi0" ) ) ||
59 daught == EvtPDL::getId( std::string( "eta" ) ) ||
60 daught == EvtPDL::getId( std::string( "eta'" ) ) )
61 btod = true;
62
63 EvtVector4R p4b;
64 p4b.set( parent->mass(), 0.0, 0.0, 0.0 );
65
66 EvtVector4C l11, l12;
67 EvtVector4C l21, l22;
68
69 EvtVector4C a11, a12;
70 EvtVector4C a21, a22;
71
72 EvtId l_num = parent->getDaug( 1 )->getId();
73
74 EvtVector4C T1, T2;
75
76 EvtVector4R phat = p4b / parentmass;
77 EvtVector4R qhat = q / parentmass;
78
79 EvtComplex c7eff = EvtbTosllAmp::GetC7Eff( q2, nnlo );
80 EvtComplex c9eff = EvtbTosllAmp::GetC9Eff( q2, nnlo, btod );
81 EvtComplex c10eff = EvtbTosllAmp::GetC10Eff( q2, nnlo );
82
83 // double mbhat=1;
84 double mbhat = 4.4 / ( parentmass );
85 // double mkhat = 0.15;
86 double mkhat = mesonmass / ( parentmass );
87 double shat = q2 / ( parentmass * parentmass );
88
89 double fm = ( f0 - fp ) * ( 1 - mkhat * mkhat ) / shat;
90
91 EvtComplex aprime;
92 aprime = c9eff * fp + 2.0 * mbhat * c7eff * ft / ( 1 + mkhat );
93 EvtComplex bprime;
94 bprime = c9eff * fm - 2 * mbhat * c7eff * ft * ( 1 - mkhat ) / shat;
95
96 EvtComplex cprime;
97 cprime = c10eff * fp;
98 EvtComplex dprime;
99 dprime = c10eff * fm;
100
101 static EvtIdSet leptons( "e-", "mu-", "tau-" );
102 static EvtIdSet antileptons( "e+", "mu+", "tau+" );
103
104 if ( leptons.contains( l_num ) )
105 {
106
107 T1 = aprime * phat + bprime * qhat;
108 T2 = cprime * phat + dprime * qhat;
109
110 l11 = EvtLeptonVCurrent( parent->getDaug( 1 )->spParent( 0 ),
111 parent->getDaug( 2 )->spParent( 0 ) );
112 l21 = EvtLeptonVCurrent( parent->getDaug( 1 )->spParent( 1 ),
113 parent->getDaug( 2 )->spParent( 0 ) );
114 l12 = EvtLeptonVCurrent( parent->getDaug( 1 )->spParent( 0 ),
115 parent->getDaug( 2 )->spParent( 1 ) );
116 l22 = EvtLeptonVCurrent( parent->getDaug( 1 )->spParent( 1 ),
117 parent->getDaug( 2 )->spParent( 1 ) );
118 a11 = EvtLeptonACurrent( parent->getDaug( 1 )->spParent( 0 ),
119 parent->getDaug( 2 )->spParent( 0 ) );
120 a21 = EvtLeptonACurrent( parent->getDaug( 1 )->spParent( 1 ),
121 parent->getDaug( 2 )->spParent( 0 ) );
122 a12 = EvtLeptonACurrent( parent->getDaug( 1 )->spParent( 0 ),
123 parent->getDaug( 2 )->spParent( 1 ) );
124 a22 = EvtLeptonACurrent( parent->getDaug( 1 )->spParent( 1 ),
125 parent->getDaug( 2 )->spParent( 1 ) );
126 }
127 else
128 {
129 if ( antileptons.contains( l_num ) )
130 {
131
132 T1 = aprime * phat + bprime * qhat;
133 T2 = cprime * phat + dprime * qhat;
134
135 l11 = EvtLeptonVCurrent( parent->getDaug( 1 )->spParent( 1 ),
136 parent->getDaug( 2 )->spParent( 1 ) );
137 l21 = EvtLeptonVCurrent( parent->getDaug( 1 )->spParent( 0 ),
138 parent->getDaug( 2 )->spParent( 1 ) );
139 l12 = EvtLeptonVCurrent( parent->getDaug( 1 )->spParent( 1 ),
140 parent->getDaug( 2 )->spParent( 0 ) );
141 l22 = EvtLeptonVCurrent( parent->getDaug( 1 )->spParent( 0 ),
142 parent->getDaug( 2 )->spParent( 0 ) );
143
144 a11 = EvtLeptonACurrent( parent->getDaug( 1 )->spParent( 1 ),
145 parent->getDaug( 2 )->spParent( 1 ) );
146 a21 = EvtLeptonACurrent( parent->getDaug( 1 )->spParent( 0 ),
147 parent->getDaug( 2 )->spParent( 1 ) );
148 a12 = EvtLeptonACurrent( parent->getDaug( 1 )->spParent( 1 ),
149 parent->getDaug( 2 )->spParent( 0 ) );
150 a22 = EvtLeptonACurrent( parent->getDaug( 1 )->spParent( 0 ),
151 parent->getDaug( 2 )->spParent( 0 ) );
152 }
153 else { report( ERROR, "EvtGen" ) << "Wrong lepton number\n"; }
154 }
155
156 amp.vertex( 0, 0, l11 * T1 + a11 * T2 );
157 amp.vertex( 0, 1, l12 * T1 + a12 * T2 );
158 amp.vertex( 1, 0, l21 * T1 + a21 * T2 );
159 amp.vertex( 1, 1, l22 * T1 + a22 * T2 );
160}
EvtVector4C EvtLeptonACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
ostream & report(Severity severity, const char *facility)
Definition EvtReport.cc:34
@ ERROR
Definition EvtReport.hh:49
****INTEGER imax DOUBLE PRECISION m_pi *DOUBLE PRECISION m_amfin DOUBLE PRECISION m_Chfin DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_sinw2 DOUBLE PRECISION m_GFermi DOUBLE PRECISION m_MfinMin DOUBLE PRECISION m_ta2 INTEGER m_out INTEGER m_KeyFSR INTEGER m_KeyQCD *COMMON c_Semalib $ !copy of input $ !CMS energy $ !beam mass $ !final mass $ !beam charge $ !final charge $ !smallest final mass $ !Z mass $ !Z width $ !EW mixing angle $ !Gmu Fermi $ alphaQED at q
Definition KKsem.h:33
void vertex(const EvtComplex &amp)
Definition EvtAmp.cc:441
static EvtId getId(const std::string &name)
Definition EvtPDL.cc:272
EvtId getId() const
virtual EvtDiracSpinor spParent(int) const
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double mass() const
void set(int i, double d)
EvtComplex GetC7Eff(double q2, bool nnlo=true)
EvtComplex GetC10Eff(double q2, bool nnlo=true)
EvtComplex GetC9Eff(double q2, bool nnlo=true, bool btod=false)
virtual void getScalarFF(EvtId parent, EvtId daught, double t, double mass, double &fp, double &f0, double &ft)

The documentation for this class was generated from the following files: