37 for ( i = 0; i < 3; i++ )
39 for ( j = 0; j < 3; j++ ) { t[i][j] = t1.t[i][j]; }
47 for ( i = 0; i < 3; i++ )
49 for ( j = 0; j < 3; j++ ) { t[i][j] = 0.0; }
60 for ( i = 0; i < 3; i++ )
62 for ( j = 0; j < 3; j++ ) {
t[i][j] = t1.t[i][j]; }
72 for ( i = 0; i < 3; i++ )
74 for ( j = 0; j < 3; j++ ) { temp.
set( j, i,
::conj(
t[i][j] ) ); }
81 for ( i = 0; i < 3; i++ )
83 for ( j = 0; j < 3; j++ ) { t[i][j] =
EvtComplex( 0.0, 0.0 ); }
91 for ( i = 0; i < 3; i++ )
93 for ( j = 0; j < 3; j++ ) { t[i][j] =
EvtComplex( 0.0, 0.0 ); }
101 for ( i = 0; i < 3; i++ )
103 for ( j = 0; j < 3; j++ ) { t[i][j] += t2.t[i][j]; }
112 for ( i = 0; i < 3; i++ )
114 for ( j = 0; j < 3; j++ ) { t[i][j] -= t2.t[i][j]; }
123 for ( i = 0; i < 3; i++ )
125 for ( j = 0; j < 3; j++ ) { t[i][j] *= c; }
134 for ( i = 0; i < 3; i++ )
136 for ( j = 0; j < 3; j++ ) { t[i][j] *=
EvtComplex( c ); }
145 for ( i = 0; i < 3; i++ )
147 for ( j = 0; j < 3; j++ ) { temp.
set( i, j, c1.
get( i ) * c2.
get( j ) ); }
156 for ( i = 0; i < 3; i++ )
158 for ( j = 0; j < 3; j++ ) { temp.
set( i, j, c1.
get( i ) * c2.
get( j ) ); }
167 for ( i = 0; i < 3; i++ )
169 for ( j = 0; j < 3; j++ ) { temp.t[i][j] =
EvtComplex( c1.
get( i ) * c2.
get( j ), 0.0 ); }
179 for ( i = 0; i < 3; i++ )
181 for ( j = 0; j < 3; j++ ) { temp.
set( i, j,
::conj( ( t2.
get( i, j ) ) ) ); }
193 for ( i = 0; i < 3; i++ )
195 for ( j = 0; j < 3; j++ )
197 c = t1.
get( i, 0 ) * t2.
get( j, 0 ) + t1.
get( i, 1 ) * t2.
get( j, 1 ) +
198 t1.
get( i, 2 ) * t2.
get( j, 2 );
212 for ( i = 0; i < 3; i++ )
214 for ( j = 0; j < 3; j++ )
216 c = t1.
get( 0, i ) * t2.
get( 0, j ) + t1.
get( 1, i ) * t2.
get( 1, j ) +
217 t1.
get( 2, i ) * t2.
get( 2, j );
230 for ( i = 0; i < 3; i++ )
231 { temp.
set( i, t[0][i] *
v.get( 0 ) + t[1][i] *
v.get( 1 ) + t[2][i] *
v.get( 2 ) ); }
241 for ( i = 0; i < 3; i++ )
242 { temp.
set( i, t[i][0] *
v.get( 0 ) + t[i][1] *
v.get( 1 ) + t[i][2] *
v.get( 2 ) ); }
252 for ( i = 0; i < 3; i++ )
253 { temp.
set( i, t[0][i] *
v.get( 0 ) + t[1][i] *
v.get( 1 ) + t[2][i] *
v.get( 2 ) ); }
263 for ( i = 0; i < 3; i++ )
264 { temp.
set( i, t[i][0] *
v.get( 0 ) + t[i][1] *
v.get( 1 ) + t[i][2] *
v.get( 2 ) ); }
277 temp.t[0][1] =
v.get( 2 );
278 temp.t[0][2] = -
v.get( 1 );
280 temp.t[1][0] = -
v.get( 2 );
281 temp.t[1][2] =
v.get( 0 );
283 temp.t[2][0] =
v.get( 1 );
284 temp.t[2][1] = -
v.get( 0 );
298 s << endl <<
"(" <<
v.t[0][0] <<
"," <<
v.t[0][1] <<
"," <<
v.t[0][2] <<
")";
299 s << endl <<
"(" <<
v.t[1][0] <<
"," <<
v.t[1][1] <<
"," <<
v.t[1][2] <<
")";
300 s << endl <<
"(" <<
v.t[2][0] <<
"," <<
v.t[2][1] <<
"," <<
v.t[2][2] <<
")" << endl;
315 double sp, st, sk, cp, ct, ck;
326 r[0][0] = ck * ct * cp - sk * sp;
327 r[0][1] = ck * ct * sp + sk * cp;
330 r[1][0] = -sk * ct * cp - ck * sp;
331 r[1][1] = -sk * ct * sp + ck * cp;
338 for ( i = 0; i < 3; i++ )
340 for ( j = 0; j < 3; j++ )
343 for ( k = 0; k < 3; k++ ) { temp[i][j] += r[i][k] * t[k][j]; }
347 for ( i = 0; i < 3; i++ )
349 for ( j = 0; j < 3; j++ )
352 for ( k = 0; k < 3; k++ ) { t[i][j] += r[i][k] * temp[j][k]; }
Evt3Rank3C conj(const Evt3Rank3C &t2)
EvtTensor3C rotateEuler(const EvtTensor3C &v, double alpha, double beta, double gamma)
EvtTensor3C conj(const EvtTensor3C &t2)
EvtTensor3C directProd(const EvtVector3C &c1, const EvtVector3C &c2)
EvtTensor3C cont22(const EvtTensor3C &t1, const EvtTensor3C &t2)
ostream & operator<<(ostream &s, const EvtTensor3C &v)
EvtTensor3C eps(const EvtVector3R &v)
EvtTensor3C cont11(const EvtTensor3C &t1, const EvtTensor3C &t2)
double sin(const BesAngle a)
double cos(const BesAngle a)
**********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
const EvtComplex & get(int i, int j) const
friend EvtTensor3C conj(const EvtTensor3C &t2)
EvtVector3C cont1(const EvtVector3C &v) const
void set(int i, int j, const EvtComplex &c)
void applyRotateEuler(double phi, double theta, double ksi)
EvtVector3C cont2(const EvtVector3C &v) const
EvtTensor3C operator-=(const EvtTensor3C &t2)
static const EvtTensor3C & id()
EvtTensor3C & operator=(const EvtTensor3C &t1)
EvtTensor3C operator*=(const double d)
EvtTensor3C operator+=(const EvtTensor3C &t2)
const EvtComplex & get(int) const
void set(const int, const EvtComplex &)