38 {
39
40
41
43 double q2 = (
q.mass2() );
44
45 double a1, a2,
a0,
v, t1, t2, t3;
47 double parentmass = parent->
mass();
48
50 a2,
a0,
v, t1, t2, t3 );
51
53 bool btod = false;
54 bool nnlo = true;
59 btod = true;
60
61 EvtVector4R p4b;
62 p4b.
set( parent->
mass(), 0.0, 0.0, 0.0 );
64
65 EvtVector4C l11, l12;
66 EvtVector4C l21, l22;
67
68 EvtVector4C a11, a12;
69 EvtVector4C a21, a22;
70
71 EvtId parentID = parent->
getId();
72
73
74
75 EvtVector4R pbhat = p4b / parentmass;
76 EvtVector4R qhat =
q / parentmass;
77 EvtVector4R pkstarhat = p4meson / parentmass;
78 EvtVector4R phat = pbhat + pkstarhat;
79
83 EvtComplex uniti( 0.0, 1.0 );
84
85 double mhatb = 4.4 / ( parentmass );
86 double mhatkstar = mesonmass / ( parentmass );
87 double shat = q2 / ( parentmass * parentmass );
88
89 EvtComplex a;
90 a = c9eff *
v * 2 / ( 1 + mhatkstar ) + 4 * mhatb * c7eff * t1 / shat;
91 EvtComplex b;
92 b = ( 1 + mhatkstar ) * ( c9eff * a1 + 2 * mhatb * ( 1 - mhatkstar ) * c7eff * t2 / shat );
93 EvtComplex c;
94 c = ( ( 1 - mhatkstar ) * c9eff * a2 +
95 2 * mhatb * c7eff * ( t3 + ( 1 - mhatkstar * mhatkstar ) * t2 / shat ) ) /
96 ( 1 - mhatkstar * mhatkstar );
97 EvtComplex d;
98 d = ( c9eff * ( ( 1 + mhatkstar ) * a1 - ( 1 - mhatkstar ) * a2 - 2 * mhatkstar *
a0 ) -
99 2 * mhatb * c7eff * t3 ) /
100 shat;
101 EvtComplex e;
102 e = 2 * c10eff *
v / ( 1 + mhatkstar );
104 f = ( 1 + mhatkstar ) * c10eff * a1;
105 EvtComplex g;
106 g = c10eff * a2 / ( 1 + mhatkstar );
107 EvtComplex h;
108 h = c10eff * ( ( 1 + mhatkstar ) * a1 - ( 1 - mhatkstar ) * a2 - 2 * mhatkstar *
a0 ) / shat;
109
110 EvtTensor4C T1, T2;
111
112 static EvtIdSet bmesons( "B-", "anti-B0" );
113 static EvtIdSet bbarmesons( "B+", "B0" );
114
115 EvtParticle* lepPlus( 0 );
116 EvtParticle* lepMinus( 0 );
117
120
121 lepPlus = ( charge1 > charge2 ) ? parent->
getDaug( 1 ) : parent->
getDaug( 2 );
122 lepMinus = ( charge1 < charge2 ) ? parent->
getDaug( 1 ) : parent->
getDaug( 2 );
123
124
125
126
127
128 if ( bmesons.contains( parentID ) )
129 {
130
133
136
141
146 }
147 else
148 {
149
150 if ( bbarmesons.contains( parentID ) )
151 {
152
155
158
163
168 }
169 else {
report(
ERROR,
"EvtGen" ) <<
"Wrong lepton number\n"; }
170 }
171
172 int i;
173
174 for ( i = 0; i < 3; i++ )
175 {
177
178 EvtVector4C E1 = T1.cont1(
eps );
179 EvtVector4C E2 = T2.cont1(
eps );
180
181 amp.
vertex( i, 0, 0, l11 * E1 + a11 * E2 );
182 amp.
vertex( i, 0, 1, l12 * E1 + a12 * E2 );
183 amp.
vertex( i, 1, 0, l21 * E1 + a21 * E2 );
184 amp.
vertex( i, 1, 1, l22 * E1 + a22 * E2 );
185 }
186}
TFile f("ana_bhabha660a_dqa_mcPat_zy_old.root")
character *LEPTONflag integer iresonances real zeta5 real a0
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtVector4C EvtLeptonACurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
EvtVector4C EvtLeptonVCurrent(const EvtDiracSpinor &d, const EvtDiracSpinor &dp)
ostream & report(Severity severity, const char *facility)
EvtTensor3C eps(const EvtVector3R &v)
EvtTensor4C dual(const EvtTensor4C &t2)
****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
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
void vertex(const EvtComplex &)
static EvtId getId(const std::string &name)
virtual EvtVector4C epsParent(int i) const
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
static const EvtTensor4C & g()
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 getVectorFF(EvtId parent, EvtId daught, double t, double mass, double &a1, double &a2, double &a0, double &v, double &t1, double &t2, double &t3)