64 {
65
66
69
71 EvtId other_b;
72
74
75 EvtComplex G0P, G1P, G1M;
76
80
82
85
86 EvtComplex cG0P, cG1P, cG1M;
87
90 static double ctau = ctauL < ctauH ? ctauH : ctauL;
91
92
93
94 double pt = 1;
95 double mt =
exp( -fabs(
t * ( ctauL - ctauH ) / ( ctauL * ctauH ) ) );
96
97 if ( other_b == BSB )
98 {
99 cG0P = pt * G0P * ( cdmt + lambda_km * EvtComplex( 0.0,
getArg( 2 ) * sdmt ) );
100 cG1P = pt * G1P * ( cdmt + lambda_km * EvtComplex( 0.0,
getArg( 2 ) * sdmt ) );
101 cG1M = mt * G1M * ( cdmt - lambda_km * EvtComplex( 0.0,
getArg( 2 ) * sdmt ) );
102 }
103 else if ( other_b == BS0 )
104 {
105 cG0P = pt * G0P * ( cdmt + ( 1.0 / lambda_km ) * EvtComplex( 0.0,
getArg( 2 ) * sdmt ) );
106 cG1P = pt * G1P * ( cdmt + ( 1.0 / lambda_km ) * EvtComplex( 0.0,
getArg( 2 ) * sdmt ) );
107 cG1M = -mt * G1M * ( cdmt - ( 1.0 / lambda_km ) * EvtComplex( 0.0,
getArg( 2 ) * sdmt ) );
108 }
109 else
110 {
111 report(
ERROR,
"EvtGen" ) <<
"other_b was not BSB or BS0!" << endl;
112 ::abort();
113 }
114
115 EvtComplex A0, AP, AM;
116
117 A0 = cG0P / sqrt( 2.0 );
118 AP = ( cG1P + cG1M ) / sqrt( 2.0 );
119 AM = ( cG1P - cG1M ) / sqrt( 2.0 );
120
122
123 return;
124}
EvtComplex exp(const EvtComplex &c)
ostream & report(Severity severity, const char *facility)
double sin(const BesAngle a)
double cos(const BesAngle a)
static void OtherB(EvtParticle *p, double &t, EvtId &otherb)
static EvtId getId(const std::string &name)
static double getctau(EvtId i)
static void SVVHel(EvtParticle *parent, EvtAmp &, EvtId n_v1, EvtId n_v2, const EvtComplex &hp, const EvtComplex &h0, const EvtComplex &hm)