54 {
55
58
59 static EvtIdSet leptons( "e-", "mu-", "tau-" );
60
62
63 int charge = 1;
64
65 EvtParticle* lepton;
67 if ( leptons.contains( lepton->
getId() ) ) { charge = -1; }
68
69 EvtDiracParticle charmquark;
70
71
74
76
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
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
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
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
143
144
145
146
147
148 EvtGammaMatrix pslash =
151
152
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 {
165 b = charmquark.
spParent( ic ) * ( ( pslash * PR ) * lepton->
spParent( il ) );
166 }
167 else
168 {
170 b = lepton->
spParent( il ) * ( ( pslash * PR ) * charmquark.
spParent( ic ) );
171 }
172
173
174
175
176
177 M[ic][il] =
f1 * ( a1 * a + b1 * b ) + f2 * ( a2 * a + b2 * b );
178
179
180
181
182
183
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
191
193
194 return;
195}
Evt3Rank3C conj(const Evt3Rank3C &t2)
double sin(const BesAngle a)
double cos(const BesAngle a)
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()
static EvtId getId(const std::string &name)
virtual EvtDiracSpinor spParent(int) const
const EvtVector4R & getP4() const
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)