BOSS 7.1.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Evt3Rank3C.hh
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: EvtGen/Evt3Rank3C.hh
12//
13// Description:Class to handle complex 3rd rank tensors
14//
15// Modification history:
16//
17// RYD September 14, 1997 Module created
18//
19//------------------------------------------------------------------------
20
21#ifndef EVT3RANK3C_HH
22#define EVT3RANK3C_HH
23
24#include <iostream>
26//#include "EvtGenBase/EvtTensor3C.hh"
27//#include "EvtGenBase/EvtVector3C.hh"
28//#include "EvtGenBase/EvtVector3R.hh"
29
30class EvtTensor3C;
31class EvtVector3C;
32class EvtVector3R;
33
34
35class Evt3Rank3C ;
36inline Evt3Rank3C operator*(const EvtComplex& c,const Evt3Rank3C& t2);
37inline Evt3Rank3C operator*(const double d,const Evt3Rank3C& t2);
38inline Evt3Rank3C operator*(const Evt3Rank3C& t2,const EvtComplex& c);
39inline Evt3Rank3C operator*(const Evt3Rank3C& t2,const double d);
40inline Evt3Rank3C operator+(const Evt3Rank3C& t1,const Evt3Rank3C& t2);
41inline Evt3Rank3C operator-(const Evt3Rank3C& t1,const Evt3Rank3C& t2);
43 const EvtVector3C& c3);
44Evt3Rank3C conj(const Evt3Rank3C& t2);
45
46//=================
48
49 friend Evt3Rank3C operator*(const EvtComplex& c,const Evt3Rank3C& t2);
50 friend Evt3Rank3C operator*(const double d,const Evt3Rank3C& t2);
51 friend Evt3Rank3C operator*(const Evt3Rank3C& t2,const EvtComplex& c);
52 friend Evt3Rank3C operator*(const Evt3Rank3C& t2,const double d);
53 friend Evt3Rank3C operator+(const Evt3Rank3C& t1,const Evt3Rank3C& t2);
54 friend Evt3Rank3C operator-(const Evt3Rank3C& t1,const Evt3Rank3C& t2);
55 friend Evt3Rank3C directProd(const EvtVector3C& c1,const EvtVector3C& c2,
56 const EvtVector3C& c3);
57 friend Evt3Rank3C conj(const Evt3Rank3C& t2);
58
59public:
60 Evt3Rank3C();
61 Evt3Rank3C(const Evt3Rank3C& t1 );
62 virtual ~Evt3Rank3C();
64 inline void set(int i,int j,int k,const EvtComplex& c);
65 inline const EvtComplex& get(int i, int j, int k) const;
66 void zero();
67
68 void dump() const;
71 Evt3Rank3C& operator*=(const double d);
73 Evt3Rank3C conj() const;
74 EvtTensor3C cont1(const EvtVector3C& v) const;
75 EvtTensor3C cont2(const EvtVector3C& v) const;
76 EvtTensor3C cont3(const EvtVector3C& v) const;
77 EvtTensor3C cont1(const EvtVector3R& v) const;
78 EvtTensor3C cont2(const EvtVector3R& v) const;
79 EvtTensor3C cont3(const EvtVector3R& v) const;
80
81
82private:
83
84 EvtComplex t[3][3][3];
85
86};
87
88
89inline Evt3Rank3C operator*(const EvtComplex& c,const Evt3Rank3C& t2){
90 return Evt3Rank3C(t2)*=c;
91}
92
93inline Evt3Rank3C operator*(const double d,const Evt3Rank3C& t2){
94 return Evt3Rank3C(t2)*=d;
95}
96
97inline Evt3Rank3C operator*(const Evt3Rank3C& t2,const EvtComplex& c){
98 return Evt3Rank3C(t2)*=c;
99}
100
101inline Evt3Rank3C operator*(const Evt3Rank3C& t2,const double d){
102 return Evt3Rank3C(t2)*=d;
103}
104
105inline Evt3Rank3C operator+(const Evt3Rank3C& t1,const Evt3Rank3C& t2){
106 return Evt3Rank3C(t1)+=t2;
107}
108
109inline Evt3Rank3C operator-(const Evt3Rank3C& t1,const Evt3Rank3C& t2){
110 return Evt3Rank3C(t1)-=t2;
111}
112
113inline void Evt3Rank3C::set(int i,int j,int k,const EvtComplex& c){
114 t[i][j][k]=c;
115}
116
117inline const EvtComplex& Evt3Rank3C::get(int i,int j,int k) const{
118 return t[i][j][k];
119}
120
121
122#endif
123
124
Evt3Rank3C operator-(const Evt3Rank3C &t1, const Evt3Rank3C &t2)
Definition: Evt3Rank3C.hh:109
Evt3Rank3C conj(const Evt3Rank3C &t2)
Definition: Evt3Rank3C.cc:175
Evt3Rank3C operator+(const Evt3Rank3C &t1, const Evt3Rank3C &t2)
Definition: Evt3Rank3C.hh:105
Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
Evt3Rank3C operator*(const EvtComplex &c, const Evt3Rank3C &t2)
Definition: Evt3Rank3C.hh:89
**********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)
Definition: Evt3Rank3C.cc:129
void zero()
Definition: Evt3Rank3C.cc:77
Evt3Rank3C & operator*=(const double d)
Definition: Evt3Rank3C.cc:160
virtual ~Evt3Rank3C()
Definition: Evt3Rank3C.cc:45
EvtTensor3C cont1(const EvtVector3C &v) const
Definition: Evt3Rank3C.cc:190
friend Evt3Rank3C operator-(const Evt3Rank3C &t1, const Evt3Rank3C &t2)
Definition: Evt3Rank3C.hh:109
friend Evt3Rank3C conj(const Evt3Rank3C &t2)
Definition: Evt3Rank3C.cc:175
const EvtComplex & get(int i, int j, int k) const
Definition: Evt3Rank3C.hh:117
Evt3Rank3C & operator=(const Evt3Rank3C &t1)
Definition: Evt3Rank3C.cc:48
Evt3Rank3C & operator+=(const Evt3Rank3C &t2)
Definition: Evt3Rank3C.cc:115
void dump() const
Definition: Evt3Rank3C.cc:103
friend Evt3Rank3C operator+(const Evt3Rank3C &t1, const Evt3Rank3C &t2)
Definition: Evt3Rank3C.hh:105
friend Evt3Rank3C directProd(const EvtVector3C &c1, const EvtVector3C &c2, const EvtVector3C &c3)
EvtTensor3C cont2(const EvtVector3C &v) const
Definition: Evt3Rank3C.cc:205
void set(int i, int j, int k, const EvtComplex &c)
Definition: Evt3Rank3C.hh:113
friend Evt3Rank3C operator*(const EvtComplex &c, const Evt3Rank3C &t2)
Definition: Evt3Rank3C.hh:89
EvtTensor3C cont3(const EvtVector3C &v) const
Definition: Evt3Rank3C.cc:220