BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Evt3Rank3C.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: Evt3Rank3C.cc
12//
13// Description: Implementation of 3 Rank tensors.
14//
15// Modification history:
16//
17// RYD September 14, 1996 Module created
18//
19//------------------------------------------------------------------------
20#include "EvtPatches.hh"
21
22#include "Evt3Rank3C.hh"
23#include "EvtComplex.hh"
24#include "EvtReport.hh"
25#include "EvtTensor3C.hh"
26#include "EvtVector3C.hh"
27#include <iostream>
28#include <math.h>
29
31
32 int i, j, k;
33
34 for ( i = 0; i < 3; i++ )
35 {
36 for ( j = 0; j < 3; j++ )
37 {
38 for ( k = 0; k < 3; j++ ) { t[i][j][k] = t1.t[i][j][k]; }
39 }
40 }
41}
42
44
46 int i, j, k;
47
48 for ( i = 0; i < 3; i++ )
49 {
50 for ( j = 0; j < 3; j++ )
51 {
52 for ( k = 0; k < 3; k++ ) { t[i][j][k] = t1.t[i][j][k]; }
53 }
54 }
55 return *this;
56}
57
59 Evt3Rank3C temp;
60
61 int i, j, k;
62
63 for ( i = 0; i < 3; i++ )
64 {
65 for ( j = 0; j < 3; j++ )
66 {
67 for ( k = 0; k < 3; k++ ) { temp.set( j, i, k, ::conj( t[i][j][k] ) ); }
68 }
69 }
70 return temp;
71}
72
74 int i, j, k;
75 for ( i = 0; i < 3; i++ )
76 {
77 for ( j = 0; j < 3; j++ )
78 {
79 for ( k = 0; k < 3; k++ ) { t[i][j][k] = EvtComplex( 0.0, 0.0 ); }
80 }
81 }
82}
83
85
86 int i, j, k;
87
88 for ( i = 0; i < 3; i++ )
89 {
90 for ( j = 0; j < 3; j++ )
91 {
92 for ( k = 0; k < 3; k++ ) { t[i][j][k] = EvtComplex( 0.0, 0.0 ); }
93 }
94 }
95}
96
97void Evt3Rank3C::dump() const {
98 int i, j, k;
99 for ( k = 0; k < 3; k++ )
100 {
101 for ( i = 0; i < 3; i++ )
102 {
103 for ( j = 0; j < 3; j++ ) { report( INFO, "EvtGen" ) << t[k][i][j]; }
104 report( INFO, "EvtGen" ) << "\n";
105 }
106 }
107}
108
110
111 int i, j, k;
112
113 for ( i = 0; i < 3; i++ )
114 {
115 for ( j = 0; j < 3; j++ )
116 {
117 for ( k = 0; k < 3; k++ ) { t[i][j][k] += t2.get( i, j, k ); }
118 }
119 }
120 return *this;
121}
122
124
125 int i, j, k;
126
127 for ( i = 0; i < 3; i++ )
128 {
129 for ( j = 0; j < 3; j++ )
130 {
131 for ( k = 0; k < 3; k++ ) { t[i][j][k] -= t2.get( i, j, k ); }
132 }
133 }
134
135 return *this;
136}
137
139
140 int i, j, k;
141
142 for ( i = 0; i < 3; i++ )
143 {
144 for ( j = 0; j < 3; j++ )
145 {
146 for ( k = 0; k < 3; k++ ) { t[i][j][k] *= c; }
147 }
148 }
149 return *this;
150}
151
153 int i, j, k;
154
155 for ( i = 0; i < 3; i++ )
156 {
157 for ( j = 0; j < 3; j++ )
158 {
159 for ( k = 0; k < 3; k++ ) { t[i][j][k] *= EvtComplex( c ); }
160 }
161 }
162
163 return *this;
164}
165
167 Evt3Rank3C temp;
168
169 int i, j, k;
170
171 for ( i = 0; i < 3; i++ )
172 {
173 for ( j = 0; j < 3; j++ )
174 {
175 for ( k = 0; k < 3; k++ ) { temp.set( i, j, k, ::conj( ( t2.get( i, j, k ) ) ) ); }
176 }
177 }
178 return temp;
179}
180
182 EvtTensor3C temp;
183
184 int i, k;
185
186 for ( i = 0; i < 3; i++ )
187 {
188 for ( k = 0; k < 3; k++ )
189 {
190 temp.set( i, k,
191 t[0][i][k] * v.get( 0 ) + t[1][i][k] * v.get( 1 ) + t[2][i][k] * v.get( 2 ) );
192 }
193 }
194 return temp;
195}
196
198 EvtTensor3C temp;
199
200 int i, k;
201
202 for ( i = 0; i < 3; i++ )
203 {
204 for ( k = 0; k < 3; k++ )
205 {
206 temp.set( i, k,
207 t[i][0][k] * v.get( 0 ) + t[i][1][k] * v.get( 1 ) + t[i][2][k] * v.get( 2 ) );
208 }
209 }
210 return temp;
211}
212
214 EvtTensor3C temp;
215
216 int i, k;
217
218 for ( i = 0; i < 3; i++ )
219 {
220 for ( k = 0; k < 3; k++ )
221 {
222 temp.set( i, k,
223 t[i][k][0] * v.get( 0 ) + t[i][k][1] * v.get( 1 ) + t[i][k][2] * v.get( 2 ) );
224 }
225 }
226 return temp;
227}
228
230 EvtTensor3C temp;
231
232 int i, k;
233
234 for ( i = 0; i < 3; i++ )
235 {
236 for ( k = 0; k < 3; k++ )
237 {
238 temp.set( i, k,
239 t[0][i][k] * v.get( 0 ) + t[1][i][k] * v.get( 1 ) + t[2][i][k] * v.get( 2 ) );
240 }
241 }
242 return temp;
243}
244
246 EvtTensor3C temp;
247
248 int i, k;
249
250 for ( i = 0; i < 3; i++ )
251 {
252 for ( k = 0; k < 3; k++ )
253 {
254 temp.set( i, k,
255 t[i][0][k] * v.get( 0 ) + t[i][1][k] * v.get( 1 ) + t[i][2][k] * v.get( 2 ) );
256 }
257 }
258 return temp;
259}
260
262 EvtTensor3C temp;
263
264 int i, k;
265
266 for ( i = 0; i < 3; i++ )
267 {
268 for ( k = 0; k < 3; k++ )
269 {
270 temp.set( i, k,
271 t[i][k][0] * v.get( 0 ) + t[i][k][1] * v.get( 1 ) + t[i][k][2] * v.get( 2 ) );
272 }
273 }
274 return temp;
275}
Evt3Rank3C conj(const Evt3Rank3C &t2)
ostream & report(Severity severity, const char *facility)
Definition EvtReport.cc:34
@ INFO
Definition EvtReport.hh:52
**********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
Definition KarLud.h:35
Evt3Rank3C & operator-=(const Evt3Rank3C &t2)
void zero()
Definition Evt3Rank3C.cc:73
Evt3Rank3C & operator*=(const double d)
virtual ~Evt3Rank3C()
Definition Evt3Rank3C.cc:43
EvtTensor3C cont1(const EvtVector3C &v) const
friend Evt3Rank3C conj(const Evt3Rank3C &t2)
const EvtComplex & get(int i, int j, int k) const
Evt3Rank3C & operator=(const Evt3Rank3C &t1)
Definition Evt3Rank3C.cc:45
Evt3Rank3C & operator+=(const Evt3Rank3C &t2)
void dump() const
Definition Evt3Rank3C.cc:97
EvtTensor3C cont2(const EvtVector3C &v) const
void set(int i, int j, int k, const EvtComplex &c)
EvtTensor3C cont3(const EvtVector3C &v) const
Evt3Rank3C conj() const
Definition Evt3Rank3C.cc:58
void set(int i, int j, const EvtComplex &c)