58 {
59
60 EvtParticle* phi;
61 EvtParticle* gamma;
62
63
65
66
67
68
72
73 double wcm = p->
mass();
74 double beta = 2. * electMass / wcm;
75 beta = sqrt( 1. - beta * beta );
76
77
78 double pg = ( wcm * wcm - phi->
mass() * phi->
mass() ) / ( 2 * wcm );
79
80
81
82
83
84
85
86
87
88
89
90 double ymax = log( ( 1. + beta * csfrmn ) / ( 1. - beta * csfrmn ) );
91 double ymin = log( ( 1. - beta * csbkmn ) / ( 1. + beta * csbkmn ) );
92
93
96 cs = ( cs - 1. ) / ( cs + 1. ) / beta;
97 double sn = sqrt( 1 - cs * cs );
98
100
101
102 EvtVector4R p4phi( sqrt( phi->
mass() * phi->
mass() + pg * pg ), pg * sn *
cos( fi ),
103 pg * sn *
sin( fi ), pg * cs );
104
105 EvtVector4R p4gamma( pg, -p4phi.get( 1 ), -p4phi.get( 2 ), -p4phi.get( 3 ) );
106
107
110
111
112
113
114
118
121
122 EvtComplex r1p = phi0 * gamma0;
123 EvtComplex r2p =
phi1 * gamma0;
124 EvtComplex r3p =
phi2 * gamma0;
125
126 EvtComplex r1m = phi0 * gamma1;
127 EvtComplex r2m =
phi1 * gamma1;
128 EvtComplex r3m =
phi2 * gamma1;
129
130 EvtComplex rho33 = r3p *
conj( r3p ) + r3m *
conj( r3m );
131 EvtComplex rho22 = r2p *
conj( r2p ) + r2m *
conj( r2m );
132 EvtComplex rho11 = r1p *
conj( r1p ) + r1m *
conj( r1m );
133
134 EvtComplex rho13 = r3p *
conj( r1p ) + r3m *
conj( r1m );
135 EvtComplex rho12 = r2p *
conj( r1p ) + r2m *
conj( r1m );
136 EvtComplex rho23 = r3p *
conj( r2p ) + r3m *
conj( r2m );
137
138 EvtComplex rho31 =
conj( rho13 );
139 EvtComplex rho32 =
conj( rho23 );
140 EvtComplex rho21 =
conj( rho12 );
141
142 EvtSpinDensity rho;
144
145 rho.
Set( 0, 0, rho11 );
146 rho.
Set( 0, 1, rho12 );
147 rho.
Set( 0, 2, rho13 );
148 rho.
Set( 1, 0, rho21 );
149 rho.
Set( 1, 1, rho22 );
150 rho.
Set( 1, 2, rho23 );
151 rho.
Set( 2, 0, rho31 );
152 rho.
Set( 2, 1, rho32 );
153 rho.
Set( 2, 2, rho33 );
154
157
158 return;
159}
Evt3Rank3C conj(const Evt3Rank3C &t2)
EvtComplex exp(const EvtComplex &c)
double sin(const BesAngle a)
double cos(const BesAngle a)
static const double twoPi
void setDaughterSpinDensity(int daughter)
static double getMeanMass(EvtId i)
static EvtId getId(const std::string &name)
void setSpinDensityForward(const EvtSpinDensity &rho)
virtual EvtVector4C epsParent(int i) const
virtual void init(EvtId part_n, const EvtVector4R &p4)=0
virtual EvtVector4C epsParentPhoton(int i)
EvtParticle * getDaug(int i)
double initializePhaseSpace(int numdaughter, EvtId *daughters, double poleSize=-1., int whichTwo1=0, int whichTwo2=1)
void Set(int i, int j, const EvtComplex &rhoij)