BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtBsquark.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) 1998 Caltech, UCSB
10//
11// Module: EvtTauScalarnu.cc
12//
13// Description: The leptonic decay of the tau meson.
14// E.g., tau- -> e- nueb nut
15//
16// Modification history:
17//
18// RYD January 17, 1997 Module created
19//
20//------------------------------------------------------------------------
21//
22#include "EvtBsquark.hh"
32#include <iostream>
33#include <string>
34
36
37void EvtBsquark::getName( std::string& model_name ) { model_name = "BSQUARK"; }
38
40
42
43 // check that there are 5 arguments
44 checkNArg( 5 );
45}
46
48
49 // For now do not set a maximum.
50
51 // SetProbMax(0.000000000005);
52}
53
55
56 static EvtId cquark = EvtPDL::getId( "c" );
57 static EvtId anticquark = EvtPDL::getId( "anti-c" );
58
59 static EvtIdSet leptons( "e-", "mu-", "tau-" );
60
62
63 int charge = 1;
64
65 EvtParticle* lepton;
66 lepton = p->getDaug( 1 );
67 if ( leptons.contains( lepton->getId() ) ) { charge = -1; }
68
69 EvtDiracParticle charmquark;
70
71 // this is a very crude approximation...
72 if ( charge == -1 ) { charmquark.init( cquark, p->getDaug( 0 )->getP4() ); }
73 else { charmquark.init( anticquark, p->getDaug( 0 )->getP4() ); }
74
75 EvtVector4R p4c = p->getDaug( 0 )->getP4();
76
77 EvtVector4R p4sn = p->getDaug( 2 )->getP4();
78
79 EvtVector4R p4b( p->mass(), 0.0, 0.0, 0.0 );
80
81 EvtComplex M[2][2];
82
83 int il, ic;
84
85 // project out the right handed current
87
88 double tanbeta = getArg( 1 );
89 double cosbeta = cos( atan( tanbeta ) );
90 double sinbeta = sin( atan( tanbeta ) );
91
92 double mb = 4.9;
93 double mc = 1.3;
94 double mw = 80.4;
95
96 double Mass = getArg( 2 );
97 double mu = getArg( 3 );
98 double mchargino = getArg( 4 );
99
100 double tan2phim = 2 * sqrt( 2.0 ) * mw * ( mu * cosbeta + Mass * sinbeta ) /
101 ( Mass * Mass - mu * mu + 2 * mw * mw * cos( 2 * atan( tanbeta ) ) );
102
103 double phim = 0.5 * atan( tan2phim );
104
105 EvtComplex U11 = cos( phim );
106 EvtComplex U12 = sin( phim );
107 EvtComplex U21 = -sin( phim );
108 EvtComplex U22 = cos( phim );
109
110 double tan2phip = 2 * sqrt( 2.0 ) * mw * ( mu * cosbeta + Mass * sinbeta ) /
111 ( Mass * Mass - mu * mu - 2 * mw * mw * cos( 2 * atan( tanbeta ) ) );
112
113 double phip = 0.5 * atan( tan2phip );
114
115 EvtComplex V11 = cos( phip );
116 EvtComplex V12 = sin( phip );
117 EvtComplex V21 = -sin( phip );
118 EvtComplex V22 = cos( phip );
119
120 double theta = getArg( 0 );
121 double ctheta = cos( theta );
122 double stheta = sin( theta );
123
124 double vcsb = 0.08;
125 double mchi1 = mchargino;
126 double mchi2 = mchargino;
127
128 // overall scale factor
129 double g = 1.0;
130
131 EvtComplex a1 =
132 mchi1 * ( U11 * ctheta - mb * U12 * stheta / ( sqrt( 2.0 ) * mw * cosbeta ) );
133 EvtComplex a2 =
134 mchi2 * ( U21 * ctheta - mb * U22 * stheta / ( sqrt( 2.0 ) * mw * cosbeta ) );
135
136 EvtComplex b1 = mc * conj( V12 ) * ctheta / ( sqrt( 2.0 ) * mw * sinbeta );
137 EvtComplex b2 = mc * conj( V22 ) * ctheta / ( sqrt( 2.0 ) * mw * sinbeta );
138
139 EvtComplex f1 = -( g * g * V11 * vcsb ) / ( ( p4b - p4c ).mass2() - mchi1 * mchi1 );
140 EvtComplex f2 = -( g * g * V21 * vcsb ) / ( ( p4b - p4c ).mass2() - mchi1 * mchi2 );
141
142 // report(INFO,"EvtGen") <<g<<" "<<V11<<" "<<FL<<" "<<vcsb<<" "<<mchi1<<endl;
143 // report(INFO,"EvtGen") << "f1:"<<f1<<" "<<(p4b-p4c).mass2()<<endl;
144 // report(INFO,"EvtGen") << "f2:"<<f2<<" "<<(p4b-p4c).mass2()<<endl;
145
146 // report(INFO,"EvtGen") << "p4sn:"<<p4sn<<endl;
147
148 EvtGammaMatrix pslash =
149 p4sn.get( 0 ) * EvtGammaMatrix::g0() - p4sn.get( 1 ) * EvtGammaMatrix::g1() -
150 p4sn.get( 2 ) * EvtGammaMatrix::g2() - p4sn.get( 3 ) * EvtGammaMatrix::g3();
151
152 // report(INFO,"EvtGen") << "pslash:"<<pslash<<endl;
153
154 for ( il = 0; il < 2; il++ )
155 {
156 for ( ic = 0; ic < 2; ic++ )
157 {
158
159 EvtComplex a = 0.0;
160 EvtComplex b = 0.0;
161
162 if ( charge == -1 )
163 {
164 a = charmquark.spParent( ic ) * ( PR * lepton->spParent( il ) );
165 b = charmquark.spParent( ic ) * ( ( pslash * PR ) * lepton->spParent( il ) );
166 }
167 else
168 {
169 a = lepton->spParent( il ) * ( PR * charmquark.spParent( ic ) );
170 b = lepton->spParent( il ) * ( ( pslash * PR ) * charmquark.spParent( ic ) );
171 }
172
173 // report(INFO,"EvtGen") <<"pslash*PR:"<<pslash*PR<<endl;
174 // report(INFO,"EvtGen") <<"sp charm:"<<charmquark.spParent(ic)<<endl;
175 // report(INFO,"EvtGen") <<"sp lepton:"<<lepton->spParent(il)<<endl;
176
177 M[ic][il] = f1 * ( a1 * a + b1 * b ) + f2 * ( a2 * a + b2 * b );
178
179 // report(INFO,"EvtGen") << "Contr1:"<<a1<<" "<<a<<" "<<b1<<" "<<b<<endl;
180 // report(INFO,"EvtGen") << "Contr2:"<<a2<<" "<<a<<" "<<b2<<" "<<b<<endl;
181
182 // report(INFO,"EvtGen") <<"case1:"<<f1<<" "<<a1<<" "<<b1<<" "<<a<<" "<<b<<endl;
183 // report(INFO,"EvtGen") <<"case2:"<<f2<<" "<<a2<<" "<<b2<<" "<<a<<" "<<b<<endl;
184 }
185 }
186
187 double prob = real( M[0][0] * conj( M[0][0] ) + M[1][0] * conj( M[1][0] ) +
188 M[0][1] * conj( M[0][1] ) + M[1][1] * conj( M[1][1] ) );
189
190 // report(INFO,"EvtGen") <<"prob:"<<prob<<endl;
191
192 setProb( prob );
193
194 return;
195}
TFile * f1
Evt3Rank3C conj(const Evt3Rank3C &t2)
EvtDecayBase * clone()
Definition EvtBsquark.cc:39
void init()
Definition EvtBsquark.cc:41
void initProbMax()
Definition EvtBsquark.cc:47
virtual ~EvtBsquark()
Definition EvtBsquark.cc:35
void decay(EvtParticle *p)
Definition EvtBsquark.cc:54
void getName(std::string &name)
Definition EvtBsquark.cc:37
double getArg(int j)
EvtId * getDaugs()
void checkNArg(int a1, int a2=-1, int a3=-1, int a4=-1)
void setProb(double prob)
void init(EvtId part_n, const EvtVector4R &p4)
EvtDiracSpinor spParent(int i) const
static const EvtGammaMatrix & id()
static const EvtGammaMatrix & g0()
static const EvtGammaMatrix & g2()
static const EvtGammaMatrix & g1()
static const EvtGammaMatrix & g3()
static const EvtGammaMatrix & g5()
int contains(const EvtId id)
Definition EvtIdSet.cc:382
Definition EvtId.hh:27
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
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
double get(int i) const